Blog Tag Cloud

 

Wordle is a site on which you can make beautiful tag clouds to show the words used most often in any text snippet. I dumped in all the text of my entire blog (minus the comments) and I got this tag cloud:

Apparently I talk a lot about time, people, and Steph.

 

How and where not to do The Fishstick.

I assume most folks who aren’t huge Mac or Twitter nerds aren’t familiar with Lonelysandwich. Nonetheless, enjoy.

Watch How and where not to do The Fishstick.

Adium, Facebook Chat, and a Mac OS X Mystery

Adium (my favorite chat client) just released the Adium 1.3 Beta. As implied by “beta”, it’s not quite ready for prime time yet, but I decided to give it a shot anyhow.

I noticed they’d added Facebook chat to the client, added my Facebook account, and suddenly saw all my Facebook friends who were either actively online or idling on Facebook. It was a surprising experience for me because most of the folks in the list aren’t the type who would use a regular chat client, but there they were on Facebook, and I could chat with them. Chat, from my perspective, is something that usually separates the true tech user from the casual tech user. Casual tech users either don’t understand chat or just don’t want it. Chat requires a person to hang out near the computer, and the casual user has no desire to do so.

Still, I gave chat a try with Steph and with Eddie because they happened to be on at the time. Something strange happened during my chat with Steph that I think is very worth mentioning. When you receive a message, Facebook makes a soft “pop” sound. Steph had never heard this before, and said, “Do you hear that popping sound? What is that?” and then after the second or third message, “It’s my computer! Why is it doing that?” Facebook was open in a tab in Safari, but in the background. Nothing odd so far.

After I guided her to Safari and to Facebook, she chatted for a second and then closed the tab. Here’s where things get strange, especially if you’re a Computer Science person. She closed the tab, but she still appeared to be online in Adium, so I sent a message. A “pop” came from her computer. “Stop it!” she said.

She closed Safari. I sent another message. Pop.

She closed all other applications except the Finder. I sent another message. Pop.

Even if you’re not a geek, you probably know that should not be happening. Facebook should not be able, through Safari or any browser, to maintain some kind of persistent connection with your computer after the processes rendering and interacting with their website have been quit. I’m not saying Facebook is doing something malicious. It seems likely to me there is some strange bug in Safari that allows this live connection to linger after Safari has been quit. (Perhaps one of Safari’s frameworks is still loaded and active in memory since it is shared across apps, and it is talking to the networking layer? I don’t know. I’m mostly just taking stabs in the dark.)

Still, the bug isn’t easy to recreate. The only way we were able to stop the popping was to have Steph log out of her user session entirely. We tried to reproduce the issue without success.

Holding Out for Keynote Video

It’s keynote day! Today, Steve Jobs will take the stage at WWDC and announce some really exciting and interesting things. On a personal note, one interesting thing about today’s keynote will be that I won’t be able to see it live. I’ve seen just about every keynote for the last six years live, and a few in person. I hold to the belief that it’s more fun to watch via satellite than in person.

But even more strongly, I hold to the view that it’s far more interesting and important to actually view the video of the entire presentation than to simply read about it in text on a third-party website. Based on all the keynotes I’ve seen and all the third-party coverage after the fact, I’ve found that no matter how many news sites I read and how many truncated video clips I watch, there’s always something really interesting and frankly, really crucial that is missing from their reports. It’s never the same type of thing, but it always happens. People get facts wrong. People forget certain sections of an announcement. People skip a seemingly-unimportant aside made by Steve that actually says a lot more than it seems on first glance.

For those reasons I’m going off Twitter and I’m going off Google Reader until I can get some keynote video. I don’t want to hear other people’s interpretations of a keynote before I see it for myself. If you’ve never watched a full keynote, give it a shot! This might be a good one to try, even if it’s geekier than Macworld in January. (The WWDC audience is full of developers.)

If you’d like to see keynote video, go subscribe to Apple’s Keynote Podcast. That’s what I’ll be waiting to see. I really hope they post the video this afternoon or tonight rather than getting around to it on Wednesday.

Big Check

OK, I’ve got a bit here. I think this would really work in the context of a larger story. It doesn’t work as well as a standalone joke. How well this worked would be heavily dependent on the actors playing the parts.

