Thursday, December 31, 2009

KEO Time Capsule Entry

The KEO satellite project is launching a time capsule into space:
In 2009/2010, all of this [user-submitted] material will be transferred on board the satellite KEO and launched. KEO should return to Earth after circling our planet for several thousands of years, providing the world of tomorrow with an authentic image of what human beings are like today.
Today is the last day for anyone to submit text that will be stored in the digital time capsule. Here is my submission:
On December 31, 2009, the following obviously correct ideas are considered to be on the cutting edge of philosophy:

  • There is no such thing as an afterlife.

  • Many Worlds is the most clear-headed and productive way to interpret quantum mechanics.

  • Reductionism: The belief that the universe isn't fundamentally made out of love or consciousness or life or cells, but rather, that it has some fixed mathematical structure which admits to being modeled using various layers of abstraction on which those concepts can be defined.

  • Nothing -- not the big bang, not consciousness, not life -- is an inherently mysterious phenomenon. The universe is all representable mathematical relationships, and mystery is just a feeling in the mind of an observer.

  • The structure of consciousness and intelligence is cleanly separated from the quantum level by a level of abstraction. The only relevant details about low-level physics that those phenomena exploit are the implementation details of some Turing-equivalent model of computation.

Wednesday, December 16, 2009

Programmer Interview Question

I have a favorite interview question I always ask programmers on a written test or in person (not so much on the phone). I just posted it on the Quixey blog:
Write a function findInSorted(arr, x). It’s supposed to return the smallest index of a value x in an array arr which, as a precondition, must be sorted from least to greatest. Or, if arr doesn’t contain an element equal to x, the function returns -1.
The great thing is, everyone understands it, and everyone thinks they can easily do it. But the answers I get are always non-working, off-by-1, sub-optimal in asymptotic runtime, inelegant, and/or not so good with edge cases. And that is why we're using it to screen programmer applicants at Quixey.

Monday, December 07, 2009

Quixey

Have you noticed the snowballing apps trend? There are hundreds of thousands of apps out there. Desktop software, web apps, apps on social networks, apps on mobile phones, apps on CRMs, Firefox extensions, plugins, desktop widgets, and next year even apps for your car. Each month, the pace accelerates, with more and more platforms and apps getting released.

Yet, when you get into a situation where one of these apps can actually do something helpful for you, suddenly there's a huge market failure. If you need to...

  • Track invoices for a small dental clinic
  • See what iPhone apps will be cool to have on your trip to France
  • Get something to help you to be a better musician
  • Get the best software for helping your kids practice reading
...then, realistically, you're probably not going to do anything. It's just too much of a pain to search Google and wade through various blogs, spam sites, and web pages offering apps that you aren't sure can meet your needs. Think about all the hassles:

  • You can't describe what you want. Go to the iTunes store and search for "be a better musician" or "musicianship". No results! You will have to rack your brain for the right keywords to describe specific app features: "ear training", "scale practice", etc. Shouldn't you be able to just type in what you want?
  • You can't describe your circumstances. Go to Google and search for "apps for dentists" or "going to Paris apps". The results are a mess. If you want to browse the vast multitude of apps, shouldn't you get to see what apps are useful for your profession, your destination... your circumstances?
  • You can't evaluate the best match for your needs. Go to Google and search for "software to teach kids reading". If you're lucky, you'll find a nice listing like "best educational software", and download their recommendations. But why settle for "best educational software" when you want to know what's best for teaching kids to read? Shouldn't you get to see a list of educational software sorted differently depending on whether you search for "teach kids reading" or "teach kids math"?
So: I just left my job at Slide, moved from San Francisco to Sunnyvale, and for the last month I've been working full-time as a co-founder at a small startup called Quixey. Quixey's mission is to enable you to discover apps. We plan to launch an early beta in January. Until then, you can follow the Quixey blog.