Nov 07 2012

ApacheCon EU 2012 Day 2

Konferenzen sind ja auch etwas anstrengend. Man muss früh raus, obwohl man am Abend vorher lange unterwegs war, man hat die ganze Zeit stimulierendes Input um sich herum und man weiß das man Abends schon wieder lange unterwegs sein wird. Und vor allen Dingen lernt man ständig neue Menschen kennen. Ich bin also immer noch begeistert von der ApacheCon, hier die Notizen zu heute:

Real-time Big Data in Practice with Cassandra (Michaël Figuière)
Ja, Cassandra halt. Mir ist der Usecase auch immer noch nicht klar, es sei denn du bist Twitter, dann ists schön. Das wesentliche was sich in der letzten Zeit getan hat ist das man jetzt SQL, pardon, CQL mit dem Ding sprechen kann.

What are we working on? (Steve Rowe)
Ja, Lucene halt. :). Auch nichts was ich gestern nicht schon gehört habe, noch etwa sin depth. Ich glaube ich habe gerade einen Lucene Overkill.

Domain-driven apps with Apache Isis (Mohammad Nour)
“Apache Isis is for GUI as Hibernate is for persistence”. RAD Framework mit dem man Apps generieren kann. Sieht lustig aus, kann man bestimmt benutzen wenn man den passenden Use-Case hat.

The Apache Way (Ross Gardler)
Q: „If people off the sub projects dictate what the board is doing, what is the board doing“? A: „Usually we’re drinking whiskey“.
Ross Gardler ist ein großartiger Redner, der Talk hat sehr viel Spass gemacht. Wenn man sich noch nie damit auseinandergesetzt hat wie die ASF funktioniert dann ist er auch voller Infos, jetzt weiß ich wenigstens was ein PMC ist. Auch war mit nicht so bewusst das es Apache Labs gibt. Eine gute Quote zur Arbeitsweise der ASF ist auch: “We never pay for code”.

Ferner hat er folgendes Video empfohlen:
https://www.youtube.com/watch?v=Q52kFL8zVoM

OSGi for mere mortals (Bertrand Delacretaz)
OSGi kann man also auch für Webapps verwenden, das war schon sehr lustig. Wenn man den Case hat dann hat man auf diese Art und weise ein sehr entkoppeltes System von dem man Einzelteile austauschen kann. Apache Felix ist hier dann wohl der way to go.

Managing project risk when using open source (Ross Gardler)
Da ich jetzt Fan von Ross geworden bin habe ich mal CouchDB Features liegen gelassen und mir angehört was er sonst noch so zu erzählen hat. War aber auch eher ein politscher Talk über die möglichen Risiken wenn man FOSS einsetzt, die kennen wir ja nun alle.

Mongo, its all the Rave (Matt Franklin)
Web & Social Mashup Engine. Im großen und ganzen haben sie das auf Mongo umgestellt und danach war es viel schneller (vorher lief es gegen MySQL). Bis auf lustige Requests die plötzlich ewig dauern. Wo das herkommt hat er aber keine Ahnung gehabt. Zumindest weiß ich jetzt was Rave ist.

HBase Status Quo (Lars George)
Kleiner Blick in das Hadoop/HDFS und hauptächlich HBase Universum. Damit würde ich auch mal gerne spielen, ich habe nur die Daten nicht ;).

Danach gab es dann noch Commiter treffen (warum die Apachen immer so mit Commitern beschäftigt sind versteht man wenn man die Struktur der ASF kennt). Da hab ich mich dann mal angeschlossen, die Struts Leute kennengelernt, die Log4j2 Leute kennengelernt und gutes Essen gehabt, das ich tatsächlich diesmal selber bezahlt habe.

