What Is Ruby on Rails

Diesen Artikel über Ruby on Rails (onlamp.com) – Englisch halte ich für sehr gelungen!

Man benötigt für das Lesen/Verstehen so gut wie keine Ruby-Kenntnisse. Die Konzepte hinter diesem Framework werden sehr anschaulich dargestellt. Ausserdem enthält er relevante Links zu allen vielen Aspekten der RubyOnRails-Entwicklung.

Überhaupt: Wenn man sich Seiten wie das O’Reilly Network ansieht und feststellt, dass da innerhalb einer Woche mehr relevante Artikel zusammenkommen als bei c’t, iX und anderen Zeitschriften während manchmal nicht vier Wochen, dann fragt man sich schon, wozu man die eigentlich noch abonniert hat. Und ich habe hier nur Zeitschriften genannt, die eher noch eine “gute Artikeldichte” haben…

Noch 199x habe ich mich gefragt, ob durchschnittliche Telefonrechnungen von 1xx,- DM die Informationen wert sind, die man aus dem Netz zieht. Schliesslich könnte man sich auch sehr gute (Fach-)Buecher davon zusätzlich kaufen. Seit einigen Jahren dreht sich dieses Verhältnis doch ganz gewaltig…

Nachtrag: Gerade fragt jemand, ob ich das erstaunlich finde: Nein, überhaupt nicht. Ich denke aber immer es wäre gestern gewesen. Und das erstaunt mich sehr; also dieses Relative am Altern…

drupal und statisches HTML

Wenn drupal als CMS in eine bestehende Seitenstruktur eingearbeitet wird, möchte man zwangsläufig in der Übergangszeit noch auf den vorhandenen statischen Content zugreifen. Falls drupal auf Clean URLs eingestellt ist, hagelt es aufgrund der eingeschalteten Rewrite-Engine “403 – Forbidden” Client-Request…

Wir können dem durch eine kleine Modifikation an der /.htaccess-Datei abhelfen:

#
# Apache/PHP/Drupal settings:
#

# Protect files and directories from prying eyes.
<files ~ “(\.(inc|module|sh|sql|pl|theme|engine|xtmpl)|Entries|[…]updates)$”>
Order deny,allow
Deny from all
</files>

# Set some options.
Options -Indexes
Options +FollowSymLinks

# Customized error messages.
ErrorDocument 404 /index.php

# Set the default handler.
DirectoryIndex index.php index.htm index.html
[…]

Wenn man innerhalb seiner Struktur auch *.pl-Perl-CGIs liegen hat, sollte man drupal diese durchgehen lassen: Die durchgestrichene pl-regexp rausnehmen…

Rails, Exceptions und Jabber

Astro hat sich das Konferenzplanungssystem Pentabarf näher angesehen und zeigt auf, wie man Ruby-Excpetions als Jabber-Nachricht versenden kann.

Kombiniert mit dem Hinweis von Jonathan, dass Ruby on Rails einen zentralen Callback

def rescue_action_in_public(exception)

für das Exception-Handling hat, ergibt das doch nette Möglichkeiten für das Logging von Webapplikationen unter Rails…

Gutes Ruby Tutorial?

Martin fragt mich gerade nach einem guten Online-Tutorial zur Programmiersprache Ruby:

Nachtrag: Das sieht gut aus – hat Martin jetzt selbst gefunden…

FreeBSD: Fotos vom Handy via Bluetooth übertragen

Vor längerer Zeit habe ich hier die Anbindung eines (K700i-)Handys an FreeBSD via Bluetooth beschrieben.

Fotos (Daten) auf dem Handy kann man via obexapp übertragen. Diese Applikation ist allerdings extrem krude…

Zur Automation der Übertragung der Fotodaten habe ich ein kleines Ruby-Script geschrieben; vielleicht ist es ja jemandem nützlich… (User: public – kein Passwort)

Future Sound of Secure Operating Systems

Today there will be a interesting broadcast on the local WTH-radio SubEther at 16:oo o’clock. Andreas Bogk will present his/their attempt, to do such an OS with Dylan. People from the Plan9-Team will also join in and talk about their “experiment” with Plan9.

Martin told the OpenBSD-people about the event; perhaps they will take the chance, and present themselves also…

I think one can expect kind of “a clash of the titans”;-)

P.S.: Weather is fucked up beyond everything here. But mood is still good.

PostgreSQL on FreeBSD

If you want to install PostgreSQL 8.0 on FreeBSD via the ports, you probably found this tutorial oder that info.

It seems to me, that some things changed. You better read your shell-output after installation; so you know what todo:

To initialize the database, run
/usr/local/etc/rc.d/010.pgsql.sh initdb

You can then start PostgreSQL by running:
/usr/local/etc/rc.d/010.pgsql.sh start

Postie via WP-Cron aufrufen

Ich habe das Plugin Postie für WordPress installiert, um von meinem Mobilteil Texte und Photos via E-Mail auf dieses Blog zu posten.

Das funktioniert hervorragend!

Nicht funktionieren tun hingegen die vielen kostenlosen Dienste der Cron-Anbieter, die die notwendige URL von Postie in regelmäßigen Abständen aufrufen sollen. Der von mir gewählte Anbieter ist seit zwei Tagen offline…

Eine Lösung: Das Plugin WP-Cron ist ein Pseudo-Cron-Ersatz. Mit WP-Cron kann man also den Aufruf der Postie-URL automatisieren, ohne einen externen cron-job aufzusetzen.

Die Installation und Aktivierung ist selbsterklärend. WP-Cron bringt auch eine Reihe von Skripten mit, die sich bei WP-Cron als Dienst registrieren und von diesem regelmässig aufgerufen werden.

Das von WP-Cron mitgelieferte Skript als Ersatz für wp-mail.php kann allerdings keine Attachments in E-Mail (Fotos) verwalten, so dass Postie weiterhin erforderlich ist und *irgendwie* über WP-Cron aufgerufen werden muss.

Die Lösung ist über wp-admin -> Plugins -> Plugin-Editor -> WP-Cron die Funktion:

function wp_cron_15_exec()

um folgende Zeile zu erweitern:

file_get_contents('http://deinblog.de/wp-content/plugins/postie/get_mail.php');

Dann klappt es auch mit dem automatisierten Moblogging…

Postscriptum: Mr. – php-Wizard – Borho erklärte mir, dass include evil sei und ich lieber die Funktion file_get_contents nutzen möchte. Warum auch immer…

O’Reilly Network: The Builders of Basecamp

“It’s all a matter of trust. If you don’t trust your developer to choose the right environment, then how can you trust him to build the best application? Trust is critical here. And, further, why would you dare impact your developer’s morale by throwing him or her into a language where he can’t be as productive or as satisfied? You only get good work from people who enjoy doing the work. I’ll take a happy average programmer over a disgruntled, frustrated master programmer any day.”

Eine Menge Wahrheiten über Softwareentwicklung; Die Hintergründe der Entwicklung von “Basecamp“.

O’Reilly Network: The Builders of Basecamp

Data Synchronization and Replication Software – Daffodil Replicator

“Daffodil Replicator is a powerful Open Source data synchronization tool that allows bi-directional data synchronization between heterogeneous databases supporting JDBC drivers. Its flexible publish and subscribe model supports both snapshot and merge replication.”

Data Synchronization and Replication Software – Daffodil Replicator