Inert Detritus The Internet's dust bunnies

Posted
15 July 2008 @ 10pm

Comments Off on The App Store: My Purchases (and Two Gaming Gems)

The App Store: My Purchases (and Two Gaming Gems)

I ven­tured with our sum­mer intern to the Los Gatos Apple Store ear­ly on Fri­day morn­ing: we were in line by 4 AM, and were num­bers 23 and 24 in line. We were back at Apple by 9 AM, iPhone 3Gs in hand: we both got the 16 GB mod­el. I went with white (did­n’t you hear? It’s the new black!), while he opt­ed for fin­ger­print-reveal­ing black.

When our iPhones final­ly unlocked for use and synced with iTunes lat­er that after­noon, the Great App Store Pur­chase Binge began. I’ve bought some­where between 30 and 40 apps: most of them have been free, but a few weren’t. Here’s my rec­om­men­da­tions in no par­tic­u­lar order (and a cou­ple of games that every­one needs to try):

  • Twit­ter­rif­ic Pre­mi­um. Twit­ter on your iPhone: it was meant to be used this way. Quite use­ful to stay con­nect­ed when wan­der­ing away from a lap­top, and much eas­i­er than text mes­sage updates.
  • Expo­sure Pre­mi­um. Neat Flickr brows­ing appli­ca­tion from Fras­er Speirs, knowl­edge­able Mac devel­op­er and wran­gler of the Flickr API.
  • Instapa­per. A light­weight, quick web page “book­mark to read lat­er” app. I’ve used the web ver­sion since days after its ini­tial cre­ation. The iPhone app is even bet­ter: it down­loads offline copies of arti­cles, with both the orig­i­nal page, and an extract­ed text-only ver­sion. A lit­tle birdy told me that 1.0.1 is forth­com­ing with dele­tion capa­bilies; cur­rent­ly, you have to delete or mark arti­cles as read via the web interface.
  • Graf­fi­tio. You can cre­ate walls and post to them, anony­mous­ly and with no char­ac­ter lim­it. It uses Core Loca­tion to view walls at or near your loca­tion. This app is down­right strange on cam­pus, since the oth­er build­ings are close enough to let you read what iPod interns are post­ing in the Infi­nite Loop buildings.
  • Masyu, by Tim Burks, of Nu fame. A fan­tas­tic lit­tle puz­zle appli­ca­tion: there’s only two rules for map­ping a route through pieces on the board, so it’s sim­ple to learn. The larg­er puz­zles use a few more pieces to great effect, mak­ing it dif­fi­cult in spite of the inher­ent sim­ple rules.
  • Cubes (game­play demo here). A very neat reverse Tetris meets a Rubik’s cube puz­zle game.
  • Sol. A sim­ple dis­play of sun­set, sun­rise and twi­light hours. I’ve had this wid­get on Dash­board for next-to-for­ev­er, so this was an obvi­ous purchase.

I have one sug­ges­tion for devel­op­ers: in the appli­ca­tion’s info on the App Store, post a link to a fif­teen or thir­ty sec­ond screen­cast demo of the app. There’s sev­er­al apps that I was unsure of, such as Cubes, but see­ing a game­play demo made it obvi­ous that I would enjoy it. This goes for all devel­op­ers, not just game devs: we want to see how the app works, what the flow is like.

All told, I’ve spent 63 dol­lars on the App Store so far. Most of the mon­ey has gone towards the ten dol­lar appli­ca­tions like Twit­ter­rif­ic and Expo­sure Pre­mi­um. I think most devel­op­ers are leav­ing gobs of mon­ey on the table: I’d have paid more for Cubes, Masyu, and oth­er games, and appli­ca­tions like Instapa­per could charge sev­er­al dol­lars and I’d buy them. (Instapa­per may have a pre­mi­um ver­sion com­ing out in the future with more features.)

The max­im of Mac devel­op­ment still holds true for App Store apps: charge more now, you can always low­er your price later.


Posted
21 June 2008 @ 6pm

26 Comments

(Re-)Designing a Preferences Window

(Edit: My apolo­gies: com­ments were closed ear­li­er; they closed auto­mat­i­cal­ly after 2 weeks. They’re open now.)

CPU His­to­ry 1.0 was an obvi­ous work in progress. It shipped with­out mul­ti­core sup­port, with a redraw­ing bug, and with a hor­rid pref­er­ence win­dow design. The first two bugs were fixed months ago, when I pushed a beta of 1.1 to a few mul­ti­core testers. How­ev­er, the third bug was­n’t on my radar until Peter Hosey (@boredzo) brought the Apple Human Inter­face Guide­lines (HIG) to my attention.

