Incredible XML View Plugin 1.5 from Marc Liyanage

March 3rd, 2009

A little while ago, Marc Liyanage looked at the ClickToFlash and saw that it was straight ObjC, and with that, he embarked on writing an ObjC plugin for Safari that views XML in a manner similar to how IE shows it - formatted and stylized. The result is XML View Plugin 1.5.

The result is pretty darn amazing:

There's also an automatic updater, as well as the ability to modify the style with CSS and Javascript. Pretty impressive, I must say.

I don't use XML a lot, but when I do, it's really nice to have something that will format and display XML nicely.

Converting from Fantastico to SimpleScripts at HostMonster

March 3rd, 2009

wordpress.gif

Today I was checking at HostMonster to see if Fantastico had WordPress 2.7 or 2.7.1 (the current release). Now I know that Fantastico is a little bit behind the latest releases, and even the better (more up-to-date) SimpleScripts that HostMonster brought on-line a few months ago. The problem was that converting from Fantastico to SimpleScripts was something that the user (that would be me) had to do the conversion themselves. You had to do a basic install in a location, then copy things over and reload the database... lots of grief, and lots of ways for something to go wrong. This kept me from converting to SimpleScripts.

Well... today I noticed that SimpleScripts has a new WordPress conversion feature. Basically, it reads the configuration information from the Fantastico install and then "takes over" for it and allows you to manage the install with SimpleScripts from that point on.

What a break!

So, I converted my WordPress install to SimpleScripts and in less than a minute, it was possible for me to manage it - and that includes updating it to 2.7.1! What a deal! Yes, I'm happy to say that I'm now off Fantastico and on SimpleScripts. HostMonster is still the provider, and I've never had any problems whatsoever with them, and can't imagine a better hosting experience. Super duper. Love it.

The Final Falling Out – Sad to See it Happen

March 3rd, 2009

cubeLifeView.gif

Well... I've been in the midst of this "brain dump" - the last two weeks of this job, and this morning I realize that I've had the final falling out with a co-worker that I've worked with more or less comfortably by for many years. It's not something I could have helped, really. Nor is it totally unexpected. The guys taking over my projects are being pressured to be able to build and deploy the codebase before I leave. Sounds like a good plan. Some are taking it a step further: they want to be able to re-create the entire environment I've used. That's a much bigger task.

To be able to go to a specific machine that has all the infrastructure set-up for the project, check out the code, build it and deploy it is a reasonable goal in a few days. But to understand the infrastructure - for example, one of my projects uses Tibco. In order to run Tibco, you need to get the license file from the higher-ups and then place it in the path, and then put in an entry into /etc/init.d for rvd and then get it added to the environment, and then running. It's possible, but it's not really as important as being able to build the code that uses Tibco.

When there's time, the deeper investigation of the infrastructure can be looked at. And at that time, there will be sufficient experience with the project so that there's an understanding of what the infrastructure components are doing and why. But for now, that's really a step beyond the initial cut of "check-out, build, deploy". It's a good goal, but it's not something that should be viewed as an absolute requirement.

But it seems to be viewed that way by this co-worker.

When he asked me how to get this one service going, I suggested that doing it on this one box was the right thing to do. When that wasn't sufficient for his desires, without further explanation on his part, he got mad. And stayed mad. I got the feeling yesterday afternoon that he was upset with me not helping him in this regard - but to be fair, even if it was in the plan for him, me doing it would be wrong because that means that the people left here are not learning how to do these tasks.

Either way, my hands were tied, and he didn't like that.

Understandable, and I can see a lot more of this coming in the weeks and months ahead. I expect to hear a lot of nasty things being said about me in my absence. This place was busy when I was here, and I was doing a lot of things. Remove me, and everyone's workload increases significantly, and that's not going to make anyone happy.

So it seems to have started here, in my last week on the job. I tried to talk to him about it this morning, and I can see that it's clearly just as sore an issue with him as it was yesterday. He's upset, and he thinks I'm being horrifically unreasonable. I think I'm trying to make it easier on him, and if he insists on going that extra mile, then he needs to know that I can't possibly help him without negating the effort he's putting forth.

Oh well... there's nothing I can really do about it. He's upset for what he believes are valid reasons. Perception is far more important than Reality - so true.

Slugging Through More Transition Questions

March 2nd, 2009

cubeLifeView.gif

