Smart spreadsheet reading with Ruby

28 01 2013

Ein schoenes Beispiel zur Anwendung von Roo: http://www.biocodershub.net/community/smart-spreadsheet-reading-with-ruby/





Unterstuetzung roo-Projekt

22 01 2013

Ween du roo benutzt und die bisherige und zukuenftige Entwicklung unterstuetzen moechtest, dann sende Bitcoins an die Adresse 17we1SB9RUZ5sGKjEbd8RnUWetqGhmKJiu

Achtung: In der Programmdokumentation ist noch eine aeltere Bitcoin-Adresse angegeben, auf die ich aber keinen Zugriff mehr habe (weil zusammen mit meinem Netbook gestohlen).





Neues Netbook/Notebook

19 01 2013

Open-Source Entwickler sammelt fuer Ersatz fuer gestohlenes Netbook

Spenden bitte an die Bitcoin-Adresse

1Cif69E6Y8TZ7eSssSuULZDFx9gYvjrfy8

Ziel ist, 50 Bitroin zusammen zu bekommen. Dafuer duerfte man ein Geraet bekommen, das sich fuer meine Zwecke gut eignet.

Ich wuerde gerne wieder an mehreren Projekten weiterarbeiten wie zum Beispiel der Simulation/Steuerung von Solar-Panels und roo, dem Auslesen von Spreadsheet Dateien in verschiedenen Formaten.

Danke,
Thomas





Simulation sucht Hardware – Nachführung von Solarpanels

7 03 2012

Ich habe – in der Programmiersprache Ruby – ein Programm geschrieben, welches es ermöglicht, Solarpanels zur Stromerzeugung so zu steuern, dass diese immer zum aktuellen Sonnenstand ausgerichtet werden und so eine optimale Stromgewinnung möglich ist.
Mein Programm ist so entworfen, daß keine umständliche Ausrichtung oder Kalibrierung nötig ist – einfach das Solarmodul irgendwo im Freien aufstellen, und es folgt automatisch dem Stand der Sonne. Das Programm kann prinzipiell eine beliebige Anzahl einzelner Solarpanels ansteuern. Derzeit iat das Programm als reine Simulation ausgelegt. Das heißt, die Solarpanels und der Stand der Sonne existieren nur als Software. Das Programm kann jedoch leicht dahingehend erweitert werden, daß damit auch die Steuerung realer Solarpanels möglich ist. Alles was hierfür nötig ist, ist prinzioiell, die Bewegung der simulierten Panels auch an die realen Panels weiterzgeben, sowie die simulierte Sonne im Programm durch eine Möglichkeit, die Stärke der Sonneneinstrahlung am realen Panel festzustellen zu erweitern.An diesem Punkt suche ich nun nach jemandem (in Berlin), der sich mit solcher Art von Elektronik und Mechanik beschäftigt und inteessiert ist, am Hardware-Bereich mitzuwirken. Prinzipiell geht es darum, ein Solarpanel mittels Mikrocontroller und Motoren um die vertikale und horizontale Achse bewegen zu können, sowie feststellen zu können, in welcher Ausrichtung die Sonneneinstrahlung stärker oder schwächer ist. Das Ganze ist erstmals nur “Just for fun” gedacht – falls sich das jedoch auch kommerziell nutzen läßt, wäre ich auch nicht abgeneigt.
Wenn du so etwas mit mir zusammen realisieren willst, melde dich bitte bei mir: thopre@gmail.com – ebenso, wenn du jemanden kennst, der interessiert sein könnte oder weißt, wohin ich mich vielleicht sonst noch wenden kann.





iTunes 10.2.1.1

12 03 2011

Danke liebes Apple, daß man in iTunes 10.2.1.1 (Windows) bei der Info-Box zu einer Podcast-Folge keinen Text mehr auswählen und kopieren kann – hast du wirklich gut gemacht. Braucht ja auch kein Mensch. Die ganzen Links, die dort regelmäßig eingetragen werden, kann man sich ja ruhig per Hand abtippen …

