Samstag, 28. Februar 2009

Tip: neuere FritzBox-Firmware-Versionen fragen "Referrer" ab

Wer kennst das nicht: Man möchte was an der FritzBox zuhause (per Remote) einstellen (z.B. eine Port-Freigabe hinzufügen) und verbindet sich mit SSH auf den "Heimserver" und macht via "SSH Local Port Forwarding" eine Anfrage auf das FritzBox-Webfrontend.

Vor einiger Zeit hat das auch noch super funktioniert. Die neueren Firmware-Versionen fragen aber den Referrer des Browsers ab. Wenn man jetzt via SSH-Tunnel auf die FritzBox zugreift schickt der Browser leider den falschen Referrer mit (z.B. vom localhost). Daraufhin zeigt die FritzBox eine leere Seite im Browser.

Um der FritzBox einen anderen Referrer vortäuschen zu können kann man das FireFox-Plugin RefControl verwenden. Als Referrer stellt man in diesem Plugin für diese Seite einfach "http://" ein und aktualisiert die Seite - et voilà: Man kann sich nun wieder an der FritzBox anmelden.

@Marcin: das funktioniert auch mit Putty unter Windows ("SSH Local Port Forwarding"). Jetzt hast Du deinen Tip für Windows-Benutzer :)

Dienstag, 24. Februar 2009

Grails 1.1 RC1-Test mit maven 2 erfolgreich!


Eben habe ich Grails 1.1 RC1 mal installiert, ein Projekt angelegt und getestet. Bei der Installation von Grails sind die Umgebungsvariablen JAVA_HOME und GRAILS_HOME wichtig uns müssen gesetzt sein.

Hiernach wollte ich die maven 2-Integration testen. Hierfür muss in ~/.m2/settings.xml folgendes eingetragen werden:
<settings>
  <pluginGroups>
    <pluginGroup>org.grails</pluginGroup>
  </pluginGroups>
</settings>
Danach kann man mit dem Kommando "mvn grails:create-pom -DgroupId=<m2-groupId>" eine maven pom.xml erzeugen lassen. Hier kann man dann die Abhängigkeiten pflegen und danach "mvn eclipse:eclipse" ausführen. Ich hatte den MySQL-JDBC-Treiber als Abhängigkeit hinzugefügt - hat alles super geklappt.

Das Grails Eclipse Plugin war anfangs etwas "mürrisch". Ein Grails-Projekt in Eclipse kann man einfach als "Java Application" starten. Hier verlangte Eclipse aber explizit die Einstellung von JAVA_HOME und GRAILS_HOME.

Als Rails-Fan finde ich das Konzept von Grails super. Wenn man dann auch noch alle Java-Bibliotheken, Frameworks und Tools (à la maven) verwenden kann - noch besser.
Meine "Lieblinge" unter den Java Frameworks (Spring, Hibernate) werden von Grails ja schon (intern) verwendet.

Mit der Programmiersprache Groovy konnte ich mich bisher noch nicht 100%ig anfreunden - das kommt aber bestimmt noch, wenn ich etwas mehr Zeit investiere :)

Weitere Links:
  1. Grails Eclipse Plugin
  2. Grails Maven Plugin
  3. Grails 1.1 RC1 Release Notes

kuriose Sache: Ubuntu nvidia-glx-177 mag Grails-Homepage nicht

Das ist sehr kurios: wenn man den nvidia-glx-177-Treiber (properitärer Treiber von NVidia) unter Ubuntu verwendet bekommt man beim Besuch der Grails Homepage einen 2-5 Sekunden-Freeze des Systems und mächtig CPU-Last.
Zuerst hatte ich diverse Firefox-Erweiterungen in Verdacht... doch das war nicht das Problem. Ich habe diesen Bug-Report (#289964) gefunden.

Nach der Installation von nvidia-glx-180 und einem Neustart funktioniert die Grails Homepage "wie geschmiert".

Ja, ja - properitäre Software ist schon was Tolles ;)

Update: übrigens ist der
nvidia-glx-180-Treiber (180.11 momentan in Ubuntu Intrepid) eine Beta-Version!

Update 2: man kann den Fehler wohl auch mit folgender Einstellung und den nvidia Treibern (177) beheben:
nvidia-settings -a InitialPixmapPlacement=0 -a GlyphCache=1
Mehr Infos dazu gibt es in diesem Bugreport: #232197

Montag, 23. Februar 2009

Tapestry 5 Web-Framework

Ich lese gerade ein Buch über das Web-Framework Tapestry 5. Wer schonmal ein Java-Projekt mit JSP, JSTL realisiert hat weiss, dass das nicht wirklich Spaß macht - und ziemlich aufwendig ist.
Wenn Ihr auch von JSF (1.x) nicht so begeistert seit kann ich Euch Tapestry nur empfehlen.



Mein "Spiel-Projekt" wird Spring 2.5 und Tapestry 5 verwenden - in Kürze hoffentlich mehr.

Tip: Linux Swapnutzung