I know it's what was going to happen, but that doesn't make it any easier to live through. This constant barrage of questions from the developers and support staff is really quite draining. And it's not the stuff I've left out of the docs - that I can understand. It's the things that appear to be problems when in fact they are environment issues on the part of the developer that are inconsistent/incompatible with the project they are taking over.

It's a simple job to make a .cshrc file look at the name of the machine - and/or the version of the operating system, and then set up defaults for that box so that the user doesn't have to do any of the changes on his end. Take make, for example. On the linux boxes, it's the GNU Make that's shipped with the RHEL distribution. But on Solaris, you have to be careful, because GNU Make is installed in /usr/local/bin on all our Solaris boxes, but it's also on the shared file servers, and even in the Sun compiler suite - as we are licensed for that as well.

So you have to make sure that you're pointing to the right things, on the right boxes, so that all the simple development commands and such just work. It's not hard. But it takes a little effort. This is why I have told people about where my .cshrc and .login are, and they are free to look at them and see what they might want to pick up for themselves.

Of course, they don't have to do that - they are free to change anything and everything about these projects now that I'm no longer "actively involved". However, if they come to me and they think something should work out-of-the-box, and it's not... then debugging these issues is especially tiring as I was assuming that things are set up correct for the build.

But in the end, I only need to give it a few more days and then it's no longer my problem. It'll be up to the folks remaining to work through all the unasked questions and make sense of the codebase that I've left. There's a lot there to work with, and it's working just fine. But things change... Oh... things change.

Getting a Few More WordPress Themes

March 2nd, 2009

wordpress.gif

This morning, between questions, I was scanning the WordPress site for a few themes that I might try out when I open this weblog back up for public consumption. I'm looking for a white background, two-column, simple layout. I'm really not into the flash and color of a lot of the blogs out there - it's just a place for me to put my thoughts and notes, as well as code samples, etc. Just plain stuff.

I do like the WordPress theme system, and there are a bunch of good themes out there on the WordPress site. It's just an issue of looking through the ones you're interested in and picking out the winners. Today I picked up a few (four) and we'll see what they do for me when I turn the blog back on. I'm hoping for a nice image boost from the default WordPress theme, but it has served me well for all this time. Can't really complain.

Well... I have four more days and then it's freedom. It's going to feel good to be looking forward to the new job.

Seems Safari 4 Beta is a Bit Hard on Some Apps

March 2nd, 2009

VoodooPad4.jpg

It seems that the changes to WebKit, and it's ramifications to the rest of the system are really quite profound. This morning I read a tweet from Gus M. of Flying Meat Inc, and it's about a bug introduced by Safari 4 Beta into the NSAttributedString code for VoodooPad. Bummer. I can (unfortunately) relate all too well to this, and while it lies squarely at Apple's feet for not informing the users (and the developers) of the impacts of these changes, it's the developers (and the users) that have to live with the consequences.

In this case, there's a new pre-release version of VoodooPad out there that fixes this issue, but it's pre-release, and unless I end up hitting this bug, I'll stick with the regular releases as I think it's reasonable that he'll have 4.1 out soon. It certainly sounds like 4.1 is close. Good enough for me.

[3/3] UPDATE: I decided that I needed the update to 4.1 as I was having issues with the app and I wasn't going to get rid of Safari 4 - it's just too nice.

The Distribution of My Work – It’s Done

February 27th, 2009

cubeLifeView.gif

Well... another milestone: management has divided out my projects to pairs of people - ten groups in all. Amazing. Twenty people. Wow. I know there's no need for the doubling up, but it's the enterprise thing to do, and it's what the management team seems to be going for. Good for them. Wonderful.

These days I'm answering a few questions... distributing a bit of the hardware that's in my cube to the people that are taking over the projects. Answering a few detailed questions about how to build and run the app. It's stuff that I've covered in the de-briefing talks, but I understand that they weren't really listening because they hadn't gotten their assignments until all the talks were done.

I find myself wishing for the day to be over. For next week to be over. When I was struggling with this place, and I was convinced that I was going to be here for a long time, things were bad. And I tried very hard to make the best of them. But now that I'm a lame duck developer, I find I'm getting even less respect, and that makes it even harder.

After all, I didn't have to give two weeks notice. I didn't have to give 9 months notice in the sense that I wasn't happy and looking. They waited until the last minute, and then when they know I'm a short-timer, they treat me even more dreadfully than before. I find myself wishing they'd just ask me to leave. That would be nice.

