refinerycms-wordpress-import version 0.3
13. Juni 2011
Hello world,
a few minutes ago I released version 0.3 of my gem refinerycms-wordpress-import. The main new feature is, that media files from the old WP installation are now imported, too.
As usual, docs and code are on my github account.
I now consider this gem basically feature complete, as it imports everything I need for my projects. In case you are missing something or it simply doesn’t work for you, just open a ticket on the github project page and I’ll have a look at it.
Looking forward to more feedback!
So long,
Marc
New Ruby Gem to import a WordPress site to RefineryCMS
5. Juni 2011
Hi everyone,
as I’m about to do a relaunch of this very blog based on Ruby on Rails and RefineryCMS I needed a tool to get my old posts from WordPress into the new system.
So I forked the refinerycms-blog gem and started extending with some rake tasks. It took quite a while to get some productive code, as I deliberately took my time to sharpen my ruby skills by doing a clean architecture and writing a comprehensive test suite. Usually, for some throw away, one shot code (importing the dump once), that would be too much trouble. But it was fun and everything was coming together quite nicely.
The guys at resolve, the creators of RefineryCMS, were getting scent of my work and told me, they were interested in this project, as quite some people were requesting this feature. So I decided to make this thing public and extract it in a separate gem (by request from refinery).
Now, finally I present you my very first gem: refinery-wordpress-import!
Yeah, I know, the name could have been more creative. But at least it describes, what the thing does.
So, if you are a Rails coder and have a WordPress blog: Really – take a look at RefineryCMS and try out this gem to get your data migrated easily!
Should you run into trouble or find a bug withing this gem, please drop me an issue on the projects github page. So far it has imported several blogs successfully, but you never know what further surprises WordPress holds for us. The more people throw their blog dumps at this gem, the more stable it gets and the more edge cases I can include in the project.
So long,
Marc
Switching to English
Hallo zusammen,
ich bin die letzten Monate zur Erkenntnis gelangt, dass ein Blog in deutscher Sprache für mich keinen Sinn mehr macht. Ich bemühe mich, hauptsächlich Artikel auf sehr hohem technischen Niveau zu schreiben, behandle also definitiv keine Einsteigerthemen.
Programmierer, die derartige Artikel (hoffentlich) interessant finden, sind eigentlich immer der englischen Sprache mächtig. Ich selbst suche, wenn ich ein Programmierproblem habe, immer nach den englischen Stichwörtern. Wenn ich selbst mir nicht mal die Mühe mache, nach deutschsprachigen Artikeln zu suchen, für wen genau schreibe ich dann eigentlich?
Außerdem ist die Zielgruppe international einfach um mehrere Klassen größer und je mehr Leute meinen Blog lesen, umso besser.
Von daher: That’s it! switching to English now!
Hi everyone, still with me? Good!
Most of the future articles will now be written in English. Some, for example regional news about our Rails User Group, will still be German, as it makes no sense otherwise.
The rest of the site will stay German for the moment, as I’m rewriting the whole thing in Rails anyway. Expect a full relaunch with HTML5 and Rails3 soon. Good bye WordPress!
So long,
Marc
Crontab einer Rails-Anwendung verwalten mit whenever
15. April 2011
Hallo zusammen,
heute hatte ich die Aufgabe, für eine unserer Webanwendungen regelmäßig laufende Aufgaben zu schreiben. Einmal täglich soll ein Prozess angestoßen werden, der an bestimmte Benutzergruppen der Anwendung eine E-Mail versendet.
Mein üblicher Blick in die Ruby Toolbox hat mir zu diesem Zweck whenever vorgeschlagen. Dieser Gem erlaubt es, in einer einfachen Ruby-DSL, Cron-Einträge zu definieren. Nun bin ich durchaus in der Lage, eine Crontab von Hand zu schreiben, was also ist der Vorteil dieses Gems?
Whenever erlaubt es, nicht nur Konsolenbefehle aufzurufen, sondern auch Rake-Tasks und sogar direkt Methoden des Ruby-Projekts. Die letzten beiden werden dann beim Generieren der Crontab automatisch um den Aufruf von rake bzw. ruby erweitert. Aus der kurzen Anweisung
runner "UserProfile.send_spam_to_all"
wird
/bin/bash -l -c 'cd /langer/pfad/zur/anwendung && script/rails runner -e production '\''UserProfile.send_spam_to_all'\''
generiert. Der Vorteil liegt also darin, dass man weniger kryptischen Code tippen muss, sich also auch weniger vertippen kann. Außerdem wird der Anwendungs-Pfad automatisch korrekt erzeugt. Wenn also die Anwendung auf den Produktiv-Server an anderer Stelle liegt, als auf dem Entwickler-Rechner (wovon ich mal ausgehe), muss man den Pfad in einer statischen Crontab nicht anpassen.
Auf die Lesbarkeit der Zeit-Einträge hat der Erfinder von whenever, sehr Ruby-typsch, ebenfalls viel Wert gelegt. Statt eines Cron-Eintrags ala 37 2 * * * schreibt man
every 1.day, :at => '2:37 am'
Vollständig sieht ein Eintrag dann so aus:
every 1.day, :at => '2:37 am' do runner "UserProfile.send_spam_to_all" end
Besonders durchdacht finde ich allerdings die Einbindung in den Deployment-Prozess. Durch nur eine neue Zeile in der Capistrano-Konfiguration wird die Crontab auf dem Server automatisch erzeugt und aktiviert. Ein weiterer Punkt, den man nicht mehr vergessen kann.
Ich muss sagen, whenever gefällt mir ziemlich gut. Keine Atomphysik, aber ein weiteres praktisches Tool für meine Ruby-Sammlung. Mal sehen, ob es beim echten Deployment hält, was es bisher verspricht.
Gruß
Marc
Ruby on Rails Nürnberg Stammtisch bei DCS-Fürth
22. Januar 2011
Hallo zusammen,
der “Ruby on Rails Stammtisch Nürnberg” findet dieses Mal in Fürth, genauer bei den Kollegen von DCS-Fürth statt. Es wird ein bis zwei Vorträge geben und für Getränke und Pizza ist reichlich gesorgt. Alle Rails-Entwickler in der Gegend sind herzlich eingeladen.
Nähere Infos gibt es in der Xing-Gruppe.
Ich selbst werde einen kleinen Vortrag zum Thema “Meine Ruby-Toolbox” halten, in der ich die Tools und Ruby-Gems vorstelle, die ich in meiner täglichen Arbeit mit Rails verwende. Die aktuelle Version der Präsentation (wird bis Dienstag wahrscheinlich noch überarbeitet) findet Ihr jetzt schon unter: http://prezi.com/fqm4dn4xzoyj/meine-ruby-toolbox/ oder direkt hier:
Also dann, vielleicht bis Dienstag!
Gruß
Marc
Ende der Funkstille
17. Januar 2011
Hallo alle zusammen,
nach längerer Pause melde ich mich wieder zurück in der Welt 2.0.
Warum der letzte Artikel nun schon zwei Monate zurückliegt, hat mehrere Gründe:
- Weihnachten! In der Urlaubszeit hatte ich schlicht und ergreifend keine Lust zum Schreiben und habe mich lieber erholt.
- Ich war nicht etwa untätig, im Gegenteil! Ich hab so viele verschiedene Dinge ausprobiert, dass ich gar keine Zeit zum Schreiben hatte. Doch dazu später mehr.
- Es war mal wieder Unterrichtszeit. Wer mich kennt weiß, dass bei mir Land unter ist, während ich Schulungen halte. Abends nach der Arbeit falle ich nur noch aufs Sofa und kriege gerade noch so ein Brummen/Grunzen als Kommunikation hin. Von Reden, geschweige denn Schreiben wollen wir mal gar nicht reden.
So, nun aber genug der Ausreden. Jetzt bin ich ja zurück und habe einige, hoffentlich interessante Dinge zu berichten. Hier weiterlesen …
Ruby on Rails Nürnberg Stammtisch: Erstes Treffen in der Akademie
14. November 2010
In Nürnberg hat sich ein Ruby-on-Rails-Stammtisch neu gegründet; es gibt dazu eine Gruppe auf Xing, und darüber läuft auch die Kommunikation in der Gruppe.
Dienstag, den 16.11.2010 um 19:00 Uhr ist der erste Termin und wir Treffen uns in den Räumen meines Arbeitgebers. Die Argumente Beamer und kostenloser Kaffee waren einfach nicht zu überbieten. ![]()
Rails-Entwickler jedes Erfahrungsstandes sind herzlich eingeladen. Wir in der Akademie arbeiten ja schon seit 5 Jahren mit Ruby on Rails und sind sehr froh über diese Gelegenheit, uns mit Gleichgesinnten auszutauschen. Außer meinen Kollegen und den Leuten in dem DBIYF-Seminar, das ich besuchen durfte, hatte ich bisher kaum Live-Kontakt zu anderen Rails-Entwicklern.
Ich bin sicher, das wird ein interessanter Abend!
Anmelden könnt ihr euch in der erwähnten Xing-Gruppe, Informationen zur Anfahrt findet ihr auf der Webseite der Akademie.
Gruß
Marc
Freundliche Datenbanken: Validierungen absichern
12. Oktober 2010
In meinem letzten Artikel habe ich eine Serie über das Thema Freundliche Datenbanken begonnen, in der ich fortgeschrittene Datenbank-Themen wie Datenintegrität oder gleichzeitigen Zugriff behandle. Dort habe ich behauptet, dass ich für die Beispiele der Serie PHP oder pures SQL verwenden werde.
Diese Regel werde ich für diesen (und den nächsten) Artikel brechen. Da es gerade darum geht, wie die fertigen Validierungs-Funktionen eines Frameworks durch die Datenbank im Hintergrund unterstützt werden können, muss ich logischerweise ein Framework verwenden und habe mich hier für Ruby on Rails entschieden. Die Beispiele sind allerdings so gehalten, dass Ihr auch ohne Ruby/Rails-Kenntnisse verstehen solltet, was ich zeigen will.
Das heutige Thema könnte man auch so formulieren: Traue keinem Programmierer! Ja, ich weiß, ich bin selbst einer – deswegen ja der Titel.
Hier weiterlesen …
Freundliche Datenbanken: MySQL zähmen
4. Oktober 2010
Hallo alle zusammen!
Wie berichtet durfte ich vor einiger Zeit an der genialen Schulung Your Database is your Friend von Xavier Shay teilnehmen. Da er ausdrücklich gesagt hat, wie wichtig es ihm ist, dass die Themen unter Webentwicklern Verbreitung finden (und ich in Deutsch keinen anderen Lesestoff gefunden habe), werde ich mich in den nächsten Blog-Beiträgen gnadenlos bei Xavier bedienen.
Im Gegensatz zu Xaviers Seminar, der die Themen auf Englisch und am Beispiel von Ruby on Rails behandelt, werde ich Deutsch schreiben und Beispiele in PHP oder direkt in SQL verfassen. PHP habe ich aus drei Gründen gewählt:
- Indem ich eine andere Programmiersprache als Ruby wähle, kann ich die Beispiele noch besser verstehen. Ich bin gezwungen, ein vollständig neues Beispiel zu schreiben und muss so die Kernaussagen noch einmal nachvollziehen.
- PHP lässt wesentlich kleinere und einfachere Beispiele zu. Mit Ruby on Rails habe ich eine Menge Framework-Code, um den ich herum programmieren muss. Ich plane, die Beispiele so simpel wie möglich zu halten, verwende also auch keine Dinge wie fertige ActiveRecord-Klassen oder MVC-Strukturen.
- Die Beispiele in Ruby kenne ich bereits (also langweilig) und außerdem hat Xavier diese mit viel Mühe ausgearbeitet. Wenn Ihr also die Inhalte in Ruby nachvollziehen wollt, wendet Euch an den Meister persönlich. Hier weiterlesen …
Die letzten Wochen im Schnelldurchlauf
30. September 2010
Mit viel Verspätung melde ich mich hiermit aus dem Urlaub zurück.
Nein, ich hatte nicht über einen Monat frei (was würde ich denn mit so viel Freizeit anfangen?), sondern nach dem Urlaub einfach so viel um die Ohren, dass ich wirklich zu nichts gekommen bin. Daher also im Schnelldurchlauf die letzten Wochen:
Direkt ab dem ersten Arbeitstag habe ich zwei Wochen lang unsere Teilnehmer durch den Developer-Lehrgang (PHP, OOP …) begleitet und nebenbei versucht, die liegen gebliebene Arbeit nachzuholen.
Nach den zwei Wochen Unterricht hatte ich die Gelegenheit und das große Vergnügen an dem Seminar Your Database is Your Friend von Xavier Shay (http://rhnh.net/, @xshay) teilzunehmen. Die Schulung fand am 17.9. in London statt. Es war nicht nur wirklich angenehm, ausnahmsweise selbst unterrichtet zu werden, Xavier ist auch ein Experte auf seinem Gebiet und hat den komplexen Stoff hervorragend vermittelt. In dem einen Tag habe ich so viel gelernt – im Prinzip bin ich immer noch am Nachbereiten des Stoffs. Ja, auch ein Grund, warum ich noch nichts Neues gebloggt habe! An einem ausführlichen Artikel über die Inhalte von Xaviers Seminar arbeite ich gerade.
Im Moment werkeln ein Kollege und ich mit Hochdruck an zwei neuen Webanwendungen für die Akademie und zudem versuche ich immer noch verzweifelt, den Stapel an liegen gebliebenen Aufgaben kleiner werden zu lassen.
Oh ja, und ich darf stolz verkünden, dass ich endlich das Upgrade meines Blogs auf WordPress 3 durchgeführt habe! Die ganzen Vorsichtsmaßnahmen (Backup, lokale Testinstallation …) waren zwar unnötig, da alles prima geklappt hat, aber dem “Aktualisier mich”-Button im Admin-Interface von WordPress habe ich noch nie so ganz getraut. Das ist wohl der paranoide Ex-Admin in mir, der sich da immer zu Wort meldet.
So, dann gelobe ich Besserung, also viele neue Artikel, und verabschiede mich für heute Abend.
Gruß
Marc

Neue Kommentare