Siri iPhone App – First Look

Siri is a new iPhone app that takes spoken input like “coffee places near here” and shows you a list of coffee places near your location with distance, directions, etc.  You can also enter a query by tapping on a type of location you’re looking for, but that’s boring.  I haven’t tried some of the more ambitious queries from the company’s demo video, stuff like “get me a table for two at a romantic restaurant near work at 7pm next Thursday”.  For the simple queries I’ve tried, it works well and is surprisingly fast, considering it has to recognize speech (done by uploading the recorded text to a server) before it can process the query.  The technology is interesting, using context awareness and service delegation.  See Siri’s About Technology page for more info.

For the “coffee places near here” example, I have only a small criticism: Culligan Water is not a coffee place, and my favorite, the Tattered Cover bookstore’s cafe, which is about a mile away, isn’t on the list.  Not a big deal, I’m sure it’ll improve by improving query formulation to map “coffee places” to additional terms, or delegating to services with better data.


Book Review: What Would Google Do?

I expect one of two things from a business book: an eye-opening new perspective that I would never have stumbled on myself, or a concise summary of insights that might occur to me if I had more free time to ruminate on the subject and lots of yellow pads and pens with me at all times.  Most business books disappoint in both categories and amount to 200-400 pages of fluff that might have been worth a read as a 2000-word magazine article when there’s nothing good on TV.

Jeff Jarvis’ What Would Google Do? is the first business book I’ve read in a long time that’s not actually a slog to read.  It doesn’t deliver any stunning new perspectives, but it’s a worthwhile and readable summary of insights and lessons gleaned from observing not only Google, but also Facebook, Flickr and other successes of the Web era.  Jarvis presents the lessons in a breezy narrative style and doesn’t dwell on them unnecessarily, which is a nice change from most biz books that put each simple concept through a taffy machine to stretch it to fifty mind-numbing pages.  There are lessons about platforms, openness, speed, elegant organization and their implications for the Web and other industries.

I won’t bore my huge and dedicated audience by rehashing a lot of stuff from the book.  Instead, I’ll humbly suggest that if you’re shopping for a business book that won’t put you into a boredom coma on your next flight, get WWGD.

The book: What Would Google Do? by Jeff Jarvis.  (Amazon.  A Kindle edition is available)

Girls on the Run

We went to an auction event for Girls on the Run Denver last night.  They do great work, check them out.  They’ve grown from 90 girls in the program in 2005 to over 900 girls this year.

Girls on the Run® (GOTR) of the Rockies uses the power of running to change the way girls see themselves and their opportunities! It is an innovative health education and wellness program that uniquely combines training for a 3.1 mile run/walk event with life-changing, self esteem enhancing lessons that encourage healthy habits and an active lifestyle in 8-13 year old girls.

Live music was by Boulder-based gypsy jazz band Sacrebleu!.

We won 3 bottles (and a tour) of Infinite Monkey Theorem wine.  Haven’t tasted it yet, but with a name like that …

Goodbye LaCie, Hello WD

I’ve been using LaCie drives for years, but after no fewer than 3 cases of burnt-out power supplies in the past couple of years, I’m trying something new.  LaCie has always replaced the power supply under warranty, but they shouldn’t keep burning out, especially since I have them plugged into a line conditioner.  So I bought a Western Digital MyBook Studio Edition II for Mac, the 4TB model.  It claims to be green’ish (by using less power, generating less heat etc.).  It’s also quieter than my LaCie.  I resent a little that I have to install software to modify the RAID configuration (no hardware switch) of the MyBook, but in return the status bar item tells me temperature and RAID status, see screenshot.  So far, so good, hope this one lasts a while.  WD also includes several cables (FW800-FW800, FW800-FW400 and USB).

WD Drive Manager

The Dream: Physical books printed on the spot (and recycled on the spot)

In Twitter this morning, @tatteredcover is asking how many people are moving from paper books to electronic ones.  I own a Kindle, but about 60% of my book buying is still paper.  I love the bookstore experience, and there’s nothing like thumbing through a paper book.  But my house is overflowing with the damn things.

I’ve been thinking for years that the ideal experience would be to have a book printing and recycling machine (the BookBox).  This box would be able to print and bind any book on the spot.  It would also have a slot for inserting used books to be recycled on the spot (composted, or whatever, with zero waste).  Plus maybe a USB port so you could hook up your favorite electronic reader and download a bunch of books before a trip.

In a world where the BookBox exists, there would still be bookstores: cafe + inventory for browsing + BookBox.  You can browse books while sipping an Oolong tea, then place an order to have a book printed on BookBox to take home with you.

