I don’t usually like Java. In fact, I found myself dreading projects for my Data Structures class last semester, which was taught in Java. Wasn’t Java supposed to free us from that sort of mundane effort? Never mind. And while I “just know” that Python is better, I can’t help but feel I should like Java on some level. I mean, two of Python’s great strengths, in my opinion, is the large standard library and vocally supportive developer community. By that standard, I should like Java as well. But I’ve never really warmed to it.
So when I read on Slashdot earlier this week that Sun had released the JDIC (Java Desktop Integration Components) under the LGPL, my interested was piqued. First, while I don’t necessarily love programming in Java, I’m always interested in hearing about advancements in integration. In the process of performing tech support for a school, I’ve heard numerous complaints (mostly valid) about the lack of integration in software. The fact is that users shouldn’t need to know about file types, associations or inter-application communication. It should just work. I was also interested in JDIC because I was amazed that Sun was actually using the LGPL. Now don’t get me wrong: I think any OSI license is better than closed source, but I think that too often corporations try to get the Open Source religion by developing their own licenses which are really designed to control rather than grant freedoms. And when it comes to granting freedoms, I think an argument could be made that the LGPL actually grants more freedom than the GPL. But that’s not the argument I’m making now.
So as I browsed the JDIC and accompanying Screensavers projects on java.net, I noticed that they’re having a contest. Well, not really even a contest, but rather a give-away. T-shirts. The universal geek schwag that brings developers running. The criteria? Write a screensaver using the new JDIC components and Saverbeans SDK. OK, I’m game. Anything to blow off work for a while. And so I did.
The result is ccSaver, a simple slideshow which retrieves random, Creative Commons licensed images from OpenPhoto and displays them, slide-show style. I know it’s nothing groundbreaking, but it’s been sort of fun to hack together. First, it gave me an excuse to use Eclipse, which is one of my favorite Open Source tools (even if it doesn’t have decent Python support yet). Second, I was able to brush up my Java chops in a variety of areas I hadn’t used it before (network file retrieval, instance based type checking, etc). Finally, I got to try out Ant. Ant is one of those tools you hear lots of buzz about, but don’t really appreciate until you see it in action. Better than Makefiles? You betcha’.
So with three reasons it was fun, what’s the result? An oddly voyeuristic look into other people’s lives. I’ve actually been running it in a debug window for a while, wondering just what inspired people to take some of these pictures, and just what was going on at that moment.
Between writing the screensaver and seeing my own, standard screen saver, Electric Sheep, I’ve begun thinking about other possible “features”. What about a screensaver that “creates” derivative works from CC licensed images? Or distributed derivative works? Or some sort of distributed feedback mechanism for choosing the derivative algorithms? I don’t have time to devote to exploring these questions now, but in the meantime, download ccSaver and let me know what you think (Win32 and Linux only; sorry).