Google Visualization API has new Release Candidate

May 6th, 2009

GoogleVisualization.jpg

This morning I read that the Google Visualization team has put another version into Release Candidate mode where you can ask for version '1.1' and get access to now. They expect to make it 'production' this Sunday (May 10), and want to have people test it and give them feedback.

The changes are all under the covers and when I tried it I didn't see any difference, so I'm guessing that things are working, which is really nice. Gotta test these things as I'm going to be forced to use them in a few days.

Fixing Bugs and Adding Features – Tons of Work

May 5th, 2009

cubeLifeView.gif

Today has been an interesting counter-point to yesterday. Today, again, started too early, but when I got here, I was working to get a lot of things fixed and into the web app. It got interesting with a few deployment issues, so there was running around the trading floor - that's always fun, and then a long session getting things into the code. Lots of things done, and once again leaving it all on the keyboard.

Exhausting day.

Decent day.

I'm becoming more convinced that it's not what the day holds for you, but what you bring to the day that matters most. Sure, if you get into a horrible traffic accident today, I think you have a decent reason to say you had a bad day. But if, like me, you have all the basic components of happiness, it's what you bring to the party that matters.

This is nothing new to the vast majority of folks, but it's something I need to keep reminding myself, it seems. I seem to have a bit of a lossy memory for facts like this.

Slugging it Out – Some Days are Easier than Others

May 4th, 2009

cubeLifeView.gif

I can't complain, really. Face it... some days are easier than others. Some days it seems that you're tired as soon as you get up. You feel a little behind the curve even when you seem to be making progress. It's no fun, but there's nothing you can point your finger at to say this is the problem. Fix that, and the day will be a lot better.

Nope. Some days there's nothing to point to. It's not a fantastic day, and there's nothing to do but slug it out. You have to realize that there are going to be days like this and when they come, you have to hunker down and just ride out the storm.

Today was one of these days for me.

The weekend was decent... nice weather, but I spent a lot of time outside doing yard work, so I'm a little sore, have a few cuts on my hands and arms, and it's not like I got a ton of rest - I just worked outside. Not horrible, but not really like a little 2-day vacation.

Today started too early (it seemed), and it was just a day I'd have rather stayed in bed. Nothing I could point to, just work that needed to be done, and then slug out the day and commute until I could go to Nina's softball game.

I'm glad it's over.

DataGraph 2.0 is Out

May 4th, 2009

DataGraph1.5.jpg

Well, he's done a major update to DataGraph, the nice 2D plotting package (and framework) for the Mac. It's pretty darn nice, and the release notes in the download package indicate some of the major new features. There are more templates, lots of possibilities on the data views, and updates on all the usability stuff.

The framework is now quad-fat for 10.5 (PPC and Intel, 32 and 64 bit) and I got that update as well. I noticed that he had added a few more examples, which I'm excited to look at and see what he's done with the tools. In all, it's about perfect for what I need. I just wish he'd add in the 3D mapping to 2D - heat charts and contour plots. Those would make this perfect. It's still pretty darn nice.

Leaving it All on the Keyboard – It’s Tiring

May 1st, 2009

cubeLifeView.gif

I firmly believe that the best way to do anything is to give it everything you have. All of it. All the time. As they say, Leave it all on the track. Do that, and you'll never wonder if you could have done more. Never. That's a really nice feeling. The problem is that to do this is very tiring. Very.

I've been running full-tilt this week, and it's taking it's toll on me. I'm really tired. I was really tired this morning. But I kept at it. That is one of the really nice things I learned in grad school - you can keep going after you think you can't, you just have to know your own limits.

And today, I have to say, I wrote some great code for my web app because I was running towards a 'finish line' of the QA team getting ahold of it this afternoon. Well... they didn't end up starting to test the app, which in the end, was fine. I needed the entire day to finally fix up the last of the new features. Difficult. But worthwhile.

In a few hours, I'll be rested (a bit) and I'll be able to look back on today and realize that there's nothing I could have done to get more done today. I got an enormous amount done. Useful, nice things - all.

I just need a little rest.

And a nice weekend.

LaunchBar 5 Release Candidate 1 is Out

May 1st, 2009

LaunchBar5.jpg

I got in on the LaunchBar 5 beta back at Beta 6, and I haven't been sad that I did. It's worked flawlessly, and I do love the addition of the clipboard history - that's a huge benefit to me and the way I work.

Now they have released LaunchBar 5 Release Candidate 1 and I had to get that, as well. The release notes say it mostly a few usability fixes and a couple of small bug fixes, but that's OK, it's getting close to done, and the polish is starting to be applied. In all my experience with Mac software, LaunchBar has been one of the best apps I've ever used. Amazing.

Coding Your GUI in a Web Browser is a Love/Hate Relationship

April 30th, 2009

WebDevel.jpg

I've been adjusting my web app today and it's been one of the most interesting and frustrating days in a while. It's possible to get reasonably quick turn-around with the web pages, which is nice, and they can look pretty nice, but the problems with the little things are frustrating beyond belief.

