Upgraded to WordPress 2.8 at HostMonster

June 11th, 2009

wordpress.gif

I like SimpleScripts at HostMonster! This morning I got an email from SimpleScripts saying that WordPress 2.8 was out and was ready to upgrade my installs at HostMonster. Two things: one, I didn't know that 2.8 was even out yet (beating the Fantastico time-to-market by a ton) and two, what a wonderful service to let me know that there was an update available rather than me having to know and then look to the Fantastico site to see if it's there yet.

Very nice package, SimpleScripts. I'm glad I moved over. WordPress 2.8 I haven't heard anything about, but we'll see what it has to say for itself in the coming days.

Cutting Over from Git to Subversion

June 10th, 2009

gitLogo.gif

Well... today I decided it wasn't worth it to keep working in Git when it's not really supported in the Shop. The approved version control is Subversion, and that's not really horrible, but it's not as nice as Git or CVS. The requirement that you have to change directories to change to a branch is silly. I understand why they did it, but it was a bit of a cop-out. At the same time, subversion holds the 'ignore' files in metadata, they could have held the branch/tag info.

Anyway... without support I decided to move. The problem is, there are no real tools to move from Git to Subversion. What I ended up doing was to create a new project in Subversion and then import the latest copy of the files. I lost the entire history to date on the two projects. It was a little disappointing, but in the end, we have something that I can easily share with other developers.

I feel a bit sad for not being able to use Git, but in the end, the realities of the work environment dictated that it had to be done.

Leveraging the Back-End System I’ve Written

June 10th, 2009

WebDevel.jpg

Today a co-worker wanted to leverage the back-end Google Visualization system I have created for my web app. Given that I've got all the web services with database connections and the Google Visualization data generation, it made sense to look at the Google Visualization Gallery and see if they had something that would fit her needs. If they did, it would be relatively easy to make a page that issued an AJAX call to my server with the request for the database to be returned and placed into a simple x-y graph tool.

The first thing I needed to do was to subclass the GoogleVisualization class and create one that uses the back-end database connection as opposed to the in-memory database connection. This would allow her to execute queries against the back-end database, which was what she wanted. From there, all she had to do was to glue it together with a little HTML.

It took a while, but she's getting the hang of it.

DrawIt 3.8.2 is Out

June 9th, 2009

DrawIt.jpg

Wow! It seems I missed quite a bit with DrawIt... it's at 3.8.2 already with the latest Sparkle notes saying only:

  • It's now again possible to change document size
  • Bitmap images can again be edited in external editors

I've looked on the web site and I can't seem to find the release notes for the other releases. Bummer. Oh well... it's up to date anyway.

Safari 4 is Released on Software Updates

June 9th, 2009

Safari.jpg

As part of the WWDC Keynote yesterday, it was announced that Safari 4 was officially released. This morning it's on Software Updates, and because it's going to require a restart, I'm going to hold off on installing it until I have a good 20 mins to do the install and restart.

I'm sure there are a few nice fixes, but I'm not expecting anything spectacular in terms of performance and such. It's just the final release and the beta has been exceptionally stable for me - which is fantastic.

It's good to see it finally released.

UPDATE: I'm sorry to say that they removed the new tabs and it's back to the tab bar below the title bar. Sad to see it go. I liked that far better than the system I've got now.

Lots to Like from the WWDC Keynote

June 8th, 2009

keynote_sm.png

Well... the keynote didn't disappoint. I have to say that the update to the MacBooks was probably the most surprising to me. Bringing all the machines up to the 17" MacBook Pro level was pretty nice. It was also nice to hear about Safari 4 being released, and Snow Leopard for $29/$49 was simply a great deal that I can't imagine anyone passing on.

Of course the big news was the most expected - the iPhone 3GS. Hard to decide right now if this is the time for me to jump in. Teathering is there, but AT&T doesn't support it. Multi-media mail is there, but AT&T doesn't support it - yet. AT&T is trying to get a faster network, but it isn't there yet, and the coverage is really spotty I've heard from friends.

So maybe it's time, maybe not. I'll have to wait and see. But all-in-all, a nice presentation full of goodies and even a few surprises.

Nearly Complete iLife ’09 Update on Software Updates

June 5th, 2009

iLife09.jpg

This morning there was a nearly complete update on all the components of iLife '09 - I think iWeb was the only one that wasn't updated. Lots of new things, and better 'raw' processing from some more cameras. It's nice, but I really need to get myself a camera or iPhone with video so that I can begin to take advantage of these tools. It's really getting silly.

Oh well... gotta stay up to date for the day I get that camera.

What a Fantastic Day – Too Bad it was Doomed

June 4th, 2009

cubeLifeView.gif

Today was one of those days you can't believe. I was coding to some wonderful music on my iPod and things were just falling into place. I'd write a method, it'd be say a dozen lines of code, and then I'd look back at it and think Wow! That's impressive. It covers all the bases, and is elegant. I did that again, and again, and again.

I had about 3 hours of this today. It was spectacular. Really. I can't remember the last day I had when I was this hot on the keyboard. It's been a while, I can tell you that.

So of course, it had to end badly. Doesn't it always?

It started when I had the basics of this F/X correction into my web app. It was absolutely wonderful. It slipped in cleanly and easily, and it worked like a charm. Sure, it had methods that needed to be database-driven as opposed to the hard-coding, but that was to save time and make sure I had it all under control.

