Tag ‘Java’

Possibly the most malicious Regular Expression

This is the next of my episode on regular expressions. Today, we look at the worst regex you can possibly come up with, although it looks innocent and simple. You will learn about this backtracking trap that let’s you easily wait for 10^30 steps, as an example of an errant email regex will illustrate. One possible solution we investigate is the use of possessive quantifiers.

Read the rest of this entry »  |   Share

Regular Expressions: Splitting Pipes

It’s a common saying in IT: “I had a problem and used regular expressions to solve it. Now I’ve two problems”. We want to offer help in a series of mgm “Hacking Java Puzzler” blog entries and demonstrate how regular expressions can be useful anyway. In this first episode we will focus on splitting CSV lines.

Read the rest of this entry »  |   Share

Consequences when using Mutable Fields in hashCode()

We start our new series with an informative HashSet puzzler. It’s about a bug that gave us quite a headache since its root cause was hard to identify. This subtle bug has without doubt crept into many code bases, so a detailed discussion should interest every Java coder. I will also discuss code inspection tools that detect this violation (sadly, only few). And by the way, what we learned about HashSet also makes a good topic in our job interviews.

Read the rest of this entry »  |   Share

Rapid Prototyping with Spring Roo

Spring Roo, a new contender to Grails and Ruby on Rails, provides flexible scaffolding for Spring based applications. We used Spring Roo in a web project to quickly provide working software in order to discuss features and gather feedback. This article shows how we generated an early prototype and transitioned to early development and then to production code.

Read the rest of this entry »  |   Share

Test-driving XForms with Orbeon

In this second installment, we conclude our evaluation of XForms implementations and explain why we ultimately preferred the Orbeon engine. I walk you through a XForms sample to explain essential concepts. My team has spent quite a lot of time understanding the Orbeon architecture and I discuss our findings, including separate-deployment configuration and state handling.

Read the rest of this entry »  |   Share

Setting up Hudson for small Teams

Our Java project team has only three developers. We liked the idea to have our tests and builds run automatically and to have a central dashboard. However, we didn’t want to invest much time and expected a continuous integration server to be overkill. But as we started to play around with Hudson, we were quite amazed: the system was up in 5 minutes, including builds, tests, and e-mail notification.

Read the rest of this entry »  |   Share

Effective Coding with IntelliJ IDEA

At our recent Java User Group Munich (JUGM) meeting, Vaclav Pech from JetBrains has demonstrated his company’s powerful Java/Groovy/Web IDE IntelliJ IDEA 9 and shared several not-so-obvious gems with us.

Read the rest of this entry »  |   Share