El Capitan es una mierda


… or to put it in English: Mac OS X 10.11 – called „El Capitan“ sucks. Now while you won’t see much of the changes in your everyday life, if you are just an email, internet and office application user – once you drill down a bit, there are a huge bunch of problems.

First, and that is one that deeply annoys me: Photos. Before Yosemite there was iPhoto which was pretty neat already, with all the functions that a hobby photographer would enjoy – face recognition, tags, meta data information, a map pinpointing every photo you took (you could actually click on it and then click on the location and see all photos). It was great.
If you wanted more: Aperture was the power app – being basically like iPhoto, but allowing for more and specialized photo editing, support of multiple libraries, etc.

All that was gone with the last updates. Instead of iPhoto and Aperture, Apple decided to introduce Photos. It is basically the same app that runs on iPhone, and besides a minimum basic things it does not allow you to do anything. All the cool features from iPhoto and Aperture are missing. And while Photos might be great on an mobile device – on a laptop or stationary device this sucks. No album support, just the zoom in and out into a stream of photos, hardly any editing support, no batch support (I mean, wtf? You seriously believe that Aperture users will dig this?). But it get’s worse. While first applauding the simplicity and pointing out that now you only need to know one app, that works on all devices the same – with El Capitan they introduce new features, that distinguishes the OS X version from the mobile version again. And guess what. A few selected features that we knew from Photos and Aperture are now being sold as new innovative ideas. NOW you can filter your photos by location – seriously? Who the hell are you trying to kid, Apple?!

So the new features in El Capitan are – hold your hats – the ability to add and edit location information, to edit meta data in batches, and they re-introduced the sidebar with some „new“ features, including – finally – the ability to have third party editing plug-ins if you are not happy with the limited filters, Apple provide.

But actually I digress. I didn’t want to talk about Photos, and if you are interested in that, there is a tons of places on the net, where professional photographers that where content with iPhoto and Aperture express their feelings towards the new Photos.

Although I handle a lot of photos, that is just a hobby, and if there is some serious editing needed there are alternatives like Photoshop.

Continue reading

researchr on Linux (Addemdum to Computer-aided Scientific Workflow)


In my last blog entry, I presented the extemporary, yet neat solution for an academic workflow, which was unfortunately limited to Mac. Though I own a MacBook myself, I am also very passionate about Linux and like to find solutions that are plattform-independent.

I already suspected, that given setup should be easily portable to Linux, only the Open Source tools Skim and BibDesk would take some deeper programming, as they depend on the Cocoa Library. But one could find alternatives:

So the presented workflow should be more or less reproducible on a Linux system. Get a feel for why this workflow is – in my opinion – ingenious, and then try porting it to Linux. The community of scientists using Linux will most definitely appreciate it.

One way to replace Skim and BibDesk would be to turn to an integrated solution, such as the Cross-Platform solution Mendeley, which uses the Qt framework and is therefor available for Linux, Mac and Windows. It is similar to Papers, but in my opinion, Mendeley seems to be much leaner. It also offers some social-network features, that other reference management systems lack.

The Ph.D. student Bodong Chen (who incidentally also studies at the University of Toronto) tried it, and seems to have succeeded. On his researchr-Wiki he gives some pointers on how it’s done (and it seems, like he also tried to do so on Windows, but as I suspected, there seems to be no success).

So, to all you Linux-Heads out there, here’s a solution for you, too. Try it out, make it better, document it, and give me a link, if you do 😉

Computer-aided Scientific Workflow


In Hamburg (at least ten years ago) when you went to Gymnasium, at some point you would learn about something called methodological competences, a “learn to learn” course showing you how to conduct research for the topic of interest, how to then efficiently read through texts, take notes, organize these notes and finally – as a preparation for the finals – how to learn and present these things.

It was this course, that at our school was thought in a two weeks seminar on Sylt, that got me interested in this topic. Of course, in 1999, when we had that course, it was still all about the analogue world – literature was obtained at the library (we even learned how books are sorted in the Staatsbibliothek), texts were photocopied, we were told to use highlighters, write flashcards, etc. Still every now and then when my interest on this topic awoke again, I started reading about new ideas on how to efficiently and effectively process knowledge that you obtain while reading and how to preserve this knowledge in a way that makes it usable even in ten years time. Now the most famous person managing this would be Niclas Luhman who was meticulously writing down every thought on every book he ever read onto little papers, numbering and tagging them, keeping handwritten indices in lookup-table. In many interviews he explained how he worked, stating, that he wouldn’t even need to write a book anymore – with this system, called Zettelkasten he’d look up important words, and the story would tell itself. He even spoke of it as a person with whom he was leading a discussion – his alter ego (see this German article on Sciencegarden as well as the following interview).

After his dead in 1998 the Bielefeld University bought the Zettelkasten from the heir: 20 000 sheets, in 80 boxes, everything Luhman was thinking in his lifetime – and as he was well recognized for his works, this was treated as the holy grail of wisdom on sociological systems theory, and as far as I know it’s even analyzed today.