Great Internet Mersenne Prime Search

Well, it doesn’t run in the browser, but it keeps itself to a single directory and runs from the command line, which is the next best thing.  The GIMPS project has been around since 1996 and harnesses the “power of 1000’s of small computers like yours” to discover new Mersenne primes, which are primes of the form 2p-1.  46 Mersenne primes have been found, the largest having 12,978,189 digits.

The project was featured on NPR recently.  There are prizes to win for discovering the next prime (give it a few hundred Ghz-days and I might pay for the Mac Pro with this), but best of all, it doesn’t do creepy stuff like create groups and users on your system.  You just start it up the executable from a command line when you’re in the mood to hunt some primes and heat up the office.  Finally something to keep the Mac Pro’s CPUs busy:

mprime exercising mac pro

Casual Grid Computing in the Browser?

Let’s say you just got a brand spanking new 8-core computer.  Let’s also say you can’t run Mathematica because Wolfram’s registration process sucks so much (seriously, it’s the worst I’ve ever seen, and I always end up calling them on the PHONE to register).  Now you’re thinking what to do with all those cycles that could be crunching numbers and doing some good, but they’re just sitting there re-indexing Spotlight or something.  You think about downloading BOINC, which is a generic grid computing client that a bunch of different projects are using.  The thing is, you’re a bit obsessive about unnecessary cruft on your computer and BOINC wants to create hidden users and stuff:

Starting with version 5.5.4 of the BOINC Manager for the Macintosh, the BOINC installer creates 2 new “hidden” users boinc_master and boinc_project, and two new “hidden” groups, also named boinc_master and boinc_project (unless they were created by a previous installation of BOINC.)

Yuck.  You’re just not that committed to the project, but you do have the cycles to contribute.  Isn’t there some way to more casually participate in projects?  When I leave for lunch or overnight, why can’t I pull up a page that contains a Flash or Java applet that does some crunching, displays the nice graphics, uploads results and doesn’t install stuff on my machine?  Sure, it’s not as efficient as a native binary, and it doesn’t ramp up when my computer’s workload is low or when the screen saver comes on, but it’s much less intrusive.  It’s also more intentional.

UPDATE: There’s Legion, a Silverlight-based grid computing framework, but I’m not finding any projects that use it.


Sphere, the related content company I co-founded three years ago, has been acquired by AOL.

I think I logged about 185 hours of sleep and 3 blog posts on remylabs over the last three years, but building Sphere has been really fun, thanks to the best team in the business. We have a small but incredibly great team at Sphere (a photo of our handsome crew is here), and I’d like to congratulate and thank each of them for being a part of this adventure:

Our word-class business team: Jeff Yolen and Josh Guttman.

Our stellar technology team: Alex Bendig, Andy Cabell, Kevin Cowan, Adam Embick, Mike Garfias, Michael Harzheim, Sven Henderson, Troy Vitullo and Jeremy Rice.

And of course my co-founders, Steve Nieker and Tony Conrad, as well as a superb group of investors and advisors including our 4th co-founder and advisor Toni Schneider.

Not strictly part of our team, but not far from it: Some of the best partners and customers (early adopters and others) that a startup can hope for.

I’m very excited to join AOL. Sphere’s content discovery products are a great fit for AOL’s sites and platforms, and I look forward to working with the great people there. We’ve worked with several groups within AOL over the last couple of years, so I know first-hand that the place is chock-full of smart people.

Alloy Modeling Language

I stumbled across this profoundly cool tool this week. From the Alloy homepage:

Alloy [is] a simple structural modeling language based on first-order logic. The [Alloy Analyzer] can generate instances of invariants, simulate the execution of operations (even those defined implicitly), and check user-specified properties of a model. Alloy and its analyzer have been used primarily to explore abstract software designs. Its use in analyzing code for conformance to a specification and as an automatic test case generator are being investigated in ongoing research projects.

Or, put another way, you can use Alloy to model a software system, complete with facts and assertions about the model, and have the Alloy Analyzer check correctness of the model. It can discover exception cases allowed by your model that violate your assertions. Now you can do agile software design without diving into code right away (even the most elegant code obscures your model’s abstractions with implementation details, and makes it harder to revise your design), and you can do real modeling without generating stacks of UML diagrams. The model is expressed in the Alloy language, and diagrams are generated dynamically by the Analyzer. Here’s an example for Daniel Jackson’s book on Alloy. This system models a set of traffic lights at a junction:

