31 January 2008

This right here: This is why I hate business

iPhone Sales Flop: “Sales of the iPhone hit 2.3 million, in line with most Wall Street estimates.” Selling 2.3 million units and being “in line” with the estimates means the headline is “Sales Flop”. (o_O)

30 January 2008

Visual voice-mail

Seriously, why wasn’t visual voice-mail widespread long before the iPhone? Apple may be the best company when it comes to bringing decent human-machine interaction to market. (They’ve got plenty of room for improvement, but they’re still the best.) But this “innovation” isn’t so out-of-the-box and innovative that it needed Apple to make it happen. Anyone can probably make a long list off the top of their heads of simple devices and ways they are a pain to use. Many of these things don’t take creativity or innovation to fix. They don’t require studying human-machine interaction. (Though there’d be additional value in that.) They require simply the willingness to make your product less painful for the user.

27 January 2008

Adventures with Gmail

I’ve decided to switch from my own e-mail server to Gmail. Ideally, the switch will be invisible. I think I’ve finally got it working. That means...
  • Getting mail sent to my fisher.cx address into my Gmail account.
  • Getting mail sent from my Gmail account to be marked as from my fisher.cx address.
The following may seem overly complex, but it’s really just solving those two issues. (The second one in three contexts.) I’m trying to capture enough detail here, however, to help me do it again if I need to. Step one was easy: Configure my account at e-rice to forward mail sent to my fisher.cx address to my gmail.com address instead of my dyndns.org address. The next part is harder, because there are (at least) three ways I may send mail... Telling the Gmail web interface to use the fisher.cx address for outgoing mail was easily done in Settings -> Accounts. It sends a confirmation e-mail to any address you add, but once the confirmation was done, it worked fine. (By the way, you can access the Gmail web interface securely by using “https” in the address instead of “http”. This will encrypt the contents of your e-mail as it travels over the Internet between your computer and Google’s servers.) Also, this is important because it will allow your other e-mail clients to use the address with the Gmail outgoing mail (SMTP) server. Also, I needed to use Settings -> Forwarding and POP/IMAP to enable IMAP for use with Apple Mail and my iPhone. Setting up Gmail with Apple Mail (2.1.2) was pretty straightforward. On the “Account Information” panel for the account in Mail’s Preferences, the “Email Address” field between “Description” and “Full Name” is the outgoing e-mail address. So, putting my fisher.cx address there means that mail sent through Apple Mail will have the fisher.cx address. The tricky bit with Apple Mail was telling it which Gmail folders to use for Drafts, Sent, Trash, and Junk. You have to select the subfolders below the “[Gmail]” folder and the go to the Mailbox menu -> Use this mailbox for. Setting up Gmail on the iPhone with the Gmail option worked fine, but it wouldn’t put my fisher.cx address on outgoing e-mails. Syncing the Gmail account from Apple Mail to the iPhone seemed to still set it up as a Gmail account on the iPhone. Turning syncing back off and setting up the Gmail account on the iPhone as Other/IMAP worked fine. Helpful links:

25 January 2008

Earbud heaven

The hands-free headsets for my last two phones were worthless. It’s so nice—with the iPhone earbuds—to finally have decent hands-free again. The silly bit is that, walking around with those white earbuds and 800-some songs in my pocket, I really do feel like one of those people from an iPod commercial. (O_O) an iPod commercial featuring the Jet song “Are you gonna be my girl” Seriously, though, for someone who plays guitar for worship, sings in the choir, and attempts to write and record music; I don’t spend near enough time listening to music. And when I do, it always gives me a real emotional boost.

iSkin revo

