Dispatches from Andyland "Your reality, sir, is lies and balderdash and I'm delighted to say that I have no grasp of it whatsoever!" — The Adventures of Baron Munchausen

February 18, 2007

Movies at the JCC

Filed under: Uncategorized — Andrew @ 5:18 pm

Today’s outing with the kids was to go to the Family Sunday Fundays Striar JCC in Stoughton. They showed the movie Cars, and served hot chocolate. If the kids need a distraction from the movie they had craft projects for the kids. (crafts were along the lines of gluing eyes and other pieces onto small hot wheels sized cars, and decorating candles with sharpie markers.) Next week they are playing The Emperor’s New Groove.

February 17, 2007

Monster Mini Golf

Filed under: Uncategorized — Andrew @ 9:28 pm

OK, so now that Jet Blue canceled our Disneyworld vacation, there is even more of a need to keep the kids occupied than we normally would for February vacation. Today’s outing was to Monster Mini Golf and Dessertworks.

Monster Mini Golf is an indoor mini golf game full of black lights and everything painted in phosphorescent paint, disco ball, laser lights, and everything decorated in a graveyard a monster motif. Price is $5-$7 per person depending on height. (not age, so you can’t tell your 6 year old to say they’re 5. It’s harder to tell them to pretend they are shorter.) As you can imagine with the black lights, music, etc., its intended to be overload the senses.
We were told that Saturday tends to be their busiest day. From our experience it wouldn’t surprise me. It was basically the way that miniature golf gets when its busy. You are always waiting for the party in front of you to finish their whole, and you are always trying to hurry at the last golfer at each hole so that the party behind you can start. I keep trying to teach the kids how to putt, but they refuse to listen. (If you’ve ever seen me putt, you can understand why they would do that, but really they need lessons) My five year old tends to try to swing the club from between her legs. (a foot on either side of the ball, club goes through her legs behind her and hit the ball. Sort of like kids underhand bowling.) My older girl looks like she is trying to do some sort of Singing in the Rain move with the club.

After the game, we played in the arcade. The arcade games take quarters, not some sort of strange token system where you feel compelled to spend tokens you got out of the change machine. I’m really proud of my older girl. She played one of the games that she was supposed to win tickets, but none came out. She went right up to the front counter, explained to the staff what happened, and told her how many tickets she should have gotten. (I followed her because I didn’t want her to get lost in the crowd, but really had nothing to do with the conversation) When the staff member followed us back to replace the tickets in the machine, about three times her jackpot came out in tickets. (I’m guessing quite a few other people won but got cheated out of ticket. My girl was the only one who was willing to straighten things out.) With more tickets than we normally would have won, we wound up with lots of neat prizes. A whoopie cushion, two bottles of invisible ink, and two clear plastic horse statuettes.
On the way home, we stopped by Dessert Works. The chef’s bio in the shop’s flyers says that she’s worked for The Catered Affair, the Ritz-Carlton, and Konditor Meister.  I can’t say for sure, but it wouldn’t surprise me. They seem similar in many ways. We picked up a bunch of individual sized desserts to split and share after dinner.  I think we wound up with a carrot cake, a boston creme pie, a chocolate mousse cake, and a couple of cookies.

February 16, 2007

And I always thought the movie Trains, Planes, and Automobiles was fiction

Filed under: Uncategorized — Andrew @ 12:20 am

As I’ve told most of my friends, family, and co-workers by now, my vacation didn’t quite go as planned. I actually planned that I was going to go on a vacation. The vacation was supposed to start with an airplane trip to Orlando, and since we couldn’t do that, the rest sort of fell apart.

I think Michelle started making plans last November for a trip to Disneyworld. By the time we were ready to leave she had a two or three page itinerary typed up for which park we were going to be in when, each day had at least one restaurant reservation, etc.

