Monthly Archives: January 2006

Amazing profiling and tracing tool… Shark

Its been a while, but I still remember scanning the output of strace (and later ktrace) from unix machines, looking for that hint of what went “boom” or was causing significant unhappiness with the machines. So when I read the recent article from Apple Optimizing your Application with System Trace in Shark 4, I was like “What? They do that in Shark too?!”

Yep.

If you’re a unix hacker, MacOS is the system to get. The development tools are good, but frankly the most amazing development benefits are in the CHUD tools – there’s stuff that is thousands of dollars worth of software in there, and they’re just handing it to you. I’d even bet that if you developed for Linux, you’d find Shark a hell of a benefit to you.

Most of what I knew about Shark I really picked up at the 2004 WWDC, where they had neverending repeats of the “how to use Shark” session scattered about in other sessions. I mean, shoot – you could even profile and use Shark to optimize your Java code! Let alone the wonderful assembly language reference that seemed to be tucked away under the covers in there (yeah, I thought that was cool – so shoot me).

I know a lot of people say that Shark is the best kept secret of the Apple development tools world. Boy, I think that’s going to change. (at least I’m doing my part…)

Rum

Back over Thanksgiving (?? was it that far back), Nathan brought over some extra-fine rum for sipping before/while we made dinner and chatted. I’ve had it happily lurking on the side table since then – it’s a neat looking bottle, plus you never know when you might like a little…

So tonight I popped the cork and poured a couple of fingers. Man, that is good stuff. This is NOT the rum for wildly mixing with coke. I have that rum under the sink – dark and raw carribean stuff. This one is smooth and with a lovely aftertaste (well, if you like rum) – as well as fire running down into the belly.

mmmmm.

cleaning the basement

This whole water thing is at least netting us something – a very clean basement floor. The rainstorms that ran through here over the past few days just added to the seepage and wetness in the basement. In fact, I spent about 30 minutes sweeping the puddles towards the floor drain to help the place out. Good lord, what a pain. In the meantime though, I suppose it is only reasonable to admire the nice clean floor that we have…

And while I’m moaning about sweeping some puddled in the basement, Byron is about to engage on a whole new freakish aspect of outsourcing. I’m not so sure I’d be as welcoming about this process as he is – there’s a lot of institutional bagage that you carry along with a whole new load of bizarre stress. But then I’m often not good at defining a hard limit for something like that. For those that can – it can be a sweet way to move around.

Of course you know Byron – I’ll help you find a gig in (wet) Seattle any time… Just to keep the options open. :-)

a couple of stouts

Tonight? Tonight was a good night.

We had a decent turnout at the XCoders meeting (16 folks) for an overview of Perl. And that was one very thorough overview of perl! There is stuff he covered in that preview that I hadn’t known… dating back to Perl 4!

But probably more important to me was the beer afterward. A couple of stouts at Tangletown (an Elysian brewery outpost at 55th in Greenlake) and a whole ton of bullshitting and general tech talk among folks with a common interest. It was a really good night.

Selenium

Well darn.

I took a stab at developing some internal tests using Selenium to see if that might be a reasonable fit going forward. I was impressed with the cross browser functionality and focus, which would make a number of things a LOT easier.

Unfortunately what I learned is that if your web application takes over the window (i.e. reaches into the DOM and makes SURE that it’s the dominant window and not running inside a frame), the selenium isn’t a good choice. At least in FIT mode. I haven’t yet tried to run it in driven mode – that might resolve the issue, but I’m not counting on it.

We’ve been doing a fair bit of using PHP to drive IE (similiar to Pamie or Watir), and that’s been working pretty darn well. The only problem is that its specific to IE on the windows environment. And it would be really nice to get Firefox testing in there too…

Most interesting with Pamie is that there’s a 2.0 beta release which came out just a little while ago (two weeks as of this writing). Its a pretty big change to the whole pamie setup (so a lot of scripts written with 1.0 will need to be slightly modified), but it is a LOT cleaner. There’s still an assumption that you’ll know what to do with the callable COM objects if you’re fiddling around in the interactive mode, or if you want to invoke something odd and strange inside the DOM (clicking on images, etc). Still, its a great improvement – and it runs very smoothly.

