Dienstag, 1. Dezember 2009

Der coole Weg auf die RAC-Server.

Im folgenden werde ich beschreiben, wie man sich mit Mac OS X sehr komfortabel über VPN und SSH auf die Rechenzentrums-Server des RheinAhrCampus einloggt. Prinzipiell lässt sich die Vorgehensweise sicher auch auf andere Server übertragen.

Teil 1 – Wie komme ich in den RAC?
Das Rechenzentrum des RACs stellt den Cisco-VPN-Client zur Verfügung. Das Programm hat mich von Anfang an so genervt, dass ich mich lieber nicht von extern eingeloggt hab, als es zu verwenden. Glücklicherweise bin ich dann auf Shimo gestoßen.

Shimo ist ein kleines Programm, das sich in der Menü-Leiste einnistet und ein hübsches, unscheinbares und komfortables Frontend für bspw. den Cisco-Client bietet. Laut dem Macher werden alle bekannten VPN-Arten unterstützt (was mir aber relativ egal ist ;)). Seit einiger Zeit ist es nicht mehr Freeware, sondern Shareware. Regulär kostet es um die 15 Euro, es gibt aber wohl Studierendenrabat. Was es dann kostet kann ich noch nicht sagen, da ich die Toolchain erst seit vorgestern wieder laufen habe und bisher noch mit dem Bezahlhinweis lebe.

So genug Vorgeplänkel, was muss man machen?
Also zunächst muss man natürlich den Cicso-VPN-Client installieren, den kriegt man auf der RZ-Seite. Wenn er schon installiert ist und ihr kürzlich Snow Leopard installiert hat, kann es notwendig sein, ihn nochmals neu zuinstallieren, das war zumindest bei mir so.

Wenn das getan ist, wird Shimo installiert, das geht straight forward. Shimo befindet sich nun im Programme-Ordner, also einfach starten. Jetzt habt ihr in der Menü-Leiste einen Torbogen, das ist Shimo. Draufklicken und auf Einstellungen. Da kann man allerhand einstellen, der wichtigste Reiter ist aber der für Profile. Jetzt auf das PLUS links unten klicken und im Bereich "Importieren aus:" "Cisco Profil" auswählen. Es poppt ein Dateiauswahl Fenster auf und ihr navigiert in den Ordner, in dem ihr die Dateien des Zip-Files vom RAC entpackt habt. Dort sind drei Profil-Dateien drin, eine für DSL-Teiltunnel, eine für DSL-Volltunnel und eine für das Studnetz. Wofür die jetzt genau da sind steht in der VPN-Broschüre, die auch im RZ-Bereich zu finden ist. Alle drei Dateien importiert ihr in Shimo.

Das war es im Prinzip schon, ihr könnt aber noch direkt über Bearbeiten euren Benutzernamen und das Kennwort eintragen, das im Schlüsselbund gespeichert wird. Einstellungen zu machen und wieder auf das Tor klicken und jetzt eine der Verbindungen anklicken, ich wähle hier Teiltunnel (Volltunnel würde wohl den gesamten Netz-Verkehr über den RAC umleiten und war bei mir furchtbar langsam), Teiltunnel reicht aber für das, was ich hier beschreibe, vollkommen aus. Nochmals auf das Tor klicken und "Verbinden", jetzt tut sich was im Tor und dann sollte (wenn ihr denn Growl installiert habt) eine Mitteilung erscheinen, dass eine Verbindung aufgebaut wurde.

Das war der erste Teil. Jetzt habt ihr schonmal eine saubere, unaufdringliche Verbindung zum RAC. Über das Terminal könnt ihr euch jetzt mit "ssh benutzername@fserver1" auf dem fserver einloggen und würdet direkt in eurem Profil landen (nach Eingabe des Passworts natürlich).
So das ist aber noch nicht so schick, denn wir haben ja einen Mac um es einfach und komfortabel zu haben.

Teil 2 – Geht es auch ohne Terminal?
Ich bin ja faul und Terminal Tipperei brauch ich auch nicht, wenn ich mal schnell eine Datei kopieren will. Da kommt jetzt MacFUSE und Macfusion ins Spiel. MacFUSE ist ein geniales Stück Software, das sehr viele Arten von Medien in das Dateisystem von OS X einbinden kann. Was wir hier brauchen ist eine Einbindung von ssh, aber man könnte auch ein Youtube-Filesystem einbinden (oO). Das Ding ist aber Kommandozeilen-basierend, sodass es noch nicht das ist, was ich will. Dafür gibt es aber Macfusion, welches ein grafisches Frontend für MacFUSE bietet. So der Reihe nach.

