Archive for June, 2008

Funny Video about IT Support

Monday, June 30th, 2008

cubeLifeView.gif

I found this movie on Daring Fireball, and I have to say I've laughed hard each time I've watched it. It's not that I'd have played either role in this clearly fictional interchange, but it's so typical of many of the interactions between non-technical folks and the IT folks.

The vocabulary miscommunication... the reboot that turns into a power-cycle... the mistaken power-cycle... the remote desktop session... it's all just too funny when put together in a short format like this. Really quite impressive. I watch this with my wife, and while she didn't understand all of it, she understood enough, and was amazed by the 'Exchange Gymnastics' so that even she laughed quite a bit.

The icons are a laugh all by themselves.

If you have ten minutes, and are in IT, watch this. Incredible.

Coming to Terms With One’s Place in the Organization

Monday, June 30th, 2008

cubeLifeView.gif

I was trying to get some sleep last night, and I got a call from the Shop about a problem with one of my systems. It wasn't my fault, but that doesn't matter, does it? There is a problem, and it needs to be fixed, and trying to assign blame is just not going to do anyone any good. I walked the second-shift guy though the initial debugging steps, and it appeared that I had to get out of bed, get online and see what was happening.

Turns out, there's a mistake in the generation of a back-up position file, and the simplest thing was to get the primary working and base things off that. I did it, and was back in bed in about an hour or so. Not a huge deal. But then it got me to thinking about the last few weeks.

I've been asked to get "emergency" updates out for projects that aren't mine, and did them literally in less than half the time the manager of the product expected - less than 24 hrs. in all cases. I've been asked to do several things that under 'normal' circumstances I'd never have been asked to do - all because it's an emergency for one business user or another, and they needed it done right away and had no time to get one of the eight people on the project to actually do it.

Then the calls about the problems that aren't really mine, but I'll fix because that's the kind of person I am. I don't pass the buck, I don't find the problem, assign blame, and hang up. I find the problem, fix it, and then we try to make sure it doesn't happen again.

I'm the classic go-to guy here. I've been here for so long that I know how a lot of things fit together, I know what's supposed to happen, what might happen, and how to deal with it. I'm a walking compendium of environmental knowledge, and that's become what my real job is. I'm trying to come to terms with it, because I took this job to be a coder, and there are a lot of people here that have far more time with these systems than I do, but they aren't the kind that will function as I do in the middle of the night. Many will yell and hang-up, or simply not answer the phone. So I've become the person I am.

It's security, that's for sure. But it's also a little boring. I want to create not answer the same questions 53 times a week from 13 different people trying to track down what happened on this day at this time because the business wants yet another post-mortem on the problem. I understand the need for the analysis... I just don't see the need for everyone to bug me about it.

I'm going to have to grow into this role, that's for sure.

Adding a Pseudo-Z-Axis to Scatter Graphs

Friday, June 27th, 2008

comboGraph.png

Today someone stopped by and asked if there were a way to add a grouping, or filtering, capability to the scatter graphs that I have built atop the VantagePoint graphing system. In the Shop, we use these interfacial classes as they include applet frameworks so it's easy to include them in applications and applets, they represent a simplified user interface, while still allowing the user to dig into and grab the VantagePoint objects if required.

The functionality is basically this: have the user indicate a column in the dataset - numeric or alphabetic, and then generate a list of unique values for that column. Put those into a simple JList in the graph's GUI and then allow the user to select/de-select the values and in so doing, showing and hiding the values on the graph. For a concrete case, imagine there's a column that indicates the species of an animal, and the rows are a series of animals on a farm. Many will be duplicates (cows) because there may be specific data fro each cow, but there will also be chickens, and pigs, and dogs, etc.

By selecting 'cow' in the JList, the cow's data will be show in the graph. Deselect it and the cow data will disappear from the graph. Pretty neat. It's a good idea, and I needed to think for a while about how exactly to implement it successfully.

VantagePoint allows me to easily show/hide the individual labels on points, so that's easy. But when looking at the points on the scatter graph we're in a bit of a pickle. You see, the scatter graph is the intersection of two columns - one for the x-axis and the other for the y-axis. VantagePoint only allows for showing/hiding of complete columns. So if I try to hide one point, I hide the entire graph. That's not good, and there were no documentated ways to do this 'single-point' visibility.

Then I got the idea of painting the points white-on-white. VantagePoint allows you to color each data point differently, but the problem is there's a black border on the points, and I could not figure out how to change that color. Then I thought of the size. Bingo! I had a winner.

I could make the points that I wanted to hide very, very small, so small that they didn't even render. Then when I needed to show them again, I could draw them 'normal' sized. This was nice because I didn't have to remember the color of the point - I just had to change the size of a point from 'small' to 'normal'. Sweet!

