Jack Baty - the archives

Years of jackbaty.com - archived

A String of Bad Movies

The better part of a day, wasted. That’s how much time I’ve spent over the past couple of weeks unintentionally watching terrible movies. I say unintentionally because they should have been good movies. They weren’t. This is different than watching a movie you know is awful, just to kill time while ironing or reading feeds. I do that even more frequently, but that isn’t wasting time, it’s spending time.

I’ll list the crappy ones here so you won’t suffer the same fate.

h3. Hancock

1191200.jpg I’m pretty much done with Will Smith. Between the forgettable I Am Legend and Hancock there’s not much left to like. Hancock should’ve been great. Cool ideas wasted with more drama than necessary. It tried to be every movie ever made - all at once. Even the astonishingly beautiful Charlize Theron couldn’t save it.

h3. Savage Grace

savage-grace-cover.jpg Based on a true story: An awful, boring, completely uninteresting story. The movie doesn’t help.

h3. 11:14

1114-cover.jpg Good enough to almost like. Clever, but ultimately it seemed like nothing more than a gimmick leading nowhere.

I think Hillary Swank should find a new agent. It was kind of nice to see Patrick Swayze again, though. And what’s with the string of severed penises lately?

h3. Smart People

smart-people-cover.jpg New rule, if it stars Sarah Jessica Parker, avoid it. Think of Smart People as a not-pregnant Juno (yes, it’s Ellen Page) with parents just as smart and cocky as she. Except not funny. Are all smart people really assholes? All of them? The best reason to watch it is Thomas Haden Church, who I can’t get enough of.

h3. Bank Job

bank-job-cover.jpg I have to admit not finishing this one. It was turning out to be the same heist movie we’ve seen a hundred times. Jason Statham wasn’t going to save it.

Tiny Houses

I bet I could live in one of these “tiny houses”:http://www.designboom.com/contemporary/tiny_houses.html. Strong wireless and a good view would be required. Especially the wireless.

On Not Being a Programmer

I used to be a programmer.

For years I’d sit at some computer or another hacking away at whatever was interesting or required at the time. It’s all I did. I may not have been a Rock Star(tm) or Ninja(tm), but I built stuff that worked and that clients liked. A lot of it.

When development was all I did, there were things that were critically important to me. Languages. Frameworks. Source control. Those sorts of things.

But these days I don’t do much development. At “Fusionary”:http://fusionary.com we have plenty of developers and builders who are smarter, faster and more clever than I’ve ever been. My job now is to make sure projects get done, using the appropriate tools, on time and on budget.

I have a lot to learn.

The first thing I learned since not being a programmer was that the critically important things – aren’t. For example…

h3. Frameworks

I love Rails. Once I started learning Ruby nothing else mattered. We shipped our first production ecommerce site built with Rails before Rails 1.0 was even released. And this was after 40% of it had already been built using PHP. It turns out to have been a good decision. I’m not sure I’d make the same one today.

I firmly believe that happy programmers are more productive. What I no longer believe is that there is One True Language/Framework that makes all programmers happy. We just launched a couple of sites built with “CodeIgniter”:http://codeigniter.com/ and the guys working on it had a ball. It was built quickly, professionally and with no whining about namespaces or inconsistent method names or anything. They just built it. The only thing I noticed was that it was easy to deploy and just worked when doing so. I did miss migrations, but other than that it made no difference to me. That was a surprise. You can build great apps using any framework/language. And don’t give me that crap about the poor PHP or .NET guys not knowing what they’re missing. They do, and they don’t. That surprised me too.

h3. Agile Development

Agile development methods work. Or so I’m told. As a developer, they make perfect sense. User Stories, short iterations, code reviews, etc all work great and I understand the value. The problem isn’t in working Agile, it’s selling Agile then living with it. I have yet to run into a client who doesn’t understand the concepts. They seem to love it. I just can’t seem to figure how to execute once they disappear from the process, only to return every week or two with input on things we’ve already implemented without them. And without someone acting as a Proxy for the client who knows exactly what we’re building, it’s back to educated guesses and biweekly demo meetings.

I imagine that I’ll get better at all of this, but right now I’m finding the transition from programmer to manager to be more challenging that I expected. I’ll buy some books, make some mistakes, and keep you posted.

Tinderbox 4.5.

The release of “Tinderbox 4.5”:http://eastgate.com/Tinderbox brings prettier maps, faster agents and new visualation options along with a boatload of incremental improvements. I’ve jotted down a few notes.

h3. Maps

