The Treachery of NSImages

Incisor IconThanks to my recent bout of unemployment, I’ve finally been able to finish one of the projects I always said I’d do when I got free time. This one is to write a complete app for Mac OS X, from start to release.

The app is called Incisor, and it’s a lightweight image editor. I’m always finding pictures I want to use in blog posts on websites, or Flickr, or from my own iPhoto library. But getting them in a usable format means having to crop and resize them in Photoshop or iPhoto, both of which are overkill for doing something as simple as sizing an image.

It’s such a common task I’m surprised it isn’t being done already, but I haven’t found an app that works exactly like I want — in particular, being able to see a real-time preview of the edit, and being able to drag it directly into another program without saving it as an interim file. (Of course, now that I’ve put it on the internets, I’ll probably hear of a dozen programs that already do that. But what the hell; I wanted to learn how to write a Cocoa app anyway).

The thing about programming for Cocoa, at least from my limited experience, is that it’s crazy powerful, but it takes a lot of work to get your foot in the door. There are plenty of excellent tutorials out there, but they either start out too high for the beginner, assuming that you already know the basics; or they are so tailored to a specific task that you’re screwed if you try to do something different. I wrote the “Currency Converter” app about four times, each time ending up with a complete program but never understanding how all the pieces fit together.

I’ve read in more than one tutorial that the mantra of Cocoa programming is, “If it’s hard, you’re doing it the wrong way.” And it’s mostly true; the problem is finding out the right way to do it. Several times I would spend hours writing a bunch of functions to do something, only to have to delete it all once I discovered it was all covered automatically by one call to the system frameworks. For example, everything complicated about image manipulation is handled automatically by the Cocoa libraries — the effort in writing this app was half connecting the UI, and half digging through tutorials and documentation to find out what was covered and what I’d have to write myself.

And I’m just finding out now that at least half the UI code I’ve written could be scrapped if I’d used a different method. I guess I’ll know better next time.

I’m not sure if it’s just my experience, but developing something for OS X at the moment seems like a lot of super-powerful pieces without enough to tie them all together. It’s almost ludicrously easy to get a full-featured app out of the built-in frameworks and tools they give you for free; you can write a functioning web browser with just one line of code, for example.

Still, there’s not really anything guiding you through the process. For a while, after seeing how powerful InterfaceBuilder and Xcode are, and how deeply-integrated AppleScript is into everything, I was starting to think that development had gotten to the point where something like HyperCard wasn’t necessary anymore. But now, after finishing an app (albeit a very simple one) and looking back on where my time was spent, I’m convinced that the system really needs something that casual programmers and even non-programmers can use to get results not built into the stock iLife apps. Bring back HyperCard!

P.S. The app has some of the ugliest icons possible. If anyone wants to volunteer to make new ones, let me know.

To the Moon!

Not only is the honeymoon over, but I think a trial separation is in order. The fan on my MacBook Pro is making grinding and clicking noises that get gradually louder, culminating in an ear-splitting crescendo about 20 minutes after boot-up.

The thing has run ungodly hot ever since I got it, but what with all the reports of Apple logos burned into users’ thighs, I just assumed that was standard operating procedure for the MacBook. Now I have to wonder, Fox News-style, Could Improper Ventilation Be Putting My Data at Risk?

Now I’ve got to limit my computer access to 5 or 10 minutes at a stretch until I can get the thing back to California and back everything up. Then take it to the Apple Store and have one of their geniuses inflict their attitude on me.

Apple sucks.

Maybe I should get a new iMac.

A Funny Thing Happened in my Pants

I finally started to dig through all the shaky video I took at Disney World, finally taking advantage of all the iMovie and iDVD and iWhateverElse I’ve been paying for with every OS X update.

It’s reasonably fun, but it sure takes a hell of a lot of time. And I’ve learned it’s crucial to save early and save often — the files are so huge it took 30-45 minutes just to make a back-up, and one crash of iMovie wiped out everything.

