Shameless self promotion
So I just got the link this morning that one of my articles got picked up by Dr. Dobb’s online.
Pretty cool.
I’ll be more than happy to sign anyone’s monitor that reads it. (Sorry, local monitors only.)
Crouching tiger, coding monkey
So I just got the link this morning that one of my articles got picked up by Dr. Dobb’s online.
Pretty cool.
I’ll be more than happy to sign anyone’s monitor that reads it. (Sorry, local monitors only.)
Based on the fabulous response I got from my last Xcode 3 demo I decided to do another one. No seriously, great reviews. Just look at what Jeff had to say:
“This sort of shameless pandering and karma whoring is what will serve you so well in your evangelist role. I only wish I could claim first post (it myself). It seems that with the writer’s strike people must be hard up looking for good entertainment.”
I had to tighten up his note, you know space limitations and such. It still pretty much reads the same. Mostly.
This one shows how the new Interface Builder heads up display makes it a lot easier to connect up outlets.
I’ll admit it, I’m terribly disappointed in myself. I’m sick with regret actually. Truth be told I haven’t done something this stupid since, well, let’s just say that writing about it in a public forum has been strongly discouraged by my legal team.
What I am talking about you ask? I made the boneheaded mistake of telling Yan that come November 16th it would have been ONE FULL YEAR since he had last posted to his blog. A year. 365 days. 1/3 of my kid’s entire life. I’m not sure how you say slacker in Russian but I’m sure it’s spelled Y-A-N.
Anyhow, because I told him this he goes off and does something silly, like making a post. This pretty much ruins my plans for a big celebration on the 16th. On the plus side I hadn’t made any plans yet so now I don’t have to bother. But still, a year. Sheesh.
In tech news I’ve got a story about what not to do when installing and configuring Leopard Server on a shiny new Xserve. First, here’s the list of things to do.
1. Have someone other than yourself haul the unwieldy beast from the FedEx pickup point to the network room.
1a. Hide in shame when said hauling person is literally half your size.
2. Get the network admin to install the rack rails and shove the (still) unwieldy beast into the rack.
3. Have the Xserve hooked up to the remote terminal so that you can sit in relative comfort from a workstation to configure it rather than stand in a room that sounds like the deck of an aircraft carrier.
4. Install Leopard Server using the settings that you tried out on an old G5 so that you know they will work. This allows things like Active Directory integration to actually integrate.
Now, more importantly, here is a list of things not to do.
1. Tell one of the product managers that things are sufficiently stable and that they can start using the new Leopard wiki software.
2. Forget to ask the network admin if the backup client software has been installed.
3. Let the Xserve out of your sight while the network admin changes the run mode from Workgroup to Advanced.
It’s that last one that is the real punch in the gut. You see Leopard Server runs in essentially one of three modes. There’s a Simple mode which is for standalone servers. There’s Workgroup mode which lets you integrate the server with an Active Directory for authentication. (Or an Open Directory if you’re one of the ten people in the world that runs a corporate Open Directory.) Then there’s Advanced mode which is essentially what everything was like pre-Leopard. By using Workgroup mode pulling users from Active Directory is so trivial it nearly makes you want to cry. We did this initially and life was good.
The problem came where the mode got changed to Advanced which has the most curious side effect of completely hosing the Active Directory integration. Authentication errors led to application errors which led to the discovery that really ruined the day:
THERE’S NO WAY TO GO BACK TO WORKGROUP MODE FROM ADVANCED WITHOUT RE-INSTALLING THE OPERATING SYSTEM.
So when you then add a re-install to items #1 and #2 of what not to do, mixing thoroughly with a dash of profanity, it equals a kick in the head to match the punch in the gut.
The lesson here as always, to channel my inner Sports Guy, is that I’m an idiot Yan’s a slacker.
A while back Jonathan asked to be a guest poster on the blog. I’m not sure why, but he was passionate about it so I figured why not. Thus I now I have a Jay Leno/Joan Rivers to my Johnny Carson. I’m still trying to decide if this is a good thing or the worst mistake I’ve ever made. –Grant
So the other day I asked Grant how he would feel about a guest post on his blog. The conversation went something like this:
Grant: Sure, send it over here and I’ll make sure it meets my high standards before it gets posted.
Me: Standards? In your last blog you talked about eating rats!
Grant: Touché. I guess I’ve hit rock bottom.
Well, that’s not entirely true since I cited a blog topic from the future, but basically he said “Okay” and welcomed a change of pace from his standard blog scenario.
I broke down my first blog into a few steps. Honestly, I have no idea how many steps it will end up being, so we’ll just play it by ear.
Step 1: Get permission to post. Done.
Step 2: Come up with a blog topic. I thought that coming up with a topic would be easy, but that has actually proven to be the most difficult step in my process (which could be replaced by a more difficult step in later steps, I just don’t know yet). I could write a review about something, but everyone does that. I could rant about something, but then people would think that I am an angry person. I could complain about something else, but that is probably less interesting than ranting and besides, no one likes a complainer. After much consideration, it appears that this will be a blog about blogs. Somewhat redundant, don’t you think?
Step 3: Write. In progress.
Step 4: Review. I’ll do that later.
Step 5: Post. This comes after the review that I’m doing later, so you could say that step 5 will come later later.
Step 6: Observe blog statistics. I have always dreamed that any blog I write would be one to generate a lot of user interest, and that those people would leave lots of comments that would spur discussion and possibly form topics for later blog posts. As much as that would make my day, I’m predicting that there will be 2-3 comments, with at least two of those people asking me to never post on Grant’s blog again. If that ends up being the case, you can be sure that I will have a snappy comment rebuttal that will end all negative comments towards me (don’t test me on this one).
Step 7: Return to step 2.
I have thought about starting my own blog before, but as I see it, most people that do that quit updating after about three months (take Yan for example). As soon as the blog is created, there are constant entries, sometimes more than one a day. After a while, it turns into an occasional update, maybe once a week. After that maybe just an update once a month or so…and then after that the blog effectively takes a hiatus. I don’t want to do that, thus I’m starting small-scale on someone else’s blog. I guess we’ll just have to see how it goes.
People ask me what I do a lot. Most of the time I don’t really have a good answer. When I was developing full time it was easy. I would just say, “I’m a software engineer/developer/programmer/whatever” and wait for the disinterested look to set in so we could move onto a different subject. Now that I have a half silly/half interesting title so the glazed over eyeballs have disappeared.
“Oooh. A technology evangelist. What is that?” they say while instinctively reaching to cover their purse or wallet.
For a while I tried the, “Well, I mostly sit around and think big thoughts” answer. Unfortunately people didn’t find that particularly satisfying, kind of like they were expecting something good like a steak and instead got a White Castle slider.
Aaaand that will be the part of this post that everyone remembers, Lammi bagging on White Castle. It was like a conversation that I had with a friend years ago about sliders:
Me: “You know, there’s little guarantee that that thing is made from beef. There’s a real good chance it is made from a rat.”
Friend: “But it’s a good tasting rat.”
*Sigh*
Anyhow, enough about food and more about me. Part of what I do is work on super secret projects that I can’t mention because they’re secret. Another part of what I do is help plan corporate strategy by looking into new ideas and examining what else is being done in the market. Imagine a mix of General Patton and Joan Rivers but only applied to software.
“We’re going to move this functionality to the front and start a new push for the Transmogifier market here. Oh and did you see where so and so put that dialog box in their last release? That’s like wearing a compiler after Labor Day with no accessories, what were they thinking?”
I also write. And then I write some more. And then after that I write some more. The good news is that we have an in-house editor, we’ll call her Sarah. (Because, well, that’s her name.) She has the unfortunate job of making sure that all the letters I write to paper form words and sentences with things like coherent thoughts connecting them. I just got back an article I wrote that she went over and it looked like a red pen exploded all over it. Then after it exploded it called a few of its red pen friends over and they exploded on it too. Thank god she doesn’t proof this blog, it would probably be too much for her to bear. I mean look, I’ll just type a sentence that is pure punctuation.
.!;,’::.!,..;.
That would drive her nuts.
But anyhow that’s what I do. I do secret stuff, I plan and strategize, I write, and I drive my editor to the brink of insanity. I still won’t eat White Castle’s though.
(Seriously, it could really be a rat. Yuck.)
So even though we’ve only had Leopard for a week the new iChat has already shown itself to be super useful. The other day I did some screen sharing to go over some code with Yan upstairs. Just now I tried to help out Jonathan at home with an Automator issue.
It all just worked, I could see their screens and control everything. Even over an internet connection to Jonathan’s house the quality was pretty good. There was no silly firewall holes to open or VNC thingies to configure, just click click accept done.
We could even smush Yan’s head so he looks like a cross between Jay Leno and a Street Fighter. I wonder if that was one of the 300 features that Steve Jobs was touting.
“Feature #231: Allow users to crush Yan’s head”

