Blog Yellek

The antidote to driving the best cars to nowhere

Archive for the 'java' Category

Joel Spolsky Forgets Google GWT

Thursday, September 20th, 2007

Joel Spolsky has an interesting piece up over at Joel on Software comparing the development of the web with the development of computer software from mainframes to PC’s. It’s an interesting article and well worth a read. One of the points he makes is about how a new web framework is needed to iron out the differences between the browsers and remove incompatibility problems from the minds of web developers:

Somebody is going to write a compelling SDK that you can use to make powerful Ajax applications with common user interface elements that work together. And whichever SDK wins the most developer mindshare will have the same kind of competitive stronghold as Microsoft had with their Windows API.

Great idea. Except that Google has already done such a thing. It’s called Google Web Toolkit and it is available now. Sure it’s early days for GWT but it offers exactly the sorts of capabilities that Joel is talking about:

Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don’t speak browser quirks as a second language. Writing dynamic web applications today is a tedious and error-prone process; you spend 90% of your time working around subtle incompatibilities between web browsers and platforms, and JavaScript’s lack of modularity makes sharing, testing, and reusing AJAX components difficult and fragile.

GWT lets you avoid many of these headaches while offering your users the same dynamic, standards-compliant experience. You write your front end in the Java programming language, and the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML.

So when Joel uses Google as his example of a company that is going to be blindsided by the new web application framework:

But then, while you’re sitting on your googlechair in the googleplex sipping googleccinos and feeling smuggy smug smug smug, new versions of the browsers come out that support cached, compiled JavaScript. And suddenly NewSDK is really fast.

And while you’re not paying attention, everybody starts writing NewSDK apps, and they’re really good, and suddenly businesses ONLY want NewSDK apps, and all those old-school Plain Ajax apps look pathetic and won’t cut and paste and mash and sync and play drums nicely with one another. And Gmail becomes a legacy. The WordPerfect of Email. And you’ll tell your children how excited you were to get 2GB to store email, and they’ll laugh at you. Their nail polish has more than 2GB.

I think that he misses the point. Google isn’t going to be blindsided by the new web framework, it’s developing the new web framework. It’s GWT and it’s here now.

Update: Joel Spolsky has replied to the many people who emailed him about his post suggesting web frameworks, stating his criteria for one of them to be his “NewSDK”. The reply is in the middle of his Princeton, Philadelphia and Boston Trip Report (3rd last paragraph)

Podcasts: 10 of the best

Wednesday, September 19th, 2007

I listen to podcasts a lot. In the car, on the way to and from work and even at home when I have to do something mindless like cleaning. With all the podcasts on my list though there are those that I will always listen to as soon as they come out, those that I wait for each week because I know that I will enjoy every minute. Here then are 10 of my favorite podcasts (in no particular order):

  1. The Spiel. Talking about boardgames these guys just deliver every single fortnight. They are funny and informative with consistently good content. Their show is segment based with each segment focusing on specific games as well as a news and notes and a feedback segment. This is my favorite podcast and comes highly recommended. The Spiel also has some really interesting contests including some really hard puzzles to solve.
  2. The Java Posse. This long running technology podcast about the Java programming language alternates between news and interviews. It keeps me up to date and entertained so I can do my job. My gut feel is that this cast isn’t as interesting and fresh as it used to be but it still makes my must listen to list.
  3. The Two Chris’s. This political podcast is taken from a segment on the morning program my local ABC radio station and features Christopher Pyne and Chris Schatt who debate the issues of the day from Liberal and Labor perspecives respectively. I find this a really good way to keep up to date with the Australian political landscape both nationally and in South Australia.
  4. The Dice Tower. Though a little less consistent in quality than The Spiel The Dice Tower still offers quality boardgame listening with top ten lists and contributions from a number of greater or lesser celebrities in the boardgame world. They also have some good contests. Lately they have been replaying some of their older episodes in between their fortnightly new material.
  5. This Week in Tech. The one word that I would use to describe this cast is slick. Professionally produced TWiT is like a PC magazine built for radio. The content tends to be lighter as Leo Laporte and guests discuss the week’s technology news.
  6. Joyce Meyer Radio Podcast. One of the two Christian podcasts on my list the Joyce Meyer Radio Podcast serializes messages from prominent Christian speaker Joyce Meyer. Produced every weekday you get to hear sections of messages that Joyce preaches at various conferences and gatherings around the world as well as a few interviews. The content is really good but I find the advertising intrusive so I generally skip it. I find that if I skip the first 30 seconds of each podcast and then skip to the end when Joyce stops speaking I get the best results.
  7. Geeks and God. These guys talk on some serious technical topics aimed at helping churches and ministries with technology. The content, however, is relevant to a wider audience. Their series on Drupal was fantastic. Currently on a long break I am looking forward to when these guys return.
  8. Garrets Games and Geekiness. Hosted by Doug Garrett and his wife Shelley this boardgame podcast covers games that Doug has played in various locations as well as a number of really good roundtable discussions and interviews. I like the conversational style of this cast and Doug certainly manages to get some interesting guests.
  9. On Board Games. A relatively new boardgame podcast hosted by Scott Nicholson (of Boardgames With Scott fame), Donald Dennis and Eric Dewey. The podcast uses a segment based format with one segment devoted to a boardgaming topic of interest referencing various gamers and then a number of game reviews. The game reviews use a “stop light” system (red, yellow, green) which I find really useful.
  10. Have Games Will Travel. A long running boardgame and role playing game podcast hosted by Paul Tevis. Paul covers some interesting topics and ventures into the role playing game world in a way that is most entertaining and informative. Paul uses his experiences in improv theatre to relate to being a GM of a role playing game and manages to discuss some really interesting psychology around social contracts in gaming as a result.