Zuerst installiert ihr MacFUSE, einfach das machen was von euch verlangt wird, nichts anderes. Dann installiert ihr direkt hinterher Macfusion.
Macfusion findet ihr in den Programmen, einfach starten. Es öffnet sich ein ziemlich bescheidenes Fenster. Auch hier ist es wieder ganz einfach: auf das PLUS unten links klicken und auf "SSHFS" klicken.
Im oberen Textfeld dürft ihr euch einen Namen für euren Ordner ausdenken, den ihr einbinden wollt. Also zum Beispiel "RAC/profile". (Wichtig: der Name hier hat nichts mit dem tatsächlichen Ordner zu tun, den ihr einbinden wollt. Es ist wirklich nur eine Bezeichnung für die Verbindung.) Als Host tragt ihr "fserver1.rheinahrcampus.de" ein, User Name ist eurer RAC-Profilname, Password dementsprechend euer Passwort. Path lasst ihr leer, wenn ihr euren Profil-Ordner mounten (einbinden) wollt. Um andere Ordner einzubinden könnt ihr beim Path etwas eintragen, der Root-Ordner vom fserver1 bekommt ihr mit "/", den Lehre-Server mit "/samba/lehre/".
Im Reiter "Macfusion" könnt ihr noch bei "Volume Name" angeben wie der Ordner im OS X Dateisystem heißen soll, das ist also der Name unter dem der Ordner im Finder erscheint. Es besteht dort auch die Möglichkeit auszuwählen, dass der Ordner beim Start von OS X eingebunden werden soll, das solltet ihr nicht tun, denn die Verbindung ist nur möglich wenn eine VPN-Verbindung besteht und die besteht beim Start noch nicht.

So das wars schon, "Ok" und euer Ordner steht in der Liste von Macfusion. Jetzt auf "Mount" klicken und der Ordner sollte sich nach kurzer Zeit grün verfärben. Auf dem Desktop seht ihr jetzt den Ordner und könnt ihn öffnen. Im Finder erscheint er irgendwie seit einem Versions-Update bei mir nicht mehr in der linken Leiste, man findet ihn aber, wenn man dort auf "euerName's Computer" klickt. So damit habt ihr jetzt vollen Zugriff auf eure Dateien und das nativ in OS X. Schick oder?

Teil 3 – Schluss
Eigentlich könnte es jetzt hier enden, aber zwei Punkte muss ich noch erläutern.
Wenn ihr mit eurer Arbeit auf dem Server fertig seid, "unmounted" zunächst den Ordner, das geht im Finder oder auf dem Desktop wie bei CDs oder USB-Sticks, auswerfen klicken oder auf den Papierkorb ziehen. Danach erst im Shimo-Tor auf "trennen" klicken. Wenn ihr das mit dem "unmounten" vergesst, kann es zu nervigen Verzögerungen kommen, bis OS X merkt, dass die Verbindung nicht mehr besteht.

Der letzte Punkt betrifft User von Snow Leopard. Macfusion funktioniert damit nach der Installation nicht. Also Starten und Ordner-Einrichten geht zwar, aber ihr könnt den Ordner dann nicht mounten, da gibt es einen Fehler.
Um den zu beheben, geht in den Programme-Ordner, Rechtsklick auf Macfusion und auf "Paketinhalt zeigen" klicken. Wer das noch nicht kannte: Programme die mit .app enden sind Pakete, die Ordner enthalten und in denen eine Reihe von Dateien stecken. In denen findet OS X dann die auszuführende Datei. Aber generell sollte man da nicht drin rumspielen, wenn man nicht weiß was man tut. Ihr klickt euch jetzt dort durch bis ihr hier "/Macfusion.app/Contents/PlugIns/sshfs.mfplugin/Contents/Resources/" gelandet seid. In diesem Ordner befindet sich eine Datei "sshnodelay.so", die löscht ihr. Dann macht ihr den Ordner wieder zu und startet Macfusion und siehe da: es funktioniert. Die gelöschte Datei dient wohl nur dazu, mit manchen alten Servern klar zu kommen, die RAC-Server sind aber neu und man braucht sie nicht.

So jetzt solltet ihr eine voll funktionierende Toolchain haben, mit der ihr komfortabel auf die RAC-Server zugreifen könnt. Es ist sogar deutlich angenehmer als unter Windows, wie ich finde. Das bisschen Arbeit lohnt sich also sehr.
Sowohl Shimo als auch Macfusion können mit OS X gestartet werden, Shimo kann auch bei seinem eigenen Start direkt eine VPN-Verbindung aufbauen. Bei Macfusion muss man da, wie gesagt, ein bisschen aufpassen. Wenn man will kann man also ohne ein Programm von Hand zu starten auf die Server zugreifen.
Und jetzt viel Spaß!

Links:

Dienstag, 1. September 2009

Plot und Single? Nein.

Zum Merken: der Plot-Befehl in Matlab akzeptiert nur Variablen vom Typ Double. Bei Single bringt er einen Fehler, der allerdings nicht direkt damit in Verbindung gebracht wird.

Sonntag, 30. August 2009

Safari.