I still had a little work to do on the order of graphical operation to keep the 'flash' in the update to a minimum, but I think I have that working just fine now. It's been an interesting ride, but I'm glad I stuck with it to get this done. It'll be a nice addition to the graphing capabilities of the graph.

Good Coding is All in the Details

Thursday, June 26th, 2008

GeneralDev.jpg

I was talking to a friend that was 'thinking out-loud' about starting an Open Source project for a web service that he wanted to build in Erlang. It sounds nice, but as I'm not really the most knowledgeable person about the subject matter, I'm really more of an interested observer than an active participant, but we've been friends for a lot of years, and so I wanted to listen about this idea of his.

He got around to the fact that he was also working though this issue with XML files (totally unrelated, which is the way a lot of our conversations are) and the fact that the people that created these XML files had their own XML parser that didn't adhere to the XML standard, and so all the XML code they generated wasn't standard and he had to write a job to clean it all up t then use it. "It's all about details!" he said, and I could not agree more.

Development is about details. Anyone can sit and say "I want this page/view to have this, and that, and this, and I want it to look like this, with bold here, and a pick-list there..." but it's making it work that's the tough part. Even with code generators these days, it's the details they leave out that matter most. If you really want to make a sustainable, maintainable, robust application, then it's going to require that someone get involved in the details. There's no other way to do it.

If you think you can be a developer and not pay attention to the details, then my suggestion is to get another job. You're not in the right line of work. You might as well be a surgeon that can't stand to see blood. It's that much a part of the job. Unfortunately, as my friend and I spoke, I realized that we both know of a lot of 'developers' that don't have any attention to detail. I hear it every day. It's a sad statement on the craft of development that there's no easy way to tell a developer who has attention to detail from one that does not. They both look the same.

Happy 7th Anniversary!

Wednesday, June 25th, 2008

cubeLifeView.gif

Seven years ago today I walked into a new place, a new position, a new job and it's been an interesting ride. I've made many friends, some have moved on, others have come. I still talk to many, and miss others that I haven't been able to stay in contact with.

The work has been interesting, tiring, fruitful and, unfortunately at times, pointless and wasteful. It's been an incredible series of events and projects. Things designed quickly, based on good instincts, built quickly have lasted for years longer than expected and have worked wonderfully. Things designed by the best-intentioned groups with all the governance, etc. have languished for a few months and failed before ever really getting off the ground.

Ups... downs... seven years of work. Lots to think back on and remember today.

A Couple of Updates – Acorn and NetNewsWire

Wednesday, June 25th, 2008

acorn.png

This morning Acorn v1.2.1 was released with a lot of bug fixes and no real feature enhancements listed in the release notes. I hadn't noticed a lot of issues with it in my usage, but after reading the release notes, it was clear that there were some drawing/rendering and such issues that would have annoyed me, had I been using those features in my daily work.

Glad they fixed them, and got a new release out. Interesting aside, I noted on Twitter that Gus was doing the build of 1.2.1 as he was tweeting about it. A few hours later - Bingo! a new release. Twitter is the portent of new releases. Cool.

NetNewsWire.jpg

Also this morning, NetNewsWire v3.1.7b1 was released with the singular bug fix of working much better with Growl, which I use every day for all kinds of notifications. I hadn't noticed any real performance hit, but there must have been something significant going on or there would not have been the need for the fix (and update).

So... good enough. Polish on an already nice app - can't beat that.

Odd Cacheing Issue with MarsEdit and WordPress

Tuesday, June 24th, 2008

MarsEditIcon128.jpg

I noticed today that my image of the Firefox app icon had a black pixel on the lower-righthand corner of the image. I pulled up Acorn and fixed it, and moved it to HostMonster, and it looks fine if I hit it directly from a web browser. I also copied it but in MarsEdit and removed the old thumbnail image to let MarsEdit re-create it, and still... in MarsEdit's Preview Pane, the old image remains. I'm stumped.

So I posted a message to the MarsEdit online forums and got this reply back from Daniel:

Hi Dr Bob - try deleting the MarsEdit cache folder that is creating by WebKit:

[Home] -> Library -> Caches -> com.red-sweater.marsedit

I'm not sure why some items are cached so aggressively even when they've changed.

So I tried that... still the old image remains. In fact, after stopping/starting MarsEdit a few times the directory is never created. This tells me that this is not only not the place the image is being held, it's not even used for what the author expected.

I'm at a bit of a loss to understand where the old image is being held. It's not on the web server, it's not in the cache I just deleted, it's not in the MarsEdit application support data... I'm stumped. And yet I'm sure it's still there. I can see it. Every Firefox post has this image and it's that way in the preview pane of all of them.