Ach ja, und der jetzt kleinere Font sieht auch (zumindest auf meinem kleinen Netbook) ziemlich bescheiden aus.

Warum um Himmels Willen tut ihr so etwas?

 

 





Die Programmiersprache Eiffel – erst mal eine Enttäuschung

15 10 2010

Ich habe eine Open-Source Bibliothek in Ruby (dort Gem) genannt zum Auslesen von Spreadsheet-Dateien (Excel, Openoffice und Google-Spreadsheets) geschrieben.

Als Einstieg in die Programmiersprache Eiffel, wollte ich nun hergehen und diese Bibliothek auch nach Eiffel portieren.

Die Sprache Eiffel selbst, ist, wenn man sich erstmal an die etwas andere Syntax im Gegensatz zu anderen Sprachen gewöhnt hat, eigentlich recht hübsch und flexibel. Ich wollte mich also etwas näher mit Eiffel beschäftigen.

Die Installation auf einem kleinen Netbook mit Windows 7 Starter war unproblematisch. Eigene kleine Beispielprogramme ließen sich übersetzen und funktionierten auch.

Da ich gerne testgetrieben entwickle, habe ich mir das Tool Etest von Jim Weirich (richtig geschrieben?) geholt, welches automatisierte Tests, wie ich sie von Ruby her kenne, durchführen kann. Dazu geht man ähnlich wie bei Ruby vor. Man erstellt eine Klasse namens ‘TEST_’ + Name der eigenen zu testenden Klasse. Dann ruft man das Kommando etest auf, welches temporäre Klassen erstellt, die dann kompiliert und ausgeführt werden (alles innerhalb des etest-Aufrufs). Als Ergebnis von etest erhält man die Anzahl der korrekten Testfälle und die fehlgeschlagenen Tests ausgegeben (wie auch bei Ruby Unittests).

Eine kleine Überraschung war, daß zum Erzeugen der temporären Testklassen tatsächlich Perl verwendet wurde (mußte ich dann auch noch installieren, machte aber auch keine Probleme). Warum um Himmels Willen Perl? Na ja – Hauptsache es funktioniert.

Funktionieren tat es dann doch nicht so ganz. Ich weiß nicht, auf welcher Basis bzw. welcher Version dieses Tool geschrieben wurde, mit meiner jetzigen SmartEiffel-Version (2.3) lief es nicht so ganz rund. Die assert_equal Methode kann man leider nicht verwenden, weil da in der etest-Methode der Parameter vom Typ ANY angegeben ist, ich dafür in meinem Test aber keine Integer-Zahl übergeben kann. Ich muß zugeben, ich verstehe noch zu wenig von Eiffel, um mit der Fehlermeldung etwas anfangen zu können. Nach meinem bisherigen naiven Verständnis sollte bei ANY dann doch beliebige Parameter angegeben werden können, oder nicht?

Was aber funktonierte war die Methode assert (die nur einen booleschen Wert verlangt). Ich mußte also meine Tests nur etwas umformulieren und konnte damit auf assert_equal verzichten und nur assert verwenden. Das sieht zwar nicht ganz so elegant aus, funktioniert aber.

So baute ich meine Klassen – testgetrieben – noch weiter aus.

Dann kam ich an den Punkt, wo ich XML-Files parsen mußte.

Halt – vorher noch etwas anderes. In Ruby gibt es fertige Libraries, um ZIP-gepackte Dateien zu entpacken bzw. auf die gepackten Daten wie auf ein Filesystem zugreifen zu können. In Eiffel: Fehlanzeige. Keine Library dazu gefunden, in de.comp.lang.misc nachgefragt – niemand wußte etwas darüber (genauer gesagt, habe ich noch nicht mal eine Antwort bekommen). Gut. Ich habe mir dann erst mal damit beholfen, daß ich ein unpack-Kommando extern aufrufe und dann innerhalb der entpackten Files auf meine benötigten Files zugreife.

