Friday, June 6, 2014

Blüte des Lebens - Georg Kostron

Musik-kritische Ausführungen im Staccato.



Vorweg: dieser Text wird in Kürze ins Lateinische übersetzt.

"Blüte des Lebens" ist eine stimmgewaltige Kraftkomposition. Ausgetüftelte Klänge begleiten diversiv zusammengetragene Klangschnipsel und garnieren - begleitet durch zeitkritischen Text - den ausgeprägten Hang zum liebevollen Detail. Das Album thematisiert an dessen Höhepunkt das Geschraube und Gedrehen an den Knöpfen der absoluten Machtkontrolle in der zentralen Schaltzentrale. Kurz: der tüftelnde Monarch seines unendlich großen Reichs der Effektkiste ist politisch.

Song 01. Raumschiff Maria

Ein routinierter Klick auf das nach rechts blickende Abspieldreieck, es wummert kurz - Dissonanz - zu leise? - kurzes Quietschen und sofort nach der Landung ist klar: dieses Album ist eingekochter Grüntee statt verdünntem Fruchtsaft. Der 1/4 Beat klopft hart ins Ohr, ist verwirrt ob des Textes und der vorsichtige Mitteleuropäer dreht ab Minute 2:30 sicherheitshalber etwas leiser. Ist das etwas zum Beten?

Song 02. Rostiges Rösslein

Versöhnlicher, Chorgesang, Melodie - zurücklehnen. Aber spätestens das Textfragment "Geld arbeitet - nicht" lässt die untertönig bittere Note anklingen. "Zügellos", "Sporen", "Peitsche" und todesbleiche Reiter mahnen den Hörer.

Song 03. Der kleine Tiger

Katzen möchten im monotonen Alltag eingelullt, sicher in der Box hockend, den Tag absitzen. Textlastiges Crescendo, maximal aufgedrehte Stimmen und songstrukturierte Abwechslung konfrontieren sie. Das Album schafft sich Raum und dehnt ... aus. Inneres Unbehagen, Stress und Unentspannung statt schmeichelnder Wohlfühlklänge.

Song 04. Lick My Face (edit)

Besuch einer altbekannten Zeitgenössin aus der "Sophia I" Phase. Musikalisch geben sich Elektronik, Instrument und die menschliche Mundschallöffnung die Hand. Sie zerren sdich gegeneinander in ihre jeweiligen Ecken, kurz kippt es in eine Ecke, nur um später explosiv zurückzuschnalzen.

Verbraucherhinweis: Spätestens an dieser Stelle wird eine erste Verschnaufpause empfohlen.

Song 05. Alle Welt

Vermeintlich poppig geht es weiter, aber der Refrain bestätigt: dies täuscht. Ein Abgesang auf das kollektive Weltbild. Inzwischen passen die sperrigen Klänge problemlos in den weit aufgemachten Raum. Es knarzt.

Song 06. Knapp vor Schaltraum

Herrlich! Das intellektuell stimulierende Latein dämpft die aufgewühlten animalistischen Emotionen, es trägt, man spürt: das Zentrum kommt für Wahr näher und man steht im Auge des Taifuns. Avantgardistische Elektronik, dann eine Orgel, ganz von der Ferne kanonenschussartige Paukenschläge.

Song 07. Süßes Kind

Fast fließend landet der Hörer in einem Liebeslied? Wer wird hier besungen? Die aufopfernde Schlusssteigerung dreht nochmals schnell am Sinn, erzeugt Verwirrung, die Entspannung ist schnell vorbei und schon ist 08 bereit für die Bühne.

Song 08. Schaltraum (edit)

Bitte Anschnallen. Treibender, hämmernder, minimalistischer Druck. Die Beats tänzeln mit sich selbst im trockenen Vakuum. Ein technokratisch editiertes Interludum entzieht jegliche Humanität, die elektrische Steuerung übernimmt das Ruder. Fast spirituelle Songskizzen beenden diesen Raubzug am Verstand. Wer hat ihn geraubt?

Song 09. Beistrich

Ein versöhnlich-humoristischer Aufgesang an die jugendliche Interpunktionskultur des Web 2.0.

Song 10. Wunderschön (edit)