Bugger. I'm going to have to see if I can force MarsEdit to reload things. Or I'm going to have to find out where the image cache is really located and wipe that image out.

[1:15 pm] UPDATE: I've cleared the Safari cache, I've verified that the images on the web site are the correct ones, so it's a simple matter of my laptop thinking that the file hasn't changed, and therefore, not to reload it for MarsEdit. I've updated the post on the support forum to say what I've tried and what hasn't worked, and I guess I'm going to have to wait for another idea. Googling 'image cacheing WebKit "Mac OS X"' gives me nothing of real relevance, and too much noise. So I'm going to have to live with it until it thinks the image needs to be replaced.

[2:00 pm] UPDATE: Daniel suggested looking for a 'MarsEdit' directory in ~/Library/Caches/ and deleting that. There was one there as well - with lots of stuff in it, but removing it didn't effect a thing. Also, it was not recreated after several start/stop cycles. Very odd. I've updated the thread on the forum and we'll see what he comes back with.

[2:30 pm] UPDATE: I've removed the old Ranchero MarsEdit defaults, and while I didn't think they were doing anything, I didn't want to take the chance. Also, the icon database in ~/Library/Icons/WebpageIcons.db didn't hold the key either. I removed that, restarted MarsEdit, and still no difference. Wherever these images are, they are pretty well hidden. I looked at the defaults for the app and say nothing that would point to a different directory. It's a real stumper, I'd say. I think I'm giving up for now. I'm just running out of ideas.

[4:30 pm] UPDATE: it turned out that if I reloaded the page in the Preview pane, the same bad image came back. But if I reloaded it again then on the second reload, the right image was there. So, lesson learned - reload a few times to make sure you get the very latest.

[6/26 3:43am] UPDATE: it turns out from this article that in 10.5.2 Apple changed the location of the WebKit cache from ~/Library/Caches to /var/folders - not for any reason of security but simply performance - the home directory could be on a network drive but /var is on the machine itself. So, to clear the cache, you have to clear out /var/folders. Unfortunately, it's not easy to find the cache entries, and you have to really search (ala find) to find the ones you're looking for. FOr this case, it's:

  pushd /var/folders
  find . -name \*marsedit\*

and you'll find the directory you're looking for. Delete that, and the cache is gone.

Viewing PDF Files Inline in Firefox 3.0

Tuesday, June 24th, 2008

Firefox.jpg

With this plugin, you can now view PDF files in a Firefox 3.0 browser window. While I'm not a huge fan of PDFs, they are a popular way of getting out a stylized page, and reading them in Acrobat, or a stand-alone Preview window isn't as nice an experience as seeinf them in-line in the browser. So when I saw this plugin I got it right away.

No time like the present to get things off to a smoother start. With Safari in Mac OS X 10.5, I've really liked the way Preview shows PDFs in the browser window. Very fast, very clean, and less of a horrible kludge that is Acrobat in Safari. I wonder why Adobe doesn't work harder at making the experience with their tools better? Odd. Anyway, I've liked the Safari/Preview combo, and now I'll have a similar set up with Firefox. Excellent.

Problem with iWeb and Firefox 3.0

Tuesday, June 24th, 2008

Firefox.jpg

I caught this story this morning about the problem with a Javascript bug in iWeb and how Firefox 3.0 fixed it and broke the usage in iWeb. It's not a blame game but if you want to get the Photo Galleries in iWeb fixed, you're going to need to get a new Javascript patch from the site and install it on your iWeb site and then the Photo Gallery and Blog postings will work.

I'll have to remember that for the Kids' iWeb pages. I can't imagine that it's going to be that hard to update, so I'll try to get it done this evening - or at latest, this weekend and let them re-publish to the web. Glad that someone is following these issues. I'm sure there will be an iWeb update soon to fix this.

MacVim Updated to Snapshot 32

Tuesday, June 24th, 2008

MacVim.jpg

I've been using MacVim for a few months, and reading the mailing lists about features, updates, etc. It's interesting stuff to listen to people that are as into Vim as I am my family. It's amazing how much these folks know about my favorite editor. Today the team released Snapshot 32, and with this, they hope to be turning back on the Sparkle updating from Google Code. It's been turned off for the last few updates because of issues, and they are thinking that they have them solved, and are back on track for enabling them again. We'll see how well the update is received.

I'm excited about it... and learned a new thing about .vimrc files today - you don't include the colon in each line. The guy on the mailing list pointed out that Chapter 5 of the manual points out that you don't put in the colon (':') but everything after it. So I went through my .vimrc and cleaned it up and it's working perfectly. Not that it wasn't before, but there was someone that had a problem, and this makes sure I don't run into that kind of problem later. Nice.