Archive for July, 2007

Hadoop does WebDAV

Wednesday, July 25th, 2007

There’s recently been some movement on HADOOP-496, the issue for exposing the Hadoop Distributed File System as a WebDAV store. Maximum respect to Enis Soztutar for sorting this out.

The patch hasn’t made it into SVN yet, but I hope it will show up there in a few weeks. Getting files onto your HDFS has never been this easy: add a new network place in Windows Explorer, open the folder, drag and drop! I’m pretty sure your favourite Linux desktop environment will have similar functionality.

I’ve also been running the litmus WebDAV server protocol compliance test suite against this Hadoop/WebDAV combination to test the patch. There’s still a few issues to fix, but things are looking good.

In case you want to add a WebDAV interface to your Java application, you might consider building it on top of Apache Jackrabbit, as this patch does. I took a brief look at doing what this patch does with Jakarta Slide, but even with the WebDAV Construction Kit to help you, Slide is a rather large beast.

Intel Threading Building Blocks open sourced

Wednesday, July 25th, 2007

Intel has released Threading Building Blocks (TBB), their library for doing multithreaded programming with C++, under the GPL. If you’re stuck in C++ land but yearn for the power of all those shiny new cores (with 4 Core 2 Duo cores now within reach of anyone with a modest budget), this might be for you. As an added bonus, the documentation looks pretty impressive.

They’re also running a contest to promote TBB.

More from Eclipse and Java land

Wednesday, July 4th, 2007

My new favourite Eclipse 3.3 keyboard shortcut is Ctrl+3. It allows you to search through almost anything you can do in the IDE. If you’re a BASH user, Ctrl+3 will remind you of Ctrl+R (reverse-i-search).

InfoQ has an article on New Concurrency Features for Java SE 7, with a link to Doug Lea’s A Java Fork/Join Framework. Along these lines, I have been playing with CompletionServices and Executors quite a bit the past 3 weeks. I hope to present the fruits of my labour here soon.

Eclipse 3.3 First Impressions

Sunday, July 1st, 2007

Eclipse 3.3 (aka Eclipse Europa) was released a few days ago and I decided to give it a spin. Here are some notes in no particular order:

  • The probably isn’t a new feature, but you can configure your default web browser under Window | Web Browser.
  • You can now do “Sort Members” on a whole project. You can also “Organize Imports” in the same way. Between Eclipse’s code formatter, cleanups on save, the ability to export settings for these features and The Checkstyle Plug-in for Eclipse there is no reason I can think of for all the Java code in your project not to look exactly the same.
  • Libraries references by a Java project are all grouped together under a “Referenced Libraries” item in the tree view. Now you don’t have to fiddle with the filters so often.
  • I gave the Dynamic Languages Toolkit a quick spin. I was able to get up and running with JRuby in seconds.
  • The Help system uses Jetty now. Nice. But for some reason it wants to listen on all my interfaces, causing Windows to pop up a Firewall allow/block dialog the first time you launch the Help system. What’s up with that?
  • The Java compiler’s warnings with regards to generics have been improved. Way back in the 3.3Mx days I found that it rejected some invalid generics code that would compile with 3.2, so it looks like there’s been some improvements.
  • The new Run/Debug launching is weird. The default is now to have Eclipse launch what it thinks you want to launch, instead of launching the last thing you launched. You can turn off this behavior under Window | Preferences | Run/Debug | Launching by selecting “Always launch the previously launched application”.
  • The new interface for the Rename refactoring is annoying. Previously I could Alt+Shift+R and a dialog would pop up with the previous name selected, so that if I typed something, it would overwrite the old name. Now I get an editing thing that takes my cursor position in the name I’m trying to refactor into account, with no obvious way of completely nuking the old name so that I can just type the new one quickly.
  • The existing FindBugs plugin still works. Nice. Still need to install a Subversion plugin. Maybe it’s time to switch to Subversive?
  • The Remote System Explorer is very useful.

Now for my only major gripe so far: the platform proxy settings. Bug 154100 - Platform level proxy settings has the details. These proxy settings were clearly not designed by someone who actually uses a proxy on a daily basis, especially with a laptop. Here are some hints:

  • As I move around with my laptop between networks, my proxy settings usually need to change. The proxy settings need some kind of “profile” feature. I guess I could switch workspaces, but that’s just annoying.
  • As far as I can tell, I can’t exclude ranges of IPs or hostnames with wildcards (e.g., *.foo.com or 192.168.0.0/255.255.0.0 or 192.168.0.0/16). I guess I could type in the host name or IP address of every machine on my network, but that’s going to take a while.

And if you’re going to fix this second issue, don’t be stupid like Firefox. If I add 192.168.0.0/255.255.0.0 to the list of IPs to exclude, I actually also mean any host name that resolves to an IP in that range.

Update: Tried Subversive. No, thank you. I’ll stick with Subclipse for the moment.