Basierend auf einem Draft von Dethix.
Immer wieder kommt es zu Problemen, die durch unterschiedliche Ruby Versionen verursacht werden. Die Entwickler werden dabei gezwungen, viel Zeit und Energie in eine möglichst große Kompatibilität zu investieren. Dies treibt jedoch die Kosten in die Höhe, erweitert die Komplexität der Software und behindert die technische Weiterentwicklung.
Schon seit gut zwei Monaten liegen Weihnachtskekse und Schokoweihnachtsmänner in den Supermärkten. Allerhöchste Zeit also, dass auch die Ruby-Mine weihnachtlich wird ;-) Glücklicherweise sind meine Weihnachtsbäume von keiner Preiserhöhung betroffen.
*1
*2*2
*3*3*3
*4*4*4*4
*2*2
*3*3*3
*4*4*4*4
*5*5*5*5*5
*3*3*3
*4*4*4*4
*5*5*5*5*5
*6*6*6*6*6*6
II
II
II
Mit Selenium und Ruby ist es relativ einfach, funktionale Tests für Webseiten zu erstellen bzw. ausführen zu lassen. Ich stand vor der Entscheidung, entweder Watir oder Selenium für Testzwecke zu verwenden. Den Ausschlag für Selenium gab eindeutig die Selenium IDE. Mit diesem Firefox Plugin lassen sich sehr komfortabel und zügig Abläufe im Browser aufzeichnen und in diversen Formaten exportieren. Da auch Ruby zu diesen Formaten gehört war die Entscheidung schnell getroffen.
Vor ungefähr 2 Jahren habe ich in einem ominösen Sommerloch Beitrag gezeigt wie man recht einfach iTunes unter MacOSX mit Hilfe von Ruby fernsteuern kann. Seit dem ist es von meiner Seite recht ruhig geworden in der Ruby-Mine. Das lag vor allem an einem veränderten beruflichen Umfeld und einem massiven Mangel an Freizeit ;-)
Zumindest für den Augenblick scheint es so, als hätte ich diesen Zustand hinter mir gelassen und hoffe das ich zukünftig wieder vermehrt mit Ruby zu tun habe und entsprechend hier auch Beiträge schreibe.
Nun aber zurück zum eigentlichen Thema. Aus unerklärlichen Gründen konnte ich mich nicht mehr daran erinnern, jemals so etwas gemacht zu haben. Und nun wollte ich plötzlich mein iTunes auf meinem Mac auslesen (auf was für Ideen man manchmal kommt :-)). Vor diesem Problem stand ich nun und wusste nicht wie ich anfangen sollte. Von “damals” war mir noch der Begriff “RubyCocoa” im Hinterkopf geblieben. Ist das noch up2date? Von Daniel bekam ich dann noch Macruby vor die Füße geworfen. “Das kann doch nicht so schwer sein” dachte ich mir.