I was first introduced to Xcode 3 at WWDC 06 after being repeatedly told, “This is under NDA, don’t talk about it or we’ll detonate the RFID chip that was implanted in your brain at the hotel last night and believe us you seriously don’t want that to happen.”
Well, Leopard shipped (in case you missed the coverage) and along with it Xcode 3 without an NDA. I’ve wanted to sit down and do a little review of it for a while but quite frankly I haven’t had the time. Plus there was that whole NDA/RFID/exploding head thing. Just this morning inspiration struck and kicked me into gear in the form of an email from a friend of mine:
Why I’m not switching teams any time soon…
I went and read the post and watched the movies and yes I certainly agree it is easier to make the Beep application in Visual Studio. Xcode does many good things and I like it a great deal but it most definitely has a learning curve. A very steep learning curve at that.) This is especially true if you come to it from using things like Visual Studio or the good old console tools like emacs or vi.
One of the things I wondered about with his post though was the Xcode video he was comparing against. That one was done using Xcode 2.x and not the new Xcode 3.0 that shipped with Leopard. To that end I put together a quickie demo showing how to make that same application in Xcode 3 and how a lot of the steps have been streamlined.
The video:
This was my first “real” (I use that term super loosely) application with Xcode 3 and the HUD popups are a huge improvement. At first I found myself looking all around for where to instantiate my controller but it wasn’t until I busted open the docs that I found I had to use the inspector. That too is a big improvement. I’m not sure about the Writing Class… business to create the files, I have a feeling that they really want you to do that definition stuff from Xcode and then have IB3 suck the changes back in. This way was more like IB2 which I am far more familiar with so I decided to just go with what works for now.
Overall it was a fun little experiment, I don’t think I’m quite as passionate about the whole thing as Keith but that probably comes from having done Mac programming in the past and thus not being surprised by the differences from VS. It was actually interesting to read further about him, it looks like we had very similar technological career paths coming from the Linux world and then spreading out from there.
Anyhow, suck up as much video bandwidth as you like. The tab is on YouTube.