Firefox nervt mich zur Zeit ultra, er ist unglaublich langsam, stürzt oft ab. Er nervt einfach.
Jetzt hab ich mal probeweise den Safari ständig an, der gefühlt deutlich flotter arbeitet und nicht abstürzt. Leider fehlen ihm wichtige Dinge, die ich jetzt mal hier auflisten will
  • es gibt kein delicious-Plugin (also es gibt eins, aber das ist nicht von delicious selber und es kostet 10 Dollar. Seh ich nicht ein.)
  • der Werbeblocker den ich verwende – AdBlock – lässt im Vergleich zum Firefox-Pendant zuviel durch. (Ich glaube er kann nicht mit iframes umgehen.) ICH WILL KEINE WERBUNG SEHEN.
  • AdBlock lässt sich nicht bei ausgewählten Seiten deaktivieren. (Zumindest hab ich die Funktion nicht gefunden, doof.)
  • alt+command+f für suchen ist doof.
  • man kann wohl RSS-Feeds nicht direkt z.B. im google Reader speichern.
  • ich glaube man kann nicht per Tastatur die Suchmaschine wechseln. Doof.
Ich will das alles für Safari haben.

Mittwoch, 26. August 2009

Project Euler.

Sehr coole Sache. Momentan 252 Aufgaben/Probleme, übergreifend mathematischer Art, die man programmierend lösen soll. (okay zum Teil gehts es auch mit Stift und Papier.)
Die Aufgaben sind so gestellt, dass am Ende immer eine Zahl rauskommt, die kann man (nach Anmeldung) beim jeweiligen Problem eingeben und wenn sie richtig ist bekommt man ein Häkchen und Zugang zum entsprechenden Forumthread. Dort findet man dann im Prinzip in jeder Programmiersprache eine Lösung, sehr interessant.
Die meisten Probleme kann man durch Brute-Force lösen, aber freiwillige Nebenbedingung ist, dass die Berechnung maximal 1 Minute dauern soll (das geht auch, man muss "nur" clever sein).
Kleines Beispiel, man hat ein Feld mit 20x20 Feldern und man soll die Anzahl der möglichen Wege über die Felderränder rausfinden, ein zulässiger Weg führt immer entweder nach rechts oder nach unten, nie zurück. Mein erster Ansatz rekursiver Natur hat das Ergebnis bis 10 Felder in akzeptabler Zeit gelöst, bei 20 Feldern hab ich nach 20 Minuten warten aufgegeben und neu überlegt. Und dann hab ich eine Formel gefunden mit der man die Anzahl berechnen kann... 10 Millisekunden.
Macht Spaß (wenn man den Spaß am Programmieren hat)!

Achso der Link.

Mathworks Webinare.

und mal wieder ein Link hier:
Mathworks Webinars
Das sind so aufgezeichnete Vorträge, also Präsentationen mit Stimme.
Die Dinger sind richtig gut, ich hab mir den "MATLAB for C/C++ Programmers" reingezogen, immerhin 70 min lang. Und hab coole neue Sachen kennengelernt. Von denen ich zwei kurz anmerken und später auch ausprobieren will:
  • Embedded MATLAB: Möglichkeit um MATLAB-Code (allerdings nur rudimentären) in C-Code umwandeln zu lassen. Finde ich sehr schick!
  • MATLAB als Engine in C-Code einbinden. Der Hammer. Man kann MATLAB von einem C-Programm aus Variablen (auch Arrays) zu schicken UND MATLAB kann dann zur C-Laufzeit damit arbeiten, also bspw. plotten. Das ist genial zum Debuggen.
So und jetzt höre ich mir noch einen an.

Montag, 13. April 2009

C/C++ Referenz

Ich muss mal gerade diesen Link festhalten:
http://www.cplusplus.com/reference/
Eine sehr gute und ausführliche Referenz der C/C++-Bibliotheken, erspart wildes Googeln.

LabVIEW und DLLs: Debuggen vereinfachen

Irgendwie sehr simpel, aber man muss erstmal drauf kommen. Beim Debuggen von DLLs mit LabVIEW hab ich immer das Problem gehabt, dass es enorm aufwändig war DLL-interne Variablen zum Fehlersuchen nach Außen durchzuschleusen. (Entweder man hat schon passende Übergabe-Variablen oder man muss sich passende nur fürs Debuggen anlegen, was dann dazuführt, dass man ständig den Funktionskopf erneuern muss.) Wenn man jetzt aber einfach in der DLL zur Laufzeit eine Datei öffnet und in diese mittels fprinft die Variablen reinschreibt, ersparrt man sich ne ganze Menge Arbeit und kann gleichzeitig alle möglichen Variablen dort reinschreiben.

Ich weiß es gibt diese tollen Debugger, allerdings hab ich mich noch nie damit beschäftigt. Und mit LabVIEW bringt einem das ja erstmal auch gar nix, man müsste ja noch eine C-Programm drumherum stricken... Ist allerdings auf meiner Muss-ich-irgendwann-mal-tun-Liste