Dynamic Routes with Apache Camel

By nick | Published March 9th, 2012

If you’ve spent any time with Apache Camel, you’ve likely wanted to make your routes more flexible. For example, you may want to redirect a route to a different endpoint based on changing criteria or conditions defined in a database. This post looks at two methods Apache Camel provides for altering your routes at runtime:…

Aggregating with MongoDB

By nick | Published February 29th, 2012

Moving from a relational database to a NoSQL data store isn’t without some costs. If you’re like me and largely living in a Java world, one cost is immediately losing the expressiveness of ORM tools like Hibernate or JPA. Outside of the Java domain, several of SQL’s projection or aggregation functions are lost. For example,…

Simple Master Election with Camel and ZooKeeper

By nick | Published February 27th, 2012

Most modern, distributed applications require some form of coordination service to ensure tasks or jobs run only where they’re supposed to. For example, it may be necessary to run a cleanup task on dedicated servers. Writing your own master election or coordination service can be difficult. This is where Apache ZooKeeper comes in. ZooKeeper provides…

Performance problem in Apache Camel’s conversion mechanism

By nick | Published February 19th, 2012

Performance testing a complex application is never particularly easy. In the best cases, it’s tedious and mildly frustrating. It’s easy to spend hours or days diagnosing why you’re not getting the expected throughput. This occurred just last week during some load and performance testing of an application making heavy use of Apache Camel. We found…

Your Data For Sale

By nick | Published February 8th, 2012

Earlier this week Joseph Turow published an article on The Atlantic’s website titled “A Guide to the Digital Advertising Industry That’s Watching Your Every Click”. The article presented a few scenarios surrounding the level of targeted messaging available to marketers with digital tracking, as well as an overview of public reaction. One aspect left unexplored…

Avoid an MVEL Bug In Drools Snapshots

By nick | Published January 20th, 2010

If you’re working with Drools trunk snapshots, you may be tripping over a bug in MVEL that caused me to lose about a day. On the RHS (right-hand side, the consequence) of my rule I had the following: Which resulted in this error: [Error: unable to access property (null parent): $obj] However, if I call…

VMware and SpringSource – Why Bother?

By nick | Published August 10th, 2009

Monday saw the rather surprising announcement that VMware is acquiring SpringSource for about $420m all in. After the initial shock wore off, the next question had to be: Why bother acquiring SpringSource in the first place? According to the press release: VMware and SpringSource plan to deliver compelling new solutions that enable companies to more…

Querying XML with eXist

By nick | Published August 7th, 2009

Recently I needed to be able to be able to query a bunch of XML files using XQuery. I looked at some options like CouchDB but ultimately I needed a database of some sort that had native support for XQuery. While it looks like you can add on or hack in XQuery support to CouchDB,…

Wicket RefCard Released

By nick | Published July 29th, 2009

Congrats to Andrew over at Mystic Coders for releasing his Wicket reference card over at DZone. Of course, I’m probably going to take his refcard text and work it into WicketForge.

At long last, an excellent JAXB tutorial

By nick | Published March 24th, 2009

Like it or not, if you’re writing code today you’re going to have to deal with consuming and producing XML. From my experience, one of the best options to manage the heavy lifting surrounding XML. However finding useful information on JAXB is difficult, with various forum posts and mailing lists, most information is out of…

Integration with Apache Camel

By nick | Published March 15th, 2009

Some time ago I read the excellent Enterprise Integration Patterns book and I’ve wanted to leverage the concepts detailed in the book in my own work. Eventually I found the Apache Camel project and have been impressed with how quickly I was able to integrate it into my application. Camel is essentially a message router…

WicketForge 0.5.4 Released

By nick | Published March 4th, 2009

WicketForge 0.5.4 was released last night, correcting a few ClassCastException bugs and adding another Wicket XHTML to the list of tags available to be completed. This release doesn’t yet add the properties file support I’ve been working on, but I’m hoping to get time to finish that up shortly. To update to 0.5.4, please run…

NYT: What carriers aren’t eager to tell you about texting

By nick | Published December 28th, 2008

To most of us, sending a text message is magic. Simply enter your short message content, select a recipient, and send. From there, the message arrives in the recipient’s inbox to be read or ignored. For this privilege, wireless customers pay about $0.20/message unless they have a prepaid package. How the message pricing is determined…

American Airlines Mobile Boarding Pass

By nick | Published November 21st, 2008

American Airlines has introduced Mobile Boarding Pass, which allows you to avoid having to print a boarding pass at home. Instead, a link to the boarding pass is emailed to your device. You follow the link to retrieve a device-only version of your boarding pass which can be shown to security and gate personnel. Currently,…

Customizing JAXB’s Namespace Prefixes

By nick | Published November 21st, 2008

At a recent event in Denver, some of our integration partners complained about the namespace prefixes in the XML we generated. By default, JAXB creates simple prefixes like “ns1″, “ns2″ and so on. I’m not sure it matters unless you’re processing XML using some archaic means, but keeping partners happy is usually a good idea,…

Sprint looks to remake its brand

By nick | Published February 12th, 2008

It can take years to build a solid reputation in any industry, especially in the phone service business. While it’s hard to recall, Sprint had a glowing reputation, with good customer service and a strong network. A number of network problems, like the Great Nextel Failure of 2006 and increasingly horrible customer service pushed customers…

Determining how much to charge

By nick | Published February 10th, 2008

When I started System Mobile, one of the most challenging things was determining how much to charge clients for projects. At first, estimates were more of a guess than the result of a process. As I became more knowledgeable about projects and various clients, my estimates became more precise. The popular blog FreelanceSwitch has an…

Leveraging CGLIB Proxies with Wicket

By nick | Published February 7th, 2008

Anyone that’s spent some time with Java has made use of reflection, which can be loosely defined as Java’s ability to programmatically interrogate a class and call methods on it. Reflection is typically used in frameworks to call property accessors. Within Wicket, reflection is used to retrieve and populate properties using the PropertyModel. Suppose you’ve…

More Maven Woes Follow-Up

By nick | Published February 3rd, 2008

Various people have responded about my Maven complaint, suggesting explicitly excluding the JAR. I tried it, and it didn’t work. Like I said, I’m new to Maven so it’s possible I missed a “simpler” fix.

Following up on microcredits

By nick | Published February 3rd, 2008

Some time ago I posted about my experiment with Kiva, a website coordinating microcredit loans. My initial loan was $100 divided over four business. While that doesn’t seem like a significant amount, my $25 was combined with several other creditors to meet the full loan amount of the various businesses. Kiva suggests smaller loan amounts…