But what to do, when you don’t have that much time? When you simply cannot afford to spend your every days evenings creating, tagging, indexing and sorting new sheets of papers into a giganteous pile, that most people would rather consider to be the symptoms of a hoarding personality disorder?

Continue reading

heroku – Deployment so einfach wie ein push


Für ein Projekt an dem ich gerade privat arbeite, bin ich auf heroku gestoßen. heroku ist ein sogenannter Plattform as a Service (PaaS) – Provider. Das ganze ist damit Teil des Cloud-Computing-Hypes – zusammen mit Infrastructure as a Service (IaaS) und Software as a Service (SaaS).

Auch wenn ich insgesamt nicht viel von dem ganzen Cloud-Computing-Hype halte, kommt es doch ab und an vor, dass ich Software schreiben möchte, in die ich wenig Arbeit stecken möchte, und die dynamische GUI braucht, etc. Kurzum, wenn es mal eben schnell gehen soll, dann bin ich mittlerweile auf dem Stand, dass ich mir mal eben was in Ruby on Rails Scaffolde (ja, ich weiß, böse), einfach weil es sehr schnell gemacht ist, und ich mich um so wenig wie Möglich kümmern muss. Der Nachteil ist natürlich, dass das ganze “wenig” Portabel ist.

Das “wenig” steht bewusst in Anführungszeichen, da mein erstes Programm, dass sich ein wenig weiter verbreitet hatte, ein in Visual Basic geschriebenes Programm war, und daher nur auf Windows lief. Ich hätte damals gerne schon Java verwendet, aber mit AWT kannte ich mich noch nicht aus (und Swing war damals noch verrucht, weil es neu war), und langes GUI-Gebastele wollte ich nicht – das lies das Projekt dass ich realisierte auch nicht zu.

Allerdings – die Weitergabe als Executable gestaltete sich recht einfach. Würde ich selbiges mit einer in Rails geschriebenen Applikation machen, so müsste die Person erst einmal Ruby und Rails bei sich installieren (in der Richtigen Version), dann in der Konsole ein “bundle install” durchführen, eventuell dabei vorher noch das Gemfile an die lokalen Gegebenheiten anpassen, den Server starten, und dann im Webbrowser die Applikation aufrufen zu können. Suboptimal, wenn man nur schnelles Feedback zur App möchte, die man gerade geschrieben hat. Klar, man könnte auch auf seinem Rechner den Server laufen lassen, müsste dann aber ständig IPs mitteilen, oder sich per DynDNS eine Weiterleitung einrichten, den Rechner dann immer laufen haben (oder immer dann, wenn die andere Seite denn dann mal gucken möchte) und wenn man dann wie ich auf nem Laptop entwickelt und grad auch keinen stationären Rechner da hat, ist das ganze wieder suboptimal.

Hier kommt dann – für mich – heroku ins Spiel. Aber heroku ist natürlich auch für alle interessant, die SaaS-Projekte realisieren wollen, ohne sich um die Infrastruktur und Plattform kümmern zu wollen 😉

Continue reading

OS X 10.8 + rvm + Ruby 1.8.7 = Pure Hell


Der Titel sagt ja schon alles: Da ich mein System vor knapp einer Woche auf die neue Version von Mac OS X aktualisiert habe, musste ich auch etliche Tools neu installieren. Die im Titel genannte Kombination bereitete mir einige Kopfschmerzen, weil es zu dem Thema zwar einige Beiträge gibt, allerdings keine die auf das neue Betriebssystem ausgelegt sind, und daher doch etliches nicht so funktionierte, wie die Artikel vorschlugen. Nach einem halben Tag des Lesens und Experimentieren habe ich nun alles zum laufen bekommen, und möchte hier kurz für alle darlegen, wie das zu schaffen ist (wer nur an den einzelnen Schritten in Form einer kurzen Schritt-für-Schritt-Anleitung interessiert ist, findet am Endes dieses Artikels eine Zusammenfassung <– Link funktioniert erst, wenn man vorher auf "more" geklickt hat!).

Continue reading

Nachtrag: Versionskontrolle – Tutorial zu Mercurial


Ich hab gerade noch einmal etwas nachschlagen wollen, und bin dabei auf diesen unglaublich tollen Link gestoßen:

Unter http://hginit.com hat der Software-Entwickler Joel Spolsky (der einigen vielleicht wegen seinem Blog Joel on Software oder seiner Frage-Plattform “Stack Overflow”bekannt sein könnte) ein ausführliches Tutorial geschrieben, dass noch mal eine Nummer ausführlicher, mit vielen Beispielen und auch grafisch sehr anschaulich erklärt, wie dezentrale Versionskontrollsysteme Funktionieren, und wie man mit Mercurial arbeitet.

Sehr lesenswert, aber leider auf Englisch.

Versionskontrolle


