Ruby Version Manager und Vim


Und noch einer. Wenn man mehr als eine Ruby-Umgebung braucht, führt kein Weg am RVM vorbei. Wozu man mehr als eine Ruby-Umgebung brauchen sollte?

Fluch und Segen in Ruby ist es meiner Ansicht nach, dass sich alles so rasend schnell weiter entwickelt (und nicht nur meiner Ansicht nach, wie ich heute in einem Gespräch mit einem Kommilitonen erfahren habe, bei dessen Arbeitsplatz man aus diesem Grunde wieder von Ruby weg möchte). Gerade über das Pakete-System RubyGems gibt es viele Plugins und Libraries, die von so vielen unterschiedlichen Teams und so sind schier unendliche Kombinationen von Gems und Versionen möglich. Dabei sind folgende Punkte problematisch:

  1. Gems für verschiedene Projekte können in unterschiedliche Versionen haben, und Kombinationen unterschiedlicher Gems in unterschiedlichen Versionen können zu Konflikten führen.
  2. Ruby ist nicht Abwärtskompatibel. Ein Upgrade des von Ruby führt meist ein erzwungenes Upgrad der Applikationen mit sich (ungünstig).
  3. Besonders stark ist Rails von der Ruby-Version abhängig und ebenfalls nicht abwärtskompatibel (ebenfalls ungünstig).

Was also tun, wenn man an zwei oder mehr unterschiedlichen Projekten mitarbeitet, die auf unterschiedliche Versionen setzten? Für OS X kommt noch eine weitere Schwierigkeit hinzu – hier ist Ruby standardmäßig installiert, da OS X selbst an einigen stellen Ruby-Code einsetzt – das kann nicht einfach auf eine neue Version gehoben werden.

Hier kommt RVM ins Spiel. Ich weiß übrigens leider nicht, wie das mit einer Windows-Version/Kompatibilität aussieht, aber ich kann mir nicht vorstellen, dass es sie gibt, da schon der Installationsprozess über die Konsole läuft. Eventuell mit Cygwin. Ansonsten: Wechselt halt auf ein besseres Betriebssystem 😛.

Continue reading

Advertisements

LiveReload – The Web Developer Wonderland


Der ein oder andere hat es ja schon mitbekommen. Ich stecke mal wieder ein wenig stärker in der Webprogrammierung und versuche gerade ein eigenes Projekt aufzuziehen. D.h. man muss sich auch um die weniger schönen Sachen kümmern – bei mir betrifft das vor allem das Webdesign. Ich gebe es gerne zu, so schön CSS auch ist, es ist keines meiner dicksten Freunde – die Zeiten, als man noch Frames benutzt hat und sich niemand über Tabellen-Designte Webseiten aufgeregt hat, waren mir – trotz aller berechtigter Kritik – doch irgendwie noch am Liebsten.

Aber es ist, wie es ist, und ich kann ja auch nicht ewig auf dem Stand von vorgestern Sitzen, also wird es mal wieder Zeit, wissen aufzufrischen, meine HTML4.0 Kenntnisse zu modernem HTML5 upzugraden, und schön säuberlich mit CSS und HTML zu arbeiten. Daher CSS Datei im Editor, und von dort dann immer regelmäßig zwischen Konsole und Browserfenster gewechselt, cmd-r, für’s refreshen, einmal im Firefox, im Safari und in Chrome – es soll ja überall schick aussehen; einen Internet Explorer habe ich leider mangels Windows nicht zur Verfügung, aber nachdem ich dort schon etliche Work-arounds eingebaut habe, damit die wenigen neuen HTML5-Tags überhaupt angezeigt werden können, graust es mich eh davor, wie das dort alles aussehen wird (Stichworte sind hier Microsofts sehr eigenartigen Conditional Comments und das HTML5 Shiv).

Aber ich komme vom eigentlichen Thema ab. Regelmäßig nach einer Änderung in der Konsole drei unterschiedliche Browser in den Fokus holen und refreshen nervt. Besonders wenn man so CSS-Unerfahren wie ich bin, und viel mit den Werten herum probieren muss, bis sie das tun, was sie sollen.

Continue reading

Ein paar Informatiker-Zitate


Die habe ich gerade auf einer Sicherheitskopie meines Arbeitsrechner gefunden, als ich eben dabei war Dateien aufzuräumen:

A bad day writing code in Scheme is better than a good day writing code in C

(David Stigant)

Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live

(John F. Woods)

Programming is just another name for the lost art of thinking.

(Aaron Hsu)

Keine Ahnung, wo ich sie aufgegabelt habe, aber ich fand sie so in einer Textdatei, in der ich sie mir abgespeichert hatte.

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

Mal wieder mehr Programmieren


Mein Project Euler Banner Eigentlich kommt mir jedes Jahr wieder die Erkenntnis, dass ich viel zu wenig programmiere. Und das ist echt schade, denn ich programmiere wirklich sehr gerne. Dies habe ich gerade letzte Woche wieder gemerkt, in der ich an dem Adressbuchprojekt für das Programmierpraktikum der Uni gearbeitet habe. Auch wenn es sehr stressig war, da wir zu spät angefangen haben, und Scheme auch nicht die Sprache meiner Wahl ist, hat es mir enormen Spaß gemacht.

Daher habe ich mich auf die Suche nach ein paar Programmierproblemen gemacht. Dabei bin ich unter anderem auf das Projekt Euler gestoßen, zu welchem ich mir überlegt habe, eine neue Blogserie zu starten.

Continue reading