I started with the video I took of the Team Possible game at Epcot. I somehow managed to make it seem a lot more dull than it really was — I suppose I’d gotten numb to all the sights around Epcot by that time, so I ended up just videotaping the phone’s screen. You didn’t spend as much time staring at the screen in the real game, I swear.

Another funny thing: when I was looking through the video, right at a really cool point in the game, it cuts to an extended shot of my stomach. Then it cuts to the inside of my pants pocket. For like 10 minutes. I’d managed to get the record/don’t record mixed up, and missed a big chunk of the game. I could say that I finally know what it’s like to be in my pocket when I’m walking around, but I don’t know that that’s such a good thing.

Anyway, here are the videos I’ve put up so far. I can put up the others if anyone’s interested.

  • Prologue: Head to Canada, get your Kimmunicator, watch the briefing video.
  • UK Briefing: Head to the UK and find your secret contact in the window of the Toy Soldier store.
  • UK Plans Phone Booth: Receive a mysterious call from the Ministry of Meterology, who’ll help you’ll find the secret plans to Duff Killigan’s weather machine.
  • France Hideout Gargoyle: Plant a tiny bug on the gargoyle inside the lobby of the cinema in France, use it to eavesdrop on Senor Senior, Sr. and Senor Senior, Jr.
  • Finale: Final showdown with Dr. Drakken.

The Honeymoon’s Over

Bleh.I remember when a new announcement from Apple would have me visibly excited and reaching for my wallet.

I even waited around today for Pacific Time to catch up so I could see what all the hoopla was about. And the experience was like when you have to go see that distant cousin who’s a straight C+/B- average student perform in her school production of Singin’ in the Rain and the kids do a passable job, and the parents are genuinely enthused about it, but you’re just sitting there thinking you’ve got the DVD of Singin’ in the Rain at home and they do a much better job and you’d be better off not wasting your time watching a half-rate production of it.

The original iPod nano was just bad-ass. I never got one for myself because even I couldn’t rationalize it, but I was sorely tempted. And Apple had finally gotten their whole line from desktops to laptops to MP3 players all consistent and looking classy. The new ones are ugly aluminum all tarted up in iPod mini colors.

The “real” iPod has been improved, supposedly, but nothing groundbreaking going on there. It’s still just an MP3 player, and it’s still way inadequate for watching video.

And the whole new “iTV” thing; what’s up with that? A video server that apparently only connects to iTunes running on a different machine. So you can pay $15 and wait 30-45 minutes to download High School Musical in a format only playable via iTunes, and stream it at 640×480 resolution with plenty of compression artifacts visible on your living room TV.

Whee.

iTunes has been genuinely improved. In particular:

  • The really cool freeware app CoverFlow got bought by Apple and incorporated into iTunes. It’s one of the coolest Mac-only apps out there, but never made sense as a separate app, and Apple integrated it just about perfectly.
  • iTunes will download cover art for you, another thing that there’ve been about a billion freeware apps written to do. I haven’t had a lot of luck with it so far, but I assume it works.
  • You can finally back up your library to disc right from iTunes. Even better, you can choose to backup only what you’ve bought from the iTunes (no longer Music) Store, and you can do incremental backups.
  • It’s got an album cover/song list hybrid view that makes a lot more sense for browsing.
  • Reportedly, it’s a lot better at handling iPod synching, but I haven’t yet tried it.

On the downside, it’s got the “new look” that Apple’s going towards with Leopard, and it’s all muted and ugly as sin. Or, ugly as the new iPod nano.

They’re going to get my money with the new Leopard point release, but I’ve got to say I’m not that impressed with that, either. Nice try, Steve. Wake me up when you come out with the iPod phone.

Get it off me! Get it off me!

Get out of him, you bitch!I finally got my computer dual-booting into Windows, and everything I need for work installed on the Windows partition. That only took two days.