Hitverdächtige Durtöne, Chöre, Mitsingmelodie, Geige, hin-und-her: heftig illussioniert, warm eingewickelt, was ist da los? Relativierende Schlagwörter gravitieren den Hörer wieder auf den rauhen Betonboden der Realität. Diese Blendung ist eine erfolgreiche.

Song 11. Küss den Tango

Der vielleicht treibendste Song des Albums. Kurzweilige Strukturzerlegungen und eingeworfene Schrägtöne bringen die schon gewohnte Unsicherheit wieder zurück. Auf-und-ab gesungene "Ah"s schrubben die bereits geröteten Großhirnfurchen wieder sauber. Es riecht nach Schweiß und Reinigungsmittel.

Song 12. Hans Tanz

Zurücklehnende Melodien, breit, kaugummiartig. Ein Akkordeon, etwas Echo, und diverse Aufforderungen an Hans verhallen im Hintergrund. Nachdenklichkeit macht sich breit. Ein gänsehautgarantierender Schlusschor.

Song 13. Der A

Nicht die Spur einer Scheu vor der Zahl 13. Es soll einfach weiter-so gehen, halt, ja, einfach weiter ... so. Hilflos gefangen im musikalischen Spinnennetz dieses Albums spannt sich ein weiterer Radialfaden in Richtung klassischem Clubsound. Tanz endlich. Im Kreis. Spätestens seit Snoweden wissen wir, dass sich auch Drohnen ständig im Kreis herum drehen.

Song 14. Tanzboutique

Der letzte Song. Ist Steigerung überhaupt noch möglich? Ein Schrei, Auftakt, 3, 2, 1. Was passiert hier? Ein sauber auskomponierter Song im deutsch-lateinischen Zwiegespräch wirft mit mehrdeutigen Fragmenten um sich. Dem Hörer wird ein kleine geheime Tür gezeigt: es ist der Notausgang in die Wirklichkeit.

Bonustrack.

Wer ein paar Minuten warten kann, wird mit einem acapellaartigem Songfragment belohnt. Es endet offen, ein Vorgeschmack auf einen Teil 2?


Abschlussbeurteilung:

9 von 10 Aes Grave.


Links:

f/undSeinManager

Tuesday, April 22, 2014

Sage GSoC 2014 Projects

This year, Sage is happy to announce that it will be running five Google Summer of Code projects. Welcome everyone to the Sage community and all the best to your summer filled with exiting projects ;-)

EDIT: lmonade related projects are listed here.

Nikhil Peter Raj (Volker Braun):

Improvements to the Sage Android App

This project aims to improve upon the existing app by improving both internal structure and external user experience, the former by replacing and redoing certain modules of the app (JSON Parsing, HTTP Requests and Exception Handling) and the latter by redesigning the UI so it conforms to the latest standards and specifications of Android Design, as well as adding extra features to the code input such as Syntax Highlighting and options to record and store custom inserts.

Amit Jamadagni (Miguel Angel Marco-Buzunariz)

Knot theory implementation

The project mainly deals with the implementation of various links, knots presentations and calculating various related invariants. The main aim of the project is to achieve: Conversion between different representations of Knots and Links to mention a few: Gauss code to Braid Word, Braid word to DT code, Gauss code to DT code. Implementation of various invariants: Alexander Polynomial, Conway Polynomial. Stiefert Matrix, Jones Polynomial

Jayant Apte (Stefan van Zwam)

Efficient class-specific membership checks, extensions and visualization 

First goal of this proposal is to implement efficient testing of a matroid for membership of various classes and to perform single element extensions of matroids that exploit the knowledge that a given matroid belongs to a certain class, to have lower complexity. We also propose implementation of visualization techniques and an application of matroid theory in form of enumeration of network codes for a multisource network coding problem which is one of the timely problems in information theory.

Simon Spicer (William Stein, Jonathan Bober)

Efficient exact analytic rank computation for elliptic curves in Sage

My project would be to implement functionality in Sage to compute the analytic rank of an elliptic curve exactly modulo standard conjectures, with better scaling than existing analytic rank estimation methods. This would necessitate both writing (significant amounts of) new Python and Cython code, as well as porting existing code into the Sage codebase.

Daniel Bell (Ivan Andrus)

iSage - improving the Sage iOS apps

There are several aspects of the Sage iOS apps that needs to be refreshed, improved or implemented. I propose to develop the ability to interact with several Sage services from the app, as well refresh the user interface for the app.


Friday, February 7, 2014

