Ergin on August 1st, 2012

Allen, die gerne die Programmiersprache Scala erlernen möchten, bietet sich im September die ideale Gelegenheit zum Einstieg.

Coursera bietet ab dem 18.9. einen kostenlosen Online-Kurs mit dem Titel “Functional Programming Principles in Scala” an. Der Kurs wird von dem Entwickler von Scala, Martin Odersky gehalten.

Als Lehrbuch soll neben “Programming in Scala” von Odersky, Spoon und Venners und “Scala for the Impatient”  von Cay Horstmann auch der Klassiker Structure and Interpretation of Computer Programs zum Einsatz kommen.

Auf der Coursera Webseite finden sich alle Details zum Kurs: https://www.coursera.org/course/progfun

Tags:

Ergin on April 10th, 2012

In this thread on Hacker News, easonchan42 writes:

In my opinion, getting things done is just 3 simple steps:

  • get thing!
  • do it!
  • done!

Hmmm …

Tags:

Ergin on August 26th, 2011

Today I pre-registered for Stanford’s free online Artificial Intelligence class. It’s scheduled to start October 10, 2011. Registration will start later this summer. More information can be obtained at http://www.ai-class.com.

Tags:

Ergin on August 16th, 2011

Für alle, die sich mit dem Gedanken tragen, die Programmiersprache Scala zu lernen, hat Graham Lea einen sehr hilfreichen “Fahrplan” mit dem Titel Graham’s Guide to Learning Scala zusammengestellt. Darin erklärt er in 9 Schritten, wie man mit Hilfe von im Web frei verfügbaren Resourcen den Einstieg in Scala finden kann. Sehr empfehlenswert.  

Tags:

Im Rahmen eines Projekts, bei dem Clojure zum Erstellen von Unit-Tests für eine vorhandene Java Legacy-Anwendung eingesetzt werden soll, stand ich kürzlich vor der Aufgabe, Clojure in den vorhandenen Ant-Build einzubauen.

Das zusätzlich eingebaute Target enthielt eine <java> Task, die prinzipiell folgenden Aufbau hatte:

<java classname="clojure.main"
    <classpath>
        <!-- ... -->
    </classpath>
    <arg value="-i"/>
    <arg value="tests/tests.clj"/>
</java>

Beim Aufrufen des Builds trat eine java.lang.NoClassDefFoundError Exception auf, deren Stack-Trace unter anderem die folgende Zeile enthielt:

[java] Caused by: java.lang.VerifyError: verification failed at PC 214
       in clojure.core.protocols$fn__5385:
       invoke((Ljava.lang.Object;Ljava.lang.Object;Ljava.lang.Object;)Ljava.lang.Object;):
       incompatible type on stack

“verification failed at PC 214″. “incompatible type on stack”. Huh?

Der direkte Aufruf von Clojure (also ohne Ant) mittels “java -cp … clojure.main” funktionierte auf diesem System problemlos.

Ein bisschen Zeit in Google ergab, dass es wohl manchmal Probleme mit dem Ausführen von Clojure unter OpenJDK gibt.

Ant ruft auf dem betreffenden System offenbar mittels der Umgebungsvariable $JAVA_HOME das “java” Binary unter /usr/lib64/jvm/java/jre/bin/java auf, hinter dem sich ein gij für die Java Version 1.5.0 verbirgt.

Die Lösung bestand darin, der <java> Task einen Parameter “jvm” mitzugeben, der auf das tatsächlich zu verwendende “java” Binary verweist. In diesem Fall genügte es, die Option jvm=”/usr/bin/java” hinzuzufügen, sodass dass eingefügte Target folgendermaßen lautete:

<target name="test" depends="">
    <java classname="clojure.main"
        jvm="/usr/bin/java"
        fork="true"
        failonerror="false">
        <classpath>
            <dirset dir="/opt/intrexx/tomcat/webapps/ibtest/WEB-INF/lib" />
            <dirset dir="/opt/intrexx/tomcat/webapps/ibtest/WEB-INF/classes" />
            <!-- ... (some more) -->
            <pathelement location="${deploy.home}/WEB-INF/lib/clojure.jar"/>
            <pathelement location="${deploy.home}/WEB-INF/lib/clojure-contrib.jar"/>
        </classpath>
        <arg value="-i"/>
        <arg value="tests/tests.clj"/>
    </java>
</target>

Verwendete Versionen:

Clojure 1.2.0
Apache Ant 1.7.1
java version “1.6.0_20″
OpenJDK Runtime Environment (IcedTea6 1.9.2) (suse-0.2.1-x86_64)
OpenJDK 64-Bit Server VM (build 17.0-b16, mixed mode)
gcj: 4.5 (gcc version 4.5.0 20100604 [gcc-4_5-branch revision 160292] (SUSE Linux))

