Edgewise FREE

April 23rd, 2010

I made a free version of Edgewise for the iPhone. It hit the app store yesterday.

It’s just like the paid version except it bugs you to buy the game if you really like it. I thought about making the free one be ad supported, but I decided to wait. I may change my mind after I learn more about the various mobile ad platforms. Or after Apple’s announced ad service goes live.

Since I wanted the free version and the paid version to be mostly alike I used the same Xcode project and sources and added a new build target. It was even easier than I imagined it would be.

I have a couple of ideas for how to improve the game play that I may release soon. All improvements from now on can easily be shared between the free and paid versions, which is kind of cool.

New Edgewise

August 14th, 2009

I updated the iPhone version of Edgewise to 1.2 last week. It’s a small change. I added some pretty face card pictures.

I’ve been working on a couple of other projects recently, but I kind of sputtered and stalled on them a little while ago. I decided to update Edgewise as a way to make progress on something.

Sales have picked up a bit because of the higher placement in the app’s categories on the app store. A whole bunch of people have updated. I’m not sure if that means people are still playing it or if they just haven’t deleted it from their app list in iTunes. Mostly the latter I suspect. Web site traffic and downloads of my other stuff have picked up some, too. Might as well use some of that unlimited download bandwidth Dreamhost provides, right?

My thumb has a mind of its own

March 31st, 2009

I love getting a new computer! I love unpacking it, unwrapping all the little doodads and gizmos, and setting everything up. The whole process carries the same excitement today that I felt unpacking the first computer I ever got (that I didn’t build myself), a Commodore Vic-20.

I just got a new MacBook Pro.

Ahhhhhh. Very nice, indeed. It even smells good. (Yes, I smelled it. So what?)

This one replaces an aging first generation MacBook Pro. The old one gets too hot now and shuts off unexpectedly. At first it would only happen when operating on battery power, but lately it started happening while tethered to A/C, too. I suspect the added thermal load somehow affects the low voltage detection circuit and it panics. Or maybe it’s protecting some other part from cooking itself to death.

The ‘c’ key on the keyboard stopped working some time ago. I started using an external keyboard, at least when I was at my desk. Do you know how hard it is to write anything without the letter ‘c’? I would keep a ‘c’ on the clipboard in case I needed it. Heaven help me if a system authentication dialog appeared, though, since my password has a ‘c’ in it and those dialogs don’t allow copy and paste for security reasons.

But now I have a shiny new laptop that doesn’t overheat and has a working ‘c’. Atlantis (that’s its name) is faster, lighter, and cooler in every sense of the word.

My experience so far is not entirely positive, though. Every new computer is different from the previous one in a number of small ways and sometimes large ones. Often different is not better, just different.

Take the track pad, for instance. Somebody had the neat idea to make the track pad larger by using the area that used to be taken up by the giant button and putting the button underneath the trackpad. This design has worked beautifully for iPods for many years since the introduction of the ‘click wheel’ concept. It seems to work fairly well for the laptop trackpad, too. The way it works is while you’re tracking around and you need to press the button you just push down on the trackpad. No need to lift your finger and reach for the button. Slick.

But here’s the thing. I’ve spent years (and years) with the previous design. Nobody who’s used that design for more than a few minutes actually lifts their finger from the pad to press the button. They (and I) track around using one or two fingers and use their thumb for the button.

I’ve learned something about my thumb. It doesn’t press. It swipes.

I never noticed before because the giant track pad button was a forgiving target. Only the up and down motion mattered and any side to side action was ignored. Not any more. I keep missing things on the screen. I go to click on a button and just miss it. I aim for a menu item and hit the one next to it instead. (This description reminds me of something my friends cooked up called Gremlins. Remind me to tell you that story some time.)

That’s not the funny part. My thumb doesn’t always swipe in the same direction! It changes depending on what I’m doing! Most often it swipes toward me. Sometimes away from me, or to the left or right. There seems to be a pattern there but I can’t quite pin it down.

All I know is that even though it’s only been a day I can tell this is going to be a problem for me for quite a while. It’s one of those unconscious gestures that I’m going to have to train away. I hope it doesn’t take too long…

Dilbert 2.0 Viewer released

February 4th, 2009