Zurück zu XML. Es gibt in SmartEiffel ein tutorial-Verzeichnis, in dem zu vielen mitgelieferten Libraries Beispielprogramme enthalten sind, was natürlich eine gute Idee ist. Hier habe ich dann auch Beispiele für die Bearbeitung von XML-Dateien gefunden, sowohl für DOM als auch für SAX. Prima, dachte ich, ist ja alles da, was du brauchst. Ich habe also dieses Beispiel genommen und in mein eigenes Programm eingebaut. Versucht zu übersetzen – Peng. Der Compiler schmiert damit komplett ab. Nicht etwa, daß mir das Frontend einen Fehler in meinem Programm melden würde (was vielleicht noch erklärbar wäre), nein, der Compiler generiert C-Code, der nicht übersetzt werden kann. Daraufhin habe ich das originale Tutorial-Beispielprogramm übersetzt – wieder das gleiche Ergebnis. Es sind also noch nicht mal die eigenen Tutorial-Beispiele alle kompilierbar. Den gleichen Effekt habe ich auch bei dem curses (oder ncurses?) Tutorial-Programm bemerkt (obwohl es hier vielleicht auch an fehlenden externen curses-Libraries hätte liegen können, was ich aber nicht weiter untersucht habe.

Meine Vermutung ist, daß es vielleicht mit dem von mir verwendeten Betriebssystem Windows 7 Starter zu tun hat, worauf der SmartEiffel Compiler (bei mir Version 2.3) noch nicht angepaßt wurde, da SmartEiffel wohl seit einiger Zeit nicht mehr gewartet werden zu scheint (Mitte 2007). Anfragen an die Mailingliste wurden (man ahnt es schon fast) ignoriert. Beim Bugtracker zu SmartEiffel kann man überhaupt keine neuen Bugs eintragen (oder ich bin zu blöd dazu, eine diesbezügliche Anfrage an die Mailing-List wurden auch nicht beantwortet).

Ich finde das ein ziemlich schwaches Bild dafür, daß SmartEiffel das “offizielle” Eiffel von GNU ist.

Mein vorläufiges Fazit: Eiffel ist in der Theorie eine schöne Sprache, aber wenn man damit praktische Aufgaben erledigen will, leider kaum zu gebrauchen. Ich spreche hier natürlich nur über SmartEiffel. Es gibt andere Compiler, aber die schienen mir persönlich nicht so passend:

Eiffelstudio: zu fette und komplexe IDE, die ich erstmal nicht haben wollte, in der freien Version von EiffelStudio darf man nur Open-Source Projekte entwickeln

tecomp: Ist so weit ich weiß nur ein Interpreter, und ich weiß nicht, wie ausgereift der mittlerweile ist.

Da ist leider noch so ein Punkt, der mit bei den existierenden Eiffel-Compilern extrem stört: Jeder scheint irgendwie sein eigenes Eiffel zu machen, Quelltexte des einen Compilers müssen zum Kompilieren mit einem anderen Compiler an einigen Stellen angepaßt werden – fast so wie bei den unterschiedlichen COBOL-Compilern früher in den Achtzigern.

Sollte mich doch noch jemand davon überzeugen können, daß Eiffel nicht nur in der Theorie toll ist, sondern man damit auch praktische Aufgaben lösen kann, bin ich gerne bereit mich wieder damit zu beschäftigen, aber ansonsten werde ich in der Kategorie der kompilierten Programme wieder eher auf Ada setzen (Halt! Da muß ich aber auch erst testen, ob das mit mit meinem Betrübssystem zusammen funktioniert – aber ich würde bei Ada eher ein Ja vermuten).





Ruby-Kurse in Berlin

11 08 2009

Wir haben jetzt mal eine Seite zu unseren Ruby-Kursen in Berlin eingerichtet.








Follow

Erhalte jeden neuen Beitrag in deinen Posteingang.