I had a problem with an HTML table, and it was a little off on the right end. Just a few pixels, but it was something I didn't want to see in the app, and I was determined to fix it. I ended up spending more than an hour trying to find the issue only to see that it was a bad colSpan referencing a non-existant column in the table. Firefox didn't mind it, but Chrome did. Arrgh.

I also had issues with a table row that was a little too tall. I could not figure out what the reason was, as I looked at all the elements and there wasn't a reason. Then I scanned the code again and found a CSS height: tag and that was fixing the height of an element. Duh.

So it's nice to be able to make the quick changes, but many times, it's a puzzle to see what you've done wrong when the browser makes assumptions about what you wrote and how you wanted to see it.

Lessons We Should have Learned from Jurassic Park

April 29th, 2009

cubeLifeView.gif

One of my favorite lines from Jurassic Park is when the new arrivals to the park are having lunch and discussing for the first time the concept of having living dinosaurs walking around at the same time as modern man. All the scientists agree that it's not necessarily a good idea, some going so far as to say it's a horrible idea. The quote is from Dr. Ian Malcolm:

I'll tell you the problem with the scientific power that you're using here: it didn't require any discipline to attain it. You read what others had done and you took the next step. You didn't earn the knowledge for yourselves, so you don't take any responsibility for it. You stood on the shoulders of geniuses to accomplish something as fast as you could and before you even knew what you had you patented it and packaged it and slapped it on a plastic lunchbox, and now... you're selling it... you want to sell it!

So how does this effect software development? Easy. There are tools like Eclipse, and frameworks like Spring that allow decent-to-marginal developers to take such terrific shortcuts that they never really have to have the discipline to really make the system they create stable, reliable, maintainable.

In short, they get to hack their way to something that works, without ever really taking responsibility for the system they're building. Let me give you a case in point, but this is by no means the first time I've seen this type of thing happen.

The one app I've been looking a lot at recently is a Tomcat web system that should be a fairly simple collection of servlets doing data collection, aggregation and serving it up. Nothing fancy, but there are details to the process that are important to get right. The developer didn't choose the traditional approach, but rather decided to use Eclipse and Spring to make it easy to re-wire the application at a later date. Tons of interfaces, hard to navigate the code and find what's doing what, and for an app that should have a dozen classes, at most, this is saying something.

But it's classic Spring.

Meaning that the XML configuration files are equally as important as the code it uses. I've had quite a bit of experience with apps like this and in the end, it's always a support nightmare as the configuration of a real app that does a single, well-defined, and well-designed function does not need to have the level of configuration that a Spring app does, and because of that, there's a tremendous risk of messing things up when you do have to do a slight modification.

Now if this developer had to really design this system without using Spring or Eclipse, then they'd have to see where the data was that they needed, and leverage that. They'd say "listen, parsing XML is OK, but it's no way to get the dozen parameters I need - I'll get those from a properties file - or a database." When you have to do it, you think about what's necessary and what's not. You are forced to design the system.

Now, in the hands of a good designer, I have no doubt that Spring can assist in the development process. But in the hands of someone looking to skip a lot of the work, it's a dangerous tool. You have to understand the tools to effectively use them. Just like Jurassic Park.

In the coming days and weeks, I'll be taking over this application and there are a lot of things that I'll be changing. I might rip Spring out completely. The problem isn't that hard, and the configuration issues are one of the major brittle features of the system. Something has to give, and I'm not convinced that Spring is adding the kind of value that it's meant to.

There's nothing wrong with getting a leg up with tools like Spring and Eclipse, but when using them means that you don't really understand what's going on in the workings of your application, then these tools are doing you a disservice. Any developer needs to understand first, and then work on the ease of development.

There really is no free lunch.

Virtualization is Nice, but It’s no Silver Bullet

April 28th, 2009

servers.jpg

The Shop is very fond of using virtual machines for lots of things. And in many ways, I can see it. They make it easy to clone a machine - even move it if the physical hardware has problems. They are reasonably efficient, and for processes and programs that only need a fraction of a machine, they are a great way to isolate one from another without investing in a complete machine for each task.

But I've come to learn the dark, evil side of them.

Greed.

Yup, greed.

It comes from the people that configure them. Say I ask for a VM, they are going to assume that it's not a "big deal", and give me a single core and a little memory. Not too surprising, most tasks don't need a lot. But when you get one that does do something significant, the "cookie cutter" approach that VMs allow gets a little cramped.

When you need a multi-core machine, get the machine. If it's a VM, then you need to go back and say "yeah, but I need another core", and the ensuing "Why?" is something you have to deal with. It's not horrible, but it's what you're going to end up doing more with VMs than when you get hardware that's typically going to be a little more than you need.

I'll get by... but I know now that I need to be asking for "non-standard" VMs with more than one core. I'll learn.

FIrefox 3.0.10 is Out

April 28th, 2009

Firefox.jpg

This morning I noticed that Firefox 3.0.10 was out with the complete set of release notes consisting of:

and that's it. Certainly sounds serious, so I got the latest version and will run with that. It's a nice thing that they have the auto-updating feature as I'm not sure how many folks would take the time to go to the web site every time there's a security update.