module chapter4/lights —– The model from page 127

abstract sig Color {}

one sig Red, Yellow, Green extends Color {}

fun colorSequence: Color -> Color {
    Color Green + Green->Yellow + Yellow->Red

sig Light {}
sig LightState {color: Light -> one Color}
sig Junction {lights: set Light}

fun redLights [s: LightState]: set Light { s.color.Red }

pred mostlyRed [s: LightState, j: Junction] {
    lone j.lights – redLights[s]

pred trans [s, s’: LightState, j: Junction] {
    lone x: j.lights | s.color[x] != s’.color[x]
    all x: j.lights |
        let step = s.color[x] -> s’.color[x] {
            step in colorSequence
            step in Red->(Color-Red) => j.lights in redLights[s]

assert Safe {
all s, s’: LightState, j: Junction |
    mostlyRed [s, j] and trans [s, s’, j] => mostlyRed [s’, j]

check Safe for 4 but 1 Junction

The last line tells the Alloy Analyzer to run some test cases with 4 lights and 1 junction and check that the junction is safe (satisfies the predicate mostlyRed at all times and for all transitions. It comes back with:

“No counterexample found” means the model makes safe junctions. 27ms means it’s freakin’ fast. The alloy Analyzer is not an exhaustive model checker, but rather uses a SAT solver, which gives Alloy an efficient way to check huge spaces. Checking a few billion cases in the modeling phase is a lot cheaper, and gives much better coverage with less effort, than running a few hundred unit tests when you’re already writing code.

Here is the diagram generated by Alloy for the small model above:

One slightly annoying thing is that the book uses Alloy 3 syntax, which has been slightly changed for Alloy 4, the current version, but the Alloy team has published a thorough list of changes (“how to update the book for Alloy 4”) which lists all changes and the page numbers on which they occur.

Alloy is free and there are binaries available for OS X, Windows and Linux.

Powered by ScribeFire.

Umbria – Market Intelligence from Blogs

FORTUNE has an article (“Blogging for Dollars”) that covers Umbria, a company based here in Colorado that tracks what bloggers are saying about its clients (aka mining blogs for market intelligence).

Economically, this market is finally starting to take shape — the ideas and attempts have been out there for a few years, but consumer companies have been on the fence about whether the blogosphere is worth listening in on. Until recently, that is. Umbria claims they’ll have $2M revenue this year and will be profitable next year, but the overall market for this kind of service is still only $20M according to the article (Intelliseek has about 1/3rd of that market).

Technologically, Umbria also sounds pretty interesting. They claim to have a competitive edge in automating most of the process:

Umbria’s solution is entirely software-based. [Umbria’s] competitors also meet with clients to interpret the data and suggest strategic responses. “Ultimately we rely on both technology and humans for analysis,” says Max Kalehoff, marketing director for BuzzMetrics [another Umbria competitor]. “Umbria takes an extremely automated approach.”

Umbria’s technology sounds like a pipeline of parsers that generates features that in turn drive product and sentiment classifiers (and those drive reporting):

Every few hours Umbria sends an application called a spider out over the web to scour the blogosphere for postings about the firm’s clients, most of which are big consumer companies, such as Electronic Arts, SAP, and Sprint. By analyzing keywords in blogs, Umbria can classify each citation thematically. In the case of Sprint, for example, Umbria’s software can tell whether a blogger is talking about customer service, the company’s advertisements, or a particular calling plan.

Another big challenge is to decipher what’s on a blogger’s mind. To figure out whether an opinion is strong or tepid, for example, it helps to know that “awesome” is a stronger endorsement than “pretty cool,” and that “shoddy” is less damning than “abominable.” Umbria has several employees with Ph.D.s in linguistics and artificial intelligence who are forever tweaking the software to make it better at categorizing opinions.

I can’t help thinking that more manual tweaking goes into each client’s setup than this description lets on, but still, I’m glad they’re seeing success, and I bet those linguists are having fun with the blogosphere, even if they have to do a bit of slumming to come up with their rules:

The software can also estimate the author’s age and gender. Elongated spellings (“soooooooo”), multiple exclamation marks (!!!), and acronyms such as POS (“parent over shoulder”) suggest a teenage female member of Generation Y (born after 1979). The blogger is probably a teenage boy if a posting is rife with hip-hop terminology such as “aight” (translation: “all right”) and “true dat” (“I agree!”).

There you have it, you don’t even have to know the language to have your voice heard by the people who want to sell you more stuff. Now that’s power. On one side of that function, at least.