It’s not Apple’s fault; BootCamp couldn’t be simpler or easier to use. And I guess it’s not Windows’ fault either, since once I had an official install, it worked without hassle. It’s just that it’s been so long since I’ve used a machine that didn’t already have everything pre-installed, I’d forgotten what a pain in the ass it is to get everything up and running. Even if it is just a matter of clicking “Next” and waiting an hour.

So far, everything’s worked pretty much as expected. A couple of crashes and failure to boot, but that’s included in the “working as expected.” I installed a virus scanner (and on its first scan, on a clean install of Windows XP I’d done just one day ago, it reported four viruses found — no joke) and Firefox and everything I need for work, and it all works fine. For yuks I installed Civilization IV, and that works fine.

I also tried out that Parallels Workstation. Even in beta, it works exactly as advertised, allowing both OS X and Windows to run simultaneously. I’ve already uninstalled it, though, since at least in the Beta version, it can’t access any of my Mac files or even the Windows files on my other partition. Which makes it, at least at the moment, a non-functional novelty. (But a very solid one, I’ve got to admit).

And I got out of Windows as quickly as possible. Call me an OS snob; that’s a fair accusation. Windows just feels all underpowered and ugly now. Maybe Vista will improve the experience, but everything I’ve seen just looks like Microsoft trying to do OS X. Even if they succeed, why should I care? All of the apps I need that are Windows-only are still going to be as ugly and kludgey in Vista as they are in XP. And the home-user stuff that Vista’s emphasizing — photo viewers, music players, etc. — don’t promise anything I’m not already getting from iPhoto and iTunes and the like.

Intel Aside

As it turns out, I’m weak. The lure of a faster Mac and a laptop that runs Windows was too much for me to resist. I ended up getting a MacBook Pro.

What finally sent me over the edge was realizing that I wasn’t just making some rationalization — it really is a legitimate business expense. That I can write off on my taxes and everything. Every time I go Down South I’ve got to make excuses about not being able to run stuff on my laptop because it’s Mac-only, and if I’m going to be at the theme park for weeks at a time at the end of the summer, it’s going to be essential to have a Windows machine.

For now, though, it runs World of Warcraft really well. (Note to auditors reading this blog: I’m only going to write off half of it as a business expense). Everything else seems slightly faster, but that may just be my imagination.

As for actually running Windows on the thing: I can’t report on that yet. Turns out that they’re serious when they say you need to buy a full, dedicated Windows XP SP2 install. I imagined that I had tons of Windows discs lying around, but was unable to find one. (Something tells me that there’s going to be some future crucial bit of Mac tech that relies on having an AOL installation disc, and I’ll need it right after I’ve thrown out the last spare one I have…) The version that came with my old Dell got me all the way through the two-hour-long install process, only to fail at the end because of some missing USB driver file.

So I ended up having to buy a new copy of Windows XP, which I swore I’d never do. (At least the dual boot thing qualifies for the license of the OEM version, so you don’t have to buy a full blown retail version). Once it comes in the mail, I’ll be able to say whether I have any success with it.

One thing I did notice during my installation attempts last night: Windows sucks. Sure, I use it every day for work, but that’s in an OS-agnostic IDE. And I use it mainly for games, which don’t care about the OS anyway. Actually using Windows — in particular, setting up network connections and organizing files and such — is just unpleasant. I was wondering if that was part of the impetus behind BootCamp in the first place, to take all of us complacent OS X users and remind us just how good we have it.

I can’t even put my finger on what it is exactly that bugs me about using Windows now; it just has this vague off-brand feel to it. Like eating a bunch of Oreos and then biting into a Hydrox. Or seeing an episode of “Alias” with Hilary Swank instead of Jennifer Garner. Or watching a movie for Natalie Portman and then realizing you got one with Keira Knightley instead. [and btw, thanks to NBC for saving us from having to search the web for “borrowed” NBC highlights!]

Still: hot damn! I got a new computer!

Anybody want a used PowerBook?