A man walks into a bank with one of those giant sweepstakes checks made out to him, having just won a big prize.

Man: “Hey, I’d like to deposit this?”

Teller: [Looks the check over.] Ah, you still need to endorse this here, sir. [Teller pulls out giant three-foot pen.]

[Man awkwardly signs giant check. Teller puts giant check into giant check scanner behind counter, then hands Man a regular receipt for the transaction.]

Man: [Smiles] Aren’t you going to give me a giant receipt?

Teller: [Slightly put-out] Don’t be silly.

So, who could play those two parts best? We need someone slightly snooty as the teller, and a straight man for the customer.

I also have a feeling that this is just a variation on a classic that already exists.

Five Years of Blogging

This blog’s fifth anniversary recently passed. I posted my first entry here on May 28th, 2003, and it’s been an interesting ride ever since. (When I started this blog, I had no intention of ever becoming a web developer. Then I fell in love with web standards and web authoring, and now it’s my profession.)

People routinely ask me, “Why do you blog?” Sometimes they get really honest and come right out and say, “Aren’t you worried about privacy?” Privacy is definitely something I think about and feel strongly about. I’ve been reading (and listening) to Cory Doctorow’s new book Little Brother lately, and it has certainly brought privacy issues to the forefront of my mind. But at least with this blog, I get to choose what’s private and what’s not. That’s not a lack of privacy, that’s perfect privacy: controlled by the individual about whom the information is kept.

There are several reasons I blog. Lemme ’splain it.

  • Recording personal history. This is probably the biggest reason of them all. This blog is a digital heirloom that I will pass on to my children and my children’s children, on and on forever. It won’t take much room to store: the contents of the entire database with all my entries and all the comments from you folks is currently only 3.1 MB in size. If you add all the photos, movies, and other random bits of junk, it inflates to 350 MB. However, in the year 2070, that’ll be nothing. (You can already fit 4 GB of data under your tongue.) Yes, I really do expect these writings to last that long and far longer. I wish I had journals and writings (or English translations of them since I don’t speak German or Swedish) from my ancestors in 1900 or even 1800. I might not read every word they said, but I would be fascinated to hear the kinds of things they cared about. I want to know what they believed, what motivated them, and what they learned. If those who forget history are doomed to repeat it, why would I want to allow my ancestors to be in that pointlessly-repeating crowd? The fact that I’m recording this also inspires me to not live a forgettable life. We’re surrounded by a great cloud of witnesses, many of whom we’ll never meet.
  • Communicating with the world. The “personal history” reason above could be served just as well with me typing into text files on my hard drive and saving them online somewhere. So why make it an easily-accessible blog with a comments system and a Google sitemap? I do this because I love conversing with you all. I’ve been criticized in the past for being “in the comments” too much. At the time of this writing, this blog has had 2,646 comments from readers, and judging by a quick-and-dirty MySQL query, about 22% of them are written by me. I’m not just here taking your comments in silently. I’m responding and conversing. You’ve all taught me a lot through our conversations, and now, you’re all a part of my digital heirloom too. Thank you.
  • I ♥ the Intertubes. It’s true. I absolutely love authoring on an instantaneous worldwide platform. I love it so much I left my previous line of work (project management with a little web authoring when time allowed) and decided to make websites full-time. I don’t write these entries in WordPress’s “Visual Editor” thingy. I open up an XHTML document in TextMate. I like it that way. I don’t know why. Don’t try to sell me on MarsEdit. It’s cool, but I don’t want it. I’m not trying to be efficient, I’m trying to enjoy myself, and XHTML is fun, even if it’s simple. Aside from loving the code, I love having a distribution platform on which I can write creatively, release whatever kind of art or thoughts I want, and know that my good friends will see it. It encourages me to create.

Thanks for taking this ride with me. Here’s to five more years.

The iPhone, Location, and Product Pricing

A few years ago I had an idea for a website that would help its users to see which stores had a particular item in stock. I was tired of phone shopping for popular items, and I was even more tired of driving to a store only to find that they don’t have the one thing I’m looking for. It seemed simple: I want Item X for a reasonable price. I am located at these GPS coordinates. List the retailers that have Item X in order of ascending distance from me. However, it was pointed out that this idea would require the cooperation of each store’s inventory system, and it was likely that I wouldn’t ever get such deep cooperation from the biggest, most popular stores. So I ditched the idea.