One of the presents I got for Christmas was Dilbert 2.0: 20 Years of Dilbert. It’s a very nice coffee table book with a few thousand Dilbert comic strips along with some history and commentary by Scott Adams. It sits on the shelf next to The Complete Far Side and The Complete Calvin and Hobbes.

Dilbert 2.0 comes with a neat addition: a CD-ROM containing every published Dilbert strip. Each one is a .gif file, organized and named by date (I’m assuming date of first publication). Viewing them is rather tedious.

The day after Christmas I wrote a little viewer app to let me browse through them. Simple, functional, but rather stark. Other things got in the way of working on it until a couple of weeks ago, when I went a little nuts on it.

I kept adding little features to make it look nicer or work better, or both. I indulged my inner geek for several days until I suddenly realized that I’d been spending my spare time working on the application and no time reading Dilbert.

It seemed interesting enough by this point to post it online. I gave it to a few friends to test it and then I incorporated some of their feedback.

So here it is, yet another application with a limited market and no commercial potential, but a heck of a lot of fun to work on.

Dilbert 2.0 Viewer

P.S. It’s targeted at Mac OS X 10.5 Leopard at the moment. I wasn’t really paying attention during development, so I have no idea if I’m using anything that really requires 10.5. If there’s a sudden giant demand for Tiger support I may revise it to be compatible. But maybe not. I’ve probably spent far too much time on it already.

I work with famous people

November 6th, 2008

I’ve somehow managed to work with a lot of famous people in my career. Sometimes even before they’re famous. It’s almost never by choice. What I mean is I never set out to work with famous people. It just worked out that way.

Fame is relative. Some of the people I’m referring to are widely known, but most of them are famous in the industry I’m in but not so much outside it.

Here’s a random sample.

Andy & Bill

Andy Hertzfeld and Bill Atkinson are a couple of brilliant designers who are best known for their work on the original Macintosh computer at Apple. I didn’t work with them then. That came later at a place called General Magic.

I did bump into Bill a few times at Apple in the late 80’s when he was working on a product called HyperCard. He loved to talk about whatever clever innovation the team was working on, with whomever happened to be nearby when he was excited about it. I was lucky enough to be nearby a few times.

At Magic I sat across the aisle from Andy and Bill and Susan Kare, who all sat together in the same large workspace. Susan was the graphic designer on the Mac, and also on the Magic Cap product we were creating at Magic.

By this time I knew their design sensibilities pretty well. I had just spent five years at Apple working on system software where I spent a lot of time patching and extending their code. I think you can learn a lot about somebody by immersing yourself in one of their projects after they’re gone.

Bill’s code is clean. Clean, clean, clean. Simple, straightforward, and correct. Andy’s code is clever. Never tricky, but sometimes subtle. Compact. (Clever is a term I usually use pejoratively in a programming context but I don’t mean it that way here. Most people can’t pull off clever. They think they can but they really can’t. They’re better off sticking with simple. Andy can do clever.)

Pierre Omidyar

Pierre founded eBay and became a billionaire philanthropist. I remember him as that funny and kinda goofy guy I worked with at General Magic. He was working on what would become eBay while we were at Magic together. It was called AuctionWeb. He got very enthusiastic when describing it. Maybe if I’d shown a little more interest instead of trying to find a way to be needed someplace else I would have had a chance to become a billionaire philanthropist, too. (I mean, come on. Programming a web site? How boring is that? Sigh.)

Tony Fadell

Another Magician. I’ve worked with Tony twice now.

Tony was doing hardware and low level software design for Magic Cap when I met him. He was gregarious and funny and didn’t have an off switch. He acted up, acted out, and seemed to have the maturity of a teenager. We didn’t really get to know each other then.

A few years later Tony was working on a secret project at Apple that would become the iPod. I was in between jobs and enjoying my semi-retirement when he convinced me to come work on the project. The project was so secret he wouldn’t even tell me what it was until I had signed the offer letter.

Given my memory of the time we spent together at Magic I asked to speak to his boss first. I wanted to make sure he had adult supervision. As it turned out he didn’t need it any more. He’d matured a lot in those few years. Tony created a diverse team of great hardware and software people. He drove us hard and got great results.

iPod and the iTunes Music Store changed the world. And made Tony famous. Even more so now that Tony’s leaving his position as Sr. Vice President of the iPod Division.