Nebenher habe ich heute ein wenig mit ZooKeeper gespielt, das ist wirklich auf einem sehr tiefen Level aber trotzdem sehr schön. So Sachen wie verteilte Locks und Queues kann man zwar damit bauen, sie gehören aber nicht in den API und werden als “Recipes” mitgeliefert. Aber man kann damit bestimmt ein schönes verteiltes System bauen mit dem man Keys in Values transformieren kann und diese dann noch synchronisiert verteilen kann. Mir fällt da ein usecase mit ungefähr 10 Nodes ein. Mal sehen ob ich meine Demo dafür noch an den Start bringe.

Permanentlink zu diesem Beitrag: http://blog.thiesen.org/archives/2012/11/07/apachecon-eu-2012-day-2/

Nov 06 2012

ApacheCon EU 2012 Day 1

image

Mein Tag bestand hauptsächlich aus zwei Tracks, dem Java EE/Webapps Track und dem Lucene/Solr Track, die Gott sei Dank auch am weitesten räumlich auseinanderlagen, so dass ich immer hin und herlaufen musste. Dabei ist mir aufgefallen das die ApacheCon gegenüber den meisten Konferenzen die ich so kenne doch ein sehr diverses Publikum hat, man hat den Eindruck die Leute kommen aus aller Herren Länder, nicht nur aus Europa. Das Vortragsprogramm war vollgepackt und es gab in jedem Slot einen Vortrag den ich sehen wollte. So viele Konflikte hatte ich heute nicht, beim letzten Slot hat es mir etwas leid getan das ich Lucene 4 dem Tomcat 8 vorziehen musste.
Auf jeden Fall war der Tag sehr sehr lehrreich, die Talks waren meistens sehr gut und auch voller Wissen das ich noch nicht hatte.
Hier also meine Notizen zu den Vorträgen:

CDI at Apache – Open WebBeans and DeltaSpike Deep Dive (Mark Struberg)

OpenWebBeans
CDI ist anscheinend ein Buzword das ich noch nicht kannte (DI = Dependency Injection,
C = Context, wobei das sowas wie ein Scope ist im DI Sinne, also so etwas wie ein RequestScope, SessionScope, ApplicationScope etc.). Dafür gibt es einen JSR mit der Nummer 299, der quas das was was Spring macht als Standard beschreibt. Der Vorteil ist dabei sit wohl das CDI bzw. JSR 299 in der Form von OpenWB 3x schneller ist als Spring da es viel zur Boottime macht.

DeltaSpike
All in all Framework für alle Layer (Application Stack) in Form von JSR 299 Plugins.
Im Großen und Ganzen schmeißt man Applikationsweite Events durch die Gegend (Benutzer hat sich angemeldet) die man mit Annotationen binden kann. Dazu kommen noch alle möglichen Custom Annotationes die man bauen kann, klingt so als wenn man am Ende direkte Method Calls einfach durch eine Menge an Annotationen ersetzt und dann funktioniert das alles schon. Macht irgendwie Code Browsen anders. Würde ich trotzdem mal gerne in einem kleinen Projekt testen.

Query Parsing – Tips and Tricks (Erik Hatcher)
Hauptsächlich Überblick über die unterschiedlichen Query Parser, da hat sich schon einiges getan seitdem ich den Hund gebaut habe, aber das war ja auch 1.0.
GeoFeatures sind jetzt Build-In und eigentlich ist das was ich aus dem Talk mitgenommen habe das alles schon irgendwie geht. War auch von der Tiefe her sehr gut, wenn man Lucene nicht vom API her kennt war man schon etwas verloren.