My first Time-Lapse Experiment

Well, my new camera (Panasonic DMC-GX7) has two features I've never had before: stop-motion and time-lapse. The only difference seems to be: the minimum time between the shots is either 1 second or 1 minute - and if there is an "open end" or a fixed number of pictures.

Searching around online, the most important thing to do is to take the shots in manual mode. The reason is, that you do not want to have this flickering. So well, that's easy to do in manual mode: exposure, aperture, ISO and of course the focus. What I didn't read (or didn't notice), but should have done is to also fix the white-balancing! So, in case you want to try this, set it the white balancing to manual.

One cool thing of doing this in stock motion on my camera is, that it automatically converts the images to a movie. Only for one sequence I had to do it on my computer, because the camera wasn't responsive or I've confused it. So, in case you are on a Ubuntu Linux like I am, here is what to do: First, don't bother with ffmpeg or avconv: they are too old and do not have the flag "-start_image" to set the first number of the counter. This sucks!

So instead: mencoder:
Start by moving all the images in a separate directory, then the "P*.JPG" regex pattern matches all your images in alphabetical order. Easy.

$ mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:mbd=2:trell:autoaspect:vqscale=3 -vf scale=1920:1080 -mf type=jpeg:fps=5 'mf://P*.JPG' -o OUTPUT.avi
=> see update below

If you have better ideas for the command-line, please post it. fps=5 is for the number of frames per second. I think the quality should be set higher, but no idea which of the switches does this in a sane way.

Now enjoy these three YouTube videos from Vienna (Parlament and City-Hall):




Update:

There is indeed a much better mencoder setting, using x264:

$ mencoder -nosound 'mf://P*.JPG' -mf fps=10:type=jpeg -ovc x264 -x264encopts preset=slow:tune=animation:crf=20 -vf scale=1440:1080 -o time-lapse.avi

Options (for more, check the manpage)
  • fps=10: 10 pix/second. 5 is also ok, 20 if you have really a lot of pics.
  • tune=animation: sounds reasonable, there is also "film"
  • crf=20: recommended switch for setting the quality, could also be 10 or 20, ...
  • -vf scale: that could be something different, depends on what you have. (960x720)

Wednesday, November 6, 2013

When will Sagemath Cloud hit 100,000 user accounts?

The Sagemath Cloud is an online environment for computational mathematics. Get an account, log in, and your web-browser transforms into almost everything you need to study algebra, calculus, numerics, statistics, number and game theory, (computational aspects of) physics, chemistry and all other quantitative sciences. It's built around all sorts of tools and utilities offered in a proper Linux environment. All files can be shared with collaborators and edited in real-time without stepping on each other's toes. Oh wait, there is also a LaTeX editor: given you know LaTeX, qualitative sciences are also covered ;-)

But beware, this posting will only talk about the very first: accounts. Below, I'll explain how I managed to create this page, the plot below and how I let it update automatically every hour - all done solely by SMC!

SMC accounts over time


Sagemath Cloud is very public about what is happening on its servers. This stats link gives you the raw data for the current overall load of the machines. What I did over the last weeks was the following: Every hour I've downloaded this stats json file, parsed it, accumulated some interesting numbers, and stored the processed data in a CSV file.

I did all this in SMC, because it allows you to run your own crontab files. Cron periodically goes through all kind of files to figure out if there is a job to do. Just enter a magical line in your own crontab file, and the given command is run whenever you tell it to do so. You do not have to be logged in!

In my case, it's like this:
First, edit your crontab file:
$ crontab -e
Then enter this line:
0 * * * * python $HOME/get.py

The $HOME is important, because you have to specify the full path where your script sits. (By the way, if you have to start something when the SMC server reboots, use the @reboot descriptor)

So, what is get.py doing? It uses the wonderful requests Python library to retrieve and parse the stats url and extracts some data. Then it appends a line to a CSV file.

Two minutes later (the crontab line starts with a "2"), another script is called which processes this CSV file. It reads the columns via pandas, properly parses the dates into time-series, and allows me to do all sorts of analysis, transformations and plots with it. For example, the plot shown above overlays the raw time series plot with OLS fits done by statsmodels for selected time ranges (where it looks "flat"). We can see the growth trends clearly! Even more important, so far the growth increases and hence we are watching the exponential growth phase as part of the beginning of the usual logistic growth.