With­out fur­ther ado, here’s the 1.0 pref­er­ence window.

Preferences 1.0

The list of things wrong with this lay­out is longer than the list of things right. Incon­sis­tent spac­ing, and no attempt at ver­ti­cal align­ment of labels or controls.

When I added fea­tures (name­ly, mul­ti­core graph­ing) to 1.1, I had to add anoth­er con­trol to the pref­er­ences. Hence, the 1.1 b1 pref­er­ence window.

Preferences 1.1 b1

This is the release that com­pelled Peter to link me the HIG write­up on lay­ing out win­dows. And right­ful­ly so.

After an hour spent mas­sag­ing things in Inter­face Builder, here’s the first 1.1 redesign. (I’ll call this 1.1 b2)

Preferences 1.1 b2

I fixed ver­ti­cal spac­ing between ele­ments, hor­i­zon­tal align­ment of labels and con­trols, and a few oth­er tweaks. It was pri­mar­i­ly a HIG-com­pat­i­ble spac­ing fix to the 1.1 b1 layout.

Still, the lay­out just felt wrong. I vis­it­ed #macdev on IRC to con­sult some oth­er devel­op­ers, and two sug­ges­tions sur­faced. First, a tab-based lay­out (from cia­ren and ccgus), and a boxed lay­out (a com­bi­na­tion of my think­ing and ccgus’s view idea). I set out to imple­ment the tab-based lay­out first.

Preferences 1.1 tabs - panel 1

Preferences 1.1 tabs - panel 2

Preferences 1.1 tabs - panel 3

That’s tabs one, two and three. I split things based on log­i­cal sep­a­ra­tion: gen­er­al, floater pref­er­ences, and col­or choic­es. How­ev­er, as is evi­dent on tab three, I could­n’t find a good lay­out in that tab that used the space required by tab one. Onward, then, I ven­tured, to fix anoth­er lay­out shortcoming.

The sep­a­ra­tions from the tabs made log­i­cal sense, so I want­ed to keep those while junk­ing the extra white­space of the tab lay­out. So next up was a box-sep­a­rat­ed (NSBox) layout.

Preferences 1.1 final

This is the cur­rent leader in the win­dow design, and most like­ly what I’ll be ship­ping tomor­row. It had the right mix between an all-in-one win­dow, which removed white­space issues with tabs, and clear splits between con­trols of dif­fer­ent types.


Posted
18 June 2008 @ 11am

Comments Off on Arrival

Arrival

Edit: I post­ed this three days ago, but Google Maps URLs did­n’t coop­er­ate, so here it is, bet­ter late than nev­er. Apolo­gies for the tech­ni­cal difficulties.

We land­ed ear­li­er today in Los Altos. I’ll be in a room in a four bed­room house here for about two weeks, doing a short com­mute to Apple start­ing on Mon­day, June 23. Then, it’s relo­ca­tion to a room in a six-bed­room house in Wood­side, fur­ther up I‑280 from Apple. I’ve got that room from July 1st to mid-September.

Today was spent on The World’s Windi­est Road, Rt. 1. Here’s the route on Rt. 1 and 128, but here’s a detail of Rt. 1 at the begin­ning. We had to stop twice for dri­ver and pas­sen­ger nausea.

We drove across the Gold­en Gate Bridge this after­noon as we head­ed towards Los Altos. Tomor­row morn­ing, we head back north towards Wine Coun­try. Mon­day will be spent trip­ping around San Fran, and Tues­day we have a tour of Alca­traz ear­ly in the morn­ing, like­ly fol­lowed by anoth­er day in the city. Eric flies out of Oak­land Inter­na­tion­al on Wednes­day morn­ing, and I have a few days before start­ing work.

5600 miles from DC to San Fran­cis­co: cer­tain­ly a more scenic route than usual.


Posted
11 June 2008 @ 11pm

Comments Off on On the road: an update

On the road: an update

We’re cur­rent­ly in Port­land, OR, stay­ing the night at a hos­tel in the north­west end of town.

Seat­tle was fan­tas­tic. I’m not sure if I’d be able to get used to the rain, but, assum­ing I love San Fran­cis­co as much as I’m expect­ing to, I’ve found my sec­ond best Pacif­ic coast city in Seattle.

Tomor­row, we depart Port­land for the Pacif­ic Coast High­way, Route 101. See Wikipedi­a’s pages for Ore­gon and Cal­i­for­nia for details: we’ll take it most of the way from here to San Francisco.