FreeMind Gets Groovy Support

Wednesday, May 16th, 2007

I was just looking on the FreeMind site (earlier coverage of FreeMind here) when I noticed that one of the features of the upcoming 0.9.0 release was the ability to execute Groovy scripts from mind map nodes. This raises the possibility of all sorts of interesting applications. One that sprang to mind was to enhance the GTD FreeMind template from YekSoon with scripting functionality to provide a better GTD tool.

Well done the FreeMind team, I’m sure that this new feature will see a lot of use and Groovy is certainly a good choice for a scripting language.

Language Bigotry and Groovy

Thursday, February 1st, 2007

The article Fear and Loathing in Typeland from the O’Reilly OnJava Blog expresses really well my reason for preferring Groovy to Ruby. One of the problems with starting something new as a reaction to something old is that whatever has gone before is automatically bad. In this case I think that Java does have some advantages, as Robert Cooper points out, and that the Ruby guys just need a little maturity.

The Groovy crowd on the other hand seem to me to have a healthy dose of humility in all they do so that when it makes sense to use Java for something they say so. Admittedly there is still a bit of “We are better than Ruby” which needs to be watched but when it comes to the community I think they are right.

Ruby is certainly more popular but I for one, perhaps irrationally, am not interested in spending my time learning it because of the negative vibe I get from Ruby people.

Groovy Invaders

Tuesday, August 8th, 2006

Clifton Craig has started an interesting series over on his blog called Groovy Invaders where he is attempting to write a space invaders game in Groovy using JOGL for the graphics routines.

I know I don’t have time to follow this but it is interesting to see the diversification of what people are doing with Groovy and the increasing usage of the language in new and interesting areas. I’ve already blogged on what I think of Grails which seems to me to offer all of the advantages of Ruby On Rails but with application server support and a smaller learning curve for Java programmers.

We are also using Groovy at work in a limited way to provide us some functionality in our ant build environment.

Groovy is one of those languages that when you “get” it makes you wonder why you were doing things any other way.

AJUG Presentation 19/06/2006 - Grails

Saturday, June 17th, 2006

I will be presenting at the Adelaide Australian Java User Group meeting next Monday (the 19th of June) on “Grails: Rapid Web Application Development Made Easy”. Event details can be found on Eventful. For those interested my presentation can be found here: Grails AJUG Presentation

Google Web Toolkit and Grails

Saturday, May 20th, 2006

I just downloaded the Google Web Toolkit which was announced at Java One this week to have a look at it (See this Java Posse Podcast for an interview with one of the lead developers). My first impression on reading the documentation was that the documentation was very basic and that there is a long way to go to understanding this technology. I have to say that the kitchen sink demo didn’t immediately fill me with excitement at the cool possibilities of the technology (like Open Rico did when I first saw it) but on the other hand I can see that there is some depth here, I might just have to dig a bit to find it.