When the software for what Apple calls iPhone 2.0 was introduced on March 6th, Apple spoke of a framework they were adding to the device called Core Location (optionally see the Core Location documentation on Apple’s Developer Center, registration required). The framework, according to Apple’s documentation, “lets you determine the current latitude and longitude of a device.” That data can then be used in applications on that device. (It is my strong opinion that locational awareness will be the defining feature of killer iPhone applications, just as connectedness and participation were the defining features of all killer desktop computer applications of the last 15 years, just as cheap desktop publishing was the defining feature of the 15 years of computing before that.)

Let me tell you about the iPhone application idea I had in the evening on March 6th. I’ve kept it under wraps until now, but I know now it’s pointless to stay silent for personal reasons I’ll go into later.

Let’s say you’re at the store. You’re going to buy a product. But you want to know if there is a better deal on that product at another nearby store, or somewhere else in town. So you get your iPhone out, open this application, and point the camera at the product’s barcode. It scans the barcode, talks to “the cloud” to see what the product is, and talks to Core Location to figure out approximately where the user is currently standing. If there is more than one store in the reasonable proximity of the user, it asks them which store in the list they are at, and asks them to either enter or confirm the price (if someone else has already entered it) of that particular product at that particular store. The user can then see other stores in the area (perhaps within a preferentially-set distance radius) and the prices they are charging for that product, with a quick click over to Google Maps to call the store and check to see if it’s still in stock, and to get driving directions to the store. The application would pay for itself after a few smart uses, and in this economy, I’d rather be selling aspirin software than vitamin software. This application is definitely an aspirin.

I think stores would start to scan their own stuff, or talk with the owner of the aforementioned “cloud” database for a way to quickly upload their entire inventory with up-to-date prices every so many hours. Users would initially power the system, and eventually help to fill in the gaps. (Don’t tell me relying on users to provide useful information doesn’t work. Look at Wikipedia.) The application has a great sense of participation and anti-”The Man” that I think people would really get into. Another boon: the search and matching algorithms could be updated to match products that are very similar to the one scanned (say, if they scan something purely functional and commoditized like bread or windshield cleanser) so that users wouldn’t have to make extra effort to search outside the brand they’re currently scanning. Perhaps it would eventually expand to items that were difficult to scan, like gasoline prices, and encompass everything a person would buy.

In late March I informally pitched this idea to Wil Shipley for reasons that will be obvious to users of Delicious Library. He liked the idea, but passed on the offer to take almost all of the profits from it if he developed it. I don’t blame him; ideas these days are a dime a dozen, but makers are hard to find. Moreover, talented makers are extremely rare and valuable. That’s why after thinking it through, I decided not to try to pitch the idea to more people on the hopes that I could make a profit from it without doing any work. That’s cheap. I know I can’t create this alone because I’m a “web guy” and I just don’t have the 40+ hours per week of free time this would require of me if the application was going to come out in 2008. I’d have APIs to learn. My Obj-C is extremely rusty. I’ve never really used Xcode seriously. All these things start to sound like cheap excuses though, don’t they? Maybe that’s what they are. I can’t tell.

So, if I want to use this application badly enough, I’ll round up a group of people and we’ll make it happen. Maybe it’ll be open-source and free. I don’t know how one would go about wisely leading such an effort, so if anyone would like to lend me a hand or give me advice, I’m wide open and willing to listen. All that I ask is that I be able to steer this idea from a very high level, and have a lot of input on the user interface and feature list. I think that’s where I could add the most value. I feel like I’ve already used this application I’ve thought about it so much. The only thing I don’t have is a name. I’ve heard many; they all suck. (Sorry, peeps who made suggestions.) Price Finder is too obvious (and probably too taken), and please kill me if I call it “Scannr.”

On a personal note, one of my defining struggles in life over the last few years has been to become the kind of person who would rather make than consume. To be a creator of culture rather than a consumer of it. To be a shaper of the world rather than allowing the world to shape me. I’m far from that goal, but I intend to continue pursuing it. Maybe by the time I’m 50 or 60 I’ll be there. That’s plenty of time to learn about more than just web development.