Apache TomEE, Java EE 6 Web Profile on Tomcat (David Blevins)
TomEE ist der Java EE 6 Web Profile (ca. 12 anstelle von den vollen ca. 24 Specs für Full Profile, da sind noch so tolle Technologien wie CORBA enthalten) Stack aus dem Hause Apache. Im Großen und Ganzen wohl erstmal schneller und besser als die alten bloated Implementierungen (JBoss, Glassfish).
Konkret technologisch bedeutet TomEE: Tomcat + CDI – Apache OpenWebBeans, EJB – Apache OpenEJB, JPA – Apache OpenJPA, JSF – Apache MyFaces, JSP – Apache Tomcat, JSTL – Apache Tomcat, JTA – Apache Geronimo Transaction, Servlet – Apache Tomcat, Javamail – Apache Geronimo JavaMail, Bean Validation – Apache BVal
Wie gesagt, klingt ganz gut, sollte man mal als Stack ausprobieren. Natürlich mit einer sinnvollen Frontend Technologie wie Wicket. Wobei das taugt bestimmt auch sehr gut wenn man mal eben $Webservice oder $RestService an den Start bringen möchte ohne viele zusätzliche Libs zu suchen.

Und Arquillian habe ich heute mehrfach gehört, das ist ein Integration Test Framework für JavaEE, aber das kann man bestimmt auch für Custom Stacks benutzen. Wobei Integration hier heißt das es tatsächlich die App in einem TomEE deployt und man alle Konfiguration in dem Arquillian Code macht. Fancy, sieht in der der Demo sehr cool aus, müsste man mal mit Real World Apps ausprobieren.

Am Rande aufgeschnappt:
YourKit – Profiler

Solr 4, the NoSQL database (Yonik Seeley)
Guter Talk von dem Typ der Solr gebaut hat. Die grundsätzliche Idee ist das man alles was man über Solr weiß vergessen soll und ihn eher als ein NoSQL-Store sehen soll mit dem man auch ganz gut suchen kann.
Allgemein viele neue Features in Solr 4 mit denen man bestimmt ganz tolle Suchen bauen kann. Z.B. Functions beim Suchen und beim ausliefern der Felder mit denen man die Werte in den Feldern noch modifizieren kann. Außerdem sieht die Admin Console nicht mehr so aus als wenn ich sie designt hätte und hat auch mehr Infos.
Stark empfohlen hat er auch folgenden Blog Artikel:
http://blog.cloudera.com/blog/2010/04/cap-confusion-problems-with-partition-tolerance/

Am Rande aufgeschnappt: ZooKeeper scheint auch mal eine gute Lösung zu sein wo jGroups nicht (mehr) ausreicht. Solr 4 benutzt das auch zum Clustering.

ElasticSearch in Production: lessons learned (Anne Veling)
ElasticSearch ist sowas wie Solr, also Lucene basierter Search Server mit REST API, JSON in, JSON out. Plus Distributed, sind wir das nicht alle.
Leute da draußen bauen krassen Kram: http://udini.proquest.com/ (Scala, Unfilitered, MongoDB, Solr und ElasticSearch auf Amazon EC2). Scheint aber gut zu laufen.

Als neues Buzzword fand ich auch “nodb” ganz schön, das ist dann quasi die Steigerung von NoSQL.

ElasticSearch ist also ein wenig der coole kleine Bruder von Solr.
http://de.slideshare.net/AnneVeling/elasticsearch-in-production-lessons-learned

