Donnerstag, 21. März 2013

Was ist die wichtigste Analyse Software?

Es gibt verschiedene Systeme mit den entsprechenden Sprachen für mathematische und statistische Analyse bzw. Business Intelligence (BI). SAS und S fühlen sich als Marktführer. Doch auch die Open Source Alternative R behauptet die dominierende Kraft zu sein. In einem Blogbeitrag von Robert A. Muenchen wird das Diskussionsaufkommen in verschiednen Bereichen als Indikator herangezogen. R dominiert das Feld deutlich vor Staat, SAS und SPSS. Jetzt kann man mehrere Einwende gegen dieses Messverfahren hervorbringen. Besonders anfällige Systeme erzeugen mehr Diskussionen als perfekte Systeme. Ich denke, das dies langfristig nicht haltbar ist, weil die Anzahl der Diskussionen in den Foren wesentlich stärker von der Menge der Benutzer abhängt als vom System selbst. Gibt es dafür Belege? Weiterhin ist nicht der kommerzielle Support in die Messung eingegangen, der im nichtöffentlichen Bereichen stattfindet z.B. in geschlossenen Foren oder via Email.
Wenn man aber weitere Quellen wie GULP oder Tiobe heranzieht, dann bestätigt sich das Bild, dass R das verbreitetste Analyse System ist. Allerdings ist nicht nicht nur Sonne auf der R Seite, es gibt zwar scheinbar für jedes Problem ein R-Paket, das sich meist einfach installieren lässt, aber viele Pakete werden nicht kontinuierlich gepflegt oder weiterentwickelt. Das liegt auch stark an der massiven Verbreitung von R im akademischen Bereich.
Übrigens gibt es ein oft übersehenen Konkurrenten zu R ist Python. Für Python gibt es gut numerische Pakete und sehr einfache Zugrissmöglichkeiten auf Matrizen. Zusammen mit diesen Paketen fühlt sich Python schon sehr R-like an, das ist wahrscheinlich warum Splunk intern auf Python setzt.

Donnerstag, 31. Januar 2013

Externe JARs in Maven integrieren

Das ist leider unschön, kann aber so realisiert werden:


<dependencies>
<dependency>
<groupId>com.splunk</groupId>
<artifactId>splunk</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${basedir}/lib/splunk-1.0.jar</systemPath>
</dependency>
</dependencies>


Wichtig: Wenn ich versuche dieses Projekt via exec:java (Link) dann schlägt die Fehl. Das MAven Exec Plugin unterstützt diese externe JARs nicht. Das ist unerwartet und schade. Abhilfe kann hier das Maven Package Plugin schaffen, siehe Link. Dabei wird ein Bigjar bebaut, dass man dann sehr einfach ausführen kann.

Freitag, 11. Januar 2013

Was ist die wichtigste Datenbank zur Zeit?

In fast jedem Projekt steht die Frage, wie sollen die Daten persistiert werden. Oft passiert dies in Datenbanken. Aber welche ist zu wählen. Auf der Seite DB-Engines gibt es ein aktuelles Ranking. Auch wenn es viele hippe neue Datastores gibt, die Welt ist rational. Im Spitzenfeld sind Oracle, MySQL (auch von Oracle) und Microsoft SQL Server. Das Verfolgerfeld besteht aus Mircosoft Access, PostgreSQL und DB2. Erst im zweiten Verfolgerfeld findet sich mit MongoDB der erste neue Datastore, damit ist MongoDB die populärste  NoSQL Datenbank.
Aber so ein Ranking reflektiert nur den aktuellen Stand. Die wichtigste Datenbank muss aber nicht die beliebteste Datenbank sein.

Mittwoch, 9. Januar 2013

SPDY vs. HTTP

Google hat mit SPDY (Link zum Projekt), gesprochen Speedy, ein alternatives Übertragungsprotokoll zu HTPP und HTTPS entworfen. Es soll die Probleme von HTTP beheben und erfreut sich zunehmender Beliebtheit bei vielen Big Playern (Link). Dem entsprechend gibt es verschiede Test. Google gibt eine Beschleunigung um bis zu 55% an (Link). Das wäre eine dramatische Verbesserung. Guy Podjarny hat in seinem Blog ein interessanten Test (Link) veröffentlicht. Dabei kommt heraus, das SPDY langsamer als HTTP ist und nur ein wenig schneller als HTTPS. Dieses Ergebnisse ist ernüchternd. Wichtig bei dem Test von handelt es sich um ein einen Real World Test, der den aktuelle Stand reflektiert. Sicher sind mit einigen Optimierungen bessere Ergebnisse für SPDY zu erzielen, aktuelle Seiten sind stark für HTTP optimiert. Die Frage ist ob dies den Unterschied von 5% (Guy Podjarny: SPDY vs. HTTPS) zu 55% (Google) erklärt? Ich bin gespannt.

Dienstag, 8. Januar 2013

Zeit zum Umstieg: Java 6 läuft aus

Java 6 ist unter Softwareentwicklern noch sehr populär. Jetzt wird es höchste Zeit von Java 6 auf Java 7 zu migrieren, denn ab Februar 2013 (nächster Monat) wird es keine (öffentliche) Updates für Java 6 mehr geben (Link). Als Bonus für die Migration von Java 6 auf Java 7 gibt es einen kleinen Performanceschub (Link) und einen neuen Garbage Collector G1.

Montag, 19. November 2012

Maven Release im Batchbetrieb meistern

  1. Setzen der Variable JavaHOME: export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_06.jdk/Contents/Home
  2. Einspielen aller Änderungen ins SVN: svn commit -m "test"
  3. Das Release vorbereiten: mvn release:prepare  --batch-mode -Darguments='-Dmaven.test.skip=true'
  4. Das Release durchführen: mvn release:perform  --batch-mode -Darguments='-Dmaven.test.skip=true'
Mit der Maven Option --batch-mode wird die Interaktivität von Maven abgeschaltet. Dieser Parameter ist z.B. auch im Jenkins oder Hudson hilfreich. Der seltsame Parameter -Darguments='-Dmaven.test.skip=true' führt zu deaktivieren der Tests, in der Regel ist dies nicht notwendig aber zum Testen oft hilfreich. Die Option -Dmaven.test.skip=true ist beim Release nicht wirksam.

Montag, 12. November 2012

Eclipse startet nicht mehr

Auf dem Mac gibt es folgendes Problem: The JVM shared library "/Library/Java/JavaVirtualMachines/openjdk ... " does not contain the JNI-CreateJavaVM symbol.
Scheinbar kollidieren OpenJDK 7 und Oracle JDK. Durch das löschen des OpenJDK kann das Problem gelöst werden:

sudo rm -rf /Library/Java/JavaVirtualMachines/openjdk-1.7-x86_64