My beautiful and brilliant Apple Store Mac Specialist (soon to be Tier 1 AppleCare) wife, Andrea, helped me pick out an iPhone case, and I’m convinced I ended up with the best one for me: the iSkin revo. The silicone revo wraps around the whole iPhone except for the screen. There are holes for the ear piece and the light sensor above it, the dock connector and loudspeakers on the bottom, and the silence switch on the side. What I thought was a hole for the camera is actually covered by a protective bit of transparent plastic. A flap covers the ear-bud jack. The home, wake/sleep, and volume buttons are used simply by pressing on the revo itself. It has a clear plastic cover that snaps over the screen. When not covering the screen, you can store it by snapping it on the back. There’s also a separate silicone piece to push into the dock connector. I’m convinced I’m going to lose this, assuming I remember to put it on at all. The iPhone can’t fit in the dock with the revo on, but you can just plug the dock cable in directly. The revo makes me feel secure that my iPhone is fully protected in my pocket. It makes it feel secure in hand as well. (Without a case, it always feels like the iPhone is going to slip out of my hand.) The cover isn’t annoying and doesn’t get in the way. The revo comes with a stick-on, anti-glare, screen protector. I choose to go with a separate product (whose name escapes me at the moment) that Andrea recommended, and I’m very happy with it as well. (She also installed it for me and managed to get it perfectly aligned and bubble-free on the first try!) It might not be the perfect case for someone else, but I think it’s the perfect case for me.

Unfamiliar Beatles

It’s kind of odd to hear an unfamiliar Beatles song. The two that have come up on my iPhone’s shuffle recently were “I Me Mine” from Let It Be...Naked. and “Honey Pie” from The Beatles (the white album). I still clearly remember when, in the third grade, my friend Kreg Steppe brought a Beatles album to show-and-tell. I had no clue who they were, but he informed me that no-one could be his friend unless they were a fan of the Beatles. (^_^)

Call XOR Edge

Urg! The iPhone can’t access the Edge network while on a call. So, say you are on a phone call away from a Wi-Fi network, and you want to add a task to Toodledo. You can’t.

24 January 2008

iPhone: son of Palm

As a platform, the iPhone feels like a direct descendant of Palm.
  • Effectively instant-on. (Unless you really do a hard shutdown.)
  • No quitting applications.
  • No exposing of a file system to the user. Any concept of “saving” has to do with the user-interface rather than implementation details that should be hidden from the user.
  • Echewing the overlapping windows user-interface of desktop systems for more of a screen-oriented style. In fact, the iPhone may go farther in this area than Palm did. (The Palm OS had a Mac-ish menubar.)
These are all good things in my book.
Even my old Palm V, however, had better To Do List and Memo Pad applications. Which were virtually unchanged from my first Pilot, if I recall correctly. (Was it a 1000 or a 5000?) Both of which I used heavily. You can get by with web apps on the iPhone, but I notice a real difference between a local iPhone app & the extra latency of a web app. With the SDK coming out soon, though, that should be remedied.
Oh, and the Palm V also worked well syncing with multiple computers. I used to use it to keep my contacts on my home and work computers synced. I’ve heard that doesn’t work with the iPhone.

Whither cut, copy, & paste?

I found some good tips on less obvious iPhone features. I thought I’d e-mail them to myself and then copy them into an iPhone Note.

As far as I can tell, there’s no way to do that. I’d already been aware of the lack of traditional cut/copy/paste, but this was the first time I really found it getting in my way.

The tips were...

  • E-mail: Swipe you finger over the listing to quickly show a delete button.
  • Quick punctuation: Hold the punctuation button & slide to the key.
  • Settings → General → Keyboard → Enable Caps Lock. Then double-tap the shift key to lock it.
  • Tap “AT&T” at the top to jump to the top of a web page.
  • Use two fingers to scroll text areas, form fields, or scrollable iframes.
  • Touch & hold a link to see its destination. (To cancel, drag before lifting your finger.)
  • To mark an e-mail as unread, click “Details” and a “Mark as Unread” option will appear.
  • The timer (Home → Clock) can put the iPhone to sleep when time is up.
  • Earbud switch (in microphone) can be used to answer calls or pause/play music. Holding it for 2 seconds will dump a call to voice-mail. Double-clicking it will skip to the next song.

Hmm...and Safari (on the Mac or the iPhone) doesn’t seem to play well with Blogger.

The new Apple

The thing about my iPhone wish list is: I'm pretty confident that Apple will eventually address most of those issues. This is a big change from when I had "left" Apple for Microsoft Windows NT (4.0) and then Linux. Then, I thought Apple was on the wrong tracks, and I didn't even have confidence that they could deliver even the (wrong-track) things they were promising.

23 January 2008

