Wednesday, 1 February 2012

Solving the EULA problem

Everyone recognizes the situation. Some piece of software has released an update, or you are installing it for the first time, and you’re asked to accept a new EULA. The EULA is typically 5-15 pages of dense legal text. Almost everyone just tries their best to find the “accept” button as quickly as possible, sometimes giving a sigh as they realize you first have to scroll down before you can hit the accept button.

Tuesday, 31 January 2012

My walk through the Git book

I’ve been experimenting with git for about the last year, but most of the work I did with it so far was in the “single developer, hack some stuff, push to github” mode of operation, which is very superficial.

Integration testing scoped beans in CDI 1.0 and Spring 3.1

In this blog post I describe how to do integration testing with scoped beans in Spring and CDI. Everything is illustrated with small code samples. Integration testing with scopes is not particular easy. Imagine a bean that lives in the session scope, like UserCredentials. In an integration test you typically have no HttpRequest or HttpSession to work on (at least if you are not doing tests that include your user interface). Therefore you need some infrastructure for integration testing. With both technologies it is a little puzzling to get this infrastructure going. Get your own picture of it.

Small things around Oracle Weblogic 11g (10.3.4)

I am doing a lot of setting up and configuration for Weblogic this week (devops I guess). I have been working with Weblogic for the past 4 years and I have to admit - like Eclipse - I have started getting used of it. I was a Netbeans / JBoss developer and I've turned to Eclipse/ Weblogic guy.

Java Web Hosting Options Flowchart

One question I get asked a lot, is where and how to host your Java web application. It’s all fine to create it inside Eclipse with an embedded server, but how do you get it to the people? For a long time, there was no answer for enthusiast programmers. There were only expensive and way oversized options. Things have changed lately, but it’s still not an easy choice.

Monday, 30 January 2012

Introduction to OSGi - Modular Java

OSGi Alliance is the governing body of this stranded and it was started at 1999. their initial goal was create open stranded for network devices. Based on this idea this specification introduced for Java also. Eclipse was first in Java. they introduced OSGi based Eclipse IDE at 2004 June.

"Java Sucks" revisited

Overview

An interesting document on Java's short comings (from C developer's perspective) was written some time ago (about 2000? ) but many of the arguments issues are as true (or not) today as they were ten years ago.
The original Java Sucks posting.

Best Of The Week - 2012 - W04

Hello guys,

Time for the "Best Of The Week" links for the week that just passed. Here are some links that drew Java Code Geeks attention:

* Java Anti-Patterns: A comprehensive lists of Java programming anti-patterns. Also check out our Java Best Practices series while you are at it.

Blind spot of software development methodologies

There is a trend of rise and fall of different software development methodologies. There is also a lot of discussion and excitement about which is better Agile or Waterfall or whatever, and what is Scrum really. My impression is that there is a trend of accepting processes and practices, with expectation that there will be always better results and fewer problems, which is not neccessary nor feasible.

Friday, 27 January 2012

Storing hierarchical data in MongoDB

Continuing NoSQL journey with MongoDB, I would like to touch one specific use case which comes up very often: storing hierarchical document relations. MongoDB is awesome document data store but what if documents have parent-child relationships? Can we effectively store and query such document hierarchies? The answer, for sure, is yes, we can. MongoDB has several recommendations how to store Trees in MongoDB. The one solution described there as well and quite widely used is using materialized path.