Sunday, June 22, 2008

Re-Architecting J2EE with REST

I'm investigating re-architecting parts of an existing client's application. I prefer not to re-architect existing applications of non-trivial size but the current application has outgrown its current lack of architecture. Because of it's size (not to mention the development environment being used!), development work on the application runs at a snails pace, fear of breaking code is high, and deployment is a long, painful process. The state of the project is at least partly my responsibility, as I have worked with this project in the past. My previous attempts to get client buy-in on improving the architecture failed. I am planning to use other methods and tactics to try and illustrate to the client just what they are getting out of this. But I digress... I have become a big a fan of REST over the last few years with success on various projects built using REST. I looked at the Restlet project about a 6-9 months ago, but the documentation was inadequate for me at that stage. This isn't surprising because Restlet was quite early in the development at that time, so I'm not having a go at the Restlet team here in any way, they've been doing some really good work with their REST implementation. But on having the need for REST in Java again, I've taken another look at Restlet. The documentation has improved a lot. The examples, tutorials and explanations of the Restlet implementation are now at a stage where you can quickly evaluate Restlet, and decide if it can work for you. I would of course rather do all of this in Ruby or Python, but with the existing application in Java/J2EE the Restlet implementation of REST will mean the current team can still use Java, and means I have one less hurdle to try and negotiate. As I have experienced on other large applications, when you move components out into discreet services you end up with a nice SOA application that naturally enforces separation of layers. I am expecting to see large improvements in development speed, quality of code, and deployment. I'll blog about how the proof of concept goes in a later post.

Thursday, June 19, 2008

MacBook Pro Trackpad Gestures

Sometimes its like a light bulb just got switched on in your head, and you have a strong suspicion you were the only one still floundering around in the dark :) I was just reading some pages at the memcached site using my MacBook Pro, when I accidentally dragged 2 fingers down the trackpad. And what do you know... the page scrolled! I didn't realise that using two fingers on the trackpad was a gesture for scrolling. After a little investigation theres a whole bunch of gesture options under the Mouse and Keyboard options in System Preferences.

ARDAgent Local Explot on OSX

Ouch... Nice one. # osascript -e 'tell app "ARDAgent" to do shell script "whoami"'; root Hopefully this is patched soon. I'm sure there are some apps out there that could make creative use of this hole. This is discussed at length on Slashdot at, "Mac OS X Root Escalation Through AppleScript".

Wednesday, June 18, 2008

Firefox 3.0 is Shiny

Firefox 3.0 final was released today, so I thought I'd better take a look while it's still shiny :) I'm actually writing this post using Firefox 3.0 and all seems sweet. The look fits well with the OSX Leopard. After many years of running Linux desktops I really enjoy a unified GUI. Looks aren't everything of course. I really like the 'Awesome Bar', which is an impressive improvement over the Location Bar in Firefox 2. The drop down of suggested URLs is feature rich and should prove really useful. Think of the Awesome Bar as the Location Bar on steroids. Zooming in is also really nice, more like a true zoom than anything I've used before other than my iPod Touch. I switch between Firefox and Safari depending on my mood and the way the wind is blowing, but I always enjoy something new so I'm sure I'll favour FF 3.0 for at least a little while so I can get a feel for what it really has to offer over Firefox 2. There is a cool download counter at http://downloadcounter.sj.mozilla.com/ . For posterity I've captured a video of the counter in action. Oh yeah, and apparently the IE team sent the Firefox team a cake!

Tuesday, June 17, 2008

Back in Singapore... Again!

I'm back in Singapore again! My wife and I returned home to Australia in 2007, but both Australia and Singapore both have their plus sides, and after returning we eventually decided that Singapore is be a better place for us to be in the long run. We're really looking forward to making Singapore home again :) I accepted a position with the company I used to work for here previously, Global IT Creations. I'm quite excited about working with this company again, as we do some really interesting work for our clients. There isn't one other company I've previously worked for that I would return to work with, but I can easily make an exception for GITC. I really want to blog about bits of code I write and play with, and this will be the outlet for those experiments. At the moment I'm mostly using Ruby and Ruby on Rails, but I've had lots of development experience using Java/J2EE, Python and PHP in the past. I've also recently been toying with Flash after avoiding it for so long, and I've really taken a shine to ActionScript 3. Lets see what comes out of it all.