It's sad, it really is, because unlike those times that you've heard a person burning their bridges with an employer by not giving sufficient notice or not documenting things, or being a jerk, etc. This time it's the Company that is doing this to the person - that would be me. I feel sad because of this. I have worked here for over seven and a half years, and the best I can muster in leaving is this?

What it's crystalized is the knowledge in my head that this was the right move, and it's better to be taking it now than waiting another year... or even another week. It's time to go.

Well… Moving to the New MacBook Pro is Done

February 26th, 2009

MacBookPro17.jpg

Well... it came today and so I left work a little early (3:00 pm) after the last of the meetings and went home to do the conversion. The unboxing was impressive, as always. The set-up started very uneventfully, and then I ran into those things that I keep forgetting about - the docs I have in /Developer/Java that I probably need to move to my home directory if I want to make this a smoother transition next time, and then the amazing fact that all the developer tools (Xcode, etc.) are not copied.

I can understand that, in a sense, but in a larger sense, it's amazingly obvious that they should be copied over. After all, /usr/local/ gets copied - and that's not even visible to the average user. The Developer Tools are something that needs to be copied. Period. No excuses.

Fonts. Fonts are another thing that aren't copied over. Thank goodness that I keep the fonts around for a while, or else I'd have a pickle of a time getting them to install in short order. Let's face it - I have until about 8:15 pm to get this all done for tomorrow or else I'm taking the old notebook back to work, and I'll have to repeat this over again this weekend.

But I got them installed. I had to re-install Safari 4 Beta - but that's completely understandable. I then had to deal with setting up a few preferences on Terminal.app, and Xcode, and then it was looking pretty much normal. Sure, the display size is great, and at the same time messes up the layouts I've been using on the older MacBook Pro, but that's something I can get used to. I just need to work with it for a few days to come to the best layout of the different Spaces.

On the whole, it was a good time. Stressful for a while, but I got it all done in an evening and now I can make sure it's all OK, and then convert the old laptop into a new Kids Computer for the living room. That is going to make things a lot cleaner in the living room and will also provide a nice speed bump from the Mac Mini that's been there for quite a while.

Disillusionment with CorePlot – An Unfortunate Realization

February 26th, 2009

CorePlot.jpg

As part of migrating from my old MacBook Pro to the new one I got today, I did an 'svn update' on the CorePlot repo - just to see if anything had changed since I'd put in that fix for the Core Animation NSDecimal encoding issue. I was surprised, and a little saddened by what I saw.

Virtually all the changes I'd made were gone. All the comments - Gone. The files looked exactly like the skeleton files I'd seen in the project. I had no idea that's what Drew thought was done. I didn't. Not even close.

Drew's checkin comment was pretty insightful:

Reduced the interface of new CPPlotRange class to make it 'minimal but complete'. Also removed a lot of commentary in the class, which wasn't really necessary, and just made understanding the class more difficult.

Removed the function 'CPMakePlotRange'. It was a quasi-initializer for the old struct, and has been superseded by a class method.

While I understand the comment minimal but complete, I don't think that's what Apple does on it's - init methods. There are a ton of them taking all different kinds of (relevant) data types: double, NSDecimal, NSDecimalNumber - all were valid in this case, but Drew has decided that only the NSDecimal one was needed.

Furthermore, I don't agree at all with his assessment of the comments. I'm clearly a comment-focused person. I live it every single day of my professional life. But it seems that Drew is of the belief that code should be simple enough to be self-documenting, and that's something I simply cannot work with.

So it makes me sad to say that I have no further desire to work with, or even use the CorePlot framework. I respect Drew's ability to do what he wants, but he's going to lead it down the path of a poorly documented pile of junk in a few years. I'd rather stick with commercial and live with the licensing issues and costs. In the end, Drew isn't going to take any real responsibility for the code, and yet he's completely unwilling to see the value of good, solid, commenting.

Too bad.

More Meetings… But at Least They are Over

February 26th, 2009

cubeLifeView.gif

Well... today has been nothing but meetings about the systems I've worked on. It's been difficult, as I've said, and they have not been universally pleasant, but at least they are over. No more of them.

Starting tomorrow, and for the next five days, there may be little one-on-one meetings about this or that, but it's not going to be the kid of meetings I've had. Hopefully, they will be more focused on goals, and I'll be able to ask them if they've read the docs I've left, and if not, instruct them to do so for future generations.

I can say this is not a "fun" time... but it's necessary. I'll be gone in another week, and there will be nothing they can say I should have done before leaving that I didn't do. Necessary.