While I was spending the last year or so relaxing, getting married and trying to pick up a second language (a real language: Spanish) the rest of the world was merrily continuing along its way. Especially the tech world. Lucky me. Now I'm trying to really get back into it and start catching up on some of the latest developments. (Not that I've been totally negligent - I'm still a geek. I do this stuff for fun...) Though I desperately want to start working with mobile technology - Java enabled handsets for example - and have been playing with that type of technology (J2ME, Palm and Symbian), it looks like the job market really wants J2EE. So that's where I'm going back to first. It's nice that my pal Chris wants to develop the EventEngine in Java so I can use that to start playing. Since I already have some experience with J2EE, I wanted to spend a bit of time catching up on the latest specs. Yowza - there's a bunch of stuff out there!
But more than just the APIs, there's some other developments that I hadn't noticed until today - stuff that's "real" now - i.e. being used - and weren't that common a couple years ago:
- UML - this is everywhere, in all the latest books and magazine articles. I finally had to take out my UML book I bought last year and actually memorize some of the concepts rather than just fuzzily understanding them. Not that my love for UML has grown, but it's not as bad as I thought... I'm downloading Together's ControlCenter to play with using it in a devlopment environment. We'll see how it goes.
- Patterns - When working with EJBs, it seems that patterns have become pretty common now to use and discuss. I think this is great - no sense recreating the wheel all the time - however, it means that I need to go memorize a bunch more stuff. Not that anyone here in Spain is going to quiz me on patterns anytime soon (I hope) but I don't want to fall completely behind.
Another thing that I groked today (i.e. fully, deeply understood) is that web services always come from a web server. This seems pretty obvious now (it's in the freakin' name), but I somehow thought I was going to be setting up a different server/listener for this stuff. But no, because SOAP and XML-RPC, etc. all use HTTP to communicate, you'll probabloy use a normal web server to send and receive these messages. If your web services want to interact with your EJBs, for example, they'll do it like any normal servlet does, through RMI. A nice graphic from Ed Roman's Mastering EJB showed me what I was missing. This is a pretty great book available as a free PDF file... And the other EJB book I have is from O'Reilly. I couldn't believe it's in its third edition... I have the first edition sitting on my shelf. Anyways, that makes me happy finally getting the idea.
Most things haven't changed, so I'm not too far behind, actually. I've done my web development using OrionServer for the past few years and had jobs using Weblogic and iPlanet, so I've been up on the EJB stuff for the most part. The integration with web services was making me feel like I was falling behind. And the addition of patterns makes me realize that I've got a bunch to learn and web services means that there are now 50 million more API classes to get familiar with, but it's not that bad. More of the same, really... Hey! I just noticed that Ed Roman is going to be publishing in PDF form a EJB Patterns book ... cool.
Security - This is something I'd like to get to know more about. I've got several Java security and cryptography books that I've gone through, but I'd like to get some experience developing some really secure stuff in production. Real security is all about proper methodology and experience in what works and I feel a sense of being lost in that area. I don't REALLY know how to create a bulletproof server app and that bothers me. Hopefully my next project will
3D and Games - This may seem completely off the topic, but today's topic is really What Technology Isn't Russell Familar With. Which includes a very long list of things... but what I mean is that of the things that I am interested in, what do I have no clue about. One of them is programming 3D and games. I've got my GameBoyAdvance which is great and I'd love to create an app for it. I've downloaded a GBA emulator, some of the code examples out there on the web and grabbed the ARMT70 version of the GCC compiler with an open source GBA SDK. I'm ready to start, but the fact is that I don't have ANY experience doing this sort of thing... It's going to take some playing around before I get anywhere I think... but it's interesting. Learning about the ARM alone will make the effort worth it since SO many handheld devices will be using that processor soon...