racing in a 30′ sailboat

A few years ago I spent quite a bit of time racing as part of the crew of a 30′ sailboat. Lately thoughts of that time have been popping back up, and I’m finding it a pretty apt analogy to a lot of things that happen in software development.

The most concrete of these thoughts is that crewing on that sailboat was the single most intensive team coordination experience that I’ve ever had. You didn’t need to be the fastest sailboat out there to compete effectively – but you bloody well better have a smoothly functioning team. Anything less and you weren’t competitive.

Of course, all of this follows in that I tend to be a very team oriented person when it comes to working and getting things done. I can work solo (I can sail solo too), but my most fulfilling moments come from working as part of a team.

Don’t know why this is all popping up, except that I have insomnia tonight and that’s racing through my head.

the kid with the ball

When I was coming home yesterday, I saw a kid sort of poke his head out from underneath a large truck, a red playground ball in his hand. He was popping out and then he ducked back in quickly, and it gave me a hell of a start. I immediately pumped the brakes thinking I was going to smack the fellow.

Well, he ducked back so I accelerated on – just wanted to get past him and the potential for something really bad. And then I felt the bump and heard it – “BAM!”

Oh shit – my heart dropped down for a second while my reflexes slammed the brakes into complete stop. I hit the kid. Wait, no I didn’t – that felt like… that little shit!

I pulled the emergency brake, threw the car into park, and hopped out. Sure enough, there was the dead body of a red playground ball just under my back tire. And it really ripped it up – it was just burst down the seams. I walked back, picked it up, and turned to the sidewalk.

Just beyond the truck, the boy was waiting. Looking, half expectant, half defiant. While I looked and walked over, he went up the steps towards the schools playground.

“What the hell were you thinking!?” I hollered at him, handing him the ball carcas. He took it, didn’t say anything.

“Well?!”

In my head, the dark side of my childhold raised up. ‘Duh, you know exactly what he was thinking! How big would the ‘bang’ be and would the ball actually pop under the tires…’ The kid said the exact thing that confused me: “Why are you cursing at me?”

What? I didn’t say shit or fuck or anything! Oh… hell. Hmm. That’s interesting.

“What exactly did you think would happen when you through that ball out there?” I asked, volume still up a bit. The boy hoofed it up into the playground. I walked along the chain link fence, following him slightly. He dropped the ball carcas absent-mindedly. “Stop following me!” he said.

I walked into the playground, “Is one of your parents here?”

“I’m not telling!”, at which point he starts sprinting towards a lady on the far side of the playground that’s waving at him. Hmmm.

I walked pointedly over to the lady, trying to get her attention verbally “Mam… Mam…”, nothing. I tapped her on the shoulder, and she looked like I was some crazed monster about to eat her. I told her that her son had just pitched a ball under my car.

“Did you see him do it?”

“Yes”

“Did you seem him throw the ball?”

Come on lady, how hard is this to believe? A 9-10 year old boy with a ball – it’s damn near a given. “Yes, I did”.

“I’ll talk to him”, and she turned – I had been thorough dismissed.

I watched them walk away, turned around and walked back to my car (blocking traffic in the street) and drove it the rest of the way home (all the way around the school).

I wonder if she ever talked to him…

I would have pitched that ball out there too. It was an impressive “BANG”.

PF Changs at Westlake

I met Karen at PF Changs at the Westlake Center tonight for dinner. Man, I have to got to say they have incredible service. They were incredibly diligent about dealing with a food restriction when we asked late about it (we forgot – our bad) and remade all the dishes effected when we didn’t even need them too.

While I wouldn’t say its terribly authentic chinese food in any sense, it is tasty. And you simply can not beat the service there. Karen and I will definitely go back, and if you’re around that area in the evening, I’d recommend it for a dinner.

Disney is reinvesting in creativity