I had a method that would give me the conversion factor for a 'from' and a 'to' currency code, for example. This needs to be driven of the database of F/X rates, but I had the basic conversions coded up as fixed numbers. The method worked, and once I got the database work in place, it would be driven off better data, but the essentials were there, and everything could be seen to be working.

This was all done about a week early, by the way.

So I mentioned to my manager that I had the rough-cut of the F/X conversions in. I tried to explain the things I had yet to do, but he was already off to the races: "Did you get this in yet? How about this? Can I see this?" Like an old boss I'd had. Excited, which is nice, but already assuming that a week early is "normal" for me.

In a very real sense, I condition people to expect greatness from me and then I'm stuck with their expectations. It's only taken three months for this manager. Yet I can't blame him. For these three months I've been working exceptionally hard to get things going, and I've got an impressive string of successes already. That I got this done in a day is not really all that surprising. But it'd be nice if he at least gave it 5 mins before asking if I'd done the next three things on my list.

Just give me a little rest.

So I ended up on a real downer when it should have been fantastic. Bummer.

Sometimes It Comes Faster than You can Field It

June 3rd, 2009

cubeLifeView.gif

Today was an interesting day, that's for sure. I've been trying to tie up several loose ends with this project I'm working on with another developer in the Shop, and I wanted today to be the day that we finally finished it off and sent it to QA. Seemed very reasonable when I got into work today.

My tests went perfectly, and that was about all that did. I had a 'drive by' from two developers saying that the code they'd written in the project wasn't returning the correct numbers, and the way in which I was getting it would have to change. Not horrible. In fact, reasonable, and so we spent the hour there getting that fixed up.

Then there were logging problems with the addition of the log4j jar and no configuration file. That set me back a bit as I waited for the other developer to do it. I ended up doing it to try and get this all put to bed today.

During all this, I had added new data sources to another app I'm working on and those weren't configured exactly right. The net result was that I was missing a ton of P/L in the calculations making it look like there was a huge loss. Someone was freaking out and I was in the middle of trying to check in some things for the other project while he's telling me of the problem.

"I'm on it... just give me one minute to check this in." I said.

No more than 10 sec. later he says "Could it be in the configuration?"

"Yes, I'll check it in less than a minute, I promise." as I frantically try to write the subversion check-in comment for the code sample I just finished for the project.

No more than 10 sec later he says "If this is real, they need to know about it."

"I promise, just another few seconds and I'll be on it."

Then he stands up and tries to talk to be and I look at him, put my fingers in my ears and sing "La La La La La" like the kid that doesn't want to hear what the parent has to say. Childish? Sure. But I didn't want to insult him by saying "Do you have a watch? Count off 60 sec. and be quiet!".

In less than 20 sec. I was done, another 60 sec. and I had the problem figured out, and within 5 minutes it was all solved. He then wanted to discuss why this happened, I explained that it was because the way the app was written by this other developer and the instrument lists were set by the XML config files and that's very manually intensive. He wanted to know how soon we could make it database-driven, and I said we could, but it'd drive out other things that he wanted done.

No easy choices, but the best advice is not to make decisions when you're upset about something. In this case, seeing bad P/L from a new data source. It wasn't even in production - just test. Learn that not all problems have the same impact.

Thankfully, after a few minutes of talking he calmed down and realized that the schedule we put together of work was probably the best, and we would get through this just fine. It's not perfect, but I didn't write the thing, and we're just doing the best we can to muddle through until we can give it a complete overhaul.

But I'm glad it's over.

Tomcat 6 and log4j Logging is Not Really Complete

June 3rd, 2009

WebDevel.jpg

I have been messing with Tomcat 6 and log4J logging today because this web app I've been working with had to add log4j for an external dependency that was added today. In general, I'm a fan of log4j if you go through the effort of using it properly, it's not bad. But adding it turned out to be a pain that I couldn't have imagined. In the end, I should have gone directly to the Tomcat 6 website and looked at the docs there and not questioned it. But I had done this before, and I was convinced that I could whip this up without any grief. (Ha)

The simplest thing was to create a log4j.properties file like:

  log4j.rootLogger=INFO,A1
      log4j.appender.A1=org.apache.log4j.ConsoleAppender
      log4j.appender.A1.layout=org.apache.log4j.PatternLayout
      log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

and place it in the WEB-INF/lib directory of the web app. I also placed the log4j.jar (version 1.2.15) into the same directory, deployed it and it worked. Almost.

Actually, it worked about half the time. The other half the time I got a warning from log4j saying it couldn't find the properties file. Very odd. If I edited the file, it was there and OK, but sometimes it'd work and sometimes not.

I looked into this from a lot of angles, and there was nothing I could do to get it to reliably recognize the log4j.properties file in the WEB-INF/lib directory of the web app. Then I read this from the Tomcat 6 website.

Seems they are saying that you have to place the log4j.properties file in the $CATALINA_HOME/lib directory. No choice. That means it's the same logging for all web apps on that instance. In general, I can see why that's required, but then I'm a little blown away that it wasn't working where it was. But it was... and it wasn't.

So in the end, I put the files (jar and properties file) into the $CATALINA_HOME/lib directory and restarted things and it's working fine. Kind of a pain to tease me with the possible working within the web app, and that would be exceptionally cool, but it's just not going to happen in this release of Tomcat 6.