SVN für das Studium

Ok, hier liest zwar im Moment wohl eh keiner weil meine Leserschaft sich, wie ich denke, nur aus einer Handvoll Leute zusammensetzt die mich in RSS-Reader drinhaben, aber sobald meine Domain wieder da ist sollten die Einträge ja auch darein rieseln.

Fangen wir mit SVN (Subversion) an. Subversion ist ein Version-Control-System. Also ein System was dazu gut ist verschiedene Versionen von Dateien zu verwalten und es zu ermoeglichen mit mehreren Leuten moeglichst schnell und einfach zusammenzuarbeiten. Das ganze muss man sich also vorstellen wie ein Wiki, man macht was, es wird was geaendert, man sieht aber noch die alten Versionen alle und kann zu jedem Zeitpunkt dahin zurueckkehren (wenn man z.B. merkt dass die Aenderungen totaler Mist waren). Ich werd einfach mal beschreiben wie Flo und ich das fuers Studium einsetzen.

Zuerst erstellt man ein Repository, also quasi ein Projekt unter dem man arbeiten will. Bei uns heisst das “studium”. Dieses Repository liegt dann auf einem Server und kann auf unterschiedlichste Arten angesteuert werden. Entweder per http/https, per eigenem svn protokoll oder einfach per file wenn das Ding auf dem eigenen Rechner liegt. Man faengt damit an indem man einen “checkout” von dem Repository macht. Dabei werden alle Dateien vom Server runtergeladen und auf dem lokalen Rechner angelegt. Man hat also jetzt quasi die aktuelle Kopie an der gearbeitet wird. Wenn man jetzt Schreibzugriff hat kann man lokal dateien editieren und diese dann “committen”, also hochladen. Diese werden vom SVN-Server als neue Revision (Version) erkannt. Wenn jetzt jemand anders bei sich ein “update” macht werden alle Dateien die sich seit dem letzten Update geaendert haben runtergeladen. Somit haben alle Teilnehmer immer die aktuelle Version um damit zu arbeiten, und das moeglichst komfortabel.

Warum das ganze fuers Studium verwenden? Nunja, es gibt einen Haufen Vorlesungen, und zu jeder Vorlesung wollen Skripte, Uebungen, Beispiele, andere Internet-Fundsachen runtergeladen werden. Zusaetzlich muessen noch Uebungsblaetter bearbeitet und die Abgaben geTeXt werden. Dadurch dass Flo und ich ein Repository haben muss alles nur einmal geladen werden, was also quasi schonmal eine Halbierung des Arbeitsaufwands ist. Wenn man gemeinsam an Code arbeitet ist das auch sehr praktisch. Ich lade mir Quelldateien vom Server, spiel sie kaputt, merke das, mache ein “revert” und die Datei ist im Originalzustand. Oder ich schreibe ein Programm, Flo guckt es sich an, veraendert/optimiert 2-3 Sachen dadran, laedt das ganze wieder hoch und ich kann beim naechsten Update genau sehen was er geaendert hat (und wann) und es werden auch nur die Sachen uebertragen die geandert wurden. Wenn es mal passieren sollte dass zwei Leute gleichzeitig an einer Datei was machen und dann beim hochladen merken dass die Datei mit der man lokal gearbeitet hat grade eben von jemand anders veraendert wurde so laesst sich das in den meisten Faellen interaktiv mergen.

Ich hoffe ich habe das jetzt gut genug erklaert dass es auch Leute verstehen die sich sonst mit sowas nicht auseinander setzen. Subversion macht besonders viel Sinn wenn man Dateien hat die sich oft veraendern (Quelltext an dem viel rumgeschraubt wird), aber auch fuer einfache PDFs die nur einmal eingecheckt werden hats in unserm Fall Sinn gemacht. Wer mehr wissen woll sollte sich auf jeden Fall das SVN-Book angucken, und nicht abschrecken lassen, das ganze ist furchtbar einfach zu benutzen und einzurichten.