The other plots on this statistics page show aggregated time-series data. For example, the plot for the number of concurrent connections is also increasing and reassures that SMC is scaling well.
Concurrent connections to SMC
On this statistics page, there are also a few "dynamic" fields in the HTML content. This is done by jinja2 in such a way, that the template "stats.tmpl" contains the HTML code and "mustache"-style variables. Jinja2 renders this template with some variables and that's it.

import jinja2 as j2
env = j2.Environment(loader=j2.FileSystemLoader("."))
stats = env.get_template("stats.tmpl")
data = {
        'date' : "%s UTC" % datetime.utcnow(),
        'recent_data' : totals.ix[-24:].to_html()
}
with open("stats.html", "wb") as output:
    output.write(stats.render(**data))

The last step of the script is to actually publish the files to the webserver. That's rather straight forward. First and only once, create ssh keys via ssh-keygen without a password and then use ssh-copy-id -i ~/.ssh/id_dsa.pub name@server to copy over your keys. Subsequent ssh connections will be established without any questions asked, because the remote server knows your identity. I'm using scp to copy the files: scp *.png stats.html name@remote-server:~/target/dir/

Last but not least, when will SMC hit the 100,000 user mark? In less than 6 days the 10,000 mark should be crossed and I hope the trend continues into the upward direction.

Monday, May 27, 2013

Sage announces 3 GSoC projects

Sage is pleased to announce three Google Summer of Code projects for 2013. They focus on speed improvements of symbolic functions, simplifying the distribution and installation procedure on Debian/Linux and ubiquitous accessibility of Sage on the Android platform.


Mathematical Functions Library

Eviatar Bach –  University of British Columbia in Vancouver, Canada
(Mentor: Flavia Stan, Backup: Burcin Erocal)


Sage interfaces with multiple third-party libraries, such as MPFR, GSL, GP/PARI, mpmath, and Maxima, for numerical evaluation of special functions. There are significant discrepancies between these backends in the performance for numerical approximations of the same expression. An initial benchmark reveals, for example, that calculating spherical_bessel_J(1, 5.2) with SciPy is over 100 times faster than with Maxima.

The project has the following goals:
  1. develop a benchmark framework to determine which backend should be used by default to evaluate a special function over a specific domain,
  2. create symbolic wrappers for all the special functions that can be evaluated numerically by a package included in Sage,
  3. create a data structure for generalized hypergeometric functions and extend the symbolic wrappers to obtain representations in terms of generalized hypergeometric functions when possible,
  4. implement closure properties for holonomic functions as a next step to improve the symbolic processing of special functions in Sage.


Overall improvement of the Sage Android application

Rasmi Elasmar
(Mentor: Volker Braun, Backup: Harald Schilly)


Although there are already some existing efforts, Sage is still not easily accessible from the Android platform. The Sage Cell client/server infrastructure is an already existing step towards running Sage on a server and communicating back the results. The aim of this proposal is to fix, improve and update the Sage Android application to include new features and functionality, as well as an improved interface for simpler and improved usability. Android's new "Holo" style, sharing of calculations and results, and much more waits to be realized on Android for Sage.


Get Sage ready for Linux distributions

Felix Salfelder – Goethe Universität, Frankfurt, Germany
(Mentor: Tobias Hansen, Julien Puydt, Jeroen Demeyer & John Palmieri )

The aim of this project is to detach the build process of Sage ("the software") from Sage ("the distribution"). The goal is a build system that works within the context of Sage as well as for any GNU/Linux distribution that ships the dependencies for Sage. Distributions that already ship Sage packages or plan to do so are Fedora and Debian. This project is an important step towards making Sage packages in GNU/Linux distributions feasible.



Sage warmly welcomes all three new students and wishes them all the best to learn something new and make an impact in Sage's future developments!

Monday, April 8, 2013

Sage part of Google's Summer of Code 2013

Good News, like last year Sage is once again part of Google's Summer of Code. This means, until April 22 at 19:00 UTC students can submit their applications and mentors will review them and do the matching.

Please share this with prospective students or think about being a mentor this year!

links:

Tuesday, March 19, 2013

Sage 5.8

Sage 5.8 has been released, download it here.

Also, the documentation page has been updated to reflect the new thematic tutorials. I highly recommend to browse through all those topics to learn more about Sage's ever increasing scope.