Posted tagged ‘Software Development’

A Volatile Look At HSQLDB

January 13, 2011

Recently, I had cause to look at HSQLDB, one of several pure Java databases out there. At my job, we use RDBMS technology to back our deductive database systems. As such, we have need for a small-scale development RDBMS to accompany larger enterprise-grade RDBMS’s. For several years we have used H2, and it has been good to us. It is small, fast, very complete and reliable.

However, a couple years ago H2 changes it’s on-disk storage system. The new storage system is neater and cleaner, but it had a side effect: H2 is now significant less concurrent. Our deductive engine is highly concurrent (we implemented a form of Actor concurrency before we knew what Actors were), and we routinely run hundreds of SQL queries simultaneously. We treat the RDBMS backend much like a NoSQL database, and really thrash it at times, especially before the caching and materialization layers kick in. In recent years, as every machine gained cores like mad, this has become a problem. H2’s lack of concurrent execution sometimes slows the system down to the point where even on small datasets, Postgres is faster, despite the network hop. (This is not a knock on H2; highly concurrent access is not a design goal that seems to be emphasized. Fair enough.)

So this is a problem, so I decided it was time to survey embedded DB’s again. In the past, I had looked at HSQLDB and Derby and rejected them for performance reasons. Perhaps, in the intervening three years something had changed?

Where is Google for Kids?

June 10, 2010

Let’s face it, Google’s real business rival is Apple — Apple’s app store, Apple’s iAd (why do I have to pay for the ad bandwidth, by the way?), Apple’s controlled computing enviroment. It is interesting to look at one area that Apple has leveraged for decades and wonder why Google isn’t going there.

Where’s Google for Kids?

Seriously, it is a big missed opportunity for Google.

DVCS’s Are Nice, But No Shame in SVN

May 5, 2010

Distributed Version Control Systems are quite popular, filling a need in this day of on-the-go and far-flung development teams. You can trace their history back quite a ways into proprietary solutions, but DVCS systems really gained traction when Linus Torvalds (of Linux, er, fame? goodness? godhood?) wrote git to manage Linux kernel development.

But if you’re still using Subversion, you’re far, far from alone. And in a lot of cases there are reasons not to switch.

Methods Of Work: Hammering With a Shovel

March 31, 2010

Seriously. It amazes me how often people, especially-but-certainly-not-limited-to software people, fight with their tools. Would you really spend all day framing a house, using a shovel to hammer nails in? Some people, based on my observations, seem to.

For the Love of Vaadin: RIAs Done Right

March 21, 2010

Java web frameworks are legion. A sampling includes Spring/Struts/Play/Wicket/Pivot/Tapestry/Stripes/JavaFX/Flex/GWT and there are literally dozens more.

They all seem pretty alien to a guy coming from desktop UI development a la Swing or SWT.

Methods of Work: It Didn’t Happen If You Didn’t Write It Down

February 22, 2010

It may be an iffy plot device from a Tom Clancy thriller but it can be a valuable approach: if you didn’t write it down, it didn’t happen.

If Apple Really Wants Tinkerers to Love the iPad…

February 5, 2010

There has been lots of sturm, and more than a little drang, regarding the iPad and death of the “tinkerer” class that its targeted user base represents. Certainly, the iPad, like the iPhone, is a closed ecosystem; you can’t develop for it on it, you can’t control when your apps get updated, you can’t control if your apps get into the App Store, etc. It is a total dictatorship, which Apple trying to play the role of benevolent dictator but coming of more as annoyed loon. But hey, it is working for them, so it isn’t likely to change much.

Code Rot: When Good Code Goes Bad

January 4, 2010

Why does code rot? Wikipedia lists a bunch of reasons — some make sense to me, some leave me meh.

From the vantage point of my battered years of experience, I’ve come to classify code into three areas:

argv[0] for Java

November 4, 2009

I’m happy with Java. There, I said it. I mean, I noodle around in Python, have done Rails, recently looked at Scala, but mostly there is little I can’t get done in Java. Mostly that is a side-effect of using Java for a long time; I went to a seminar at the University of Maryland sometime in 1996-97, with my copy of Java in a Nutshell clenched in my hand, and listened to a guy give a talk in Java. He said something along the lines of “Look, Java has some neat ideas, and we’re going to explore them today. But no one is going to write real applications in it.”

Stop Commenting Your Code – You’re Just Confusing Things!

October 25, 2009

In my post on reading other people’s code, I mentioned my views on the pointlessness of comments in code. It seemed worthwhile to expand on this, since I got such a wide variety of responses.

And yes, in the main I am going to suggest you don’t bother commenting most of your code. Unfortunately for the lazy among us, there something else you should use to replace those comments … but we’ll get to that later.