iPhone wish list

  • Store HTML and PDF files (without jailbreaking or data URLs)
  • Support for BlueTooth keyboards
  • Support for iCal to do items
  • iChat
  • Support for WPA Enterprise authentication
  • Find in page in Safari
  • Open link in new page in Safari

21 January 2008


Metaplace - Metaplace Announcement: “Until now, virtual worlds have all worked like the closed online services from before the internet took off. They had custom clients talking to custom servers, and users couldn't do much of anything to change their experience.” Bzzt. Try looking up MUD or VRML for a couple of examples of how that’s wrong. Metaplace looks interesting, though.

On the cost of the iPod touch software update

About that $20 upgrade... | The Macalope: An Apple blog—CNET Blogs: “The short story for those who got to class late is Apple must charge for substantial enhancements to products that do not have revenue recognized on a subscription basis or it has to restate prior earnings. The iPod touch does not have revenue recognized on a subscription basis. The iPhone does. As does the Apple TV. Hence, they get free updates and the iPod touch does not.”

18 January 2008

Religious ≠ Republican

Let’s just be clear about this despite the picture that gets painted in the news: Being religious—allowing your faith to influence your vote—does not mean you vote Republican. (& let me be clear that I’m firmly a political independent. The presidential candidates that are looking best to me are Obama, Clinton, and Paul. The only Republican who grabs my attention is one of the longest of the long shots.)

Tips for interviewing for a C programming job...

Don’t come to an interview for a C programming job if you can’t do simple type analysis. Just stay home. If I ask, “Given void *p, what are the types of the expressions p, *p, and &p?”, you should know the answers. Furthermore, you should know that—in that context—return *p is a compiler error and why. You should not be confused or scared by char **x. You should understand why printf("%p\n%p\n", ((char *) p) + 1, ((char **) p) + 1) prints two different numbers.

12 January 2008

Medical myths

Medical myths
  • People should drink at least eight glasses of water a day
  • We use only 10% of our brains
  • Hair and fingernails continue to grow after death
  • Shaving hair causes it to grow back faster, darker, or coarser
  • Reading in dim light ruins your eyesight
  • Eating turkey makes people especially drowsy
  • Mobile phones create considerable electromagnetic interference in hospitals.

Scheme vs. Common Lisp

A Comparison Between Scheme and Common Lisp
Functions are really first class: Although Common Lisp is a functional language it makes programming functionally much harder than Scheme. For example to call a function that was returned as a result you have to use the funcall expression. Likewise special operations are required to access the function value of a variable. This seems unnecessary to me.
This is one of those things that has really bugged me whenever I’ve been tempted to use Common Lisp instead of Scheme.

The Next Big Language

Steve Yegge blogged about The Next Big Language. (Yeah, yeah. I’m behind on my Google Reader reading and on finishing draft blog posts.) I wonder if anyone has ever grafted C-ish syntax onto Common Lisp—along with some prettifying of it’s libraries. Kind of like Dylan, but with syntax closer to C than to ALGOL. I’m not sure it’s a great idea, but it seems like such a thing would attract some attention.


It has long seemed to me that C++ and Objective-C are very complimentary. It is interesting that they are actually very easy to combine. The result is known as “Objective-C++”. C++ is nice for “value” classes. i.e. Classes whose instances tend to the value of variables. Operator overloading is particularly nice for numeric classes or “smart” pointers. Exceptions are nice too. (Though I still wish C++ had “finally”. Yeah, I know the usual C++ alternative, but that doesn’t mean it can’t be convenient.) Objective-C is nice for “reference” classes. i.e. Classes whose instances tend to be referenced by pointer or reference variables. Add automatic garbage collection for the Objective-C objects, and you’ve got a really nice set of language features. Last I looked, just about all those pieces where there, but getting them to work together on whatever platform you’re on could be difficult. These days, though, I’m preferring vanilla C, Scheme, or even EcmaScript over C++ or Objective-C.

Innovative Designs and Devices

