Kernel bragging rights
It has finally happened and I earned my Kernel developer bragging rights: I encountered a SegFault in the linux kernel’s themal monitoring tool tmon and was able to fix that. This might not be much measured by the standards of seasoned kernel devs and it’s just one of the tools most people will never use, but for me it was a huge step and feels like a real accomplishment :)
read moreThe end of captchas?
This might be the end of captchas in the not-so-distant future: This machine kills CAPTCHAs
read moreexp4j available on maven central
The math expression evaluation library exp4j has been published on the sonatype nexus server, so you can include the maven artifact in your projects without referencing the congrace.de repository.
read moreSecuring a RESTful JPA WebApp with Tomcat's JDBCRealm and Jersey via HTTP Basic-Auth
I want to describe a way to secure a JAX-RS webapp using HTTP Basic-Auth in Apache Tomcat with a JDBCRealm. There’s always the question of how to secure a RESTful webapp without breaking one of the big REST paradigms: Do not maintain session state on the server side! But because I was so used to handling user contexts via sessions, I was forced to rethink. One way to go is HTTP-Basic Auth a s described in RFC2617. But one has to go through some steps in order to marry a domain model of users and groups to Tomcat’s authentication service,...
read moreexp4j: a simple mathematical expression parser for java
Since i could not find a simple free and open math expression parser for java i decided to build one myself. So behold exp4j, a simple, free and open math expression parser for java. exp4j is 20kb in size and has no external dependencies.
read moreGrim days: Apache Software Foundation resigns from the JCP Executive Commitee
Today the Apache Software Foundation declared it’s resignation from the JCP most important device, the Executive Committee, mainly because of Oracle’s attitude towards the Open Source community. The Java Community Process is the mechanism by which new features get added to the Java Language Specification and the Executive Committee is the desicion maker on every level of this process. They get to decide which specification gets to be approved for development. It reviews the early drafts of the specs together with the community, and decides when a new draft is ready to be released to the public and they have...
read moreEclipse E4 early adopters release
The Eclipse Foundation has released an early version of the next major update for the eclipse IDE, which you can check out here: http://www.eclipse.org/e4/
read moreAn Unsafe look at the JVM
On his blog Stephen Gennard shows how to use the Unsafe class from Sun to manipulate objects on the heap directly. With this trick it’s possible to change memory addresses or contents of any object. Only the JVM has to be started in a different manner for this to work, since permissions to access the restricted classes is needed. The “-Xbootclasspath/p:” option tells the JVM to prepend the class to the bootloader, so that it can access the restricted sun.misc.Unsafe class. Check out Fiddling with the JVM on Gennard’s blog.
read moreThe sorry state of science in Germany
Germans like to call their country “Das Land der Dichter und Denker” (~ the nation of poets and thinkers), supposedly because of all the great minds which came from Germany: Goethe, Einstein, Nietzsche, Gauss, just to name a few, which are well known for their work all over the planet. But is this not glory long past? Does the german school system still produce such great minds, which impacted their respective fields like hurricanes? Not anymore it seems. The last of the great german geniuses has long been gone, and the new blood lacks minds of Max Planck’s or Otto...
read moreBorn Dead or Alive: Google's WebP, another JPEG Alternative
Google’s new web image format WebP (say: weppy) could be the next corpse in the sea of failed JPEG replacements. WebP is based on Google’s own open source WebM Project for encoding and decoding video. Like JPEG or PNG WebP features a lossy compression. WebP encoded images are up to 40% smaller than a comparable JPEG file. The WebP images have their own RIFF container so that metadata can be easily added and could be easily upgraded to hold more meta information in the future. In a comparison google found that the compression of WebP gains more advantage over the...
read moreVinay Deolalikar offers a proof for P != NP
On August 6th 2010 Vinay Deolalikar sent a link to a document on the HP servers entitled P!=NP. A bold claim regarding the fact that the question wether these complexity classes is part of the millenium prize program, the quest for the greatest unsolved problems in math. But it’s much to early for Vinay to gather the million dollars an accepted proof to this problem is worth. His paper has still to undergo peer review, but other masterminds of the mathworld describe the outline for Deolalikar’s proof as worth investigating: Richard Lipton a Professor of the Georgia Institue of Technology...
read moreA way around LazyInitializationExceptions without keeping sessions open
Let me explain the problem first: When retreiving Objects from Hibernate it is vital that the Session stays open if collections are to be fetched later. This is because Hibernate uses proxies for collections which only fetch data from the DB if it is actually needed.
read morePlaying with Google's Go programming language
Go seems to be a nice language and this simple example shows some of Go’s capabilities and idiosyncrasies:
read moreTinybo early access
This is my lightweight blogging web application built on the following stack:
read moreFrank Kieviet on identifying permgen leaks in Tomcat
Every web application developer who uses iapache tomcat knows about the issue: redeploying an application often takes it’s toll on Sun’s Hotspot JVM’s PermGen space, so that after a couple of redeploys tomcat cant load any new classes since the PermGen partition of the heap filled up. Frank shows how one can identify the culprit using a heap dump created by jhat and then clicking through the references on a jmap instance until the offending class that still holds references to otherwise unused classes can be found. After removing those references to the “dead” classes the JVM is able to...
read moreFarewell to James Gosling
Oh, the times we live in! James Gosling announced on his blog that he left Oracle. After working 25 years for Sun Microsytems leaving soon after Oracle’s aqcuisition, the man credited with the invention of the Java Programming Language writes that he will now take a break before looking for a new project. Losing the third big name after Scott McNealy and Jonathan Schwartz might indicate that Oracle has trouble keeping Sun’s former staff. In my opinion the negative effect this would have on the Java language is not very grave, because of the JCP and the transparency of the...
read moreEHCache library bloat
It came to me as a surprise when I realized my lean and sleek webapp has just been bloated by adding EHCache as a 2-level cache for Hibernate. And not just by a bit. Including ehcache-core in the pom.xml gives you ehcache-terracotta as a derived dependency you’ll end up with an 11Mb bigger footprint on the HDD. So adding EHCache to my project inflated the size of my project by 100%. WTH people? Having ehcache-core include ehcache-terracotta is just plain wrong on so many levels.
read moreSpring-MVC, the @Secured Annotation and dynamic proxying
When I recently tried to have a annotated web service authorize against spring-security using @Secured annotations I ran into some trouble. Let’s consider this class:
read moreE-Mail address obfuscation with Java and Javascript
Like german tourists the email address gathering robots are everywhere. These nifty little http crawler search through websites in order to find new email addresses for their spamming masters. So in order to hide an email address on a webpage one has to go through the trouble of encoding mail addresses in a way that robots can no longer identify them as valid.
read moreLife, the universe and sorting
So here is what recently occured to me. It’s all neatly sorted around humans. Cars in parking lots, books on shelves, contents in a cupboard. From a thermodynamical view just staying alive means you have to sort your body by applying work to transfer energy from the outside i.e. eat. Just look at the Action Potential as a nice illustration of how organisms have need for sorting ions. So if all life is constantly sorting and life begets life, does that mean life is a poorly implemented recursive sorting algorithm?
read more