Steve Jobs

When I agreed to work for Tony on iPod I only had one condition. Having heard some horror stories about Steve I made Tony promise that I wouldn’t have to be in meetings with Steve. He did, so I signed.

That lasted almost a week. I barely had Meeting Maker set up on my office computer when a meeting showed up on the schedule for the following Wednesday. “<codename> review @ SJ’s Conf. Room” (It wasn’t called iPod yet… it only had a codename. Which I won’t reveal here.)

What to say, what to say. I have lots of great Steve Jobs stories. Maybe for around a campfire when no recording devices are within 100 miles.

I’ll just say this. Any kind of product review with SJ can be brutal for the presenter but iPod reviews were especially intimidating. You see, I was the guy doing the presenting. I need to paint a couple of pictures to illustrate.

To demonstrate something on the Mac, like the Finder or Safari, you get a bunch of people in a long room with a table down the center. On the table is a projector pointed at a screen at one end of the room. You turn out the lights for better viewing and start showing off. The presenter can’t really see SJ, and SJ can’t really see the presenter. Even after the lights come on the presenter has a whole table and projector between him and SJ. Not to mention several levels of management around the table to run interference.

To demonstrate an iPod you get half a dozen people in a small room barely large enough for a table and a few chairs. Even though you give SJ his own iPod with the new software on it, the presenter (that’s me) has to sit close enough to see what SJ sees. As in, shoulder to shoulder. Physically touching. With the lights on. Senior management? Waaaaay at the other end of the table.

You get used to it.

Me

I used to be famous. When I worked at Apple the first time I became somewhat well known in the (very small) Mac development community for some tools I created and for my online presence in the days long before the world wide web.

One time at General Magic I wandered downstairs to interview a candidate for an engineering position. Our recruiter introduced me to him and his eyes got big. He said, “The Greg Marriott?!?!” And he wasn’t kidding around. I’d had that kind of thing happen before but never in a job setting like this.

Others

There are a lot of others I would like to mention but this is getting too long already. Maybe another day.

Programming is like crack

October 31st, 2008

Many years ago, like 16 or 18 years ago, I was sitting around with some co-workers late at night waiting for a long software build to finish. I remarked that we were all addicted to programming. Eyebrows went up so I explained:

You spend most of your time frustrated. Seeking something. That Aha! moment that makes it all worthwhile.

You work for hours or days on a concept. Once you’ve got it straight in your head you start to try to implement it. It won’t compile. Then it compiles but it won’t link. Then it links but it won’t run. Then it runs but it misbehaves. You spend most of your time trying to figure out what went wrong.

You look things up in manuals. You examine your code and others’ code line by line running it through a large complex simulation in your head. When you think you’ve got the answer you run the code line by line in a debugger hoping to figure out which part of the code has the bug. Hoping there’s only one.

You change some code and run it and see that the same misbehavior remains. You change it again. And again. You finally try something radical only to realize you haven’t even been building and running the code you’ve been changing. Then you can’t remember the first four things you tried in order to apply them to the right copy of the code.

Then the inevitable happens while you’re looking at some part of the well established code. Something clicks, your head snaps up and you exclaim, “How could this have ever worked?!” My friends and I used to say that’s the point when you know you’re about half done.

Sometimes you get so deeply involved you start to lose touch with reality and begin to entertain fantastical notions. “Maybe there’s a bug in the compiler…” C’mon, admit it. You’ve all thought that.

Eventually you figure it out. You spot the flaw. You know deep in your bones this is it, the bug. That little voice in your head screams, “Aha!” Maybe you shout out loud and do a few fist pumps, “Gotcha, you son of a bitch!”

It’s hard to describe the euphoria. The intense frustration of the preceding hours or days melts instantly away.

Your co-workers come by and ask where you want to go to lunch. You tell them, “Not yet, one more bug fix and I’ll be ready to go.”

And that’s why programming is like crack.

Edgewise for iPhone

October 27th, 2008

Edgewise for iPhone (and iPod touch) was released on the iTunes App Store on October 25th.

Buy it, please.

It’s a solitaire card game. I’ve seen it called King’s Corners elsewhere (more on this below). You deal cards one at a time into a 4 x 4 playing field. Face cards must go around the edges in specific places. When the field is full you remove sets of cards that add up to 10. Rinse, lather, repeat, until you place all the face cards (win!) or until you can’t place a face card because there are no places to put it (lose!). You mostly lose, but for some reason people can’t seem to put it down.