Our flight was scheduled yesterday 10:00AM. A cab came to pick us up around 6:30, and although we were concerned about the weather as we left, according to JetBlue’s web site, planes were still departing and arriving on time. We got to the airport with plenty of time, had a relatively easy time through security. We then got to the boarding gate and waited.

and waited.

During the wait there were times that it seemed things would work out. Like when we’re being told that our plane had taken off from New York. There were times of disapointment, for example when the people on the plane currently at our gate were let off the plane to roam the airport. (from hearing other reports of JetBlue, I’m guessing they were relatively lucky for that.) Through it all, I don’t think we even began to think we wouldn’t make it to Florida at all. A delayed flight. A canceled flight and getting on a new flight. Something was going to work out.

When they finally canceled the flight in in the late afternoon, immediately checked to see when the next flight we could schedule, and the earliest flights we could get tickets for were Saturday. Checking back soon after that, those were taken and the earliest available flights were Sunday. It sort of makes sense. Way back as we booked the tickets, Wednesday was a little cheaper than Thursday and Friday. As you get closer and closer to vacation, the higher demand for seats. By the time our flight was canceled, those tickets gone. We tried to check with the hotel to see if we arrived Sunday we could have a room until Saturday, but of course they were just as busy as the airlines, and they had no extra space for Wednesday through Saturday. We were stuck with absolutely no way to get to Florida until about half our vacation was over.

All in all, it could have been worse. Waiting at the airplane’s gate is much better than being stuck in the airplane itself while waiting. We got the hotel stay and park refunded, and I’m sure we will get our tickets refunded once JetBlue will answer the phone. (right now, their telephone message gives no way of talking to a person.)

Instead of going straight home, we decided to Sheraton in Braintree. It was amazing how much fun they found the stay at the hotel. (and indoor pool, a pay-per-view movie in the room, etc.) I almost feel that the Disney trip was a waste if a stay in a local hotel could keep them happy. We are working to reschedule the trip though. Right now we looking at another two to three months from now. (probably about as much time as we took planning this trip.)

February 14, 2007

Java-based rapid development web application frameworks

Filed under: Uncategorized — Andrew @ 12:20 am

I spent some time looking at Java web application frameworks that claim to provide rapid development. In unfairly condensed terms, the “Ruby on Rails for Java” sort of frameworks.
I looked at Roma, Trails, and Grails. I sort of played around with each a bit. Going through their introductory tutorials and trying a few things on my own. I probably continued until I got annoyed or lost interest in that particular package. That might not be the way to give a fair assessment, but it was about as much time as I was willing to give to any package. (sometimes something worthwhile takes a little bit of effort, and you have to go beyond where things start feeling comfortable. For example, if my attempts at exercise went beyond the times where I got bored and lost interest, I’d probably be thinner.)

None of these packages intend to be a direct port of Ruby on Rails, but all to some degree make comparisons of their product to Rails.

Many of these packages are based on other Java frameworks. The Spring Framework is a very common one. It seems reasonable. Spring’s Inversion of Control and Aspect Oriented Programming features are useful tools in extending software in was that the developer wouldn’t realize that it was being extended. This would sort of make up for the dynamicism of Ruby that helps make Ruby on Rails work well. All of them use Jetty as an embedded web server for testing.
All use Hibernate as a Object Relational Mapping system. This implies that for most, the domain objects are used to build the table structure. (As opposed to Ruby that dynamically gives an object properties based on the current database schema.) It seems to make sense under the circumstances. The Java type system is richer than the SQL types of most RDBMs, where the inverse is true for Ruby. One can ignore data in a stronger type system to connect to a weaker typed system, where inferring types that don’t exist is more difficult.

The Roma framework is based on pluggable aspects that get enabled on a project. If you want a AJAX based on you run “roma addModule aspect-view-echo”, supposedly if you want a component based view you run the command “roma addModule aspect-view-jsf” (except for the fact that echo2 is the only view module developed so far.) Other modules like persistence, monitoring, and connection pooling can be added on as modules.

