I have been keeping a little list of good ideas which are either ideas which I would like to point out or ideas which I would like to see implemented/used more often. It has always been interesting to watch the development of the world around me and from this I have gained an appreciation for good ideas and generally neato stuff. - Metalink - Have you ever tried to
download a large file which is available from multiple locations and may even be retrievable using a variety of methods? Well, I have and I know it's a real frustration that I can't get the file faster by leveraging all of my potential options. Enter Metalink! Metalink is an open standard which provides a specification for a little XML file that lists all of the ways one can retrieve a file. For example, for a file available from multiple mirrors the Metalink file would list the available mirrors. If the file was additionally made available through [rsync](http://en.wikipedia.org/wiki/Rsync) or [BitTorrent](http://en.wikipedia.org/wiki/BitTorrent), it would make note of that as well. This file can then be parsed by a Metalink-aware download client which will seek to initiate a download by grabbing chunks for the various sources and then piecing them together. Apparently (according to the [Wikipedia article](http://en.wikipedia.org/wiki/Metalink)), the Metalinks spec allows for enumerating a multitude of download sources including HTTP, FTP, rsync, BitTorrent, [ed2k](http://en.wikipedia.org/wiki/Ed2k:_URI_scheme) and [magnet links](http://en.wikipedia.org/wiki/Magnet:_URI_scheme). I'd like to see this used by more distributors of large files and supported by more download clients (though I heard [KGet](http://kget.sourceforge.net/) supports Metalink beginning in KDE4...wahoo KDE4!).
- Eee PC -As everything seems to be moving to web-based apps these days, it often seems silly for a person to be lugging around an expensive and overpowered computing device which they’ll generally only use to surf the web. In fact, it makes sense that many desktop users are most likely spending too much money for a computer with capabilities they’ll never use! In any case, for those looking for a lighter and cheaper alternative for network-centric computing on the go, check out the Eee PC by Acer. Runs a customized simple-GUI with Linux under the hood though I’ve heard it also comes in a less-good Windows variant. It’s light, small and cheap.
- Jabber - I’ve said for ages now that more people should be looking to Jabber-based technologies for instant messaging and more. Having one Jabber account on one server allows me to communicate with any user on any Jabber server out there. It also allows me to use any service being offered by any Jabber server. These services could be everything from conferences and data services to gateway transports to other chat networks. It gets even better! Once an organization or community has a Jabber deployment running, the door is open to use that as connective tissue for other services and individuals to connect. This is especially true given the availability of solid XMPP (Jabber’s underlying protocol) libraries for every language you’d want to use.
- Using Java-the-platform) without Java-the-language). Now, it’s been ages since jwz published his famous ”java sucks” essay, but I firmly believe that non-client Java (save neat stuff like Web Start) can be a very powerful platform. Much of the server-side Java scene is not so bad. For example, JSP is a very cool templating language which also allows for convenient development using MVC (the Right Thing™). The real pain seems to be in developing the back-end stuff in Java-the-language. Now, thanks to projects like Jython and, more notably, JRuby, things are getting better. I’ve heard about people developing whole servlets and other web-apps in Ruby and then compiling them to Java classes and deploying them as they please. The power of Java without the Java!