History

Edgewise and I go way back.

I first wrote it in the early 90’s while I was working at a place called General Magic. All the engineers were asked to participate in a coding exercise. The goal was for the engineering team to take a few days away from our normal duties and to create some fun little games for the platform we were designing and building. (The platform was called Magic Cap and it was cool beyond description, so there is little point in describing it here. I’m not talking about the portable devices or the user interface, though they were cool in their own way. I mean the underlying software architecture. Man, was it ever cool.)

I thought and thought and thought and made up Edgewise. The name Edgewise didn’t occur to me until the game was almost finished and, well, it needed a name.

Edgewise was popular with the other team members, though not quite as popular as another game called Scramble invented by John Sullivan. Not that I’m bitter, or anything.

Imagine my surprise upon discovering that this game, or at least something very like it, had already been invented! Decades earlier! I thought I was so smart, inventing a popular game like that. I’m still proud of inventing it, even though I didn’t think of it first.

I’ve investigated the history of King’s Corners a tiny little bit, but I don’t know who (else) invented it or when. There is one significant difference and one minor one between Edgewise and King’s Corners. In Edgewise any combination of cards adding up to 10 may be removed from the board, but in King’s Corners only tens and two card combinations adding up to 10 may be removed. Oh, in Edgewise the Jacks are on the left and right sides of the board. In King’s Corners they’re traditionally on the top and bottom.

Porting Edgewise

I have ported Edgewise to several platforms over the years. It’s a useful start for me since I know it so well and can concentrate on learning the new system and tools.

It started in Magic Cap, of course.

Then PalmOS some time in the mid 90’s.

A few years later I made a version for Cocoa on Mac OS X 10.0.

Right about that time I took a job at Apple working on the secret project that became the iPod. A year or so after starting I made an iPod version. Since I was a manager and wasn’t doing any coding on that project, at least officially, I kept it a secret.

Much later came Cocoa, again, this time on Mac OS X 10.4, with 10.3.9 compatibility. That one was kind of fun. I guess they all were.

When the iPhone came out but only a lucky few were allowed to write programs for it I made a Javascript/Web version. This is the only version that comes with source code. :-)

And finally (yeah, until the next platform comes along) the iPhone version.

The iPhone version is the only one I have charged money for or widely distributed. I figured I should at least make back the money I spent on the iPhone Developer Program and the iPod touch I bought for testing. If it sells really well maybe I’ll spring for a new MacBook Pro.

Greggy’s Bits Inauguration

October 26th, 2008

Third time’s the charm, maybe

Welcome to the inaugural post for Greggy’s Bits. I’ve tried this a couple of times before, but I never really had the motivation to keep it up. Now with a fresh business just getting underway with the possibility of customers who actually want to know what’s going on… well, we’ll see.

Speaking of new businesses

Greggy Bits Software has been an almost business for a couple of years. The website’s been up for a while now. A few weeks ago I filed all the right papers with the state and the feds and now Greggy Bits Software LLC is a real, recognized, tax and fee paying entity in the state of Hawaii. It even has its own bank account.

Speaking of bank accounts

I’m a little annoyed at Bank Of Hawaii. The nice lady at the bank who helped me set up the account offered me a special business check card that accumulates frequent flier miles. Apparently there was a special deal, for which only sole proprietorships and single member limited liability companies (LLCs) were eligible, that would waive the yearly fee normally applied to business accounts. When the card and agreement came in the mail I was surprised to see a yearly fee, and some other various fees, too. I called the phone number listed on the little “activate me now” sticker to cancel the card and order the ordinary no-miles-but-no-fees-either card. The nice lady on the phone told me not to panic because even though the standard card agreement mentions the fee it would be waived for me. She promised. I’m annoyed that they didn’t warn me about this (what, it hasn’t come up before?) and preemptively annoyed for when I get charged the fee and have to jump up and down to get it refunded.

Enough for now

If you’re here you probably came in through the Greggy Bits Software website, so you’ve seen what I’m up to. If you got here some other way, go take a look so you’ll know what kind of stuff I’ll be talking about in the days to come.