I was thinking I was showing considerable self-control. Apple’s been releasing all kinds of new iPods and new, slightly different alternate-universe Macs that were just like the ones I have but slightly better and shinier. Still, no desire to buy one. “I’ll wait until they come up with something that’s significantly better,” I thought. “No sense wasting too much money on minor upgrades.”

But now they’ve got this Boot Camp crap going on. I’ve been wanting a faster Mac, and a laptop that runs Windows. Just this week, in fact, I’ve needed to run Windows-only stuff several times. And when I got back to the hotel, I’ve wanted to run World of Warcraft at an acceptable speed. And then Apple goes and announces official support for dual booting.

It’s like they want my money or something.

Now I’ve just got to get rid of this 1.25 GHz albatross. And by “albatross” I mean the best laptop I’ve ever owned that’s still in great shape and is available for a steal.

180 on the 360

Blurry KlingonAnother inconsequential post on SFist, this time about the rumored video iPod with a bigger screen that, like me, is touch sensitive.

And still I can’t work up much of a reaction other than “meh.” Either I’m getting more mature (plastic guitars notwithstanding) or I’ve just reached consumer electronics saturation what with all the handheld videogame players and MP3 players and phones and such. They don’t seem all that impressive anymore. Now, when they come out with one that plays video and more MP3s than will fit on a memory stick and gives directions and keeps notes and works as a phone, then get back to me. That’s what I’m missing from the Treo — it was kind of a lousy phone, but I liked always having access to maps and a notepad.

In other news, the Microsoft guy is saying that the Xbox 360 shortage is coming to an end within the next “four to six weeks,” and they’ll be readily available. Much to the dismay of ebay price-gougers. And me, since the news (along with the speculation that the PS3 won’t be out until September) re-sparked my interest in the damn thing. I still don’t play console games that often anymore (plastic guitars notwithstanding) and nothing’s really changed to make me want one. I can only guess it’s a subconscious reaction to a story I read a couple of days ago about this group of rabid recyclers who were pledging to buy nothing new in 2006 except for food and medical necessities. The thought of going a whole year without buying things I don’t need fills me with horror and dread.

Which reminds me: what I do need is a new camera. I’ve been to four conventions and other indoor-type events now, and half the pictures I get are worthless because they’re too dark and/or blurry. Either this camera sucks, or I’m developing Parkinsons Disease. Even the ones I take in daylight come out either too grainy or the colors are a lot more muted than I’d like to see. I realize that there are ISO and shutter-speed settings I could use to account for it, but my last camera (same Sony Cybershot line, just lower resolution) worked perfectly as a point-and-click. It was hard to take a bad picture with that one, and it was smaller and a lot more convenient.

If anybody has digital camera recommendations, I’d like to hear them.

At What Price Progress?

Today (or I guess, yesterday) was the first day in a long while I’ve made real tangible progress with my work, instead of just doing research or clerical and maintenance work. So instead of downloading and installing and re-installing and reading documentation and uninstalling and re-re-installing, I actually wrote a good bit of code.

About 12 hours’ worth of code, by my calculations.

Now, while I’m pleased that I actually have something to show for my work, it would’ve been nice to see some daylight today other than the bits and flashes I got while out smoking. This was pretty much my M.O. at my previous jobs, too — long periods of brainwork (which looked to the casual and ignorant observer like inactivity) followed by a consolidated way-too-long chunk of work time that actually gets results.

Do normal people grow out of their college work schedule, or am I doomed to cram sessions for the rest of my life?

(Incidentally, my friend and once-again-coworker Chris reminded me the other day about my last project at LucasArts, which was a total failure of a scripting language that was supposed to be a combination of lua and C++. Turns out that JavaScript is exactly what I was trying to make, but I didn’t know that at the time. My version was still a failure, but it’s nice to see that I was on kind of the right track at least.)