Endlich kann man auch Musik beim Programmieren hören ;-)
Wieso kann man Powerpoint nicht invisible schalten? Hat schon mal jemand folgendes Probiert?
powerpoint = WIN32OLE.new("powerpoint.application") powerpoint.visible = false powerpoint.presentations.open('test.ppt')
Immerhin ist es möglich, Bilder in eine Folie einzufügen und dort wie gewünscht zu platzieren.
myDocument = powerpoint.ActivePresentation.Slides(1) myDocument.Shapes.AddPicture('C:\Bild1.png', false, true, 30.25, 300, 317, 212).Select
Dann speichert und schließt man noch das Dokument.
powerpoint.ActivePresentation.SaveAs('c:\test.ppt') powerpoint.ActivePresentation.Close powerpoint.quit
Wie unschwer zu erkennen ist habe ich mich von rubyonwindows.blogspot.com inspirieren lassen. Leider gibt es dort keinerlei Powerpoint Beispiele. Insgesamt gibt es zu dem Thema im Netz recht wenig. Ein weiteres Powerpoint-Automatisierungs-Skript gibt es allerdings noch hier.
Um das doch recht große Sommerloch zu füllen möchte, ich euch einige meiner Neuentdeckungen vorstellen. Ich denke mal vieles wird schon bekannt sein. Trotzdem war ich von einigen Sachen recht begeistert.
Fangen wir mit meiner letzten Entdeckung an: RubyOSA. Dabei handelt es sich um einen Parser der von MacOSX Applikationen die Interfaces analysiert und on the fly eine RubyAPI dazu erstellt. Somit lassen sich Anwendungen statt mit AppleScript nun auch mit Ruby steuern. Ein Beispiel wäre da iTunes. Wer wollte nicht schon immer mal seinem iChat den aktuellen Track für die Status Nachricht übergeben? ;-)
require 'rbosa' itunes = OSA.app('iTunes') track = itunes.current_track OSA.app('iChat').status_message = "Playing: #{track.name}"
Weiter Beispiele und Anleitungen finden sich in englischer Sprache auf der Webseite.
In eine ähnliche Richtung geht der Blog RubyOnWindows. Hier gibt es recht gute Artikel zu Ruby auf Windows Maschinen. Eben auch Ruby zur Steuerung von iTunes.
Nachdem ich heute wieder mal einige Excel Diagramme angeschaut habe und der Meinung war das muss auch einfacher gehen habe ich mich ein wenig auf die Suche nach einer Lösung mit Ruby gemacht. Dabei bin ich auf Gruff gestoßen. Damit lassen sich wirklich sehr einfach doch recht ansehnliche Diagramme erstellen. Einzig das Kuchen-Diagramm hat nicht den von mir gewünschten Funktionsumfang.
Und so ganz nebenbei bin ich auch noch über einen Subversion Browser gestolpert, der mit Ruby on Rails realisiert wurde. Dabei wurde an Ajax nicht gespart. Eine Demo zeigt die wichtigsten Funktionen.
So das war mein Beitrag zum Sommerloch und jetzt weiterschlafen!
Ich weiss nicht wer die geniale Idee hatte Weekly Reports erstellen zu lassen und auch nicht wer meinte diese müssten in Excel bzw. Powerpoint gemacht werden. Ich weiss nur das ich zu den Leuten gehöre die einen Teil dazu beitragen müssen. Und da es nicht wirklich Spaß macht, Bugtrackingsysteme die auf MySQL basieren per Hand auszuwerten, habe ich mir gedacht “Versuchs doch mit Ruby” :-)
Mein erster Ansatz war Datenbank anzapfen und abfragen, Ausgaben formatieren und dann in eine Textdatei schreiben. Dann musste ich nur noch die Werte händisch in die Excel und PPT Dateien kopieren. Das funktionierte schon sehr gut.
Doch dann habe ich noch ein wenig im Internet gestöbert und bin auf diesen Blog (leider nur englisch) getroffen. Hier findet man einige sehr gute Beispiele zum Thema Ruby in kombination mit MS Office Produkten. Nun werde ich mich glücklich und zufrieden in mein wohlverdientes Wochenende begeben und am Montag mit neuer Motivation ans Werk gehen, und versuchen die Reports direkt zu generieren.
Sehr interessant fand ich auch die Idee als GUI-Ersatz für Messageboxen einfach Meldungen von Excel zu verwenden.
require 'win32ole' def get_input(prompt='', title='') excel = WIN32OLE.new('Excel.Application') response = excel.InputBox(prompt, title) excel.Quit excel = nil return response end response = get_input('My Prompt', 'My Title')
Das funktioniert natürlich nur wenn auch Excel auf dem Rechner installiert ist. Da dies bei mir nicht garantiert ist (verwende auch rubyscript2exe ), werde ich wohl weiterhin auf Konsolen Ein- und Ausgabe setzen.
Seit geraumer Zeit befinde ich mich auf der Suche nach einem geeigneten WebHoster für mich und meine Webseiten. Mein bisheriger unterstützt kein Rails (und hat es auch nicht vor) und daher werde ich wohl oder übel wechseln müssen. Dass der deutsche Markt nicht gerade vor Anbieter übersprudelt dürfte wohl bekannt sein, aber davon ließ ich mich nicht entmutigen. Im Vorfeld musste aber noch eine ganz andere, grundsätzliche Frage geklärt werden: vserver oder shared hosting? Vserver Angebote gibt es mittlerweile wie Sand am Meer, auch in der Preisklasse unter 10€ pro Monat. Davon habe ich aber aufgrund des Konfigurationsaufwands erstmal Abstand genommen (ja ich bin ein verwöhnter Mac-User :-) ). Daher berücksichtige ich diese Angebote hier auch nicht weiter.
Nachdem Bovi in einer spontanen Nacht und Nebel Aktion ja das RubyForum und das Wiki auf einen anderen Server befördert hat, dachte ich mir ihm scheint es ja soviel Spaß zu machen, dass er auch gleich noch die Mine mitnehmen könnte :-) Tja und das heisst die Mine wird ab heute Abend wahrscheinlich down sein. Wann sie wieder läuft hängt ganz davon ab wie schnell bovi ist (nein ich versuche hier keinen Druck aufzubauen ;-) ).
Allerdings wird es mindestens eine gravierende Änderung geben: Die Mine wird danach nur noch unter www.ruby-mine.de erreichbar sein. Dethix.de (meine Domain) wird zwar vorerst noch einen Hinweis darauf enthalten, früher oder später aber anderweitig verwendet werden. Also denkt dran auch euren RSS Feed dann entsprechend zu ändern. Soweit erstmal von mir.
Da gehe ich ohne schlimme Hintergedanken auf die Seite der Volkshochschule Karlsruhe nur um mal durch ihr Angebot zu stöbern und was entdecke ich dort? Direkt neben C++ und Java Kursen gibt es dort einen Ruby Kurs. Ich konnte meinen Augen nicht ganz trauen und klickte dort mal drauf:
"Zielgruppe: Einsteiger/innen in Ruby, die die Sprache hinter dem Webframework Rails kennenlernen wollen Voraussetzungen: Erfahrung mit einer Programmiersprache (nicht unbedingt objektorientiert) Inhalte: Sprachkonzepte, Objektorientierung, ausgewählte Klassen und Module der Standardbibliothek und "The Ruby Way""
Tja da war ich erstmal platt. Ein Grund könnte natürlich sein das seit kurzem die Uni Karlsruhe ja eine "Elite"-Uni ist. Da ist es naheliegend das dort natürlich nur "elitäre" Programmiersprachen verwendet werden ;-). Tja und da müssen die ganzen Java-Entwickler erstmal nen VHS-Kurs belegen :D.
So und nun schnell weg ins Wochenende...bevor sich noch jemand angesprochen fühlt ;-)
Eine neue Version von Rails ist verfügbar. Nachdem die 1.2. released wurde haben es die Entwickler sogar geschafft noch eine zweite Version noch am gleichen Tag fertigzustellen. Das nenne ich mal flotte Entwicklung ;)
Laden könnt ihr sie euch hier.
Infos über die Neuerungen und Änderungen gibt es unter anderem im Blog von rubyonrails.org.
Egal wo man auch hinschaut, es scheint so als sprießen überall Usertreffen, Konferenzen und sonstige Veranstaltungen zum Thema Rails aus dem Boden.
Eine deutsche Railsconf, Berliner Usergroup Treffen, EURUKO (European Ruby Konference) sind nur einige die mir so spontan in den Sinn gekommen sind und die ich mit diesem Blogeintrag natürlich zu vielen Besuchern und großen Erfolg verhelfen werde ;).
Nur wie sieht es mit Ruby aus? (Um jetzt mal wieder gegen den Strom zu schwimmen) in der Richtung tut sich nicht wirklich viel. Der einzige Lichtblick dürfte da wohl das Rubyforen Usertreffen *WinkmitdemZaunpfahl* sein, das wohl eher rubylastig ausfallen dürfte.
Klar Rails ist in aller Munde und schwimmt halt ganz oben auf der Web 2.0 Welle mit, aber muss man deshalb alles links und rechts von dieser übersehen? Trotz dieser kritischen Worte finde ich natürlich klasse was im Bereich von Rails alles passiert und möchte das natürlich auch mit diesem Posting unterstützen! Deshalb nun hier noch einige weitere Infos:
Berliner Usergroup Treffen:
Wann: Donnerstag, 6. Juli 2006
Ort:
newthinking store Kreuzberg
Skalitzer Str. 41
10997 Berlin
Zeit: ab 19.00 Uhr
deutsche Railsconf:
03.11.2006 Frankfurt
Weitere Infos folgen noch auf der offiziellen Page.
Für alle die ihr sauberes System nicht “verunreinigen” wollen, aber trotzdem interesse an Ruby on Rails haben sei www.railslivecd.org ans Herz gelegt.
Die Leute hinter dem Projekt haben sich die Mühe gemacht eine Live-CD zu erstellen mit der man nach belieben mit Rails rumspielen kann ohne etwas installieren zu müssen. Unter anderem gibt es auch gleich ein VMWare Images mit dem es möglich ist in einer virtuellen Umgebung die CD zu starten. Benötigt wird dafür nur der VMWare Player. Basieren tut das Ganze auf der Linux Distribution PCLinuxOS.
Ich selber habe das ganze noch nicht ausprobiert, über Feedback wie sich diese Live-CD schlägt wäre ich aber erfreut.