Wer auch etwas mehr RAM in seinem Rechner hat fragt sich manchmal vielleicht auch warum soviel Daten in den Auslagerungsspeicher auf der Festplatte (swap) ausgelagert werden - und soviel "cache" verwendet wird.
Ab dem Linux Kernel 2.6 kann man das Swap-Verhalten beinflussen. Mit dem Kommando "cat /proc/sys/vm/swappiness" kann man den aktuell eingestellten Wert bekommen. Dieser Wert kann zwischen 0 und 100 liegen.

Wert 0 bedeutet, dass der Kernel den swap nur dann nutzt, wenn es nicht anders geht. Wert 100 bedeutet das genaue Gegenteil - d.h. es wird so früh wie möglich auf die Festplatte ausgelagert.

Um den Wert im laufenden Betrieb ändern zu können gibt man folgendes ein: "sudo sysctl vm.swappiness=0".

Um diese Einstellung auch nach dem nächsten Neustart des Systems aktiviert zu haben muss man diese Einstellung in der Datei "/etc/sysctl.conf" vornehmen und folgende Zeile hinzufügen: "vm.swappiness=0"

Ich habe z.Zt. den Wert 0 - und bin sehr zufrieden damit. Zuvor hatte ich den Wert 60 auf meinem Client (Ubuntu-Default) und hatte ab und zu richtige Performance-Probleme wenn ich z.B. Eclipse, JBoss und eine VM (Virtualbox) am Laufen hatte - da war das System völlig mit den Festplatten-Zugriffen überlastet.

Weitere Infos zu diesem Thema gibt es hier:
  1. help.ubuntu.com
  2. wiki.ubuntuusers.de

Samstag, 21. Februar 2009

Ruby on Rails - Präsentation von Oktober 2007

Ruby on Rails Einführung

...wenn ich mal wieder Zeit finden sollte muss ich diese Präsentation mal auf den neuesten Stand bringen :)

Tip: Produktivität auf dem Gnome-Desktop steigern


Ich wollte es wirklich nicht glauben bis ich einen Launcher namens gnome-do ausprobiert habe: Ein Launcher-Programm kann die Arbeitsgeschwindigkeit auf dem Desktop wirklich erhöhen. Das Prinzip ist folgendes: "erledige mehr mit der Tastatur und weniger mit der Maus".
Um z.B. ein Programm zu starten gibt man einfach die Anfangsbuchstaben ein und startet aus der Auswahl einfach das passende Programm. Gnome-do kennt aber auch z.B. Deine Kontakte und man kann den Namen eingeben und dann die jeweilige Aktion - z.B. Chat, Email, usw. Es gibt auch sehr viele nützliche Plugins für Gnome-do (u.a. für Pidgin, Rythmbox, Thunderbird, Twitter).

Tip: screen auch auf dem Client-Desktop


Den "alt bekannten" Terminal-Multiplexer screen kennen und schätzen viele im Server-Umfeld. So kann man sich wieder an eine bestehende Screen-Session "andocken" und findet seine Terminals wieder so vor wie zuvor. Auch mehrere Terminals können so mit einer SSH-Verbindung realisiert werden.
Auf dem Client kann Screen aber auch sehr sinnvoll verwendet werden, wenn man sich ein kleines Shell-Skript schreibt was eine neue Session anlegt (wenn noch keine Session vorhanden ist). Sollte eine Session vorhanden sein wird diese wiederverwendet. So kann man das Terminal-Fenster "aus versehen" schließen und bekommt genau diese Screen-Terminal-Session beim nächsten Mal wieder.

Tip: welche Hardware steckt in (m)einem System?

Wer auch mal Hardware-Informationen vergisst dem kann ich nur das Programm dmidecode empfehlen. Mit diesem Programm bekommt man viele wertvolle Informationen über die Hardware eines Rechners (ermittelt wird das über das SMBIOS bzw. DMI). z.B. wollte ich mir eine RAM-Erweiterung für meinen Laptop bestellen, wusste aber nicht ob ich noch eine RAM-Bank frei habe und welche RAM-Typen verwendet werden können. Mit dmidecode ist das ganz einfach möglich: "sudo dmidecode -t memory".

Tip: syndaemon

Wer kennt das Problem nicht: man tippt auf seinem Linux-Laptop und berührt ab und zu evtl. das Touchpad. Gerade bei der Programmierung kann das zu komischen Effekten im Code führen. Jetzt habe ich den "syndaemon" entdeckt. Dieses Programm kann das Touchpad bei einer Texteingabe für eine gewisse Zeit sperren. Man muss einfach das Programm z.B. zu Beginn der Gnome-Session starten. Meine Programmoptionen sind folgende: "/usr/bin/syndaemon -S -d -t"

Damit das funktioniert muss man für den Xorg-Synaptic-Treiber die Option SHMConfig einschalten. Bei älteren Xorg-Versionen konnte man das wohl noch in der xorg.conf-Konfigurationsdatei machen (siehe hier). Jetzt macht das hal und muss für den hal-Daemon eingestellt werden - siehe hier).