In addi­tion, I’ve found a place to live for the first three months in SF: I have a sub­let room in Wood­side from July until mid-Sep­tem­ber. No street cor­ner or under-the-desk liv­ing for me!


Posted
2 June 2008 @ 6am

Comments Off on Another On-The-Road Update

Another On-The-Road Update

We’ve now trav­eled over 2500 miles. I haven’t totaled gas receipts, but Eric and I are esti­mat­ing over 350 dol­lars so far. Thank god for large cred­it lines with Amer­i­can Express.

Since the last post, we’ve tra­versed three more states. The morn­ing of the 27th, we head­ed north from Oma­ha, through Iowa and into South Dako­ta. We spent the night camped out at the Bad­lands. After wak­ing ear­ly for sun­rise pic­tures (forth­com­ing), we vis­it­ed the Min­ute­man site off I‑90, swung through the ring road back through the Bad­lands, and head­ed west. A trip to Mount Rush­more was punc­tu­at­ed with storms on the way, but as we approached the moun­tain, the skies cleared. The dri­ve through the Black Hills was quite pret­ty, and I took sev­er­al pho­tos out the sun­roof of the car.

After arriv­ing in Cheyenne for the night and sleep­ing there, we spent yes­ter­day on the road, stop­ping often for pho­tos and gas. We made a quick vis­it to Radio Shack and an Acu­ra deal­er in Den­ver to work around a burned-out cig­a­rette lighter that hap­pened on day one. The rest of the day was spent trekking across Col­orado, over some rather large moun­tains, and then off I‑70 to take a back­roads trip to my aunt and cous­in’s house near Telluride.


Posted
29 May 2008 @ 11pm

Comments Off on The First Trip Update

The First Trip Update

It’s the end of day three.

We spent Tues­day trav­el­ing to Chica­go (a 680 mile haul), and all day Wednes­day tag­ging around the city and watch­ing the Cubs win against the LA Dodgers.

Today was spent trav­el­ing to Oma­ha (480 miles) to stay with a friend of Eric’s. Tomor­row morn­ing, we go north to South Dako­ta, vis­it­ing and camp­ing at the Bad­lands (low tomor­row night: 50° and breezy). Fri­day is spent at the Bad­lands, Mount Rush­more, then south to stay the night in Cheyenne, Wyoming.

Pho­tos will be processed on the road tomor­row, and a large Flickr upload will hope­ful­ly hap­pen some­time this week­end when we sur­face again on some­one’s wire­less. Best bet for updates between now and then is Twit­ter and Flickr mobile uploads. Cheers.


Posted
15 April 2008 @ 10am

Comments Off on Hello/goodbye

Hello/goodbye

I’d be lying if I said that dat­ing some­one as you leave col­lege is a ter­ri­ble idea. If you hit it off in the final days and weeks of school, then that’s how life played out. Enjoy every last moment you get, and don’t hate your­self or the cir­cum­stances for being inconvenient.

While this won’t make grad­u­a­tion any less bit­ter­sweet, at least I’ll have some fan­tas­tic mem­o­ries of my final months and weeks here. I can’t think of a bet­ter send-off as I leave.


Posted
14 April 2008 @ 11am

Comments Off on Quote: Good breakage

Quote: Good breakage

From warpedvisions.org » Blog Archive » Quote: Good breakage

“I like an esca­la­tor because an esca­la­tor can nev­er break, it can only become stairs. There would nev­er be an esca­la­tor tem­porar­i­ly out of order sign, only an esca­la­tor tem­porar­i­ly stairs. Sor­ry for the con­ve­nience.” Mitch Hedberg


Posted
15 March 2008 @ 1pm

Comments Off on Perfection In Code

Perfection In Code

The Escapist just did a very intrigu­ing inter­view with Jason Rohrer on design, devel­op­ment, and perfection.

After push­ing an app out the door ear­li­er this semes­ter (CPU His­to­ry), and active­ly devel­op­ing the web­site at my part-time job (at VBI), I under­stand the fine bal­ance between time­li­ness of release and striv­ing for perfection.

When writ­ing CPU His­to­ry, I knew there were cer­tain things that absolute­ly, pos­i­tive­ly had to be cor­rect: the val­ues for CPU usage had to be both time­ly and accu­rate: an app that lags a half-sec­ond behind what’s real­ly hap­pen­ing is useless.