A software program’s aesthetics are important. How important is a matter of opinion, and many Mac developers spend so much time on the “Oooh Pretty!” parts of their apps that the software ends up beautiful, but actually less usable. Tinderbox has never suffered from this problem. I’ve gone so far as to call parts of it “ugly” and complained about its visual details on a number of occasions. I can stop doing that now.

Somewhere between too plain and too pretty suits me best, and with version 4.5 Tinderbox now falls right where I like it on the aesthetic scale.

Almost everything looks better now, but maps seem to have benefited the most

Serious designers probably scoff at drop shadows, but I love them. Lots of us normal people do. Good news then, because notes in map views now have drop shadows. That’s cool and all, but the best part is that the shadow’s attributes are configurable on a per-note basis. This means agents can modify the offset and color of the shadow, helping Tinderbox do what it does best - capture and visualize information. Here’s a simple example. I rate movies I’ve seen based on a scale from 1-5. In the following map, I’ve set the Review prototype to change the offset of the note’s shadow based on the rating. The higher the rating, the greater the offset.

So in this case, here’s the Rule for the Review prototype…

if(Rating>=3) {Badge="ok";} else {if(Rating<3 & Rating>0) {Badge="no";} else {Badge=;}} ; ShadowDistance=$Rating*5;

This is a simple example, but demonstrates the way Tinderbox thinks about visualization: drop shadows are pretty, but they shouldn’t just be for show.

h3. Inline Editing

Most decent outliners allow editing notes inline, and now Tinderbox does as well. This frightened me at first, but I’ve adjusted my muscle memory slightly and now it feels as natural as ever.

h3. Search

There’s not much point in creating or storing all sorts of text content in Tinderbox if you never plan to get it back out again. I search my Tinderbox documents all the time, and in 4.5 it gets better.

The ability to add multiple criteria is huge, and prevents me from having to create a temporary Agent to do the work for me. The window is also no longer a floater, which is nice.

h3. Visualizations

There is a new map pattern called Plot(). This is such a simple yet powerful thing, and my favorite new Tinderbox feature. Basically, you can set the pattern of a note in map view so that it will draw a simple graph of any data contained in each of its immediate children. Cool, eh?

The first thing I did after downloading 4.5 was to add “Plot($Number)” as the pattern for a container holding my weight tracking notes. Yep, I use Tinderbox to record my weight every few days. I was planning on creating an export template to dump that information into Excel, but now I don’t have to.

Now I can easily spot where that extra donut went.

Another cool new thing is TableExpression. Setting TableExpression will cause a container in map view to render a tabular display of its contents, like so…

And just to show off, here’s a little movie showing how I avoid too much fidgeting with the mouse when reviewing my DayLog entries.

Neat, yes? All that took was setting a couple of attributes on the Review and Reset adornments.

Review OnAdd action: Height=5.5;TitleHeight=4;Width=11

Reset OnAdd action: Height=;TitleHeight=;Width=

It’s easy to forget that nearly every attribute in Tinderbox can be set using Agents and Actions. Powerful stuff, when you need it - invisible when you don’t.

h3. Conclusion

Each new version of Tinderbox brings thoughtful, useful new features. Version 4.5 is no exception. I hate to sound like an evangelist, but dammit there’s no reason not to love it.

Connect360 and the XBox

connect360.jpg

I felt so dirty as I wandered into Best Buy to grab a copy of Vista. There was really no way around it, since I sometimes need to test web stuff in IE, manage a few SQL Server databases and of course play the occasional game.

The Vista install process on my MBP via VMWare went easily enough, so I was feeling cocky. What about this Media Center streaming to XBox thing I’ve heard so much about? After 2 horrible hours of dismissing unnecessary Vista dialogs, the XBox still could neither see nor be seen by Vista running in a VM.

And then, a random search mentioned Connect360 by Nullriver Software. Five minutes and $20 later I was streaming my iTunes, iPhoto and (legal of course) DVD rips directly to the XBox - Windows not required.

How is it that Macs frequently do Windows stuff even better than Microsoft?

This of course means that I’ll have to keep the XBox even though I seldom play games. Yay! And this fall, with Netflix coming to the XBox I’ll sell my Roku Netflix player and quite possibly get rid of the AppleTV while I’m at it. Maybe.

Update 31 August 2008 Based on comments, I’ve actually settled on “Rivet”:http://cynicalpeak.com/rivet/. It maintains folder structure and streams my Aperture library.

I’ve Waffled Back to Wordpress