Tags: , , ,

Ergin on Februar 17th, 2011

Gestern habe ich die aktuelle Scala Version 2.8 auf meinem MacBook unter OS-X Snow Leopard installiert. Der Abschnitt “Installing Scala” des frei verfügbaren O’Reilly Buchs “Programming Scala” zeigt, wie’s geht.

Da ich letztlich erst mein MacBook neu installiert habe, musste ich zunächst MacPorts wieder installieren.

Mit dem  “dmg” Disk Image für Snow Leopard geht das problemlos: runterladen, md5 Hash vergleichen, Doppelklick; das Übliche halt.

Der anschliessende Befehl

sudo port install scala

führt allerdings zu einer Fehlermeldung, bzw. zu dem Hinweis, stattdessen den  “numerierten” Scala port scala27 zu verwenden.

Da die stabile Version von Scala 2.8.1 vor einiger Zeit erschienen ist, habe ich also mittels

sudo port install scala28

die aktuelle Version installiert.

Doch auch der in freudiger Erwartung eingebene Befehl

scala

führte wiederum nur zu einer Fehlermeldung, da sich das entsprechende Binary nicht im Pfad befindet.

Dafür gibt es zwei mögliche Abhilfen:

  1. Zum einen werden vom scala28-Port symbolische Links mit dem Suffix -2.8 zu den Scala Binaries in /opt/local/bin/ eingetragen. Somit führt also der Aufruf von  scala-2.8 zum gewünschten Ergebnis.
  2. Zum anderen kann man den Pfad erweitern um das Verzeichnis /opt/local/share/scala-2.8/bin, in dem der Befehl scala und Konsorten abgelegt sind.

Nachdem letzteres erledigt war, konnte ich zum Schluss noch schnell die Dokumentation für die Scala Tools und APIs mit dem Befehl

sudo sbaz install scala-devel-docs

installieren, dann war die für “Spielereien” selbst zugestandene Zeit auch schon wieder abgelaufen.


EDIT: Bei näherem Hinsehen zeigt sich, dass das Tool scala_select dazu dient, eine bestimmte Scala-Version zu aktivieren. Z.B. mittels “sudo scala_select scala29″

Tags: ,

Ergin on Februar 12th, 2011

Heute haben wir die überarbeitete Webseite von screenfever e-business solutions ins Netz gestellt: www.screenfever.de

Die neue Seite ist mit WordPress erstellt und enthält nun auch einen Bereich für News, der auch als RSS-Feed abonniert werden kann.

Tags: ,

Ergin on Dezember 20th, 2010

Über die Weihnachtspause, die ich für mich persönlich für die Zeit vom 20. Dezember bis zum 9. Januar ausgerufen habe, plane ich, meine erste iPhone-App zu schreiben, um ein wenig Erfahrung mit der Entwicklung für iOS zu sammeln.

Das iOS SDK Version 4.1 läuft nur unter Snow Leopard. Also am Samstag OS-X Snow Leopard und ein fettes externes 2 TB Laufwerk für’s Backup gekauft, über das Wochenende brav auf Snow Leopard upgedatet und XCode 3.2.4 mit iOS SDK 4.1 installiert.

Anhand des einführenden Artikels “Creating an iPhone Application” soll es los gehen. Dieser verwendet als Beispiel eine kleine iPhone App namens MoveMe.

Der erste Schritt in dem Artikel ist, die App aus XCode heraus zu übersetzen. Ein Klick auf “Build and Run” übersetzt die Applikation, startet automatisch den iPhone Simulator und lädt die Beispiel-App.

Allerdings verschwindet die Beschriftung “Welcome” des Buttons spätestens nach dem ersten Maus-Klick, meistens sogar sofort nach dem Laden.

Nicht eine Zeile Code selbst geschrieben, und man könnte schon mit dem Debugging anfangen ;)

Tags: ,

Ergin on März 23rd, 2010

Überarbeitete Webseite www.ib-personalentwicklung.de ist jetzt live.

Tags:

Ergin on Februar 26th, 2010

Seit heute ist die neue Webseite online.

Ein bißchen holpert’s noch. So stehen an einigen Stellen noch die englischen Begriffe. Aber das läßt sich alles mit der Zeit noch ausbügeln.

Mit der Seite verfolge ich zwei Ziele: zum einen möchte ich meine Dienstleistung als freiberuflicher Berater und Entwickler für Webseiten präsentieren und vermarkten, um neue Kunden zu gewinnen.

Zum anderen will ich im Blog interessante Artikel rund um Geschäft und Technik schreiben.

Also, bleiben Sie auf Empfang!

Ihr Ergin Bozün