Kleines Schlusswort: Unser Repository ist nach dem SS06 client-seitig nun etwa 333mb gross, und dadrin sind so ziemlich alle Folien und Skripte zu den Faechern DaStru, RS, Diskrete und ATFS. Dazu noch ein paar andere Sachen die nebenbei anfallen, wie etwa die Algorithmen der Woche, oder allgemein Dinge/PDFs aus Wikipedia oder dem restlichen Internet. Waehrend des ganzen Semester gab es kein einziges mal “hast du schon das oder das geladen” oder “zeig mal bitte die allerneuste Version von deiner Implementation, ich glaub ich hab nicht die aktuelle” sondern nur ein regelmaessige “svn up” ;) Der Subfolder fuer das WS06 steht auch schon.

Vim Tips (Part 1)

Over the last couple of weeks ive been working hard at improving my workflow on my computer. This started when i installed gentoo on the freshly-arrived-box, then i switched from fluxbox to ion which is way better in every way. Of course ive been a vim user for quite some time now, and when vim 7.0 arrived i didnt hesitate a second to upgrade.

Now, my .vimrc is partly copied from friends who have been using it even more, and to a good extent i dug through the manuals looking for cool stuff to try out. Im still not using the whole edit-compile-run-edit circle, but i will get to that ;). So im gonna post my .vimrc some time in the future, but for now i want to share the following with you:

Have you ever wanted to comment out multiple lines? Like 10 Lines with a # prefixed? Just select the lines in visual-line mode (Shift-V), press : and the command line comes up with :’< ,’> Now you can change that to :’< ,’>s/^/#/ (or use $ instead of ^ for the end of the lines) and be happy ;)

Gentoo / Ion / Vim / zsh

Weil ich sonst nix zu schreiben hab, hier ein kleiner Screenshot wie es bei mir aussieht (und wie ich ziemlich damit zufrieden bin).

heipei-ion-20060728

Persoenliche Bereicherung durchs Studium

Hab mir grade mal so gedacht: Klar, Studium ist oft nervig, nervenaufreibend und auch manchmal schlichtweg langweilig. Und bei vielen Sachen sagt man sich (aehnlich wie damals in der Schule): “Brauch ich spaeter eh nicht.” Aber ich finde dass manche Dinge/Vorlesungen auch wenn sie waehrend der Lernphase noch so schlimm sind in der Retrospektive gesehen doch was positives hatten (auch hier liegt wieder Vergleich zum z.B. Franzoesisch-Unterricht in der Schule nahe ;). Manche Leute sagen sich vielleicht: “Ich weiss was Dualzahlen sind, ich weiss wie Rechner grob aufgebaut sind und ich weiss auch wie man Assembler programmiert.” Das trifft auch im auf mich zu, aber nach Rechnerstrukturen war ich doch sehr dankbar ueber das Gelernte auch wenn es “nur” manche Dinge klar gemacht hat die ich vorher einfach hingenommen hab oder wo ich mir gedacht hab “ist halt so, ich machs einfach so”. Gar nicht mal auf akute Problemstellungen bezogen, aber ich denke das wird mir noch frueh genug zu Gute kommen (und beweist dass das was man in so einem theoretischen Studiengang wie Informatik im Grundstudium lernt doch nicht so realitaetsfern oder praktisch unbrauchbar ist wie jemand der sich das Fach nur von aussen anguckt vielleicht denkt). Das Problem fuer Aussenstehende ist zu unterscheiden was von dem Stoff durch das Studium gelernt wurde und was davon schlichtweg Hobby/Allgemeinwissen/Wikipedia-lesen ist. Ist bei anderen Faechern sicherlich auch nicht in diesem Masse ausgepraegt.

So, das wollt ich loswerden ;)

P.S.: Ja, ich muss mal mein Tastatur-Layout hinkriegen um wieder Umlaute tippen zu koennen ;)

subscribe via RSS