Nachdem nun mein Studium wieder angefangen hat, und ich wieder (statt wie auf der Arbeit gewohnt, gemeinsam quick-and-dirty auf einem Netzlaufwerk zu Programmieren) nun wieder auf unterschiedlichen Rechner gemeinsam entwickeln muss, wird es wieder Zeit über eine Versionskontrolle nachzudenken. Bisher hatte ich zwar immer SVN genutzt, aber in den letzten Jahren hat sich so viel im Bereich Versionskontrolle getan, das es für mich notwendig wurde, mich mal über die aktuellen Entwicklungen zu informieren. Die Ergebnisse dieser Recherche möchte ich hier kurz zusammentragen.

Bevor jetzt aber alle nicht-Programmierer schreiend wegrennen wollen: Haltet ein! 😉 Versionskontrolle hat nichts mit Programmierung zu tun. Jeder, der irgendwie Texte auf seinem Rechner schreibt, Bilder erstellt, o.Ä. – also eigentlich alle, die Dateien erstellen, und regelmäßig bearbeiten, sollten einmal über Versionskontrolle nachdenken.

Da ich selbst ein wenig Recherchieren musste (ich habe bisher nur mit CSV (nur sehr kurz und gezwungener maßen) und SVN gearbeitet, welche beide aus heutiger Sicht leicht veraltet sind), möchte ich in diesem Eintrag kurz zusammen fassen, was Versionskontrolle ist, wie es funktioniert, und was zur Zeit stand der Technik ist.

Continue reading

Lösungen zum C-Kurs des Rechenzentrums, Tag 3


Dieser Eintrag gehört zu einer Reihe von drei Einträgen zu den Aufgaben des Rechenzentrums der Universität Kiel zum C-Kurs. Er beinhaltet die Lösungen der letzten Aufgaben des C-Kurses.

Der letzte Tag des C-Kurs befasste sich im Theorieteil mit den folgenden Themen:

  • Zeigern
  • Schreiben und Lesen aus und in Datien
  • Definieren von eigenen Datentypen
  • Die Aufgaben der anderen Tage finden sich hier:

Die Kursunterlagen zum Theorieteil (Präsentationsfolien) finden sich online. Mittlerweile sind die Folien zu allen Tagen online, auch die Übungszettel finden sich dort.

Continue reading

Lösungen zum C-Kurs des Rechenzentrums, Tag 2


Dieser Eintrag gehört zu einer Reihe von drei Einträgen zu den Aufgaben des Rechenzentrums der Universität Kiel zum C-Kurs. Er beinhaltet die Lösungen der letzten Aufgaben des C-Kurses.

Der zweite Tag des C-Kurs befasste sich im Theorieteil mit den folgenden Themen:

  • Arrays
  • Strings
  • Funktionen
  • Globale und lokale Variablen
  • rekursive Funktionen

Die Aufgaben der anderen Tage finden sich hier:

Die Kursunterlagen zum Theorieteil (Präsentationsfolien) finden sich online (bisher nur zum ersten Tag, die nächsten sollten aber demnächst folgen).

Continue reading

Lösungen zum C-Kurs des Rechenzentrum, Tag 1


Diese Woche habe ich den C-Kurs des Rechenzentrums der Universität Kiel besucht. Dieser Kurs umfasst unter andrem einen ganzen Satz an Übungsaufgaben. Ich persönlich wollte meine Kenntnisse auffrischen und endlich mal vertiefen – dafür war der Kurs dann leider doch nicht geeignet. Mir persönlich war der Schwierigkeitsgrad zu niedrig, also wenn ihr schon ein wenig Programmierungshintergrund habt, erwartet nicht zu viel von den folgenden 3 Postings. Aber es gab durchaus einige, die sich an ein paar der Aufgaben die Zähne ausgebissen haben.

Da es keine offizielle Lösung für die Aufgaben zum Vergleichen gab, habe ich mir überlegt, meine Lösungen hier online zu stellen. Ich hoffe, dass sie dem ein oder anderen eine kleine Hilfestellung sind und vielleicht auch interessant sind für alle diejenigen, die nicht zum Kurs kommen konnten (für das nächste Semester werden C-Kenntnisse ja vorausgesetzt). Natürlich bin auch ich nicht perfekt (und ich habe den ersten Theorieteil von Tag 1 komplett verpasst). Also wenn ihr meint, dass man die ein oder andere Lösung optimieren kann, oder sie falsch ist, oder Ähnliches, hinterlasst doch bitte einen Kommentar!

Hier geht es zunächst nur um die Aufgaben des ersten Tages. Die Themen waren:

  • Grundzüge eines C-Programms
  • Einlesen von Daten über die Tastatur und Ausgeben von Daten über den Bildschirm
  • Operationen
  • Kontrollstrukturen

Die Aufgaben und Lösungen der anderen zwei Tage finden sich hier:

Die Kursunterlagen zum Theorieteil (Präsentationsfolien) finden sich online (bisher nur zum ersten Tag, die nächsten sollten aber demnächst folgen).

Kommen wir also zu den Aufgaben:

Continue reading