Premake 4.2.1 released

A bug in the new file pattern matching introduced in 4.2 has been causing people trouble, so here's an update to get it fixed. Read more...

Welcome to the ranks of the self-employed

Today it is official. I am no longer employed; I am now running my own business. It has been a crazy couple of weeks of winding down, of getting the business registered, putting the paperwork together, and finding health insurance for the family (though I am still waiting for approval, on pins and needles). Much of it was easier than I expected, and I'm pleased at how much I was able to accomplish while still winding down the previous job.

Not all of it was simple though. Digging up 10 years of medical history for the insurance application was a trick. We don't have very much to report, but I didn't want to miss anything and get nailed if it came up in the future. This whole area of health insurance has me skittish because I don't feel like I have any real say in what happens, all the control is with the insurer. But at the end of the day I feel good about the choices we made from the options we had.

The Operating Agreement for the LLC was also challenging. It could have been very simple, since the company is just me, but I wanted to allow for additional members later on should everything go well. So I had to consider things like shares of ownership, voting, and the protocols of adding, removing, or losing members. It was fascinating though. I would not have expected to enjoy working on something so legalese but I suppose there is a technical appeal to it, rather like finding the edge cases for an important feature and putting code in place to handle them.

And then there is the rather surreal experience of having an organizational meeting with myself, and capturing the minutes from said meeting for the records. I understand the purpose, but it is still weird.

Procrastination is a worry, but my real fear is of turning it all into "work", into a 10-12 hour a day obligation and losing the nights-and-weekends joy of it. I've posted reminders around my office, pictures and thoughts to help me keep in mind what I'm trying to do here and why. At the end of each pomodoro I make a point of sitting and soaking it in for a few minutes before betting back to the task at hand.

And speaking of tasks at hand, it is time to get back to it. This week is the website: what I've got, what I'm missing, what needs to go where, and how it all fits together. And oh yes: remembering to have fun doing it.

One Week In

One week in, one week to go. I'm still on the clock at Jacquette so technically still nights and weekends, though it is becoming more like afternoons and nights and weekends as the short-timer's kicks in. And I have been working entirely from my home office, which leads to the occasional out of the blue panic attack as my physiology adjusts to not commuting for the first time in years.

A big thanks to everyone for the encouragement and well wishes. Everyone I've run into, both online and off, has been very supportive and even enthusiastic about my new direction. That's been a big boost, and is much appreciated. And the fact that so many people consider this is a no-brainer move gives me confidence that it is going to turn out well.

There have been some recurring questions so I thought I'd take a moment and answer everyone in one go. Read more...

Independence Day

Last Friday I gave notice at work and, while I still have two weeks left on the clock, I am certainly feeling the part today: independent, self-employed, an entrepreneur. It is a giddy feeling, like I imagine skydiving to be, alternating between "holy shit this is so cool" and "holy shit what have I just done?" Very exciting, feels really good.

Obviously this website, as it stands right now, is not going to replace my full-time paycheck, so expect to see big changes as I get the place ready for business. I'm a software developer by trade and that will be my main offering here, starting with a couple of applications originally developed for my own use. Closed source, commercial, Mac OS X. With enough elbow grease and a bit of luck with the paperwork gods I hope to have the first one polished up and ready to go by Spring. For those of you that use Premake, rest assured that development will continue; I will post more information to the Premake forums later this morning.

Just as importantly as the software, I'd really like to share what I've learned, both in getting to this point as well as going forward. I've read and learned and done so much and feel like I've got a ton to offer anyone looking to follow me over the precipice. It really is amazing to have this opportunity, regardless of whether it becomes a smashing success or a piddling failure. Obviously I'm hoping for the former here, but I wouldn't pass up the opportunity for the world. It would feel great to help others get that same chance.

Before I get started, I'd really like to thank Frank Jacquette and all of the people at Jacquette Consulting. A great company and a great place to work that delivers great results. I'm quite proud of what our teams delivered while I was there, the way we delivered it, and the friends we made along the way. If you are in the Philadelphia area and need software consulting, these are the people you want.

Okay, so...two weeks on the clock, big changes, new software on the way. I think that covers it; time to get started. Hang on tight, and over we go!

