What I want to do with this weblog is to detail the different technologies I'm exploring in my spare time and hopefully post a bunch of code that will be cool to someone running across this site, or at least to employers wondering what sort of skills I actually have. The difference between this site and my home page at http://www.russellbeattie.com is that this is focused on technology. I hope to someday turn manywhere into some sort of business, but for now it's just my web page to showcase my technology work.
Right now I'm buzzed about a variety of projects. I really need to sit down and focus on one or two, but here's the list of things that are jazzing me.
- J2EE - http://eventengine.org The EventEngine is an open source J2EE based calendaring and scheduling application. I'm working on it with my pal Chris Maresca http://www.chrismaresca.com. Right now there's not much to it except some emails from Chris detailing what sort of architecture he's looking for, but I've got Orion and JBoss set up and ready to go and I'm starting to mess with the EJBs now. When I get a demo running, I'll post it to the SourceForge site and also post a notice here.
- Jabber - Man I like Jabber! Actually, what I like is the programmability of an IM. What I want to do is crate an "AgentEngine" like the EventEngine above, but using something more simple like the Phoenix Java Server platform from the Apache group. The server would accessible from your desktop IM client via English language commands like "today's weather," etc. But rather than create all the applications, I want to create a server to hold "IMlets" or "Agents" where it's easy to create different IM applications. Also, my friend Theo Chino http://www.theochino.com is doing some cool stuff with an IRC client and instant job notices, but I think he needs to use regular IM clients, so I want to come up with a demo for him - this will probably use the EventEngine above...
- J2ME - I've got this idea for a Crossword puzzle. I can't believe no one has done this yet since it seems like a basic app that would really be a perfect app for a Java phone. Stuck on a bus? Download the latest NYT crossword and have at it. I've been batting this project around for literally 3 months now, so I really need to just get off my ass and write it.
- Email WebLogger - I'm using RadioUserland right now to edit this and it drives me nuts that in order to use the HTML WYSIWYG page, I need to use Internet Explorer. There's no real reason why I shouldn't be able to use my email client, write a new post, send it off to my server and have it magically appear. It's all about writing a small Java app to read the POP mail, suck out the body (with HTML MIME stuff...) and post it to a DB. I like Radio because it's been around a while and has a lot of features (including an Email one like above), but it's Window's based and not "home-grown." Not to recreate the wheel, but I should be able to do something like this pretty quickly and then post the code here. I think, since there's supposedly 500,000 WebLoggers out there, that this would be interesting to someone.
- Simplified MVC Servlet Framework- I started working on this at my last job and I'm still playing with it now. Instead of using JSPs to create web pages where all the code is in the pages and thus unmaintainable, I've started putting all the code into a ControlServlet. This main servlet is sort of the traffic cop (the controller) which calls other classes (the models) and accesses the database, before forwarding to the appropriate JSP page. The JSP pages only use custom Tags that I've written to interact with HashTables and variables that I've put into the Request object. It's still got some problems with re-entry. The ControlServlet can get a bit convoluted and spaghetti like and I really need to figure out how to make it better. I think frameworks like Apache's Struts are way too complicated (with each action it's own Class and an XML document specifying workflow). I'm trying to come up with the Panacea of JSP development (wish me luck) fast development, separated jobs (MVC), yet scalable and maintainable. It shouldn't be that hard - I mean, all I'm really doing is reading and writing text from a DB to a web page, no?
- PDAs - I'm also working at learning C/C++ enough to develop applications for Symbian and Palm devices. I'm hardly an expert in C, so I bought Visual C++ and downloaded the Symbian SDK and started playing with development and learning their API. Since I don't actually HAVE a Symbian device, I started looking at the Palm and ended up buying the O'Reilly Palm book and playing with that code more. The Palm, being a much more simple device, is a bit easier to understand and you can write code in C which makes it a bit easier also. However, C, in general after using Java for so long, generally sucks. But both Symbian and Palm are going to be big in mobile phones soon, and I think it's good to learn a bit how these devices are programmed.
- P2P applications - I have a project on my mind I've nicknamed "Pluto" for more than a year now. The idea is that Groove can be duplicated in Java using only the basic Java APIs. Set up a Java sandbox that's linked to its peers using something like Gnutella or JXTA and let the peers send Java applications back and forth contained in .jar files. The Java apps would only have permission to play in Pluto's sandbox, so there would be no danger to the client and it would be really useful. I call these apps "peerlets" since they would need to be plugged into the UI like applets plug into web browsers. Example peerlets could be all the things that Groove does like a calendar, contacts, outliner, notepad, file-sharing, etc.
Okay, that's enough for now. That's the ideas. Now I'm going to get my act together and start developing code and posting it. (With links on the left when I get some stuff ready.)