From Innovative Designs and Devices:
Steve Jobs stated once that the “design is not just what it looks like and feels like. Design is how it works.” While this statement has proven to be crucial over thousands of years, one shouldn’t misinterpret it by emphasizing the functionality despite the design. When it comes to product design, the significance of aesthetics of a given device, the way its design looks and feels, determines the choice of the customer once the functionalities of multiple devices are more or less similar. If supported by sound user interface and a well-tested, clean implementation, innovative design solutions can drastically enhance the user experience.
(I not sure if the product’s they featured were really the best examples, but I really liked that bit from the introduction.) Design isn’t just the shape of the alarm clock. It’s whether you can figure out how to set the alarm without having to read the manual and then hold one button down while pressing another button 3,600 times in a row only to go just a bit too far and then have to cycle all the way around. (I’m at a complete loss for why you can’t buy an alarm clock with a simple ten-key pad. Or, for that matter, why there aren’t standards widely implemented for syncing the clocks in all the consumer electronics in our homes.) Design without functionality is worthless. Well, maybe not “worthless”, but worth very little. A vase that’s all design and no functionality can still sell, though probably not as well as the most utilitarian vase. A computer that is all design and no functionality won’t sell. Functionality without design means you’re leaving yourself open to be killed by a competitor who simply copies your functionality and adds design. There's a point at which the feature set for a type of product stabilizes and it takes rare insight to improve it. At that point, implementing that feature set is usually pretty straightforward as well. So, design can give you a competitive advantage.

David Lynch on watching movies on a phone

David Lynch: “Don’t watch movies on a f*#%ing phone!” I thought this was pretty funny. Of course, it’s easy to miss the bigger picture with these kinds of technologies. The marketers trying to sell them can even be the worst about that. I’ve been laughing for a while now at the commercials trying to sell me mobile phones with video. Sure, a few people will sometimes watch a movie for the first and only time on their phone. Probably not any great artistic opus, but perhaps. The world is different today, however. A movie isn’t only a one-time, start-to-finish, at-the-theater, full-catharsis experience. Hasn’t been in a long time. The role of the viewer in co-creating and re-creating the experience is growing. And that’s just talking about bringing together the old medium and the new technology. Perhaps David Lynch should be asking himself, “How can I leverage this new technology to express myself—to communicate with my audience—in a way that wasn't possible before?”

11 January 2008

Eldritch Role-Playing System

Goodman Games has a new game in the works, the Eldritch Role-Playing System. It seems to be a fairly traditional system that may have some interesting twists. Sticking with fairly traditional rules is something I count as a good thing. Not that I don’t enjoy a non-traditional game, but there’s plenty of room for games that build directly on tradition. Rearranging those traditional elements in different ways. Trying for innovation for the sake of innovation usually doesn’t produce satisfactory results. While reading about it, I came across this comment by one of its creators, Dan Cross:
A die-roll defense system can go on for a long time, indeed. In my experience combat systems that rely on opposed rolls do run the risk of becoming endless dice rolling-fests, especially with two characters of equal power.
(Let me say up front that the following isn’t meant as a criticism of Dan or his game. I’ve made similar comments myself. I’m just commenting on the topic.) Which, of course, is what you would expect. With two evenly matched opponents, there should be three possible outcomes...
  • A draw, either by agreement or because exhaustion or some other factor ends the conflict
  • One of the opponent’s just gets lucky
  • One of the opponent’s finds a tactic to shift the odds in his favor
The last is the most desirable, in my opinion. And when I say “tactics”, I don’t mean finding a loophole in the rules. I don’t mean leveraging better knowledge of the rules. I mean using terrain, maneuvering, out-flanking, etc. Stuff that the rules generally don’t need to explicitly address.

08 January 2008

Domain renewed...it would seem

Well, the bill’s been paid. The web site is working again. The e-mail addresses never stopped working. The registrar’s site still isn’t showing the new expiry date yet, but other than that, everything seems back to normal.

05 January 2008

New year resolutions

I should make more specific, measurable goals from these...
  • Not to raise my voice as much to my wife and kids
  • To learn how to better make and be friends
  • To be more courageous

Irony, thy name is...

VeggieTales“fruit” snacks. There’s something very strange about eating sugary, gelatinous snacks shaped like vegetables.

01 January 2008

Domain expired!

Well, it seems the renewal notices got lost in the æther and “fisher.cx” expired unexpectantly. Until I get it worked out, “web.fisher.cx” and our “fisher.cx” e-mail addresses probably won’t work. Our Yahoo addresses (bibliomancer and andi_fish) should still work, as well as Andrea’s dot-Mac (andifish) address.