Generated by All in One SEO v5.0.0.1, this is an llms.txt file, used by LLMs to index the site. # jensjaeger.com Development on the Java platform ## Sitemaps - [XML Sitemap](https://jensjaeger.com/sitemap.xml): Contains all public & indexable URLs for this website. ## Posts - [Blog url changed to https](https://jensjaeger.com/2018/05/blog-url-changed-to-https/) - I just changed the url of this blog to https://jensjaeger.com. TLS encryption is now the default for all request to this page. It might be possible that some image links on some articles are hard coded http. If you find such an error it would be nice if you leave me comment so i can - [Format date and time in java with prettytime](https://jensjaeger.com/2015/11/format-date-and-time-in-java-with-prettytime/) - Prettytime is a nice java library to format a java Date()s in a nice humanized ago format, like: moments ago 2 minutes ago 13 hours ago 7 months ago 2 years ago Prettytime is localized in over 30 languages. It's super simple to use Add the dependency to your maven pom: org.ocpsoft.prettytime prettytime 3.2.7.Final or - [Good-by journizer.com](https://jensjaeger.com/2014/11/good-by-journizer-com/) - In 2006 I startet a travel website called journizer.com with some friends. The goal was to build the ultimative website for individual travelers. The side has some successes but never get the momentum to grow this thing to a successful startup. Our biggest problem was the vision to build the ultimative site for everything about - [Blog split](https://jensjaeger.com/2014/08/blog-split/) - This blog will be splitted into two blogs. Here (jensjaeger.com) I will keep posting technical stuff about developing web applications with Java, Scala, Ruby, Javascript and Playframework. Some other geeky stuff might come along. My new blog (jensjaeger.de) will be in german about business and investment. I also removed the german stuff from here and - [Was ist eigentlich Usability?](https://jensjaeger.com/2008/04/was-ist-eigentlich-usability/) - Der englische Begriff Usability hat im Deutschen im wesentlichen zwei Übersetzungen. Zum einen Gebrauchstauglichkeit, die die Eignung eine Produktes in einem bestimmten Nutzungskontext bezeichnet. Und zum anderen Benutzerfreundlichkeit, welche die von einem Nutzer erlebte Nutzungsqualität eines Systems aufzeigt. Benutzerfreundlichkeit ist eng mit der Ergonomie verwandt. Wegen den eher unklaren deutschen Übersetzungen ist es angebracht auch im deutschen - [Agile Werte](https://jensjaeger.com/2008/04/agile-werte/) - Im agile Manifest sind die Prinzipien der agilen Softwareentwicklung festgehalten. - [Usability nach DIN EN ISO 9241](https://jensjaeger.com/2008/04/usability-nach-din-en-iso-9241/) - Die Kriterien für die Usability eines Dialogsystems DIN EN ISO 9241 sind Aufgabenangemessenheit, Selbstbeschreibungsfähigkeit, Steuerbarkeit, Erwartungskonformität, Fehlertoleranz, Individualisierbarkeit und Lernförderlichkeit. - [Das DRY-Prinzip](https://jensjaeger.com/2008/04/das-dry-prinzip/) - Das DRY-Prinzip ist eine Philosophie in der Informationstechnik, die verlangt, dass jede Information nur einmal in einem Projekt vorkommt. - [Das KISS-Prinzip](https://jensjaeger.com/2008/04/das-kiss-prinzip/) - Das Akronym KISS steht für Keep it simple, stupid. - [Usability Test](https://jensjaeger.com/2008/04/usability-test/) - Ein Usability Test soll die, Bedienbarkeit, Benutzerfreundlichkeit, Gebrauchstauglichkeit und Nutzbarkeit einer Software oder Hardware evaluieren. - [Refactoring](https://jensjaeger.com/2008/04/refactoring/) - Der Begriff Refactoring wurde von William Opdyke geprägt der, 1992, zu diesem Thema promovierte. Refactoring bedeutet: „Verbesserung des Designs von Quellcode nachdem er geschrieben wurde, ohne die Funktion zu verändern“. Dabei soll insbesondere die Lesbarkeit, Verständlichkeit, Testbarkeit und Erweiterbarkeit verbessert werden. Martin Fowler hat in Refactoring dieses in aller Ausführlichkeit beschrieben. Fowler listet Bad Code - [Test Driven Development](https://jensjaeger.com/2008/04/test-driven-development/) - Test Driven Development (TDD) bezeichnet eine Methode zur Entwicklung von Software bei der Tests vor der eigentlichen Softwarekomponente entwickelt werden. - [Extreme Programming](https://jensjaeger.com/2008/04/extreme-programming/) - Extreme Programming (XP) ist ein iteratives Vorgehensmodell der Softwaretechnik, welches eine sehr flexible Arbeitsweise erlaubt. - [Behaviour Driven Development](https://jensjaeger.com/2008/04/behaviour-driven-development/) - Behaviour-Driven Development (BDD) ist eine Evolution des Denkens hinter Test Driven Development. Dabei wird die Sapir-Whorf Hypothese auf das Schreiben von Tests angewandt. Diese besagt: „zwischen den grammatikalischen Kategorien der Sprache, die eine Person spricht und wie diese Person die Welt versteht und sich in ihr bewegt, besteht eine systematische Beziehung“. Siehe Language, Thought and - [User Centered Design](https://jensjaeger.com/2008/04/user-centered-design/) - User Centered Design (UCD) ist ein internationaler Standard für die benutzerorientierte Gestaltung interaktiver Systeme. - [Suchmaschinenoptimierung für Rails Anwendungen](https://jensjaeger.com/2008/04/suchmaschinenoptimierung-fur-rails-anwendungen/) - Suchmaschinenoptimierung für Rails Anwendungen in 4 Artikeln: Teil 1 von 4: Aussagekräftige HTML-Titel, Teil 2 von 4: Sinnvolle HTML-Meta Angaben, Teil 3 von 4: Menschenlesbare Urls, Teil 4 von 4: Sitemap.xml - [Agile Methoden und Usability](https://jensjaeger.com/2008/04/agile-methoden-und-usability/) - Softwareentwicklung muss, um mit den Anforderungen des Marktes Schritt zu halten, mit zunehmender Geschwindigkeit erfolgen. Der Funktionsumfang selbst einfacher Anwendungen wird immer größer, die Anwendungsentwicklung somit komplexer. Zusätzlich ändern sich auch Kundenanforderungen schneller. Methoden der agilen Softwareentwicklung sind ein viel versprechender Ansatz diesen Herausforderungen zu begegnen. Bedienbarkeit und Benutzerfreundlichkeit ist ein Qualitätsmerkmal guter Software. In - [Usability Driven Development](https://jensjaeger.com/2008/04/usability-driven-development/) - Usability Driven Development (UDD) ist ein Vorgehensmodell der Softwaretechnik das Usability in einen agilen Prozess einbindet. - [Organisatorische Vorraussetzungen für UDD ](http://jensjaeger.de/organisatorische-vorraussetzungen-fur-udd/) - Die organisatorischen Vorraussetzungen für Usability Driven Development ind im wesentlichen die gleichen wie bei Extreme Programming. - [Technische Vorraussetzungen für UDD](http://jensjaeger.de/technische-vorraussetzungen-fur-udd/) - Die technische Grundvorraussetzung für UDD ist, dass es sich bei der zu entwickelnden Software um eine Anwendungssoftware, mit einer grafischen Oberfläche, handelt. - [Eine UDD Iteration](https://jensjaeger.com/2008/05/eine-udd-iteration/) - Eine Usability Driven Development Iteration besteht aus folgenden Phasen: Aufwandsabschätzung, Interface Design, Modellierung, Testdesign, Programmierung, Integration, Deployment, Usability Test - [UDD Phase 1 - Das Planungsspiel ](https://jensjaeger.com/2008/05/udd-das-planungsspiel/) - Die Entwicklung einer Software nach UDD beginnt mit einem Planungsspiel. Der Kunde oder ein Teammitglied der Geschäftsseite notiert alle Aufgaben die das System erfüllen soll in Form von Storycards. Diese Storycards werden nach Priorität sortiert und entsprechend dieser Reihenfolge entwickelt. Das Planungsspiel wird in bei jeder Iteration wiederholt. Dadurch hat die Geschäftsseite bei jedem Planungsspiel die Möglichkeit die Priorisierung zu - [UDD Phase 2 - Aufwandsabschätzung](http://jensjaeger.de/aufwandsabschaetzung/) - Jeder Entwickler übernimmt Storycards, die Arbeit bis zum nächsten Planungsspiel enthalten. Dabei wird die Zeiteinschätzung durch die Entwickler selbst vorgenommen. Das Einfachste dieses zu tun ist die “Wetter von gestern Methode”, die besagt, dass das Wetter heute mit hoher Wahrscheinlichkeit das Gleiche wie gestern ist. Das bedeutet das sich Entwickler mit ihren Schätzungen an vorhergehenden Aufgaben orientieren - [IT-Team der Hochschule Esslingen gewinnt Microsoft Imagine Cup 08](https://jensjaeger.com/2008/05/it-team-der-hochschule-esslingen-gewinnt-microsoft-imagine-cup-08/) - IT-Team der Hochschule Esslingen gewinnt beim nationalen Finale des Microsoft Imagine Cup 08. - [UDD Phase 3 - Interface Design](https://jensjaeger.com/2008/05/udd-phase-3-interface-design/) - Programmierung ist im Vergleich zum Oberflächendesign sehr aufwendig und nur schwer zu verändern. Deshalb sollte man sich zuerst dem Interface einer Anwendung zuwenden. - [UDD Phase 4 - Modellierung](https://jensjaeger.com/2008/05/udd-phase-4-modellierung/) - Nachdem die Oberfläche einer Funktion gestaltet ist, kann man sich den schwierigeren Dingen zuwenden. Die Phase Modellierung soll einen Überblick verschaffen, wie die neue Funktionalität in das Gesamtsystem integriert werden kann. Welche Datenbankfelder werden benötigt, wo im Schichtenmodell soll die Funktion implementiert werden, welche Bibliotheksfunktionen können benutzt werden, welche Algorithmen sind am geeignetsten für das - [UDD Phase 5 - Testdesign](https://jensjaeger.com/2008/06/udd-phase-5-testdesign/) - UDD Phase 5 - Testdesign. Dabei werden alle auf der zu bearbeiteten Storycard beschriebenen Funktionalitäten in Form in Tests umgesetzt. - [UDD Phase 6 - Programmierung](https://jensjaeger.com/2008/06/udd-phase-6-programmierung/) - In der Phase der Programmierung werden die Ergebnisse aus den vorherigen Phasen umgesetzt. Das zuvor gestaltete Userinterface wird implementiert, benötigte Klassen und Methoden geschrieben und Datenbankstrukturen entwickelt. - [UDD Phase 7 - Integration](https://jensjaeger.com/2008/06/udd-phase-7-integration/) - Integration bedeutet das Zusammenführen des geänderten Quellcodes mit der Codebasis. - [UDD Phase 8 - Deployment](https://jensjaeger.com/2008/06/udd-phase-8-deployment/) - Der Begriff Deployment beschreibt die automatische Verteilung und Auslieferung einer entwickelten Software. - [UDD Phase 9 - Usability Test](https://jensjaeger.com/2008/06/udd-phase-9-usability-test/) - Die abschliessende Phase einer UDD-Iteration stellt der Usability Test dar. - [Webverzeichnis 2.0](https://jensjaeger.com/2008/06/webverzeichnis-20/) - Journizer in Webverzeichnis CatalogR aufgenommen. - [Aussagekräftige Html-Titel](https://jensjaeger.com/2008/07/aussagekraeftige-html-titel/) - Aussagekräftige Html-Titel dienen der Suchmaschinenoptimierung und der Usability. Sie können für Ruby on Rails Anwendungen mit dem Plugin Headliner sehr einfach erstellt werden. - [UDD - Bei jeder Iteration](https://jensjaeger.com/2008/07/udd-bei-jeder-iteration/) - Messen Eine der wichtigsten Dinge bei UDD ist das Messen. Jeder Entwickler muss die Zeit messen die für eine Iteration benötigt wird und mit der geschätzten Zeit vergleichen. Am Anfang eines Projektes werden diese Schätzungen noch relativ viele Fehler enthalten. Im Verlauf des Projektes werden die Schätzungen jedoch mit jedem Planungsspiel besser werden. Die Geschäftsseite bekommt so - [Programmierung eines Widgets mit der Netvibes Api](https://jensjaeger.com/2008/07/programmierung-eines-widgets-mit-der-netvibes-api/) - Im Zuge des Web 2.0 wird die Integration von Inhalten immer wichtiger. Daher haben wir für Journizer ein Widget entwickelt. Dabei wurde die Netvibes API gewählt, um das Widget möglichst vielen Plattformen zur Verfügung zu stellen. - [Journizers Log – Das Online Reisemagazin!](https://jensjaeger.com/2008/07/journizers-log-das-online-reisemagazin/) - Wir haben dem Journizers Log eine eigene Webseite spendiert. Passend dazu gibts einen Aufruf an alle Reiseschriftsteller und solche die es werden wollen. - [Ruby on Rails](https://jensjaeger.com/2008/07/ruby-on-rails/) - Ruby on Rails ist ein in Ruby programmiertes Framework für die Entwicklung von Webapplikationen. Das Framework folgt dem Model-View-Controller Architekturmuster, bei dem das Softwaresystem in Datenhaltungsschicht (Model), Präsentationsschicht (View) und Programmsteuerung (Controller) aufgeteilt wird. - [Information Retrieval](https://jensjaeger.com/2008/07/information-retrieval/) - Information Retrieval (IR) ist ein Fachgebiet der Informatik, das die inhaltliche Suche nach Informationen in Dokumentensammlungen untersucht und Modelle, Methoden und Verfahren dafür entwickelt. - [Kandelmarsch 2008](https://jensjaeger.com/2008/07/kandelmarsch-2008/) - Bilder des 86. Kandelmarsches 25. Juli 2008 - [Stammformreduktion](https://jensjaeger.com/2008/07/stammformreduktion/) - Information Retrieval ist ein Verfahren, mit dem verschiedene Varianten eines Wortes auf ihren gemeinsamen Wortstamm zurückgeführt werden. - [Suchmaschinen](https://jensjaeger.com/2008/08/suchmaschinen/) - Eine Suchmaschine erstellt einen Index für eine Datenbasis, um Suchanfragen für jeden Suchbegriff mit einer nach Relevanz geordneten Ergebnisliste zu beantworten. - [Ruby](https://jensjaeger.com/2008/09/ruby/) - Die herausragenden Eigenschaften von Ruby sind: Vollständige Objektorientierung, Closures, Mixins und duck typing. - [Der PageRank-Algorithmus](https://jensjaeger.com/2008/10/der-pagerank-algorithmus/) - Die kommerzielle Websuchmaschine Google , die zur Zeit den größten Marktanteil aufweisen kann, verwendet den PageRank-Algorithmus als Grundlage für die Bewertung der Suchergebnisse. - [Kontaktinformationen semantisch annotiert](https://jensjaeger.com/2008/11/kontaktinformationen-semantisch-annotiert/) - Kontaktinformation mit hCard annotieren - [Meine Top 5 Journizer Wallpaper](https://jensjaeger.com/2008/10/meine-top-5-journizer-wallpaper/) - Top 5 Journizer Wallpaper - [Merb wird in Rails 3 gemergt!](https://jensjaeger.com/2008/12/merb-wird-in-rails-3-gemergt/) - Merb wird in Rails 3 gemerged. - [VueScan auf Deutsch](https://jensjaeger.com/2009/01/vuescan-auf-deutsch/) - Ed Hamricks geniales Scanprogramm Viewscan gibt es jetzt auch auf Deutsch. Wer eine Vollversion gekauft hat für den ist das Update umsonst. Vielen Dank für den guten Service Ed! - [Apt mit Super-Kuh-Kräften](https://jensjaeger.com/2009/03/apt-mit-super-kuh-kraeften/) - Apt hat Super-Kuh-Kräfte - [Eine Minute zum Träumen... Teil2](https://jensjaeger.com/2009/04/eine-minute-zum-traumen-teil2/) - Der zweite Teil unserer Journizer Hintergrundbilder als Präsentation. - [Copy and paste mit syntaxhighlighting](https://jensjaeger.com/2009/11/copy-and-paste-mit-syntaxhighlighting/) - Copy and paste mit syntaxhighlighting - [Menschen unterstützen die Hilfe brauchen](https://jensjaeger.com/2009/12/menschen-unterstutzen-die-hilfe-brauchen/) - Ich habe die Weihnachtszeit als Anlass genommen, um für eine gute Sache zu spenden. - [Singletons in Java mit dem Holder-Pattern](https://jensjaeger.com/2010/04/singletons-in-java-mit-dem-holder-pattern/) - Ein Singleton in Java sollte mit dem Holderpattern implementiert werden. - [Das Problem mit dem Segway](https://jensjaeger.com/2010/08/das-problem-mit-dem-segway/) - This is a translation of the essay: The Trouble with the Segway from by Paul Graham to the german language. - [Vortrag: HTML5 und CSS3 - Plattform für die Webentwicklung](https://jensjaeger.com/2011/04/vortrag-html5-und-css3-plattform-fur-die-webentwicklung/) - Nächsten Mittwoch (20.04.2011) halte ich einen Vortrag zum Thema HTML5 und CSS3 bei der JUG Karlsruhe. Abstract HTML5 und CSS3 ist Zukunft des Webs. Für neue Projekte ist es auch die Gegenwart. Es gibt heutzutage KEINEN Grund neue Anwendungen nicht mit HTML5 zu entwickeln. Die aktuellen Versionen von Safari, Chrome, Firefox und Internet Explorer unterstützen - [New page for my consulting company](https://jensjaeger.com/2014/01/new-page-for-my-consulting-company/) - I just build a new german marketing page for my consulting company. It's build with bootstrap and is much nicer than the old one, and has a full responsive design. Here is the before and after comparison: - [Thoughts I took home from ping conference](https://jensjaeger.com/2014/01/thoughts-i-took-home-from-ping-conference/) - Here are some thoughts I took home from ping conference: Future applications will have more needs for functional programming. This demand is driven by async userinterfaces and data streaming over http from different sources. Think of an application streaming the realtime positions of cars to a map. Maybe a taxi search. For me it's not - [Impressions from ping conf budapest](https://jensjaeger.com/2014/01/impressions-from-ping-conf-budapest/) - Here are some impressions from ping conference budapest. Great talks on play framework, scala and functional programming. - [JaxWS with self signed certificates ](https://jensjaeger.com/2013/12/jaxws-with-self-signed-certificates/) - Self signed certificates are common, especially on testservers. The java default solution to add the certificate to every developers and buildservers java vm is a pain in the ass. For the play WS api there is an easy workaround. To use soap webservices with JaxWS and self signed certificates I found SSLUtilities.java on Srđan Šrepflers - [Books read in 2013](https://jensjaeger.com/2013/12/books-read-in-2013/) - I try to make it a habit to read/listen to 2 business or personal education related books each month. I finally finished the last one today. Here is my read list for 2013 in chronological order: Eat that frog ( audio book ) Business Fiction ( book ) The magic of thinking big ( audio - [Join example for JPA finder](https://jensjaeger.com/2013/12/join-example-for-jpa-finder/) - The JPA finder for play 2 works with joins as well. Imagine you have a Task model with a creator: @Entity(name = "tasks") public class Task extends Model { @ManyToOne public User creator; } referenced to a User model with a name: @Entity(name = "users") public class User extends Model< User> { public String name; - [A Ebean like finder for JPA](https://jensjaeger.com/2013/12/a-ebean-like-finder-for-jpa/) - After the decision to go for JPA instead of Ebean with a Play Framework project, the first problem to solve was a replacement for the ebean finder. The project team started with these simple requirements: Jpa based Easy to use Can return a finder object, to add restrictions outside of the model (Used for generic - [A generic helper for database related tests with play 2 and JPA](https://jensjaeger.com/2013/12/a-generic-helper-for-database-related-tests-with-play-2-and-jpa/) - All your database related unit tests for a play 2 java application have to handle the fakeApplication startup, load an fresh in memory database and load the test related fixtures. You need fixy and this helper to do the trick: public class ModelTest { public FakeApplication app; public Fixy fixtures; EntityManager em = null; EntityTransaction - [Yaml-Fixtures for play 2](https://jensjaeger.com/2013/12/yaml-fixtures-for-play-2/) - Fixtures is a fancy word for sample data. Fixtures allow you to populate your testing database with predefined data before your tests run. The fixture implementation for loading testdata in play 1 was great. But all fixture related code for play 2 I found was ebean releated. After some research I decided to use Fixy - [Play 2.x WS API and self signed certificates](https://jensjaeger.com/2013/12/play-2-x-ws-api-and-self-signed-certificates/) - The play web service API provides an easy way to use your play application as an http client. Usually you should use Play's asynchronous mechanisms to use the web service response. But sometime you just want to wait for the web service responce (in a job). You can do this with the following method: public - [Play framework conference](https://jensjaeger.com/2013/12/play-framework-conference/) - Just bought a ticket to Ping Play! Edition. A 2-day by-the-community and for-the-community conference about the Play Framework. Anybody knows a good hotel near BMC? - [Replace Play @Transactional with something better](https://jensjaeger.com/2013/11/replace-play-transactional-with-something-better/) - One of the jpa issues I found in play 2 is the behaviour of the transaction handling. The default play @Transactional does some kind of magic commit. Lets have a look at the following controller action. @Transactional public static Result magicCommit(String name){ Task task = Task.findByName(name); task.name = "replacePlayTransactionalWithSomethingBetter"; return ok(); } The problem is - [JPA configuration for play framework](https://jensjaeger.com/2013/11/jpa-configuration-for-play-framework/) - In my current play project we decided to use hibernate as JPA implementation. Here is the configuration we use: Dependencies in project/Build.scala val appDependencies = Seq( javaCore, javaJdbc, javaJpa, "org.hibernate" % "hibernate-entitymanager" % "4.2.7.Final" ) Database configuration in conf/application.conf # Database configuration # ~~~~~ db.default.driver=org.h2.Driver db.default.url="jdbc:h2:file:data/db" db.default.user=sa db.default.password="" db.default.jndiName=DefaultDS jpa.default=defaultPersistenceUnit Persistence unit in conf/META-INF/persistence.xml org.hibernate.ejb.HibernatePersistence - [Play Framework 2: Ebean vs. JPA](https://jensjaeger.com/2013/11/play-framework-2-ebean-vs-jpa/) - Everytime you start a new project, you should carefully think about the libraries and dependencies you going to use for your project. This prevents you from building on libraries which will be deprecated in the near future. In Play Framework 2.3 Ebean will be replaced with JPA. Here is a discussion in the forum about - [Play Framework 2.2 in IntelliJ, errors in controllers everywhere](https://jensjaeger.com/2013/09/play-framework-2-2-in-intellij-errors-in-controllers-everywhere/) - Today I updated an application to Play Framework 2.2. After the creation of the IntelliJ config with "play idea", I got errors in every reverse route and content call. Here are some examples how the errors locked like: After fiddling around a bit I found out that the routes_routing.scala and the routes_reverseRouting.scala had errors to. - [Zero Inbox!](https://jensjaeger.com/2013/07/zero-inbox/) - I can't remember when my inbox was empty the last time. It must been years ago. This means no open support requests. No todos which are not in the project management system. No appointments not scheduled in my calendar. No open ends to catch up. Awesome feeling! Hopefully I will see this screen more often - [Java syntax sugar with Project Lombok](https://jensjaeger.com/2013/06/java-syntax-sugar-with-project-lombok/) - In one of my last projects I used Project Lombok to reduce boilerplate code. Lombok provides some annotations to remove the noise from the java language. How does it work Lombok runs as as an annotation processor which handler modifies the AST (Abstract Syntax Tree) by injecting new nodes such as methods and fields. After - [Quote: On the cruelty of really teaching computing science](https://jensjaeger.com/2013/07/quote-on-the-cruelty-of-really-teaching-computing-science/) - The programmer ... has to be able to think in terms of conceptual hierarchies that are much deeper than a single mind ever needed to face before. - Edsger W. Dijkstra - [Heating monitoring with twine](https://jensjaeger.com/2013/06/heating-monitoring-with-twine/) - Finally I found time to configure my twine. I use it to monitor the heating of a vacation home when nobody is there. The heating there is really old, and the chance of an failure is really high. With the twine software it's a no brainer to configure a setup like send an email when - [GoEuro is public beta](https://jensjaeger.com/2013/05/goeuro-is-public-beta/) - Patrick my partner at our software engineering company recently got involved in GoEuro. GoEurois a startup which aims to become the best travel search engine for Europe comparing (and combining) air, train and bus options. The goeuro team did a great work on building their software in the last months. Now the site is open - [New syntax highlighter for jensjaeger.com](https://jensjaeger.com/2013/04/new-syntax-highlighter-for-jensjaeger-com/) - I just replaced the relative simple Highlight Source Pro with the much more advanced Crayon Syntax Highlighter. Crayon has an awesome theme editor with a lot of predefined code styles: And helper for the editor to insert code snippets: And some fancy ui controls in the code block: #!/usr/bin/ruby puts "Hello World!" Happy coding! - [Quote: Ship](https://jensjaeger.com/2013/02/quote-ship/) - Real artists ship. - Steve Jobs - [Using java 1.6 on OSX](https://jensjaeger.com/2013/02/using-java-1-6-on-osx/) - Since the Java support for OSX has moved from Apple to Oracle. The old Java version are no longer shown in the oracle control panel: But there is a command line tool for selecting the java version: $ /usr/libexec/java_home -h Usage: java_home [options...] Returns the path to a Java home directory from the current user's - [Twine shipped](https://jensjaeger.com/2013/01/twine-shipped/) - After six weeks I finally got my Twine shipped from supermechanical. Yeah. I didn't got it working. The problem is I have multiple routers with the same SSID here. For some reason Twine doesn't work with this wifi setup. It's not a big deal. I plan to use the sensor somewhere else, but it sucks - [Java 7 vs. C++ Speed](https://jensjaeger.com/2013/01/java-7-vs-c-speed/) - I just found this interesting benchmark results: http://benchmarksgame.alioth.debian.org/u64q/java.php The benchmark compares the same algorithm implemented in different programming languages. Interesting on this result is that the Java 7 implementation of some algorithms, like mandelbrot, is as fast as the C++ implementation. In the worst case Java needs only the double amount of time. Of course - [IntelliJ IDEA: Eclipse key bindings on OSX](https://jensjaeger.com/2013/01/intellij-idea-eclipse-key-bindings-on-osx/) - With the latest release of IntelliJ IDEA 12 I decided to give it a try. As a heavy eclipse user it's much easier for me to use the eclipse key map. Stupidly in the eclipse key map that ships with IntelliJ the ctrl-key is used instead of the cmd-key. Windows style copy and paste on - [Configuring a proxy for maven](https://jensjaeger.com/2012/12/configuring-a-proxy-for-maven/) - To use a proxy for your maven builds just a this to your ~/.m2/settings.xml: . . http true http username secret your.fancy.proxy.com 4221 local.net|some.host.com https true https username secret your.fancy.proxy.com 4221 local.net|some.host.com . . See also the guide to using proxies in the maven documentation. - [OSX platform encoding in Maven](https://jensjaeger.com/2012/12/osx-platform-encoding-in-maven/) - How to prevent osx to use MacRoman encoding in maven builds. - [Follow me on twitter](https://jensjaeger.com/2012/12/follow-me-on-twitter/) - I am using twitter since a while now. The first tweet is from august 2010. With feedburner I automatically create a tweet for every post I write in this blog. From time to time I tweet some links or other stuff which is not worth a blog post. I never mentioned twitter on this blog - [Talk: DevFest Karlsruhe](https://jensjaeger.com/2012/10/talk-devfest-karlsruhe/) - On Saturday 03. November 2012 I will give a talk about the google closure tools on the GDG DevFest Karlsruhe GDG DevFests are large, community-run events that can offer speaker sessions across product areas, all-day hack-a-thons, code labs, and more. The event is free. You can register here. - [Another Article published in OBJEKTspektrum](https://jensjaeger.com/2012/08/another-article-published-in-objektspektrum/) - Together with André and Martin Gaedke I just published an article for the german computer journal Objektspektrum. The name of the article is: "Agile Praktiken - oder doch Impediments? Bewertung der Agilität von Praktiken in der Softwareentwicklung". In the article we discuss some common practices in the software industry and how they support or don't - [Article published in OBJEKTspektrum](https://jensjaeger.com/2012/01/article-published-in-objektspektrum/) - Together with André I wrote an article for the german computer journal Objektspektrum. The article with the name "Code-Flavours: Nützliche Java-Idiome" is published in the current issue. A code flavour is the opposite of a code smell. Similar to anti-pattern v.s. design pattern. In the article we discuss some useful code flavours for the java - [The 3C Approach for Agile Quality Assurance](https://jensjaeger.com/2012/06/the-3c-approach-for-agile-quality-assurance/) - Today I gave the talk The 3C Approach for Agile Quality Assurance on the ICSE in Zürich. The work on this was in cooperation with André Janus. Here is he abstract of the conference paper: Continuous Integration is an Agile Practice for the continuous integration of new Source Code into the Code Base including the - [Impressions from ICSE 2012](https://jensjaeger.com/2012/06/impressions-from-icse-2012/) - Impressions from ICSE 2012 and Zürich. - [Why you shouldn't use sprint as a name for an iteration](https://jensjaeger.com/2012/06/why-you-shouldnt-use-sprint-as-a-name-for-an-iteration/) - In agile development, especially the scrum approach, we often use the term “sprint” as a basic unit of time in order to measure each stage of the development process. As a definition of time, however, it really does a disservice to developers because the word itself evokes the sense of constantly doing things as fast - [Talk: The 3C Approach for Agile Quality Assurance](https://jensjaeger.com/2012/05/talk-the-3c-approach-for-agile-quality-assurance/) - Next Sunday (on 3rd June 2012) I will give a talk on the 3rd International Workshop on Emerging Trends in Software Metrics (WETSoM 2012). It's a satellite workshop of the ICSE 2012. The ICSE is one of the largest annual software engineering conferences with a great history. I'm really happy to give a talk there. The topic of the talk - [Hacking javascript: a contact form in a google maps info window](https://jensjaeger.com/2012/05/hacking-javascript-a-contact-form-in-a-google-maps-info-window/) - One of my goals last year was to be a better javascript programmer. After I finished the travel map I searched for ideas for new small projects. I came up with the idea to add a contact from to a google maps info window. Beside the google maps api and jquery mapped contact form uses - [Quote: The Top of my Todo List](https://jensjaeger.com/2012/05/quote-the-top-of-my-todo-list/) - Don't ignore your dreams. Don't work too much. Say what you think. Cultivate friendships. Be happy. - Paul Graham - The Top of my Todo List - [Hibernate relations and event listeners](https://jensjaeger.com/2012/01/hibernate-relations-and-event-listeners/) - Problems with Hibernate when using hibernate relations and event listeners. - [4Gewinnt Vanilla for iOS](https://jensjaeger.com/2012/01/4-gewinnt-vanilla/) - Christoph just released his first iOS game. A awesome iOS implementation of connect four called 4Gewinnt Vanilla. On the strongest game level there is almost no chance to win against the computer. But in the middle levels it's a perfect entertaining game. The app is designed for both iPhone and iPad and available in the - [It's all about the user interface](https://jensjaeger.com/2012/01/its-all-about-the-user-interface/) - To get better at developing user interfaces, I decided last year to learn more about javascript. Like most developers I already used javascript for years, but never invested the time to "really" learn the language. Studying a language works best for me when I have a serious project to develop. After surfing around I came - [Ruby based backend for PEP](https://jensjaeger.com/2012/01/ruby-base-backend-for-pep/) - Nice and small ruby based website backend. - [Interview about our work on skischulverwaltung.de](https://jensjaeger.com/2011/07/interview-about-our-work-on-skischulverwaltung-de/) - We just published an interview about our work on skischulverwaltung.de and some personal thoughts. Skischulverwaltung.de is our SaaS solution for skischools. If you speek german you can read it here. - [Autobahn81 - design in the fast lane](https://jensjaeger.com/2011/07/autobahn81-design-in-the-fast-lane/) - We startet a new project some months ago. A small design company called Autobahn81. The companies focus is on print, web and some product design. The company is a platform to learn new things and work on fresh ideas. - [Update of jensjaegerconsulting.com to HTML5](https://jensjaeger.com/2011/06/update-of-jensjaegerconsulting-com-to-html5/) - I just updated my german company page: jensjaegerconsulting.com to HTML5. I used the HTML5 builderplate as a starting point cleared up the visual design of the page. Here is a before and after comparison: - [How to use the HTML5 elements](https://jensjaeger.com/2011/06/how-to-use-the-html5-elements/) - These are the important new HTML5 elements: This diagram shows how to use them: You can also download the diagram as OmniGraffle file. - [HTML5 and CSS3 talk - Slides and Code](https://jensjaeger.com/2011/05/html5-and-css3-talk-slides-and-code/) - I did a talk about HTML5 & CSS3 at the Java User Group Karlsruhe. Here are the slides: HTML5 & CSS3 - Slides At the beginning of my talk I showed this awesome video: I wrote some code for preparing this presentation. The code is available on github: Simple html5 canvas bar chart Html5 form - [JUnit test exception handling fail](https://jensjaeger.com/2011/05/junit-test-exception-handling-fail/) - I just found this peace of code in a big java project i'm working on: public void testSomething() throws IOException { ... catch (Exception e) { StringWriter sw = new StringWriter(); e.printStackTrace(new PrintWriter(sw)); fail(sw.toString()); } } Wtf? I changed it to: public void testSomething() throws IOException { ... catch (Exception e) { fail(e.getMessage()); } } - [Quadrocopter playing tennis](https://jensjaeger.com/2011/03/quadrocopter-playing-tennis/) - Scientist of ETH Zürich programmed the flying Hummingbirds from Ascending Technologies to play tennis. Awesome! - [Great release notes design](https://jensjaeger.com/2011/02/great-release-notes-design/) - Great release notes design for 1Password. - [Quote: construction of programs](https://jensjaeger.com/2011/03/quote-construction-of-programs/) - Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do. - Donald Knuth - [Quote: Design](https://jensjaeger.com/2011/01/quote-design/) - Our guiding principle was that design is neither an intellectual nor a material affair, but simply an integral part of the stuff of life, necessary for everyone in a civilized society. - Walter Gropius founder of the Bauhaus School - [Quote: Non-technical questions](https://jensjaeger.com/2010/12/quote-non-technical-questions/) - Non-technical questions sometimes don't have an answer at all. - Linus Torvalds - [My personal top 5 iPhone apps](https://jensjaeger.com/2010/09/my-personal-top-5-iphone-apps/) - My personal top 5 iPhone apps: Analytics Pro, 1password, Insight, 20 Minute meals, Moto X Mayhem - [A segway in cool](https://jensjaeger.com/2010/09/a-segway-in-cool/) - Ryno - A segway like vehicle that really looks cool. - [Blog refactoring](https://jensjaeger.com/2010/08/blog-refactoring/) - After some time writing in this blog. Everything got a bit chaotic. I had to refactor it. I changed the following things to make the blog easier to use: I changed the navigation of the blog finally to english. I moved all categories to tags and added only two categories for english and german posts. - [Easy backup and cleanup for logfiles](https://jensjaeger.com/2008/12/easy-backup-and-cleanup-for-logfiles/) - For your applications in production you should keep some logfiles but delete the older ones to save files space. The following bash script will do the job. It will zip all files older than 7 days. Delete all files older than 30 days. Folders will be ignored. #!/bin/bash directory="/application/log" old="7" older="30" find $directory -mtime +$old - [RailsWayCon 2009 day 2](https://jensjaeger.com/2009/07/railswaycon-2009-day-2/) - RailsWayCon 2009 day 2 - [Kill all processes of a single user](https://jensjaeger.com/2010/04/kill-all-processes-of-a-single-user/) - kill -9 `ps -u $username -o "pid="` - [Delete .svn folders](https://jensjaeger.com/2009/07/delete-svn-folders/) - Delete .svn folders - [RailWayCon 2009](https://jensjaeger.com/2009/05/railwaycon-2009/) - The conference on Ruby, Rails and more - [E-Book about software pricing](https://jensjaeger.com/2010/06/e-book-about-software-pricing/) - Through this entry in the Teambox blog from Pablo Villalba I discovered the E-Book "Don't just roll the dice - A usefully short guide to software pricing". The book written by Neil Davidson is available for free as pdf on the official site or as physical copy in bookstores. Here are the, in my opinion, - [How to find out the linux version](https://jensjaeger.com/2009/09/how-to-find-out-the-linux-version/) - How to find out the linux version. Kernel, Redhat, Debian or Suse. - [The state of ssd in personal computing](https://jensjaeger.com/2010/05/the-state-of-ssd-in-personal-computing/) - For christmas I got a new Laptop from SantaClaus :-). After months of using it I finally found time to blog about it. The Laptop is a 15-inch MacBook Pro with an Intel Core 2 Duo 2.66 Ghz. I updgraded it to 8Gb RAM and bought an Intel X25-M SATA SOLID-STATE-DRIVE with 160 Gb. Here - [Extreme feedback device - The Batman Lamp ](https://jensjaeger.com/2010/04/extreme-feedback-device-the-batman-lamp/) - In my current project my coworker Christoph an I decided to build our own eXtreme feedback device for our continious build. We started with the NET-PwrCtrl HOME a power outlet controlled over ethernet. Then we looked for a fancy lamp. Bears and Lava lamps are already out there. So we looked for something different. We - [Measure your working time on windows](https://jensjaeger.com/2009/10/measure-your-working-time-on-windows/) - Measure your working time on windows - [Jax London 2010](https://jensjaeger.com/2010/03/jax-london-2010/) - I attended to JAX London 2010 for two days. Here are my impressions of some of the talks i attended there: Jax Keynote: The Busy Developer's Guide to Iconoclasm Ted Neward When ted was a kid the rule was to go to school, get a good job an make good money. But the formula is - [Set up ssh key pairs](https://jensjaeger.com/2008/12/set-up-ssh-key-pairs/) - Set up ssh key pairs - [Flush the DNS Cache in Mac OS X 10.5 or higher](https://jensjaeger.com/2010/03/flush-the-dns-cache-in-mac-os-x-10-5-or-higher/) - dscacheutil -flushcache - [Copy something directly into the clipboard from Terminal.app](https://jensjaeger.com/2010/03/copy-something-directly-into-the-clipboard-from-terminal-app/) - cat foo.txt | pbcopy - [Java enums from a given string](https://jensjaeger.com/2010/01/java-enums-from-a-given-string/) - To generate a instance of a enum class by a given string you can use the valueOf() method. - [Show DB2 SQLCODES ](https://jensjaeger.com/2010/01/show-db2-sqlcodes/) - Show DB2 SQLCODES: db2 ? SQL$FOO (Replace $FOO with your sql code) - [Java BigDecimal is negative?](https://jensjaeger.com/2009/09/java-bigdecimal-is-negative/) - Howto check if a Java BigDecimal is negative. - [HOWTO: Install a rails stack with ruby-enterprise and passenger on CentOS](https://jensjaeger.com/2009/02/howto-install-a-rails-stack-on-centos/) - Step by step tutorial to install an rails stack with ruby-enterprise and passenger (mod_rails) on CentOS. - [Testing that a method throws an exception](https://jensjaeger.com/2009/09/testing-that-a-method-throws-an-exception/) - Testing that a method throws an exception - [RailsWayCon 2009 day 1 part 2](https://jensjaeger.com/2009/06/railswaycon-2009-day-1-part-2/) - RailsWayCon Keynote: Present and Future of Programming Languages Through a Ruby Lens Ola Bini Ola gives an awesome Keynote about his toughts on programming languages in general. The talk was really great and he gives so much information in a short time that is hard to cover everything in a blog entry. He made some - [Uppercase in BASH](https://jensjaeger.com/2009/06/uppercase-in-bash/) - echo "foo" | tr '[:lower:]' '[:upper:]' Reverse upper with lower to get lowercase. - [Styleguide for Rails Projects](https://jensjaeger.com/2008/04/styleguide-for-rails-projects/) - Coding Standards and Styleguide for Ruby on Rails Projects. - [RailsWayCon 2009 day 1 part 1](https://jensjaeger.com/2009/05/railswaycon-2009-day-1-part-1/) - RailsWayCon 2009 day 1 part 1 - [Remove blank lines with grep](https://jensjaeger.com/2009/02/remove-blank-lines-with-grep/) - grep -v ^$ - [Display the TOTAL harddisk size in linux](https://jensjaeger.com/2008/11/display-the-total-harddisk-size-in-linux/) - Display the TOTAL harddisk size in linux - [Journizing - The Throne of the gods](https://jensjaeger.com/2008/09/journizing-the-throne-of-the-gods/) - Who hasn’t dreamt of packing up and just leaving their daily lives behind for a while? A Newfoundland girl and her German partner have done just that! Sherrie McCarthy, an English language teacher from Newfoundland Canada, and Patrick Schweizer, an IT consultant from Sindelfingen, Germany, are doing just that. They are escaping their daily routines ## Pages - [Site Notice](https://jensjaeger.com/sitenotice/) - Information provided according to Sec. 5 German Telemedia Act (TMG): JSE GmbHAm Buchental 371069 Sindelfingen Contact: Telephone: +49 (0) 7031 70205-90E-Mail: kontakt [at] jensjaeger.de Responsible for contents acc. to Sec. 55, para. 2 German Federal Broadcasting Agreement (RstV): Jens JägerStichstraße 3871069 Sindelfingen Liability for Contents As service providers, we are liable for own contents of - [Generated Homepage](https://jensjaeger.com/generated-homepage/) - This has been autogenerated as a placeholder for homepage. - [Blog](https://jensjaeger.com/blog/) - This has been autogenerated as a placeholder for blog. - [Data protection](https://jensjaeger.com/data-protection/) - Privacy Policy 1. An overview of data protection General The following gives a simple overview of what happens to your personal information when you visit our website. Personal information is any data with which you could be personally identified. Detailed information on the subject of data protection can be found in our privacy policy found - [About](https://jensjaeger.com/about/) - About jensjaeger.com Just a blog about developing web applications with Java, Scala, Ruby, Javascript and Playframework. Some other geeky or technical stuff might come along. About me Freelancing Webdeveloper based near Stuttgart, Germany. Love to spend time with my family or on a mountainbike or sailing trip with friends. Contact Feel free to contact my - [More](https://jensjaeger.com/more/) - If you speek german there is more: Read my german blog on buisness and investing: jensjaeger.com. Have a look on the pages of my it consulting company: - [Kontakt/Impressum](https://jensjaeger.com/kontakt/) - Impressum - jensjaeger.com - [Über Jens Jäger](https://jensjaeger.com/ueber-jens-jaeger/) - Ich bin freiberuflicher Berater und Softwareentwickler. Ich beschäftige mich mit Softwaretechnik, agiler Softwareentwicklung, Usability und Suchtechnologie. Meine Kernkompetenzen liegen in der Analyse, Modellierung und Implementierung komplexer datenbankgestützter Systeme mit den Technologien JavaEE und Ruby on Rails. Ich bin Gründungsmitglied der Reisecommunity journizer.com. Meine Aufgaben bei Journizer können in kurzen Worten mit dem fantastisch klingenden Titel Chief - [Musik](https://jensjaeger.com/musik/) - Ohne Musik wäre das Leben ein Irrtum. Nietzsche - [ScribbishWPde](https://jensjaeger.com/scribbishwp_de/) - ScribbishWPde - ein Design für Wordpress ## Categories - [English](https://jensjaeger.com/category/english/) - [German](https://jensjaeger.com/category/german/) - [News](https://jensjaeger.com/category/news/) - [Java](https://jensjaeger.com/category/java/) ## Tags - [Usability](https://jensjaeger.com/tag/usability/) - [Software engineering](https://jensjaeger.com/tag/softwareengineering/) - [Benutzerfreundlichkeit](https://jensjaeger.com/tag/benutzerfreundlichkeit/) - [Gebrauchstauglichkeit](https://jensjaeger.com/tag/gebrauchstauglichkeit/) - [Bedienbarkeit](https://jensjaeger.com/tag/bedienbarkeit/) - [Nutzbarkeit](https://jensjaeger.com/tag/nutzbarkeit/) - [Verwendbarkeit](https://jensjaeger.com/tag/verwendbarkeit/) - [Agile Werte](https://jensjaeger.com/tag/agile-werte/) - [DIN EN ISO 9241](https://jensjaeger.com/tag/din-en-iso-9241/) - [DRY](https://jensjaeger.com/tag/dry/) - [DRY-Prinzip](https://jensjaeger.com/tag/dry-prinzip/) - [KISS](https://jensjaeger.com/tag/kiss/) - [KISS-Prinzip](https://jensjaeger.com/tag/kiss-prinzip/) - [Refactoring](https://jensjaeger.com/tag/refactoring/) - [BDD](https://jensjaeger.com/tag/bdd/) - [TDD](https://jensjaeger.com/tag/tdd/) - [agile Softwareentwicklung](https://jensjaeger.com/tag/agile-softwareentwicklung/) - [Ruby on Rails](https://jensjaeger.com/tag/ruby-on-rails/) - [Suchmaschinenoptimierung](https://jensjaeger.com/tag/suchmaschinenoptimierung/) - [XP](https://jensjaeger.com/tag/xp/) - [Usability Test](https://jensjaeger.com/tag/usability-test/) - [Styleguide](https://jensjaeger.com/tag/styleguide/) - [coding standards](https://jensjaeger.com/tag/coding-standards/) - [Vorgehensmodell](https://jensjaeger.com/tag/vorgehensmodell/) - [extreme programming](https://jensjaeger.com/tag/extreme-programming/) - [User Centered Design](https://jensjaeger.com/tag/user-centered-design/) - [UCD](https://jensjaeger.com/tag/ucd/) - [DIN EN ISO 13407](https://jensjaeger.com/tag/din-en-iso-13407/) - [software engineering](https://jensjaeger.com/tag/software-engineering/) - [Behaviour Driven Development](https://jensjaeger.com/tag/behaviour-driven-development/) - [seo](https://jensjaeger.com/tag/seo/) - [Usability Driven Development](https://jensjaeger.com/tag/usability-driven-development/) - [UDD](https://jensjaeger.com/tag/udd/) - [Planungsspiel](https://jensjaeger.com/tag/planungsspiel/) - [Storycards](https://jensjaeger.com/tag/storycards/) - [Aufwandsabschätzung](https://jensjaeger.com/tag/aufwandsabschatzung/) - [Imagine Cup](https://jensjaeger.com/tag/imagine-cup/) - [PoinT](https://jensjaeger.com/tag/point/) - [Power in Time](https://jensjaeger.com/tag/power-in-time/) - [Hochschule Esslingen](https://jensjaeger.com/tag/hochschule-esslingen/) - [Oberflächendesign](https://jensjaeger.com/tag/oberflachendesign/) - [Interface Design](https://jensjaeger.com/tag/interface-design/) - [Modellierung](https://jensjaeger.com/tag/modellierung/) - [wallpaper](https://jensjaeger.com/tag/wallpaper/) - [Reisebilder](https://jensjaeger.com/tag/reisebilder/) - [Hintergrundbild](https://jensjaeger.com/tag/hintergrundbild/) - [Journizer](https://jensjaeger.com/tag/journizer/) - [Reisefoto](https://jensjaeger.com/tag/reisefoto/) - [Integration](https://jensjaeger.com/tag/integration/) - [Deployment](https://jensjaeger.com/tag/deployment/) - [Web2.0](https://jensjaeger.com/tag/web20/) - [CatalogR](https://jensjaeger.com/tag/catalogr/) - [Webkatalog](https://jensjaeger.com/tag/webkatalog/) - [Messen](https://jensjaeger.com/tag/messen/) - [Dokumentation](https://jensjaeger.com/tag/dokumentation/) - [Widgets](https://jensjaeger.com/tag/widgets/) - [Netvibes](https://jensjaeger.com/tag/netvibes/) - [XML](https://jensjaeger.com/tag/xml/) - [JavaScript](https://jensjaeger.com/tag/javascript/) - [CSS](https://jensjaeger.com/tag/css/) - [Jlog](https://jensjaeger.com/tag/jlog/) - [Journizers Log](https://jensjaeger.com/tag/journizers-log/) - [Suchmaschinen](https://jensjaeger.com/tag/suchmaschinen/) - [Information Retrieval](https://jensjaeger.com/tag/information-retrieval/) - [Kandelmarsch](https://jensjaeger.com/tag/kandelmarsch/) - [Stammformreduktion](https://jensjaeger.com/tag/stammformreduktion/) - [Algorithmen](https://jensjaeger.com/tag/algorithmen/) - [Ruby](https://jensjaeger.com/tag/ruby/) - [The Throne of the gods](https://jensjaeger.com/tag/the-throne-of-the-gods/) - [Podcast](https://jensjaeger.com/tag/podcast/) - [PageRank](https://jensjaeger.com/tag/pagerank/) - [Mikroformate](https://jensjaeger.com/tag/mikroformate/) - [Linux](https://jensjaeger.com/tag/linux/) - [Harddisk](https://jensjaeger.com/tag/harddisk/) - [resize](https://jensjaeger.com/tag/resize/) - [fdisk](https://jensjaeger.com/tag/fdisk/) - [microformate](https://jensjaeger.com/tag/microformate/) - [hcard](https://jensjaeger.com/tag/hcard/) - [semantic Web](https://jensjaeger.com/tag/semantic-web/) - [Snippets](https://jensjaeger.com/tag/snippets/) - [backup](https://jensjaeger.com/tag/backup/) - [logfiles](https://jensjaeger.com/tag/logfiles/) - [bash](https://jensjaeger.com/tag/bash/) - [ssh](https://jensjaeger.com/tag/ssh/) - [sshkeypairs](https://jensjaeger.com/tag/sshkeypairs/) - [scp](https://jensjaeger.com/tag/scp/) - [Merb](https://jensjaeger.com/tag/merb/) - [Framework](https://jensjaeger.com/tag/framework/) - [Software](https://jensjaeger.com/tag/software/) - [Viewscan](https://jensjaeger.com/tag/viewscan/) - [Scansoftware](https://jensjaeger.com/tag/scansoftware/) - [rails](https://jensjaeger.com/tag/rails/) - [ruby-enterprise](https://jensjaeger.com/tag/ruby-enterprise/) - [passenger](https://jensjaeger.com/tag/passenger/) - [mod-rails](https://jensjaeger.com/tag/mod-rails/) - [cent os](https://jensjaeger.com/tag/cent-os/) - [howto](https://jensjaeger.com/tag/howto/) - [grep](https://jensjaeger.com/tag/grep/) - [blank lines](https://jensjaeger.com/tag/blank-lines/) - [Leerzeilen](https://jensjaeger.com/tag/leerzeilen/) - [debian](https://jensjaeger.com/tag/debian/) - [apt get](https://jensjaeger.com/tag/apt-get/) - [Super Kuh](https://jensjaeger.com/tag/super-kuh/) - [Java](https://jensjaeger.com/tag/java/) - [railswaycon2009](https://jensjaeger.com/tag/railswaycon2009/) - [Konferenz](https://jensjaeger.com/tag/konferenz/) - [haml](https://jensjaeger.com/tag/haml/) - [jruby](https://jensjaeger.com/tag/jruby/) - [couchdb](https://jensjaeger.com/tag/couchdb/) - [uppercase](https://jensjaeger.com/tag/uppercase/) - [lowercase](https://jensjaeger.com/tag/lowercase/) - [svn](https://jensjaeger.com/tag/svn/) - [Subversion](https://jensjaeger.com/tag/subversion/) - [Redhat](https://jensjaeger.com/tag/redhat/) - [Suse](https://jensjaeger.com/tag/suse/) - [Distribution](https://jensjaeger.com/tag/distribution/) - [version](https://jensjaeger.com/tag/version/) - [Junit](https://jensjaeger.com/tag/junit/) - [BigDecimal](https://jensjaeger.com/tag/bigdecimal/) - [cygwin](https://jensjaeger.com/tag/cygwin/) - [windows](https://jensjaeger.com/tag/windows/) - [Quellcode](https://jensjaeger.com/tag/quellcode/) - [rtf](https://jensjaeger.com/tag/rtf/) - [copyandpaste](https://jensjaeger.com/tag/copyandpaste/) - [keynote](https://jensjaeger.com/tag/keynote/) - [betterplace](https://jensjaeger.com/tag/betterplace/) - [spende](https://jensjaeger.com/tag/spende/) - [Weihnachten](https://jensjaeger.com/tag/weihnachten/) - [db2](https://jensjaeger.com/tag/db2/) - [sql](https://jensjaeger.com/tag/sql/) - [sqlcode](https://jensjaeger.com/tag/sqlcode/) - [enum](https://jensjaeger.com/tag/enum/) - [Mac OS X](https://jensjaeger.com/tag/mac-os-x/) - [Terminal.app](https://jensjaeger.com/tag/terminal-app/) - [Jax](https://jensjaeger.com/tag/jax/) - [Clojure](https://jensjaeger.com/tag/clojure/) - [agile](https://jensjaeger.com/tag/agile/) - [OSGi](https://jensjaeger.com/tag/osgi/) - [Java EE](https://jensjaeger.com/tag/java-ee/) - [Groovy](https://jensjaeger.com/tag/groovy/) - [Singleton](https://jensjaeger.com/tag/singleton/) - [Pattern](https://jensjaeger.com/tag/pattern/) - [Batman](https://jensjaeger.com/tag/batman/) - [eXtreme feedback device](https://jensjaeger.com/tag/extreme-feedback-device/) - [continious integration](https://jensjaeger.com/tag/continious-integration/) - [PowerControl](https://jensjaeger.com/tag/powercontrol/) - [cruisecontrol](https://jensjaeger.com/tag/cruisecontrol/) - [SSD](https://jensjaeger.com/tag/ssd/) - [Solid-state-drive](https://jensjaeger.com/tag/solid-state-drive/) - [xbench](https://jensjaeger.com/tag/xbench/) - [performance](https://jensjaeger.com/tag/performance/) - [laptop](https://jensjaeger.com/tag/laptop/) - [Ubuntu](https://jensjaeger.com/tag/ubuntu/) - [pricing](https://jensjaeger.com/tag/pricing/) - [ebook](https://jensjaeger.com/tag/ebook/) - [product](https://jensjaeger.com/tag/product/) - [Segway](https://jensjaeger.com/tag/segway/) - [Übersetzungen](https://jensjaeger.com/tag/ubersetzungen/) - [Fahrzeug](https://jensjaeger.com/tag/fahrzeug/) - [Founding](https://jensjaeger.com/tag/founding/) - [RYNO](https://jensjaeger.com/tag/ryno/) - [transport](https://jensjaeger.com/tag/transport/) - [iPhone](https://jensjaeger.com/tag/iphone/) - [analytics](https://jensjaeger.com/tag/analytics/) - [analytics pro](https://jensjaeger.com/tag/analytics-pro/) - [insight](https://jensjaeger.com/tag/insight/) - [ios](https://jensjaeger.com/tag/ios/) - [1password](https://jensjaeger.com/tag/1password/) - [2o minute meals](https://jensjaeger.com/tag/2o-minute-meals/) - [Moto X Mayhem](https://jensjaeger.com/tag/moto-x-mayhem/) - [basecamp](https://jensjaeger.com/tag/basecamp/) - [Quote](https://jensjaeger.com/tag/quote/) - [questions](https://jensjaeger.com/tag/questions/) - [design](https://jensjaeger.com/tag/design/) - [bauhaus](https://jensjaeger.com/tag/bauhaus/) - [construction](https://jensjaeger.com/tag/construction/) - [programming](https://jensjaeger.com/tag/programming/) - [release notes](https://jensjaeger.com/tag/release-notes/) - [tennis](https://jensjaeger.com/tag/tennis/) - [quadrocopter](https://jensjaeger.com/tag/quadrocopter/) - [hummingbird](https://jensjaeger.com/tag/hummingbird/) - [robot](https://jensjaeger.com/tag/robot/) - [html5](https://jensjaeger.com/tag/html5/) - [css3](https://jensjaeger.com/tag/css3/) - [talk](https://jensjaeger.com/tag/talk/) - [presentation](https://jensjaeger.com/tag/presentation/) - [JUG Karlsruhe](https://jensjaeger.com/tag/jug-karlsruhe/) - [canvas](https://jensjaeger.com/tag/canvas/) - [github](https://jensjaeger.com/tag/github/) - [slides](https://jensjaeger.com/tag/slides/) - [code](https://jensjaeger.com/tag/code/) - [video](https://jensjaeger.com/tag/video/) - [form](https://jensjaeger.com/tag/form/) - [exception handling](https://jensjaeger.com/tag/exception-handling/) - [wtf](https://jensjaeger.com/tag/wtf/) - [elements](https://jensjaeger.com/tag/elements/) - [header](https://jensjaeger.com/tag/header/) - [footer](https://jensjaeger.com/tag/footer/) - [nav](https://jensjaeger.com/tag/nav/) - [section](https://jensjaeger.com/tag/section/) - [article](https://jensjaeger.com/tag/article/) - [aside](https://jensjaeger.com/tag/aside/) - [jensjaeger consulting](https://jensjaeger.com/tag/jensjaeger-consulting/) - [builderplate](https://jensjaeger.com/tag/builderplate/) - [autobahn81](https://jensjaeger.com/tag/autobahn81/) - [ideas](https://jensjaeger.com/tag/ideas/) - [interview](https://jensjaeger.com/tag/interview/) - [skischulverwaltung](https://jensjaeger.com/tag/skischulverwaltung/) - [saas](https://jensjaeger.com/tag/saas/) - [jquery](https://jensjaeger.com/tag/jquery/) - [google maps](https://jensjaeger.com/tag/google-maps/) - [google maps api](https://jensjaeger.com/tag/google-maps-api/) - [4Gewinnt](https://jensjaeger.com/tag/4gewinnt/) - [game](https://jensjaeger.com/tag/game/) - [parrot](https://jensjaeger.com/tag/parrot/) - [Pep](https://jensjaeger.com/tag/pep/) - [backend](https://jensjaeger.com/tag/backend/) - [design company](https://jensjaeger.com/tag/design-company/) - [travel map](https://jensjaeger.com/tag/travel-map/) - [php](https://jensjaeger.com/tag/php/) - [user interface](https://jensjaeger.com/tag/user-interface/) - [OBJEKTspektrum](https://jensjaeger.com/tag/objektspektrum/) - [Code-Flavours](https://jensjaeger.com/tag/code-flavours/) - [design pattern](https://jensjaeger.com/tag/design-pattern/) - [connect four](https://jensjaeger.com/tag/connect-four/) - [iPad](https://jensjaeger.com/tag/ipad/) - [app store](https://jensjaeger.com/tag/app-store/) - [JPA](https://jensjaeger.com/tag/jpa/) - [Oracle](https://jensjaeger.com/tag/oracle/) - [MSSql](https://jensjaeger.com/tag/mssql/) - [Hibernate](https://jensjaeger.com/tag/hibernate/) - [Spring](https://jensjaeger.com/tag/spring/) - [Bug](https://jensjaeger.com/tag/bug/) - [relations](https://jensjaeger.com/tag/relations/) - [event listener](https://jensjaeger.com/tag/event-listener/) - [Grails](https://jensjaeger.com/tag/grails/) - [dreams](https://jensjaeger.com/tag/dreams/) - [work](https://jensjaeger.com/tag/work/) - [happy](https://jensjaeger.com/tag/happy/) - [jquery.validate](https://jensjaeger.com/tag/jquery-validate/) - [jquery.from](https://jensjaeger.com/tag/jquery-from/) - [ajax](https://jensjaeger.com/tag/ajax/) - [metrics](https://jensjaeger.com/tag/metrics/) - [ICSE](https://jensjaeger.com/tag/icse/) - [Switzerland](https://jensjaeger.com/tag/switzerland/) - [conference](https://jensjaeger.com/tag/conference/) - [quality](https://jensjaeger.com/tag/quality/) - [twitter](https://jensjaeger.com/tag/twitter/) - [tweet](https://jensjaeger.com/tag/tweet/) - [social](https://jensjaeger.com/tag/social/) - [3C](https://jensjaeger.com/tag/3c/) - [continuous measurement](https://jensjaeger.com/tag/continuous-measurement/) - [continuous improvement](https://jensjaeger.com/tag/continuous-improvement/) - [quality assurance](https://jensjaeger.com/tag/quality-assurance/) - [software metrics](https://jensjaeger.com/tag/software-metrics/) - [empirical case study](https://jensjaeger.com/tag/empirical-case-study/) - [Zürich](https://jensjaeger.com/tag/zurich/) - [ICSE 2012](https://jensjaeger.com/tag/icse-2012/) - [pictures](https://jensjaeger.com/tag/pictures/) - [impressions](https://jensjaeger.com/tag/impressions/) - [SCRUM](https://jensjaeger.com/tag/scrum/) - [sprint](https://jensjaeger.com/tag/sprint/) - [iteration](https://jensjaeger.com/tag/iteration/) - [linguistic relativity](https://jensjaeger.com/tag/linguistic-relativity/) - [articleX](https://jensjaeger.com/tag/articlex/) - [closure](https://jensjaeger.com/tag/closure/) - [DevFest](https://jensjaeger.com/tag/devfest/) - [GDG DevFest Karlsruhe](https://jensjaeger.com/tag/gdg-devfest-karlsruhe/) - [Karlsruhe](https://jensjaeger.com/tag/karlsruhe/) - [maven](https://jensjaeger.com/tag/maven/) - [utf8](https://jensjaeger.com/tag/utf8/) - [MacRoman](https://jensjaeger.com/tag/macroman/) - [encoding](https://jensjaeger.com/tag/encoding/) - [proxy](https://jensjaeger.com/tag/proxy/) - [http](https://jensjaeger.com/tag/http/) - [https](https://jensjaeger.com/tag/https/) - [IntelliJ](https://jensjaeger.com/tag/intellij/) - [key map](https://jensjaeger.com/tag/key-map/) - [C++](https://jensjaeger.com/tag/c/) - [speed](https://jensjaeger.com/tag/speed/) - [IDEA](https://jensjaeger.com/tag/idea/) - [Eclipse](https://jensjaeger.com/tag/eclipse/) - [twine](https://jensjaeger.com/tag/twine/) - [sensor](https://jensjaeger.com/tag/sensor/) - [ubicomp](https://jensjaeger.com/tag/ubicomp/) - [Internet of Things](https://jensjaeger.com/tag/internet-of-things/) - [jvm](https://jensjaeger.com/tag/jvm/) - [Java 1.6](https://jensjaeger.com/tag/java-1-6/) - [Java 1.7](https://jensjaeger.com/tag/java-1-7/) - [ship](https://jensjaeger.com/tag/ship/) - [syntax highlighting](https://jensjaeger.com/tag/syntax-highlighting/) - [GoEuro](https://jensjaeger.com/tag/goeuro/) - [startup](https://jensjaeger.com/tag/startup/) - [travel](https://jensjaeger.com/tag/travel/) - [Lombok](https://jensjaeger.com/tag/lombok/) - [boilerplate](https://jensjaeger.com/tag/boilerplate/) - [syntax sugar](https://jensjaeger.com/tag/syntax-sugar/) - [programmer](https://jensjaeger.com/tag/programmer/) - [Dijkstra](https://jensjaeger.com/tag/dijkstra/) - [inbox](https://jensjaeger.com/tag/inbox/) - [email](https://jensjaeger.com/tag/email/) - [zero inbox](https://jensjaeger.com/tag/zero-inbox/) - [Scala](https://jensjaeger.com/tag/scala/) - [Play Framework](https://jensjaeger.com/tag/play-framework/) - [Play Framework 2.2](https://jensjaeger.com/tag/play-framework-2-2/) - [Ebean](https://jensjaeger.com/tag/ebean/) - [Play Framework 2.3](https://jensjaeger.com/tag/play-framework-2-3/) - [Play4JPA](https://jensjaeger.com/tag/play4jpa/) - [transaction](https://jensjaeger.com/tag/transaction/) - [commit](https://jensjaeger.com/tag/commit/) - [Ping Play! Edition](https://jensjaeger.com/tag/ping-play-edition/) - [webservice](https://jensjaeger.com/tag/webservice/) - [rest](https://jensjaeger.com/tag/rest/) - [SSLEngine problem](https://jensjaeger.com/tag/sslengine-problem/) - [SSLHandshakeException](https://jensjaeger.com/tag/sslhandshakeexception/) - [certificates](https://jensjaeger.com/tag/certificates/) - [application.conf](https://jensjaeger.com/tag/application-conf/) - [Finder](https://jensjaeger.com/tag/finder/) - [Query](https://jensjaeger.com/tag/query/) - [yaml](https://jensjaeger.com/tag/yaml/) - [fixture](https://jensjaeger.com/tag/fixture/) - [fixtures](https://jensjaeger.com/tag/fixtures/) - [fixy](https://jensjaeger.com/tag/fixy/) - [Unittest](https://jensjaeger.com/tag/unittest/) - [ModelTest](https://jensjaeger.com/tag/modeltest/) - [join](https://jensjaeger.com/tag/join/) - [audiobooks](https://jensjaeger.com/tag/audiobooks/) - [books](https://jensjaeger.com/tag/books/) - [reading](https://jensjaeger.com/tag/reading/) - [ssl](https://jensjaeger.com/tag/ssl/) - [JaxWS](https://jensjaeger.com/tag/jaxws/) - [soap](https://jensjaeger.com/tag/soap/) - [pingconf](https://jensjaeger.com/tag/pingconf/) - [budapest](https://jensjaeger.com/tag/budapest/) - [functional programming](https://jensjaeger.com/tag/functional-programming/) - [free monad](https://jensjaeger.com/tag/free-monad/) - [play](https://jensjaeger.com/tag/play/) - [consulting](https://jensjaeger.com/tag/consulting/) - [company](https://jensjaeger.com/tag/company/) - [bootstrap](https://jensjaeger.com/tag/bootstrap/) - [responsive](https://jensjaeger.com/tag/responsive/) - [blog](https://jensjaeger.com/tag/blog/) - [german](https://jensjaeger.com/tag/german-2/) - [business](https://jensjaeger.com/tag/business/) - [investment](https://jensjaeger.com/tag/investment/) - [journizer.com](https://jensjaeger.com/tag/journizer-com/) - [Projects](https://jensjaeger.com/tag/projects/) - [prettytime](https://jensjaeger.com/tag/prettytime/) - [date format](https://jensjaeger.com/tag/date-format/) - [agohumanized](https://jensjaeger.com/tag/agohumanized/) - [sbt](https://jensjaeger.com/tag/sbt/) - [tls](https://jensjaeger.com/tag/tls/) - [security](https://jensjaeger.com/tag/security/) - [letsencrypt](https://jensjaeger.com/tag/letsencrypt/)