The Art of Someday

"…the terror of knowing that I can't keep up with all of it. It's like finding a river of flowing gold when you haven't even got a cup to save a cupfull…you've but a thimble, and that thimble is your pathetic brain and labour and humanness." —Jack Kerouac

When I began capturing notes and seeing them actually get completed, the floodgates opened and out came more good stuff than I knew what to do with. Attempting to improve my workflow by getting more granular has only added fuel to that fire. After much pain, suffering, and suboptimal productivity I think I've got things whipped back into shape. For the sake of my future self, here's a moment to capture these hard-earned lessons, just in case I find myself wandering off into the wilderness again (not like that would ever happen, of course).

The Someday List

If you've got more projects than you can handle, take the ones you aren't actively working and put them somewhere else. Duh. I call it a backlog so the agile folks at work will know what I'm talking about, but in GTD parlance it's a Someday/Maybe list. Whatever you call it, it's the place you put the things that you're not ready or able to do right now.


A sampling of the Someday list

So the first step to getting my lists under control was to shove everything I could on to the backlog. And I didn't kid around: if I wasn't actively working on it today I pushed it off. Which brings up my rule number one:

Use it aggressively. I mean like every day. If you aren't going to work on a project today, and you aren't going to work on it tomorrow, seriously consider pushing it off to the someday list. If you aren't going to work on it this week definitely push it off. Get everything out of your sight you possibly can; focus on your most important work. If you find yourself with nothing to do—lucky you!—then you can go grab the next thing off the backlog.

Okay, so I pushed everything off, cutting several dozen active projects down to six, and now I've got a big long list of someday. Here's the rub: the Someday/Maybe list only works if someday eventually arrives. Otherwise it's the "Never/No way/No how" list and the kiss of death. And it killed me: I had a backlog, and I used it. More and more new ideas came in and it grew and grew, with no end in sight, until I started losing stuff, losing the big picture. I became afraid to push off ideas, fearing they would never be seen or heard from again. So I kept them active, so I was looking at all of them every day, feeling overwhelmed and unorganized. I couldn't push them off without killing them, and I couldn't keep them around without killing me.

Like I said, I did manage to get it sorted, and here are my rules for making sure someday does arrive. Note that if you use the list aggressively, like I mentioned above, most of these will fall out all on their own. I mention them here for my own edification. Read more...

Premake 4.2 released!

At long last: 4.2! Many, many thanks to everyone who assisted by using the early releases, providing feedback, reporting bugs, and contributing patches. This release, and every release, is better because of your help. Read more...

Apple Wireless Keyboard vs. Windows XP

I spent the start of the holiday break upgrading my studio gear, adding an HP LP2475w monitor and Logitech Z-523 speakers, both of which are excellent. My Macbook now runs in clamshell mode, with a wireless keyboard and mouse.

New studio setup
The new studio setup in action

Games in particular are vastly improved on the new widescreen, but I had a devil of a time getting the wireless keyboard working under Boot Camp and Windows XP. Let me save you the hours (!!) I spent getting it sorted.

Note that this is for Windows XP. It might work for Windows 7—if you try it let me know what you find out. And although I haven't tried it, I think this process should work for the wireless mouse as well. I've got a Magic Mouse on order and will post an update once I've had a chance to try it out (Update: yep, it works the same, just choose "No passcode". Note that initially it said that the drivers failed to install properly, but a few seconds later the mouse kicked in and has been working fine ever since.)

The magic formula

I started by unpairing the keyboard from OS X. I don't think this is strictly necessary, but I'll mention it just in case. If you follow the steps below and it still isn't working you might want to try it out. In System Preferences > Bluetooth, select the keyboard and then press the minus button at the bottom of the list and confirm the warning dialog.

In Windows XP, bring up the Bluetooth control panel. Make sure the keyboard is turned on, then let it scan for devices. After several seconds the keyboard should appear in the list. Right-click on it and choose Properties and then Services. You'll see a checkbox options for drivers; check it and click Apply.