With the only existing view aspect that is developed for Roma is a high feature AJAX one, it implies that views aren’t just scaffolding like they are for Rails. They are expected to be (perhaps the starting point) of the final web pages. The components themselves can control how they are displayed (strings output HTML text boxes, Date fields have a popup calender box, etc.)

I had some annoyance in the way Roma handled paths. The command “roma createProject” will ask for a path and create a project directory. It also makes it the current project and all further commands are directed to that project until you execute “roma switchProject”. I’d rather run the commands from the project directory and have them affect that project. (I tend to have multiple projects created and being worked on simultaneously, and wouldn’t want to worry about which one is current.) There were also scripts within the project directory, for example to start and stop the web server, which needed to be run with certain relative paths. (

I was working through the tutorial about to the point where some buttons were supposed to appear but they didn’t. I found on their forum that it was a bug and and would be fixed in a later release. I figured if they could break the most basic functions in their introductory tutorial with a release, I’d worry about the stability of the whole thing and it was time to look at what else was out there.

The next one I tried was Trails, started running through its tutorial and probably started at about the same frustration I left off Roma with. The major issue is that Trails recently switched from being built with Ant to being built with Maven, and the tutorial was written based on the Ant version. I can see why they would want to use Maven; Trails has many dependencies. (For Perl developers unfamiliar with Maven, picture it was having the dependency resolving features of the CPAN shell, the layout standardization of h2xs, and the standardized build steps of ExtUtils::MakeMaker or Module::Build.) Perhaps too many dependencies. It has both Spring and HiveMind as IoC containers, Spring and AspectJ for AOP environment. It has hibernate-hivemind modules, tapernate, as well as spring-hibernate modules. I admire them for not reinventing the wheel, but you could think they could choose a few good wheels out of all of the wheels on the lot.
The most noticeable problem with following the old tutorial with the latest code is when it says to execute something like ant create-edit-page to customize the default HTML output. Most of the project unique build steps are removed in Maven. It isn’t too tough to do, but I had to look at the Subversion archive to find the old Ant build.xml to find out that ant create-edit-page just copied DefaultEdit.html to ${classname}Edit.html. Trails’ use of Tapestry for the display is nice because it is component based views rather than page based views.
What eventually turned me off of Trails however was the lack of some sort of controller component. This will turn certain code wind up in the domain classes where I wouldn’t have put it there otherwise.

The last one I looked at was Grails. Grails, uses the Groovy interpreter for the domain classes. The GORM module eases the creation of domain class to hibernate and SQL mapping. (most of the other packages I mentioned use the Hibernate annotations.) A controller class can be as simple as def scaffold = Book but can be anything beyond that can be as complicated as you want it to be. Since the classes can be Groovy, you have many of the advantages of a dynamic interpreted language. It seems to me to be the easiest to quickly create applications. Scaffolding is built to get an idea of how the whole application is working end to end, but all of the scaffolding is replaceable when it is time to build something beyond the initial CRUD scaffolding.

The biggest drawback I can see is that it if you are looking for a Rails alternative because someone said they wanted Java and not Ruby on Rails, a Groovy based solution probably won’t be acceptable either. (It depends on why the requirement for Java though. If it is because someone wants the ease of deploying WAR files on a cluster of application servers, or wanting to integrate with other Java components, a Groovy based solution may be OK.)

February 10, 2007


Filed under: Uncategorized — Andrew @ 1:50 am

At work, the just finished the second volume of a music compilation based on employee suggestions. I started to write something when they finished volume 1 a few weeks ago, but didn’t finish it until now.
If I knew Stephanie was going to single my song out, I wouldn’t have picked one that was complaining of the plight of the proletariat against the oppressive capitalists. (“if you’re out to get the honey, then you don’t go killing all the bees.“)

My alternate choice was M. Ward’s cover of Let’s Dance, but I’m glad they didn’t use that one. Eric chose Chinese Translation, which is really the better song. It stands up on its own, where Let’s Dance is more interesting in comparison to David Bowie’s original.

M. Ward’s rendition of Let’s Dance almost sounded like it intentionally created as
The opposite of a David Bowie song. Where the original might put an upbeat emphasis as “Let’s Dance/Put on your Red shoes and  Dance the blues.” Ward’s version ‘s is a slower, quieter “Let’s Dance …/Put on your red shoes and Dance the blues”. Bowie’s version is catchy, but after its done all I don’t think much sticks in your mind but something about “serious moonlight.” M. Ward puts enough emphasis on the words that the lyrics really stand out. “Let’s Dance, For fear your grace should fall/Let’s Dance, For fear tonight is all.”

The song Chinese Translation keeps on revealing layers the more I listen to it. What at first seemed like repetition in the song isn’t quite the same story told multiple times. The first verse is the narrator telling his story to a guru. The next verse is the guru describing his youth.

February 7, 2007

Bad Math or Intentional Obfuscation?

Filed under: Uncategorized — Andrew @ 1:58 am

Earlier this evening, I read Steve Jobs’ Thoughts on Music, where he suggests that people (especially people in Europe) contact the record companies and lobby them to allow digital music downloads to be sold without DRM. In it he gives some numbers, but I don’t believe that they add up the way he is suggesting. What he says is:

Let’s look at the data for iPods and the iTunes store – they are the industry’s most popular products and we have accurate data for them. Through the end of 2006, customers purchased a total of 90 million iPods and 2 billion songs from the iTunes store. On average, that’s 22 songs purchased from the iTunes store for each iPod ever sold.

Today’s most popular iPod holds 1000 songs, and research tells us that the average iPod is nearly full. This means that only 22 out of 1000 songs, or under 3% of the music on the average iPod, is purchased from the iTunes store and protected with a DRM. The remaining 97% of the music is unprotected and playable on any player that can play the open formats. Its hard to believe that just 3% of the music on the average iPod is enough to lock users into buying only iPods in the future. And since 97% of the music on the average iPod was not purchased from the iTunes store, iPod users are clearly not locked into the iTunes store to acquire their music.

My problems with this include:

  • He mixes up the number of iPods sold and the number of people with iPods. According to a iPod Reliability Survey the iPod has a failure rate of about 13%
  • He combines a figure for the number of songs today’s most popular iPod holds with the usage pattern of the average iPod. (which seems to mix up the mode and the arithmetic mean as well as getting skewed based on the current sales of iPods against a survey of all iPod owners regardless of when they purchased the product.
  • The average number of iTunes purchases seems a little off to me, but I can’t prove it. I have over 400 songs from the iTunes Music Store (but don’t just multiply that number by $0.99 and make assumptions on how much I’ve spent. Some purchased as albums to get a deal better than $0.99 a track. The two to four a week are the free songs that they promote, and a fair number of gift certificates given to me. I also drank a lot of Pepsi products during the iTunes bottle cap promotions and got good at peeking in the cap of an unopened bottle.)
  • The 97% of music that he discusses is implies to be legitimately purchased, but that isn’t necessarily the case. This might be the main point that separates the record companies point of view and Jobs’. Jobs seems to be saying that since most music is purchased unprotected, the 3% doesn’t matter. The record companies would counter that each track that is illegally copied is done so multiple times, so a DRM’d 3% will be less if it was sold unrestricted.

I don’t know if Steve intentionally tried to mess up the figures to make his case, or if he was just being inaccurate.

With the specific mentions of Europe, I suspect this has to do with the calls of an anti-trust action against Apple trying to force them to license FairPlay, Apple’s DRM scheme.

February 2, 2007

Filed under: Uncategorized — Andrew @ 9:31 pm
I am:

James Tiptree, Jr. (Alice B. Sheldon)

In the 1970s she was perhaps the most memorable, and one of the most popular, short story writers. Her real life was as fantastic as her fiction.

Which science fiction writer are you?

Powered by WordPress