One of the sites I’ve been reading a lot lately (other than the java online documentation) is Lifehacker. It’s a blog that’s filled with tips and recommendations that will supposedly make your life more organized. For me, though, it always ends up taking up more of my time. They’ll recommend some huge time-saving new application, like Path Finder or Quicksilver or Yojimbo. I’ll download it and install it. I’ll try it out, add my stuff to it, get a feel for how it works.

I’ll invariably fail, and go back to doing things “the old way.” But not just the old way, I’ll go back all the while knowing I could be doing things more efficiently. So every one is like an added weight.

I think what I really need is a true personal organizer — not some PDA or desktop widget or does-everything organizer app, but a real organizer. Somebody who’s really on top of things and can make sense of the 48 hours worth of stuff I want to do in the 12 or so hours I’m actually awake each day. Somebody who’ll pay my bills, get caught up on my e-mails and personal obligations, point me to the internet stuff I’m actually interested in and filter out the rest, who’ll teach me how to play the banjo and speak Japanese and draw, all while I’m playing World of Warcraft or getting caught up with my Netflix queue.

ASIMO, I’m waiting for you, buddy.

Writing Too Much About iWeb

NetNewsWire ScreenshotThere’s a new post on SFist wherein I talk about how iWeb isn’t as cool as HyperCard.

And talk, and talk, and talk — I blame ecto. I liked it enough to pay for it, and now it means I don’t have to use web browser editors for my crucial blogging endeavors. Which means I’ve got even less restrictions on my natural inclination towards long-windedness. It turns out that living in fear of accidentally hitting the back button and losing everything was the only thing helping me towards succinctness.

My other discovery yesterday was RSS readers. I knew of them, of course; I’m not that far out of the loop. But I thought Safari was plenty sufficient — it tells you what sites have been updated, and then you can click on the links to see the full thing as it was intended to be presented.

After trying out the dedicated readers, though, I’m hooked. It actually makes what is essentially a time-wasting activity more efficient. You only see what’s updated, and it checks every site you’re interested in. I decided on NetNewsWire, but PulpFiction was almost as good. The only reason I didn’t choose that one is because it looks too much like Mail, which feels like work. NetNewsWire straddles the line between web browsing and efficiency, plus it just looks better.

This isn’t all just unfocused rambling, for once: the topics actually have something to do with each other. When I was setting up the different news readers, I could check out all the content from websites without ever visiting the page itself; some of the sites I’d never even heard of before. It only took a few minutes to come up with a NetNewsWire theme that I liked better than any of the defaults, and better than most of the source pages (including my own).

Which raises the question: does all the attention to CSS and webpage design even matter all that much anymore? Artistically-challenged people like myself should be excited at a world where substance is more important than style, and poor graphic design skillz aren’t a barrier to entry. But it’s kind of disappointing, too — there’s always the potential for a full website to have more functionality than a simple newsfeed, but I like the idea of a site’s just being attractive enough that you’re encouraged to see it, just for looks.

iWeb is on the other end of the spectrum from RSS feeds. It’s all about presentation, and the back-end support is pretty weak. It’s not even featured enough for a blog as simple as this one. But it makes it relatively easy to make a page that’s pretty damn slick; I imagine that people more artistically inclined could do really nice stuff with it. I just wonder if it’s doomed to irrelevance. Do people even care how a website looks anymore? Livejournal is one of the most popular blogging engines out there, and I’ve never seen a livejournal entry that didn’t look like ass.

I never thought I’d be arguing for style over substance, but there it is: I want the intarweb to look better. And before anyone points out that charity begins at home: I’m working on it.

Face for Radio, Voice for Print

My copy of iLife ’06 was waiting for me when I got back from the southland, so I spent last night and most of today playing with it. Early impressions: GarageBand seems like it’d be cool if it’d work, but I get no sound and no preferences pane, so until that bug is fixed, I can’t use it. Everything else in the existing apps is pretty much a point upgrade; all the remarkable new features require a .Mac account.