Every six months or so I decide it’s time to switch blogging engines. The last time it happened I switched from Movable Type to ExpressionEngine. I switched then because I’d heard good things about EE and wanted to try it out somewhere.

This time, I’m going from ExpressionEngine to Wordpress. Why? Because Wordpress does pretty much everything anyone needs for a singe author weblog.

I don’t want to design my site. Wordpress has a zillion or so themes available that I can easily try any time. If I get bored with one, I can easily switch to any other with no fuss.

There are also a huge number of plugins available. If I want to try incorporating some new service like Friendfeed there’s usually a plugin or two already written for it.

ExpressionEngine is about the best thing there is for a large-ish site with custom design requirements and plenty of content to manage. For a simple blog with one guy writing a post or two each week. Wordpress leaves very little to be desired.

Yes Doctor, Its an Iphone

I’ve been feeling a bit wonky for a week or so. Tonight It got uncomfortable enough to consider asking a doctor or two to about it. The Internet said I had several symptoms of a heart attack so better safe than sorry, eh?

So here I am. Wired up to monitors, oxygen tube up my nose for the past 4 hours. EKG looked fine. Bloodwork pending. Just had an ultrasound to check my gall bladder I think.

This is one of those better-safe-than-sorry things but I still feel mighty silly.

The cool thing is that I can write this on my iphone while I wait for them to let me go home

Wordpress and the iPhone

Back to Wordpress. Posting from the iPhone with their app. This is much easier.

Comments Are Out, Friendfeed Is In

I’ve removed comments from this here blog. Not because of trolls. I get very few comments anyway so abuse hasn’t been a problem. Not because of spam. Disqus did a good job of preventing that. Then why? Because on the off chance I write anything interesting enough to comment on, most of the comments will likely end up on Friendfeed anyway, so why not just let them happen there instead? Friendfeed hasn’t fragmented the conversation, it’s stolen them completely. I’m cool with that.

Tinderbox as a Daybook

Inspired by the post at but she’s a girl…, I thought I’d jot down a few of my own notes on how I too use Tinderbox as a Daybook.

One of the more useful things I’ve been doing with Tinderbox is to keep a running log of things I do each day. This “Daybook” has become a way to track billable time for clients, record technical notes, and keep a basic journal.

Here’s what the overall outline looks like

Tinderbox Daybook

Any decent outliner could do this, but Tinderbox lets me tweak things as much or as little as I want. Prototypes and Actions make all the difference. I have a few tweaks that help keep things in order for me. Most of these come in the form of the tremendously useful Tinderbox feature, Prototypes.

Monthly Worklogs - I create one of these manually each month with a name like “July 2008” to hold that month’s entries. It has the following OnAdd action set…

`

$Name=format($Created,"y-M0-D W"); Prototype="*DaylogContainer"

`

This causes any notes within a worklog container to have its name set as the current date. It also sets the new note’s prototype to *DaylogContainer

DaylogContainer - This prototype has an OnAdd action to force contained notes to use the *DaylogEntry prototype…

`

Prototype="*DaylogEntry"

`

DaylogEntry - This is the prototype used for each individual entry. It has a DisplayExpression set so that each entry inserts the note’s date and time in the displayed name. Showing both the name and date helps when scanning the limited Tinderbox search results window. Here’s the DisplayExpression…

`

format($Created,"m/d/y h:mm") + " : " + $Name + " " + $JiraKey

`

The *DaylogEntry prototype uses custom attributes set as Key Attributes for easy entry (Duration, JiraKey, and Tags). We use JIRA as an issue tracker and if I’m working on a specific issue I record the key with each note. Displaying it as part of the name in the outline helps when recording timesheets. Here’s what a DaylogEntry note looks like.

Daylog entry

The process of adding daylog entries starts by creating a container for that day. This is done by hitting Return twice to create the container (which is automatically named with the current date) and then Command-Option-O to open the container in its own outline. After that for each entry it’s a simple matter of hitting Return to start a new entry, then closing the window. Everything ends up named nicely and sorted by time of day.

Here’s a quick video demonstrating how it looks…

I’ve been doing this since the beginning of this year and have a total of 1235 entries so far with no apparent impact on Tinderbox’s performance. My Tinderbox Daybook has become a surprisingly valuable resource. It’s amazing how much information is available over time simply by recording minor events each day. I haven’t started mining this information in any formal way yet. Who knows what I’ll find!

UPDATE 2008-07-17: Fixed formatting issue with code samples. (thanks to David Phillips)