Archive for the ‘technology’ Category

Downloading the internet with Maven in a new light

Tuesday, May 19th, 2009

I have my share of complaints like everybody else about Apache Maven and one of them is that upon installation (or upgrading to a new plugin version) it starts downloading half of the available internet. Maven is constructed in a highly modular fashion, requiring lots of different, small, focused Java libraries. I’d like the distribution to contain those libraries, but I digress. Tonight I saw that not only Maven is structured this way. It is something *all* open source projects got.

For example, the much touted Ruby on Rails project with their disdain for everything Java would probably cringe at Maven (it uses XML after all). But installing Ruby on Rails and for example Radiant CMS with some plugins is a futile attempt in finding the right invocations of: script/*, rake, gem, port and other commandline tools you’ll want to get familiar with. All these tools start downloading stuff from the internet from different repositories (SVN, ruby forge, etc).

Maven: you’re not alone anymore in downloading the internet for your builds…

The sorry state of subversion support in Eclipse

Tuesday, May 5th, 2009

Eclipse is a great IDE, but the state of subversion support is appalling. Both subclipse and subversive are buggy as hell, and I’d rather not touch either of them with a 10 feet pole.

Installing subversive is a futile exercise in “find all the update sites and correct plugin selection”. Subversive also is unable to keep the target/classes directory out of the synchronize view, which makes committing changes rather challenging.

Installing subclipse is much better than installing subversive: just add subclipse’s update site and install all plugins. No hunting for external sites, and no chance of installing the wrong stuff (I’m on OS X, so the win32 HL binaries are of no use to me). But again the team synchronize view is borked. This time subclipse won’t remove all updated files, double clicking on a folder throws an exception, etc.

I know that GIT is the SCM du jour, but please can someone at eclipse.org take note and finally implement a working, pleasant integration with subversion? Is that so much to ask after 5 years of Subversion availability?

Hating Oracle

Thursday, January 29th, 2009

Oracle is a decent product but there are some things I loathe about it. The biggest gripe I have with Oracle, and it is a BIG issue I have with it is the following:

Caused by: java.sql.SQLException: Invalid column name
    at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
    at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:112)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:173)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:229)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:403)
    at oracle.jdbc.driver.OracleStatement.getColumnIndex(OracleStatement.java:3366)
    at oracle.jdbc.driver.OracleResultSetImpl.findColumn(OracleResultSetImpl.java:2009)
    at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:494)
    at com.mchange.v2.c3p0.impl.NewProxyResultSet.getString(NewProxyResultSet.java:3342)
    at org.hibernate.type.StringType.get(StringType.java:18)
    at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
    at org.hibernate.type.NullableType.nullSafeGet(NullableType.java:189)
    at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.extract(CustomLoader.java:474)
    at org.hibernate.loader.custom.CustomLoader$ResultRowProcessor.buildResultRow(CustomLoader.java:420)
    at org.hibernate.loader.custom.CustomLoader.getResultColumnOrRow(CustomLoader.java:317)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:606)
    at org.hibernate.loader.Loader.doQuery(Loader.java:701)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
    at org.hibernate.loader.Loader.doList(Loader.java:2220)
    ... 46 more

Can someone please put the guy that crafted this error message to the wall and shoot him? If you discover an invalid column name, then TELL me which one that was. Queries can span 100+ column names, and it is neigh impossible to figure out which one is invalid.

And this is not the only place where Oracle really is subpar in its error messages. Any of the invalid identifier messages doesn’t provide you with context. A multi-thousand dollar license product that can’t give me decent error messages is not worth a penny in my opinion. Oracle should be ashamed of itself and make a public apologie for billions lost revenue of their customers. Now go and stand in the corner!

Ganymede Mylyn Mantis woes

Thursday, July 17th, 2008

Working with the new Eclipse Ganymede for a while now, and on my Mac it is worthwhile: faster and more stable. Except for Mylyn/Mantis. Mylyn is a resource hog, and the mantis connector doesn’t want to store my updates to tasks in our mantis installation. I synchronize my ass off, but no f-ing way that the carefully crafted status in my workspace is sync’d with our tracker.

Gawd… I hate these halfbaked solutions.

How to be able to use your KPN hotspot when the connection sucks

Tuesday, October 9th, 2007

The connection here is awful, I experience almost 100% packet loss when trying to connect to the internet using the KPN Hotspot. And it costs me about 45 euros to get the right of not being able to use internet. This is highly frustrating, as even complaints don’t get through.

Combine this fact that I have a Mac, which is of course not supported by the KPN, so I could call the support desk, but they would directly tell me that I have an unsupported platform and that I should go make love to myself.

Fortunately one of our readers on the wicket development list was smart enough to mention the TLA ‘MTU’. This sparked me to go and see how pinging would work out. So I set up a ping to the dutch news site “nu.nl” and saw that all 64 byte messages came through (though with about 1-10% packet loss). When I set the size to 2048, no reply came back. Setting the size to 1024 (or rather 1016 to compensate for the additional 8 bytes that is added to the ping message), I still got a 1-10% packet loss, but I got replies back.

Browsing through the man pages of ifconfig gave me the option to modify the MTU of my wireless connection:

sudo ifconfig en1 mtu 1024

This sets my wireless network to broadcast 1024 sized packages instead of 1500. And immediately everything started to work again.

So the recipe to get your wireless connection to work is to try pinging a known website with different package sizes and see which one works best. Then setting that on your wireless connection.