The basic idea is that you can write code in Java and then have that code compiled into Javascript that will run on any browser, avoiding the issues of dealing with different browser quirks and, hopefully, making it easy for Java programmers to get into the world of AJAX (something that definitely appeals to me). Having the code written in Java comes with one advantage: you can use Java debugging tools to debug your page before you compile it. The toolkit comes with a couple of scripts that generate a sample application shell complete with a “Hello World” button and corresponding Eclipse project (is Google favoring Eclipse over NetBeans?). The code on first impressions looks like fairly standard swing component and listener code, albeit with different method names.

According to the podcast mentioned above you can hook in other javascript libraries to this code which might mean that Open Rico could be an option for controls. The other thing you can do is embed these applications in existing pages which opens up the possibility of integrating the Google Web Toolkit with Grails. Grails is very nice, the more I look at it the better it gets and hooking up a nice client side AJAX toolkit to it would be fabulous.

If you are thinking of doing some web development in the near future then the Google Web Toolkit is worth a look.

[Listening to: More Than Life - Hillsong United - More Than Life (6:51)]

Instant Replay

Thursday, August 11th, 2005

I’m wrestling in my head at the moment with a dilemma. You see I’ve become a firm believer in automated unit testing as a part of a quality development effort but I’ve run up against a situation that seems to preclude the very thing I’ve come to believe in.

I wasn’t always a believer. I remember I started at eBusiness Interactive (then Cortex eBusiness now Cenqua) with really no idea how to develop software but some idea of Java and EJB’s and there was this guy sitting next to me who used to do strange things with something called JUnit. Over time I came to appreciate his quiet persistence and the company did too so by the time I moved on I had become a convert.

Fast forward to today where the code base I find myself working with has some unique characteristics that make it hard to unit test. Firstly there are no automated unit tests for this code, it’s a legacy system that is being maintained and enhanced. Secondly the methods in the code tend to take large objects as parameters and then extract complex data structures from them. The standard approach to this sort of thing is to use mocks but the data is such that the mocks would contain other mocks which would contain other mocks… you get the picture. Constructing all of those mocks and getting the data right would be a time consuming and error prone process which would take a long time to get ROI (the system is already in production) and hence is unlikely to be adopted.

Testing now is performed by firing up all of the components together and then applying external stimuli manually to generate the right inter component messages.

My thinking is that we need a new type of test tool to help construct those mock objects. The tool I am thinking of is a cross between two types of existing tools: record and playback test tools and code coverage tools. Code coverage tools are built to register when methods are called in code under test. What I am proposing is a tool that records not only what methods are called but in which sequence and with what parameters. This information could then be used to generate the appropriate code to create the mock objects. This code in turn could be modified to generate the appropriate unit tests. It would be a better starting point than nothing certainly.

Does something like this exist already? I can’t believe that noone has thought of it.

[Listening to: Crown You King - Paradise Community Church, Adelaide - Paradise Live - Adore (5:10)]

Aargh. You threw off my groove!

Friday, June 17th, 2005

I’ve been working with Groovy and Ant lately with this nifty Groovy Ant Task, just the thing to tame a rather complex build problem… If it worked. As they say in the classics “Aargh. You threw off my groove! “

Where to start, first there’s a memory leak and then a classloader problem and after that it can’t parse my template anyway and gives me a weird error (I’m still writing the test case for that one).

This isn’t the first time I’ve had a go round with Groovy, last time it was a problem with nested closures and classloaders if I recall. Don’t get me wrong, Groovy is a really cool language but I wish it’d stop RUINING MY GROOVE

An Idea

Friday, June 17th, 2005

Lets just say you wanted to implement music creation software in Java. How would you go about it?

My first thought was that this is really a music IDE and how would you go about building an IDE? Use the Eclipse RCP of course.

OK so we are using eclipse. A basic requirement would be to host VST plugins. Most VST plugins are written in C or C++ so we are obviously talking JNI. There is a tool called jVSTwRapper which solves the opposite problem (embedding Java VST plugins in native hosts) so maybe that would be a good place to start.

We are definitely going to need a copy of the Steinberg VST SDK and probably a copy of the Eclipse CDT to work with C and C++.

OK so we need to know something about how VST works so a good VST tutorial would be useful and how about a VST debugger to help when we get it working.

VST plugins come with their own UI’s so we are going to have to figure out how to draw native UI on an SWT control somehow.

Now all we have to do is write the rest of our tool.

This is sounding more and more like a mythical Sunday project but wouldn’t it be nice if it all came together…

Blog Yellek is proudly powered by WordPress
Entries (RSS) and Comments (RSS).