Wicket – where do we go from here? (Sven Meier)
Nicht so viel neues wenn man Wicket schon mal benutzt hat, MetaDataKey kannte ich noch nicht, ist m. E. aber auch gefährlich, in die Session zu schreiben ist ja irgendwie heute nicht mehr so cool (https://github.com/svenmeier/apachecon-wicket/blob/master/src/main/java/eu/apachecon/customer/ui/model/CustomerSessionModel.java)
Ansonsten war das ein etwas komischer Titel für einen Talk der eigentlich eine Intro zu Wicket sein wollte.
Mitgenommen habe ich das ich mir mal Tepstry 5 ansehen möchte und
Vaadin auch (https://vaadin.com/home),

Content extraction with Apache Tika (Jukka Zitting)
Tika ist “erwachsen”, Version 1.2, kann man gut benutzen wenn man einen Use Case dafür hat. Kann eigentlich alle Dateiformate die es gibt ;).

Lucene 4 Performance Tuning (Simon Willnauer)
Hat schweren Herzens gegen das “Tomcat 8 preview” von Mark Thomas gewonnen, aber bevor ich einen Tomcat 8 überhaupt benutzen kann wird noch einiges Wasser die Elbe herunterfließen.
Blazingly Fast Indexing, tausend neue Features und vor allem haben sie ausnahmsweise mal den API geändert, komplett. Aber wie immer, alle neuen Features und perfomance Optimierungen klingen großartig will ich auch.

Am Abend gab es dann Bier und Brezen gesponsert von Adobe und noch viele gute Gespräche. Von den EE Leuten habe ich gelernt das wenn man die Spec doof findet muss man halt die Spec ändern. Nachdem wir dann die Arena dicht gemacht haben gabs noch ein Abendessen von CodeBusters(.es) gesponsert. War im großen und ganzen ein sehr lustiger Tag.

Permanentlink zu diesem Beitrag: http://blog.thiesen.org/archives/2012/11/06/apachecon-eu-2012-day-1/

Nov 05 2012

ApacheCon EU 2012 Day 0

image

Heute begann dann also die ApacheCon EU 2012. Sinsheim ist nicht so einfach zu erreichen, vor allem wenn man an einem Sonntag nach einem Brückentag ICE fährt. So was vergisst man als Hamburger schon manchmal. Und wenn man dann durch die Verspätung seinen Anschluss verpasst braucht man doch ein wenig bis man in der Metropole am Elsenz, bzw. des Zentrum des Kraichgaus gelandet ist.

Das Hotel ist sehr nett, auch wenn ich heute Nacht extrem schlecht geschlafen habe. Am guten „Palmbräu“ kann das aber eigentlich nicht gelegen haben. Ab 11 Uhr konnte man heute in der Rhein-Neckar Arena auflaufen um sich sein Badge abzuholen und an dem Hackathon teilzunehmen. Das war aber eher ein allgemeines Meet und Greet, die Apache-Leute bzw. Projekte scheinen sich alle ganz gut untereinander zu kennen. Ein paar flüchtige Bekannte sind auch dabei, aber trotzdem erstaunlich wie wenig ich diese Community kenne. Gehackt habe ich eher gar nicht, hauptsächlich gequatscht und mal das Programm studiert. So richtig was zum reinspringen und hacken gab es auch nicht. Gelernt habe ich trotzdem so einiges, unter den über 100 Apache Top Level Projects findet man auch immer was neues. Für mich wird es wohl hauptsächlich Lucene, TomEE (den ganzen freien Java EE Stack den Apache baut) und Cassandra gehen.

Permanentlink zu diesem Beitrag: http://blog.thiesen.org/archives/2012/11/05/apachecon-eu-2012-day-0/

Aug 26 2012

FrOSCon 2012 Day 2

Traditionell den Tag erst mittags begonnen:

1. Keynote Mistakes were made
Lustiger Talk über Education

2. Conquering the mobile web
Max Werner hat ein wenig die Vorteile von mobilen Webapps aufgezählt und ein paar lustige Demos gezeigt.

3. Projekt Status – Nachrichten vom anderen Stern
Ein wenig Kommunikationstheorie für Programmierer, hauptsächlich Werbung für gegenseitiges Verständnis. War sehr informativ, wenn auch schon bekannt aber wahrscheinlich noch nie so verbalisiert und zusammengefasst.

4. How gamification changes the world
Guter Überblick über die aktuellen Trends zu Gamification. Ich muss endlich mal das Reality is broken lesen das schon ewig bei mir herumliegt.

5. Software Craftsmanship – was ist das.
Guter Überblick, kannte die Bewegung schon, wusste aber nicht das es mit der Softwerkskammer auch eine deutsche Community gibt. Die gibt es auch in Hamburg, klingt nach etwas was man sich mal ansehen kann. Ich werde mich jetzt auch als Softwerker bezeichnen.

6. Shutdown
Und schon wieder vorbei. Irgendwie war das Programm jetzt nicht so tief und lehrreich, aber die FrOSCon ist immer gut um mal über den Tellerrand zu schauen.

Permanentlink zu diesem Beitrag: http://blog.thiesen.org/archives/2012/08/26/froscon-2012-day-2/

Aug 25 2012

FrOSCon 2012 Day 1

Kleine Zusammenfassung des ersten Tages:

1. Init mal anders
Ohne David, das war mal was neues.

2. Vivaldi: Make * Play * Live
Lustige Sache, KDE Plasma Apps über mehrere Devices, PC, Tablet, Telefon. Lustiges Konzept, mal sehen was draus wird.

3. Why do I have to use a Message Queue System
Relativ zusammenhangslose Aneinanderreihung von Infos über MQs.

4. Wikidata: Wikimedia going structured data
Sie hat zwar ihre Keynote in 25 Minuten durchgehauen, das Projekt klingt aber sehr sinnvoll und interessant.

5. Git Goodies
Etwas Wissen auffrischen und sogar was gelernt.

Im Großen und Ganzen ein gelungener erster Tag.

Permanentlink zu diesem Beitrag: http://blog.thiesen.org/archives/2012/08/25/froscon-2012-day-1/

Mrz 07 2012

Random Hacks of Kindness in Hamburg

Random Hacks of Kindness ist eine weltweite Organisation (www.rhok.org) die Programmierevents für einen guten Zweck veranstaltet. Zu diesen Events treffen sich Programmierer und Kreative sowie Aufgabensteller an einem weltweit koordinierten Termin um gemeinsam Software zu entwickeln die einen Unterschied macht. Die Aufgaben kommen von NGOs, Stiftungen und sonstigen gemeinnützigen Organisationen.

Bis jetzt haben die Events in Deutschland nur in Berlin stattgefunden, Zeit das ganze auch in Hamburg zu organisieren. Hamburg wird am 2. und 3. Juni erstmals an einem globalen Event teilnehmen. Organisiert wird das ganze von einer Gruppe von interessierten: Florian Holzhauer, Wolfgang Wopperer vom Betahaus und einer Gruppe von freiheit.com, zu der auch ich gehöre. Den Ort müssen wir noch wählen, aber wir haben da tatsächlich den Luxus das wir Auswahl haben.

Aktuell befinden wir uns in der Phase das wir Aufgabenstellungen suchen die einen lokalen Bezug haben, oder zumindest deren Ideengeber in Hamburg sitzen, damit diese an dem Event teilnehmen können. Dazu haben wir schon mal eine kleine Ankündigung bei der Socialbar gemacht. Um die Ideen schon mal für das Event vorzubereiten treffen wir uns am 27. März um 19 Uhr im Betahaus um schon mal über die Ideen zu sprechen. Dazu sind alle die Interesse haben herzlich eingeladen. Wenn ihr kommen wollt tragt euch in diesem Doodle ein, damit wir ein wenig Überblick haben wieviele Leute kommen.

Wir werden ein großartiges RHoK HH machen. Es gibt auch schon ein Twitter Account über den dann Neuigkeiten kommen werden: @RHokHH.

 

Permanentlink zu diesem Beitrag: http://blog.thiesen.org/archives/2012/03/07/random-hacks-of-kindness-in-hamburg/

Nov 23 2011

Programming Concurrency on the JVM

The fun thing about Venkat Subramaniam’s latest book is the way he jumps to and fro between a couple of JVM based languages: Java, Scala and Clojure. He shows interesting ways to do given tasks in different languages and introduces a couple of interesting frameworks I at least have not heard of before. The most interesting frameworks he shows are Akka, which is an Actor Based Concurrency Framework, written in Scala but which comes with an API that is just as well usabale from Java. Furthermore, I knew the concepts of Software Transactional Memory but did not know that there are working implementations for the JVM. One of them beeing Multiverse.

 

I really liked the book, because I really like the idea of using a framwork implemented in Scala through its Java API in Groovy. Sometimes it gets quite tiresome to have many of the same examples just shown in different languages, but it is always good to practice Scala or Clojure reading skills. If you feel safe in Java concurrency, i.e. you now Concurrency in Practice by heart, I warmly recommend this book.

Permanentlink zu diesem Beitrag: http://blog.thiesen.org/archives/2011/11/23/programming-concurrency-on-the-jvm/

Nov 21 2011

Secrets of the JS Console

For some reason, up to until three weeks ago, I didn’t know that there is more to an API in the JS console than „console.log“. They API has been defined by Firebug first and is now more or less considered standard in all major browsers. Here is a short list of usefull commands:


$$('.foo') // gives you a shortcut to querySelectorAll

$0 // gives you the result of the last executed call

$1 // gives you access to the currently selected DOM Element in the Inspect view

clear() // clears the console

time('foo') // start Timing for foo

timeEnd('foo') // end Timing for foo

inspect( domElement  ) // shows the given dom element in Inspect view

The documentation can be found either in the Firebug Wiki or at Chromes Devtools Docs.

Permanentlink zu diesem Beitrag: http://blog.thiesen.org/archives/2011/11/21/secrets-of-the-js-console/

Nov 20 2011

Code with style: “get” means Getter

Properties are always accessed via method calls on their owning object. For readable properties there will be a getter method to read the property value. For writable properties there will be a setter method to allow the property value to be updated.

Java BeansSpec  (08.08.1997)

These three sentences have done something weired to my brain. The somehow completely rewired my brain to believe that every method that starts with get means Getter. And this comes with a price: I usually expect a getter to be an O(1) operation. I expect it to be the same three bytecode sequence that is a simple field access and a return. Nothing more. The same goes for a method that starts with set. I don’t expect them to throw exceptions, I don’t expect them to talk to the filesystem or to the network. Just a simple field access, nothing more.

And I am not alone.

Most of the Java programmers are somehow hardwired to have this JavaBean asumption. So naming a method that does more than a simple get or a simple set to an object field should not be named get or set.  If it creates something name it „create“, if it finds something name it „find“, if it stores something name it „store“. You get the idea. As I’m always on the reading side of code, I believe that the these naming conventions are quite good, but they are not only a convention on how to name something, but also a convetion on how to not name things. So if it is not a getter, do not name it get! When looking for alternatives,  Stephen Colebourne did a nice collection on common prefixes in the Java world.

Permanentlink zu diesem Beitrag: http://blog.thiesen.org/archives/2011/11/20/code-with-style-%e2%80%9cget%e2%80%9d-means-getter/

Nov 18 2011

Google Merchant Module for ROME

Google Merchant is the way a company can feed their products into Google Shopping and ROME is a Java Library to create and parse RSS and ATOM feeds. Google Merchant allows RSS as one of the feed formats you can use to feed them their data. In order to get additional information into ROME created feeds you have to implement 4 classes, so it is not really easy to get your data there.

I created a small Library to make RSS feeds that conform to Google Merchants requirements:

        final SyndFeed feed = new SyndFeedImpl();
        feed.getModules().add( new GoogleMerchantModuleImpl() );

        final SyndEntry entry = new SyndEntryImpl();

        entry.setTitle( "Title" );

        final GoogleMerchantModule merchantData = new GoogleMerchantModuleImpl();
        merchantData.setImageLink( "SOME IMAGE URL" );

        entry.getModules().add( merchantData );

It’s under MIT License up in Github, you can direct download the Version 0.1 here.

Permanentlink zu diesem Beitrag: http://blog.thiesen.org/archives/2011/11/18/google-merchant-module-for-rome/

Ältere Beiträge «

» Neuere Beiträge