Oth­er parts, how­ev­er, weren’t so crit­i­cal. I wrote CPU His­to­ry pri­mar­i­ly because Activ­i­ty Mon­i­tor in Leop­ard took 18–22% of my total CPU on my iBook G4. Know­ing two things, I decid­ed that mul­ti­core sup­port was­n’t on my list for a 1.0 release: I was on a sin­gle-core sys­tem, and when my new Mac­Book Pro arrived, I could afford the CPU cycles to run Activ­i­ty Mon­i­tor instead.

(Small aside: the lim­i­ta­tions of Activ­i­ty Mon­i­tor’s his­to­ry graph­ing, espe­cial­ly with no way to change dis­play col­or, bar width, or update fre­quen­cy are dri­ving me slight­ly insane, how­ev­er, and I will be refin­ing code from @dsandler to get full dual-core sup­port up and working.)

I released CPU His­to­ry 1.0 with a few known bugs, too. Adjust­ing the update fre­quen­cy or oth­er graph­ing pref­er­ences clears the graph his­to­ry, for exam­ple. It was­n’t a cat­a­stroph­ic bug (which I define as any­thing that caus­es data loss, cor­rup­tion, or makes the app so unus­able as to make it use­less to the user), but it was both­er­some, and it drove me to spend an hour regress­ing the bug so I could accu­rate­ly repro­duce it. I tried dig­ging into the code a bit to see why it was hap­pen­ing, but it quick­ly became clear that it lay in the inter­ac­tion between code I had writ­ten and some parts of Mem­o­ry Mon­i­tor that were reused with no alter­ations. I decid­ed to back off and release the app as-is: releas­ing the 1.0 was more important.

Per­fec­tion, while achiev­able, would mean nev­er ship­ping any­thing out the door. There’s a fine bal­ance between tol­er­at­ing a minor issue in the inter­est of get­ting some­thing out the door, and stop­ping every­thing else to fix a cat­a­stroph­ic bug


Posted
8 March 2008 @ 10am

Comments Off on SmartSleep: OS X Hibernation Made Easy

SmartSleep: OS X Hibernation Made Easy

This pref­er­ence pane deserves a whole blog post. Smart­Sleep is a tiny pref­er­ence pane that changes the sleep­ing behav­iour of any Mac that sup­ports hiber­na­tion. Here’s some quick back­ground infor­ma­tion (skip the next two para­graphs if you know how hiber­na­tion works).

By default, new Intel-based lap­tops save part of their RAM to disk every time they’re put to sleep (all active pages not all ready in on-disk vir­tu­al mem­o­ry, and all wired pages, for the VM nerds out there). If the machine los­es pow­er while it’s asleep (bat­tery drains, or because of a bat­tery swap), OS X is able to read in the hiber­nat­ed mem­o­ry con­tents and restore the cur­rent state of the machine, there­by pre­serv­ing all open work, doc­u­ments, appli­ca­tions, et cetera.

As you might imag­ine, on machines with 2 or more GB of RAM with more than a few appli­ca­tions open, this can take a while (upwards of 30–40 sec­onds). When you con­sid­er that new Mac­Book Pros come with 2 GB stan­dard, and most users don’t need this “safe­ty net”, there’s a pletho­ra of hints and wid­gets online for turn­ing off hiber­na­tion to make the machine sleep faster.

But this means that hiber­na­tion is per­ma­nen­ly turned off when you need it most: when your bat­tery is very low. Smart­Sleep takes care of all that. It lets you set the typ­i­cal modes: “sleep and hiber­nate” (the out-of-the-box behav­iour for OS X), “sleep only” (so hiber­na­tion is off), and “hiber­nate only” (can’t think of a time I’d use that, but it’s there any­way), but it adds one more: “smart sleep”. “Smart sleep” puts the machine to reg­u­lar sleep if the bat­tery is above a user-spec­i­fied per­cent­age. Below that per­cent­age, it changes to “sleep and hiber­nate”, and below 5% or less than 5 min­utes remain­ing, it changes to hiber­nate only (I dis­agree with that decision).

I have my machine set to “smart sleep”, and the per­cent­age set to 10%: the vast major­i­ty of the time, I don’t need hiber­na­tion turned on, but if I’m on cam­pus, run my bat­tery down to 3–4%, and it’ll be sev­er­al hours before I’ll find a charg­er, it’ll hiber­nate mem­o­ry and save what­ev­er I have open (there­by pro­tect­ing me from the remain­ing bat­tery pow­er drain­ing while the machine is asleep).

Smart­Sleep is fan­tas­tic: Apple should build auto-switch­ing of hiber­na­tion modes into OS X in the future.


 ← Before  After →