Here's an article on software developed by Ray Kurzweil for the mobile phone which snaps a picture of text, deciphers the text, and produces audible speech:

On how far his technology has come:

Kurzweil released his first reading machine, developed in partnership with the National Federation for the Blind, in 1976; on the day it was unveiled, TV anchor Walter Cronkite used its speech synthesizer as he signed off the air. The device could scan printed pages, decipher the letters, and speak the words aloud. It was about the size of a washing machine and cost $50,000. Stevie Wonder bought the first production model, Kurzweil recalls.

Posted
Authorddini
CategoriesUncategorized

A collaboration between Univ. of Washington, Cornell, and Microsoft has created a system that searches public photos of cities, and uses that data to extract a 3d model of that city.

Our experimental results demonstrate that it is now possible to reconstruct cities consisting of 150K images in less than a day on a cluster with 500 compute cores

Link to paper here.

Link to fancy videos here.

Posted
Authorddini
CategoriesUncategorized

...and report form Microsoft's last MIX conference

User experience (UX) is more than just visual design, information architecture, interaction design (what most experience design folks used to call it), UI development. There's a fifth role: User Research (it puts the U in UX!)

Check it here.

From Jason

Posted
Authorddini
CategoriesUncategorized

StartupSchool 2009 event starts in about an hour right here: Speaker list:

  • Chris Anderson
  • Paul Buchheit
  • Jason Fried
  • Paul Graham
  • Tony Hsieh
  • Mitchell Kapor
  • Greg McAdoo
  • Biz Stone
  • Mark Pincus
  • Evan Williams
  • Mark Zuckerberg
Posted
Authorddini
CategoriesUncategorized

I'm going to appear on a panel of speakers tonight at USC's ACM general meeting, to talk about careers in computer science. In my case success is directly proportional to amount of star trek TNG watched.

edit: Whoops: it's in MHP 105 @ 7PM

Posted
Authorddini
CategoriesMethod in Mind

This past weekend I was a judge at a weekend long programming competition at USC. It was very kind of the ACM to ask me to do it and I definitely had a lot of fun. Here was the situation: something on the order of 10 teams of students were assigned the theme of "Change in your Pocket" on Friday evening, and had until Sunday evening to make a mobile phone application. Nearly all of the teams had no prior experience whatsoever with iPhone or Android development, so the fact that they had anything working at all on Sunday evening that was more than the most trivial application is extremely impressive. Hopefully this fact alone inspires people reading this - if these kids can put together what they did in 48 hours, there's nothing stopping you from making an awesome mobile app.

I don't want to post exactly what they came up with quite yet because many of the teams plan on doing a legit App Store release, so I'll wait for that to happen. But suffice it to say it gives me faith in humanity after seeing abject shit like this for so long.

I ran into an exec from another LA startup over there who was a very nice fellow and he said some things that make me want to punch the web in the face. I mentioned how this amazing talk by David Heinemeier Hansson at startup school was full of all kinds of great old fashioned advice like "your company should make money" and "there was a time when $1,000,000 was a lot of money." He responded by saying that 37signals is a lifestyle company. I said I hesitate to call a >= $30,000,000 business a lifestyle company. He said they're not going to get VC funding with their attitude.

Somehow this perverse notion that getting funding is a signifier for success has got itself into web businesses. It is as if the lifecycle of the web company is supposed to be 1. idea 2. launch 3. get funding 4. DONE. As if getting people to actually buy what you make is secondary.

Here are some pics from the Hackathon event.

And here's one of me being a judgmental prick whilst drinking redbull.

Anyways. Hooray humanity!

Posted
Authorddini
CategoriesUncategorized

Often in writing web applications, one is in the position of having to validate and parse something like:

alice@alice.org, Bob <bob@bob.com>
Charlie C <charlie@charlie-charlie.org>

One wishes to, in addition to verifying that the text represents a valid "jumble of emails", extract a list of the addresses:

[alice@alice.org, bob@bob.com, charlie@charlie-charlie.org]

Below I provide a javascript routine that does exactly this. Perhaps you will find it useful.

One of the reasons this task is not straightforward is because emails can come in a few formats. Let's (briefly) consider the W3C specification:

address = mailbox OR group

mailbox = addr-spec OR phrase route-addr

group = phrase ":" [#mailbox]";" (where "#mailbox" means one or more 'mailbox' tokens)

In other words an "email address" can appear as one of the "mailbox" types: either an addr-spec (Address Specification), e.g. "john@smith.com", a phrase route-addr (Phrase Route Address Specification), e.g. "John Smith <john@smith.com>", OR it can appear as a group, e.g.:

"Some Group Name":john@smith.com, strongbad@homestarrunner.com

The W3C spec of course breaks down each of the above keywords like "phrase", "addr-spec", and "route-addr" into totally unambiguous terms which the interested reader can check out. I think what appears in most people's minds when they think of "email address" however is the mailbox types, Address Specification and Phrase Route Specification.

The problem we would like to solve is: given some arbitrary sequence of Address Specification and Phrase Route Specification email addresses, do two things:

  1. Make sure valid email addresses are specified. This means that in addition to meeting the W3C spec, the top level domains, for instance, make sense (e.g. you can't have "john@yourface.yourface" as your address, even though it meets the W3C spec)
  2. Produce a list of Address Specification addresses.

For example, given the text string:

'john@smith.com Strong Bad <strongbad@homestarrunner.com>'

OR

'john@smith.com, Strong Bad <strongbad@homestarrunner.com>'

OR

'john@smith.com
Strong Bad <strongbad@homestarrunner.com>'

turn it into:

['john@smith.com', 'strongbad@homestarrunner.com']

In the file linked below is the javascript for you to do exactly this. It is composed of the following two functions:

  • function checkIfValidJumbleOfEmails(aString):

    If it's a valid jumble of emails (meaning some sequence of Address or Phrase Route Specification emails separated by either whitespace, a comma, or a semicolon) returns true. Else, returns false.

  • function stringToEmailList(aString):

    Assuming 'aString' is a "valid jumble of emails", extract and returns them as a list of Address Specification emails.

The javascript is tested to work in IE, Firefox, Safari, and Chrome.

A text file containing the two functions is available here.

Posted
Authorddini
CategoriesUncategorized