A while ago I was inspired by the story of Gameboy to SuperPiBoy, a Raspberry Pi within a Gameboy case. This was reason enough to start my own project. I was owner and a fan of a Gameboy at the age of 10.

My RaspiBoy features:

  • 3.5" TFT display
  • 32GB solid state drive
  • RasperryPi inside
  • three more buttons
  • WiFi
  • Logitech Unify receiver
  • Original Gameboy controls
  • External Volume control with Speaker and stereo audio connector

 

Read more ...

Test-driven development is a life-assurance for several software projects.

I’ve started about 10 years ago with test-driven development. Since then I fell into the mantra writing test code then production code run the test and start over. Sometimes even model and interface first then test code then production code and so on. This way less bugs had a chance to remain within production code. But unit testing is not everything. The next level is integration testing, which help to discover even more bugs. As soon as components play together, they start to behave slightly different than assumed in unit tests. Sometimes integration-tests are the only way to test a software (in a sensible way).

Read more ...

I'm progressing on my RaspiBoy project. So I'm getting in touch with a couple of yellowish Gameboy cases and game cartridges.

Older game console cases, such as Gameboy, Nintendo NES, Commodore 64 and so on, start yellowing. The more sun they get the more yellow they become. There is finally a solution (beside sand paper and overpaint) to de-yellowize them. It's called Retr0bright.

Read more ...

Logstash, Elastic Search and Kibana gave us power back over our logs. Now it’s time to expand our potential and use well known components to get even more out of the ELK stack.

Read more ...

When CDI and Inifispan meet you've got the chance to improve your code a lot. Let's combine both to make all of your CDI beans @Cacheable.

Caching of values usually goes this way:

public String getSomething(String input) {
    String result = cache.contains(input);
    
	if(result == null) {
        result = getValueFromDatabase(input);
        cache.put(input, result);
    }
	
    return result;    
}

This pattern repeats for every value which is cached/retrieved. Methods like the one above contain repetitive conditionals and value retrievals. Using the caching interceptor pattern eliminates the need for repetition. Business methods will be reduced back to their essence and caching becomes an aspect.

@Cacheable
public String getSomething(@CacheKey String input) {
    return getValueFromDatabase(input);
}
Read more ...

I've released today logstash-gelf 1.5.1. This is a bugfix release for JBoss AS7/Wildfly users who use the NDC/MDC.

Read more ...

When releasing lettuce 3.0-Beta3 I was sure this will be the last beta of lettuce 3.0. In the mean time lots of stuff came up: New redis features around clustering, new commands and data structures. On the dev side there was low test coverage and instabilities during the build. This were the reasons to release an third beta. The original plan was to head for final as soon as redis 3.0 is going to be releases.

Read more ...

I've released today logstash-gelf 1.5.0. This is a major release. logstash-gelf 1.5.0 is the first GELF library which supports the final release of log4j 2.0. This release carries some library updates and internal refactorings to provide also a standalone usage of Gelf message submission.

Read more ...

lettuce 3.0.Beta 3 is out now. The new redis commands provide in addition to the basic support also data structures and parsers. This is to support common implementation tasks and to ease adoption.

The Beta 3t is a surprise, because I wanted to release the final after Beta 2. Meanwhile, redis added lots of features and in fact, lettuce was not ready for a final yet. I'll state more about the details in a further, final announcement post. For now enjoy the Beta 3.

Read more ...

Automated deployments are the state of the art. Incorporating with a deployment pipeline you get the maximum available for now. But what happens in your deployment? Do you know the progress when it’s running? I want to tell you, how I’ve used Capistrano, Bootstrap and MongoDB to visualize the deployment progress with the deployment dashboard.

Read more ...