Now return to the device list, select the keyboard and hit Next to begin the setup. When asked for a passkey, choose Use the passkey found in the documentation and enter 0000 (that's four zeros; of course this requires that you have a keyboard connected! If you don't, use the On-Screen Keyboard application found under Accessories > Accessibility). Hit Next again and you'll be prompted to verify the passkey on the wireless keyboard. Enter the four zeros and press Enter (on the wireless keyboard). After a second it should confirm the device setup.

That's it, you're paired. Reboot XP once just to verify it will pair. Note that the special keys (brightness, eject, etc.) only work if you're running on one of the newest iMacs, or are using the 2.2 (Leopard) version of Boot Camp. Hopefully this will get fixed in a Boot Camp update, but considering how long us MacBook users have been suffering with audio issues I won't hold my breath.

Hopefully you're up and running at this point. If you unpaired the keyboard in OS X you can now reconnect it. And in case you're still stuck, here's Microsoft's troubleshooting guide.

Update: If you are having problems with your Magic Mouse "freezing" for several seconds at a time, particularly when doing CPU intensive stuff like playing games, see this thread on the Apple support site for a suggestion that might help.

Reboot redux: Grand Prix Legends

My return to racing continues...well, not racing per se: these days I drive more like a mechanic who stole the keys. I just did a quick bit of math and realized that is has been almost five years (!!) since I last dusted off the wheel, and nearly as long since I did any simulation coding. Kids will do that to you, I guess.

It is too close to the gift-giving season to pick up any (relatively) new sims for myself, and honestly I'm so out of the scene that I don't even know which ones are any good. So for now the retro racing revolution continues, this time with the-sim-that-will-not-die Grand Prix Legends.

I really expected to find this sim—initially released in 1998—pretty much where I left it. I knew about the GPL Preservation Society, the massive track database, and the active modding community, but really how much can you do with a decade old, closed source sim? Quite a bit, as it turns out! Case in point: the jaw-dropping Targa Florio, 72 km of pure road racing joy. Grand Prix Legends is like Steve McQueen's Le Mans: a classic!

Because of all the mods and patches, there is some hoop jumping involved to get up and running. The hardest part was figuring out which bits I needed and where to get them; I'll save you that trouble with a full play-by-play below. Installation was straightforward from there, and it runs great on my MacBook Pro under both Boot Camp and VMware Fusion 3.0 (be sure to switch to full screen before starting the game; it doesn't like Unity).

Okay, enough chit-chat. Here's my installation guide. Read more...

Premake 4.2 Beta 1 released

After a long slog, we're finally ready to begin the countdown to the 4.2 release. Whew!

Get 4.2-beta1 from SourceForge

The big news is the freshly minted support for Apple's Xcode IDE. This was a complicated one, so give it a good beating and help shake the bugs out. And while you're doing that, I'll be squeezing in a few more small features, applying your patches, and generally cleaning things up. I'm hoping to get to a release candidate before the end of the year.

The changes so far:

  • Feature 1526976: Add support for Apple Xcode 3
  • clean now removes MonoDevelop .pidb files correctly
  • added os.executef()

Enjoy, and be sure to send in those bug reports!

Retro racing reboot: The Need for Speed

Ah, the original Need for Speed! Alpine, Coastal, Vertigo Ridge—great tracks now trapped in an out-dated game, passed by in time. As an avid road-tripper, I loved those open road tracks and the opportunity to drive with traffic in an environment that, for the time, felt realistic. I even plunked down the cash for a Thrustmaster T1 wheel and pedals.

Several years ago I had the idea to rip out those tracks and convert them to run in a modern simulator. With some help from Denis Auroux (the author of TRACKED, to my knowledge the first player-created editor for a commercial game) I was able to decode the track segments and textures. But then I got distracted, my attention turned elsewhere, life and children caught me up, and the code was left to collect dust.

Now the driving bug is biting again and I'm blowing the dust off this project as a first, small step back into simulation coding. I dug up my circa 1995 NFS SE CD and got it running on my 2009 MacBook Pro. It is…dated, as you can imagine. The steering and handling is all over the place compared to a modern sim; I have no idea how we managed those quick laps back in the day!

(As an aside, I used to run the AutoSim World Records Site back then, which you can still find in the Internet Archive. None of those records are mine though; too much time building websites and not enough racing.)

In case you feel like following along, here's how I got it working. Read more...