I was most looking forward to iWeb, after gushing about it on SFist and on here, and I’m still evaluating it. My first impression is that it’s neat but limited. I’m using it to finally put together my pictures from Japan, even though I’ve mostly forgotten that trip, and anyone who would’ve been interested in seeing those pictures has already seen them in different formats and heard me repeat the same stories over the past 2 years. It’s more to see how flexible iWeb is, and to finally be able to check that off instead of having it feel like a big project that I’ve left unfinished.

Apple is really pushing podcasting and videocasting with its new stuff. So just for yuks, I tried playing around with iMovie and my iSight camera. Wow, that was a mistake. Technically, it worked fine, but there’s nothing that blows the self-image quite like seeing yourself how others see you.

Few people like hearing their own voice, because it never quite comes out as good as it sounds in your head. And I’m vain enough to have spent some time playing around with the iSight to try and get a good picture of myself, so I’ve got a pretty realistic idea of what I look like. But I always kind of imagined that in practice, the voice and the face kind of cancelled each other out and reached a reasonable compromise. What I saw in the video was more like a surprisingly fey version of Frankenstein’s monster.

I guess if it proves anything, it’s that Apple’s web-publishing and podcasting revolution isn’t going to change the world anymore than its desktop publishing revolution did. Some people just don’t have any business being in the broadcasting realm. Whether or not I have any business in the writing realm remains to be seen, but I’m sticking with it for now — better to have a lower-bandwidth assault on my self esteem.

So Much For My Pulitzer

MacBook ProYesterday’s post on SFist was about the MacWorld Expo. I only got to see it one day, because I’m in LA for business the rest of the week, but I think one day was plenty.

I actually got up early enough yesterday to make the morning keynote address, but I’d assumed that my exhibits-only pass wouldn’t give me access. I didn’t bother verifying that the thing was open to all attendees until yesterday morning around 8, and by that time, it was already too late. When I got to the Moscone Center, there were hundreds if not thousands of people lined up outside the building trying to get in for the keynote. (According to reports on the web, I didn’t miss much. It’s all on video from Apple’s site anyway, but I would’ve liked to see the crowd reaction to having Their Lord And Master in the same room as them).

So instead I had breakfast at Mel’s and then dicked around at the Metreon until the exhibit hall opened. I was very tempted to get Guitar Hero for the PS2, but some unseen calming force convinced me that it would be an even bigger waste of money than what I’m used to. Instead I just hung out at the Sony Style store and watched the video to La Tortura by Shakira and Alejandro Sanz that they had running on a constant loop. I watched it about five times and let me just say: daaaaaammmn. They’re both astoundingly hot. (And I like the song, too).

Anyway, the show was okay but kind of a disappointment. Not just because the new Apple stuff wasn’t all that spectacular, but because like I said in the article, I was hoping to see more of the Apple Thuggee Cult. The people were kind of clap-happy, but not to a particularly embarrassing degree; I’m guessing (and hoping) that most of that went on during Jobs’ presentation. The new iMac and not-Powerbook-anymore are impressive, sure, but there’s not the same kind of holy-shit-I-have-to-buy-that-right-now compulsion to them like there is with the new iPods.

But I admit I did buy the new iLife as soon as I got home. It was pretty standard stuff, there Apple goes again charging almost 100 bucks for a point upgrade, until they got to the iWeb demo. It does exactly the kind of stuff I’ve wished a million times over the year that somebody had already written. I’m sure that there are going to be all kinds of limitations with it that are only going to become apparent after I’ve played with it a while, but it made a great first impression.

Of course, GarageBand made a great first impression as well, and I used it for about a week and then never touched it again. But that was before I could make a podcast! Actually, I’ve got to say that the podcasting stuff in GB was the next most impressive part of the demo. I’m about as un-interested in podcasting as anybody (at least anybody self-absorbed enough to have an internet blog), but the support they have in there is pretty neat. For instance: if you set up a vocal track and a background music track, it automatically fades out the background music as soon as the voice starts, all NPR style.