DailyFratze on Rails

Die letzten Posts über Rails und Co. enstanden natürlich nicht aus heiterem Himmel. Ich entwickle zur Zeit eine neue Version von DailyFratze.de auf Basis von Rails.

Das ganze macht extrem viel Spaß und auch zügig Fortschritte. Es wird eine ganze Menge neuer Features geben, ein vollständig neues Layout, auf jedenfall: Ganz toll.

Development Version von DailyFratze.de

Das Bild ist ein kleiner Screenshot der Anwendung. Im Vordergrund sind man den Inspector aus Webkit. Webkit ist die Entwicklungsversion vom Mac OS X Browser Safari, den man sich auf der nightly Seite von Webkit.org kostenlos laden kann. 

Alleine der Inspektor ist superpraktisch. So zeigt er zum Beispiel die vollständige CSS Kaskade für jedes Element an, inklusive überschriebener Properties. Mit ihm kann man im DOM Baum suchen und vieles mehr.
Webkit beherrscht darüber hinaus nativ SVG, auch etwas schönes.

Man darf also gespannt sein, sowohl auf die neuesten Entwicklungen von DailyFratze.de als auch von neuen Safari Versionen.

(Der Header im Screenshot enthält zur Zeit Bilder von anderen, täglichen Photoprojekten, die ich schätze und die mich inspiriert haben. Falls ich diesen so eines Tages in einer Onlineversion die ich nicht nur privat nutze, verwende, werde ich natürlich alle Rechteinhaber vorheransprechen. Nicht, dass sich jetzt jemand durch sein Konterfei in diesem kleinen Screenshot gestört fühlt. Wenn doch, bitte Bescheid sagen.) 

| Comments (6) »

06-Jul-06


Rails mit FastCGI und Apache unter Mac OS X

Die vorherigen Artikel Ruby on Rails mit Mac OS X und Rails: Rolling into production on Mac OS X beschäftigten sich mit der Installation von Ruby on Rails unter Mac OS X bzw. mit der Produktivumgebung von Rails.

Prämisse für mich war jedesmal, dass der eingebaute Mac OS X Apache genutzt wird und nicht ein zweiter Serverprozess.

Heute soll es um die FastCGI Integration gehen. CGI war mir bis jetzt zum Testen nicht zu langsam. Fängt man aber mit AJAX Spielerein an und nutzt Rails mit CGI, kann man das auch getrost ganz sein lassen. Vorweg: FastCGI zu CGI ist ein Unterschied wie Tag und Nacht.

Was braucht man? (Die Links verweisen direkt auf die benötigten Dateien)

Die Installation ist relativ einfach.

FastCGI SDK:

./configure
make
sudo make install

mod_fastcgi

apxs -o mod_fastcgi.so -c *.c 
sudo apxs -i -a -n fastcgi mod_fastcgi.so

Ruby Bindings

ruby install.rb config
ruby install.rb setup
ruby install.rb install

Fast geschafft. Es folgt ein Apache Neustart mit

sudo apachectl graceful

Anschliessend gibt es einen kleinen Pitfall. Man muss zwei Tempverzeichnisse für FastCGI chmoden:

chmod 777 /tmp/fcgi_ipc
chmod 777 /tmp/fcgi_ipc/dynamic

sonst geht es in die Hose.

Anschliessend zur Apache Konfiguration. Diese habe ich wieder auf zwei Dateien aufgeteilt. In der httpd.conf wird das Modul mod_fastcgi geladen. Der Installer hat diesen Eintrag bereits automatisch erzeugt. Wenn nicht, folgende Zeilen ergänzen:

LoadModule fastcgi_module     libexec/httpd/mod_fastcgi.so

Danach den Handler einrichten:

<IfModule mod_fastcgi.c> 
FastCgiIpcDir /tmp/fcgi_ipc/ 
AddHandler fastcgi-script .fcgi 
</IfModule>

und wir sind fast fertig. Die eigentliche Rails Anwendung wird wieder in der Userspezifischen httpd.conf eingestellt, zu finden unter /etc/httpd/users/name.conf:

<IfModule mod_fastcgi.c>
   FastCgiServer "/Users/msimons/dev/rails/test/public/dispatch.fcgi" -
initial-env RAILS_ENV=production -processes 15 -idle-timeout 60
</IfModule>

Die Werte fürs Timeout und die Anzahl Prozesse sind aus dem Buch “Agile Web Development with Rails”.

Die Anwendung nutzt fastcgi, sobald man die entsprechende Rewrite Rule in .htaccess im public folder setzt:

RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

bzw. die ursprüngliche Regel

RewriteRule ^(.*)$ dispatch.cgi [QSA,L]

ändert.

Danach ist ein letzter Apache Neustart fällig und man sieht seine Anwendung auf einmal in einem ganz anderen Tempo.

| Comments (0) »

28-Jun-06


Rails: Rolling into production on Mac OS X

Damit die

SetEnv RAILS_ENV production

Direktive in der httpd.conf oder einer lokalen .htaccess Datei funktioniert, muss das Modul “env_module” im Apache aktiviert werden. Dies wird unter Mac OS X nicht standardmässig getan.

Folgende Zeilen in der /etc/httpd.conf einkommentieren:

LoadModule env_module         libexec/httpd/mod_env.so
AddModule mod_env.c

| Comments (1) »

29-May-06


JTabbedPane und JPanels

Stellt man Java Swing Componenten (z.B. JPanels) in JTabbedPanes (javax.swing.JTabbedPane) dar, so gibt die isVisible Methode des JPanels false zurück, falls die Komponente nicht auf dem Reiter im Vordergrund ist. Sinnvolles Verhalten.

Hingegen geben Komponenten auf diesem JPanel mit isVisible alle true zurück… Irgendwie unsinnig. Und nervenaufraubend, wenn sich auf einmal eine Anwendung gänzlich anders verhält, nur weil man ein Register unterteilt hat…. *grummel* Also lieber direkt getSelectedIndex() aus JTabbedPane nutzen und Nerven behalten 😉

| Comments (0) »

28-May-06


Suchphrasen speichern mit BBClone

Seit geraumer Zeit nutze ich BBClone für Statistiken. Einfach und gut zu bedienen, wie ich finde.

Leider speichert BBClone in den Top n nur einzelne Suchwörter und keine Phrasen. Das kann man aber leicht ändern, wie ich in diesem Blog gefunden habe. Gleichzeit wird dort auch beschrieben, wie man BBClone die Zusammenarbeit mit WordPress nahe bringt.

Ich habe den BBClone Log Processor entsprechend angepasst. Um ihn im eigenem BBClone zu verwenden, einfach runterladen, die Endung .txt entfernen und die entsprechende log_processor.php im BBClone Verzeichnis ersetzen.
Die Datei basiert auf dem Log Processor von BBClone 0.4.8b.

| Comments (0) »

11-May-06