I’m hugely pleased to hear that the rumors have been confirmed about Disney purchasing Pixar Studios. Eisner, is my opinion, destroyed the creative staffing in Disney and I’m thrilled to see the company making dramatic efforts to bring creativity back to the company. The quotes near the end of the article are the stuff to read between the lines:

To help Disney reap the most benefits from Pixar, Iger will need to allow the studio to retain the culture Jobs promoted.

“A merger may mess with the Pixar culture that has made Pixar successful,” Pacific Heights’ Cuggino said. “With creative firms you don’t want to upset the apple cart.”

Yeah. Good work Disney!

grand house reorganization thoughts

Today has been reading and grand house reorganization thoughts. One of those “strategic thinking” days really – walking around the house, trying to visualize and think of the house in a slightly different format and use.

We have, long ago actually, run out of space for our books and my gadget electronics and software storage. They are spilling out onto the floor, stacked on tables sideways – basically all over the house. We manage to make forays into the dining room to clear off the table periodically, but that really means that stacks of books get made higher elsewhere.

And that cool treadmill I have? Well, it seems that Karen isn’t too keen on the idea of it remaining in the dining room indefinitely. I expect I can get away with another year or two on sheer inertia, but that would be a might subversive way of not dealing with it.

Finally, we’re making more and more noises about a new TV and maybe actually getting a sound system for the house. At least where-ever the TV is. A little 5.1 surround would be really nice. Shoot – just having a clear two channels and a subwoofer would be a major improvement.

Our current thoughts are revolving around finding/making more book storage throughout the house. There’s a bumped-out section of our dining room that would be perfect for some built-in storage. Doing the finish carpentry work there would give us a lot of horizontal book storage as well as enhancing the general craftsman feel of the room. There is some minor woodwork detailing on a couple of hallwall/doorway trim areas that I really want to put together to finish pulling that detail into alignment with the rest of the house.

We have an 8×10 room that was once a piano room (currently my computer area and bookshelves) that looks like it would work well for a little excercise room – my treadmill and whatever additional stuff (tv or computer or something).

And finally, there’s the living room – which we have two different views into. It basically amounts to moving the couch or not, and then what wall would be our “entertainment” area. The new plasma TV’s would allow us to hang the TV on the wall, which really opens up the possibilities. Some decent sound and a new TV – that’d be really nice. The TV would be for movies and games. We don’t have cable (or satellite), and we continue to not want it.

Whatever we do there, we want to choose effectively for ourselves, since we expect it will be an investment for 7-10 years. So far we’ve boiled it down to at least a 42″ plasma (or LCD) with 720 or 1080i resolution, an ATSC tuner, and cable card ready (we *might* change our minds after all). The Xbox is a reasonable DVD player, but not awesome – so we might do some central tuner/DVD/CD player thingy (we saw a neat Denon system at Magnolia Hi-Fi last night that I was sort of enthralled with). The sound would be with small speakers around the top of the room – maybe Bose or something ala carte – and a good central channel that has some base (or a subwoofer) to it.

We’re having a hard time prioritizing between TV or sound first, so it may just be a whole-hog purchase at some point. That wouldn’t be cheap, but it would be an awesome upgrade.

Finally, I think most of my electronics would go into shelving or other closed storage and I’d just admit to myself that I’m fully laptop oriented for compute these days. Stick my G4 desktop into a closet or tucked away somewhere with other electronics and use it as a server. Shoot – at this point I could probably get one of those iMacs for that job – even leave it in a built-in somewhere. Okay – so I just like the look of the darn things. An upgrade from my 800MHz G3 iBook is due sometime this year. One of the things that I keep thinking about is how to transmit A/V from the computer onto that awesome new TV we’ll be getting. I already have all my music on my macs, so I don’t really want to re-rip the whole set of CD’s into some other system (like Bose’ lifestyle arrangement). And then there’s the inevitable video that I’d like to play from the computer. In some senses, I could easily make that iMac the center system for playing DVDs or CDs. Heh – maybe I should.