Not So Genius Bar

Apple is often lauded for its care of its customers.  Generally, i think this is true.  But I had an experience the other day that no one seemed overly concerned about.  I’ve emailed the person I’m told is the manager at the W. 14th St. Manhattan store but have, as yet, received no reply.  This was about 3 or 4 weeks ago.  Below is the text I sent both to the manager and (at least tried to send) to the apple care survey.  My computer quit booting and I’d done some tests before taking it to the “genius” bar.

After running diagnostics, I suspected hardware failure on the drive and suggested that to the first tech.  He assured me it was likely filesystem corruption as hardware failure would’ve given a different error.  When they tried to scrub and reinstall the HD, they discovered it was in fact hardware failure.  Where things went wrong was when he entered the specs of my machine as an 80G HD when it was, in fact, 160G.  When I noticed this on the work order and brought it to his attention, he did something and assured me he had corrected it.  When the tech doing the repair noticed the HD was dead, he replaced my drive with one as listed on the work order:  80G.  I didn’t notice this until I got it home late at night.

<the lady> at AppleCare called the store and spoke with someone.  She told me to take the laptop back and ask for <the tech> and told me that I would get “a half day turn around.”  When I showed up, <the tech> was not there (and there was some confusion about who <the tech> was) and instead of the half day I was promised, I was told it would be ready by 10pm (it was about 9 am) which, as you’ll note, is about twice of what a normal half day usually entails.

I still had received no call by 9pm so I took the train in from Brooklyn to be at the store by 10 to either pick it up or register my discontent in person.  When I told one of the last remaining techs who I was, he asked me to hang out while he sent for my computer.  Whether it was done or not, I’m not sure but I did wait a while in an otherwise quiet store.  In the end, I got my computer but had I not shown up it would not have been until the next day that anyone would’ve called.  All this after being promised a half day to correct a mistake that should’ve been fixed in the fifteen minutes it would’ve taken to correct while I waited.

So after four trips in one week, it’s doubtful that I do any Genius Bar appointments at this store again.  There’s nothing about my experience there that engenders any trust.

I’ve removed any reference to names as they’re irrelevant to a wider audience.  But neither my negative survey nor my email to the manager (or any internal “oops” lists the store should track) have led to any sort of response.  Not even a phone call/email saying “sorry ’bout that.”  I don’t expect a Monty Pythonian “Those who are responsible have been sacked” response.  But something accepting responsibility for a boneheaded screw up would’ve been nice.  Something to show that there’s some level of professionalism at play in that store.
Either way, though, I don’t think I’ll be doing any business at that store any more even though it’s only 5 blocks from my office.  I’ll make the longer trip to the 5th Ave or SoHo stores.  So far they, at least, haven’t done anything to give lie to the “genius” title.

Is Apache Ant Dead/Dying?

Ant 1.7.0 was released way back in December 2006. Since then, there hasn’t been a single update. Not even a maintenance release. Now, ant is a relatively mature product. It’s been out a while and is quite stable. But it’s certainly not bug free. There’s not a lot of activity in the repository apart from the addition of ivy but after that went in activity dropped almost off the chart. I really do like ant despite my desire to see something else. But I fear that with the rising interest in maven, ant development has trailed off. And, to be clear, I despise maven. So, does any one know? The mailing lists at least show activity. Why no releases?

Fun with IzPack

In the last cycle of our product at ${work}, I moved away from the custom installer I’d written and built one on IzPack. Overall I was pretty pleased. My original installer worked. Mostly. The new one a much more polished and did more. So there wasn’t much to complain about. Except. None of my validators worked. As is the case with many software releases, there was too much to do to worry about it. The installer is almost always used by our internal staff so there wasn’t too much concern about bad input. But still, that lack nagged at me.

Last week saw the release of said version, and this week we begin, in earnest, all the design and requirements discussions trying to nail down the exact what and how of this cycle so there’s not much focused programming going on just yet. The installer needed some other attention so I took a little time to figure out why none of the validators worked. IzPack is horrible about logging/tracing anything useful. In fact, if you look through the code, you’ll see a lot of empty catch blocks. Go Team!

I set up IDEA so that I could run the installer in debug mode and step through the IzPack code and figure just what was dying. I was pleased to learn that IzPack craps out on validator messages if there is no langpack defined. You don’t actually need anything in the langpack. It just has to be there. In your validator definition you can specify the exact message you want to display or if you want i18n support, you can give a resource ID. If IzPack can’t find the ID, it defaults to just printing out that ID. So an empty langpack will (mostly) work just fine depending on how you define things. But if there is no langpack, you’ll get an NPE so no dialog will show up but you also won’t get any feedback at all for either failure. Once I saw that, it wasn’t too hard to set up an empty langpack and viola! Validator feedback. Pure magic.

So, that’s it. Set your langpacks. Enjoy the feedback. IzPack is not a bad piece of software, but could use some tender loving…

Groovy on the web the right way?

I’ve recently started (re)exploring the world of Groovy and, thus, Grails. The idea of Groovy makes me pretty happy, but Grails kinda makes me cry for a number of reasons. The entire system is, as you probably know, basically RoR but with Groovy complete with scaffolding. The issues with scaffolding are well documented. Most of the scaffolding gets thrown away once you start doing anything “real” and Grails can certainly suffer from that. You can, of course, write your own templates and these templates are basically JSPs implemented with a Groovy flavor. This is where my disappointment really starts to build. JSPs, at least in my circles, are all but deprecated. Even JSF2 is moving away from a JSP-centric view and moving on to JSFTemplating. So why did the Grails guys decide to reimplement JSP?

But there’s light at the end of the tunnel for me. There are two different projects that give me hope for using Groovy on the web tier: Gracelets and the Wicket Grails Plug-in. Both of these projects have two things going for them:

  1. They leverage existing frameworks and their component sets so we’re not left reimplementing everything else as well.
  2. They use more component oriented approaches than JSP development tends to lead to.

I like the dynamic nature of Groovy and the fact you don’t need to restart jetty every time you change a class. Maybe these options will make Groovy more palatable on the web. For me at least.

Mac Formatted ipods on Windows

I have a macbook at home. I use Windows at work. I can’t use iTunes at work because it can’t read the mac formatted ipod. I can’t format the ipod using a windows filesystem because the macbook/itunes can’t update the ipod if it doesn’t use the mac filesystem. There’s third party software out there I could get to let me read that ipod on Windows. But I’m a little surprised that iTunes on Windows can’t read the mac ipods. I would’ve thought Apple had source code lying around somewhere to read those filesystems.