Saturday, August 30, 2008

Christmas in August

I bought an iPod Touch yesterday. I justified the purchase as a necessary investment in my career as a wannabe independent software developer.

At the same time, though, another voice spoke, much louder this time. It was the kid in me, and he said: "Cool. A new toy!"

The iPod Touch (iTouch) looks like an expensive toy. It's cute, and sleek, and eye candy jumps out at you as soon as you turn it on. How can one resist? And I thought to myself "Ah, Apple design..." And as I did, Venice came to mind; not the city as much as the feel of it; the way I would have said "Ah, Venice..." if I had been there (as I have).

One could say that there's a little bit of Venice in every Apple product.

Later, I skimmed through the developer documentation, trying to get my bearings and preparing the ground for my next -- and first iTouch -- project. By the time I was finished, my inner developer too was feeling the rush: "... so many cool APIs... so many possibilities... so much... nerd candy".

And no wonder today was a special day. Three significant fragments of my personality were in agreement, for once. Pleasure delayer that I am, I still haven't opened that box, though. It sits there in my bag, waiting for that moment when fragment #1 says "okay boys, let's open the presents and start coding".

I can't wait.

Thursday, August 28, 2008

Shortcut #2317

About that ninerpad background color preference... It seemed like an easy-to-do feature request at first. People asked for a way to set note backgrounds to a color other than white and I was going to give it to them.

(this post courtesy of Palm OS 5's non-support of alpha channels by the way)

ninerpad works in 8 bit screen depth mode. This means that you only have 256 colors to play with, upside being that the drawings take a lot less room to store, and can thus be commensurately larger or numerous. Good for note taking, that.

Now, to store a drawing, I need to give every pixel a value. I mean, there is no such thing as a non-value. So, 4 months ago, at version 1 design time, the answer came easily: fill blank drawing data with zeroes, one for each pixel (compressed data actually, hence fewer bits, but that discussion is for later).

And therein it lies: zero happens to be the only index for the color "white" in the Palm system palette. No other color well in that palette gives us that.

So, if I want to let users draw in white over, say red, I have a problem. I can let them draw in color zero (white) over red, sure, but what about those other empty pixels then, those that they did not draw over and yet that need a storage value?

The answer lies at the bottom of the ninerpad's BG color selector (inside Preferences). You will notice that one of the color wells down there is also set to white. That well, #254, is a cheat. It was reconfigured from its default color, black, to white.

Now, when you draw in white, you are actually setting those pixels you draw over to hold color value 254, instead of 0. When I read back the data, I overlay non-zero-index data over the BG color and presto, you can now even draw in white over white, if that strikes you as shiny. The drawn data will still be there.

Somewhere a bug lies in ambush, waiting for that right moment. I know this. And when it does, it will likely appear as some kind of display glitch, i.e., something appears in white that should have been some other color.

ninerpad restores the system palette to its default values when it exits, so other apps are safe. But if some 3rd party application pops something up over ninerpad while the later is active, the bug may show its ugly (white) head.

Waiting for that day, and asking: must every shortcut come at a price?

Life Lesson #6247.5: On Fighting Reason

You've been sitting at your desk all day, consumed with the determination to release your product on time. The "good life" awaits and not a minute shall go to waste.

And then you realize that it's gotten dark outside and that the minutes of that other day that could have been have passed you by.

And you ask: is regret the bed partner of passion?

Tuesday, August 26, 2008

Feature Quandary #1

See, there's this feature that at least one ninerpad user -- that would be me -- would like to have right now. It would be useful for getting things done, that, since it would let me reorder my scribbled Palm notes.

I could code it in tomorrow. in time for the next release. Approximate cost: 20 minutes of my time, testing included.

But if I do this now, I also know that I will have to replace its current interface, a menu item, with another, completely different one -- dragging and dropping of image thumbnails -- at a later date, in a later version. And at that time, anyone using the original feature might grieve for its loss when it is in fact still available, but in another place. Hence, confusion.

So I decided to postpone introduction of the feature, at a possible detriment to my current user base, and definitely to myself.

And I ask: is it better to give something now and (appear to) take it away later than to not give at all?

About Me

Montreal expat living in China. I started a new project in 2011: iOS uni-post-grads training, and production of apps and games. Interns are now in place, working in groups of 2 or 3. The machine is turning. First app on the way. More info at gamecubate dot com.

Followers

Resonant

  • Groundhog Day
  • Serenity
  • Spartan
  • The Lost (Jonathan Aycliffe)
  • Unforgiven