Archive for the 'future' Category

Sketching in VOIP with Tropo

Tropo

At eComm Jeevan and I heard some intriguing stuff about a service called Tropo, a cloud-based scriptable VOIP system designed to let web hackers start working in the voice and telephony world.

The app provides a pretty damn slick interface to quickly set up a real phone number (plus SIP plus Skype, all in one place), then assign it to a script written in javascript, groovy, python, ruby, or probably whatever other BSF language they support.

Here’s one I wrote and deployed in about 20 minutes to read off all the Miniature Monster descriptions from the RSS feed (Tropo calls highlighted). You can test it out by calling (650) 273-5382 (or +99000936 9991428654 on Skype, though I haven’t tried that):


require 'net/http'
require 'rexml/document'

answer
wait(3000)
say "hello, welcome to professor engd's miniature monster hotline. here are your monster updates."
wait(1000)

url = "http://feedproxy.google.com/miniaturemonsters"
xml_data = Net::HTTP.get_response(URI.parse(url)).body
xml_doc = REXML::Document.new(xml_data)

xml_doc.elements.to_a( "//description" ).reverse.each do |desc|
  if (m = (/\<div id=\"description\">\s*\<em\>(.*?)\<\/em\>\<\/div\>/i).match(desc.text))
    say m[1]
    wait(1000)
  end
end

hangup

I’ve worked on some projects recently involving Asterisk-to-web-to-hardware style hacking, typically using something like Gizmo to register a regular phone number assigned to a SIP number, then setting up asterisk as the SIP softphone and messing around with a retarded dialplan syntax to get things going. Tropo seems to simplify all that… substantially.

The documentation is solid if a little thin, but it’s so new, and the app is so slick and well done, so I’m sure there’s more coming. It’s unclear at this point which Ruby libraries and gems they support, if any. And it all feels a little like a toy, but no more than, say, Google App Engine, and for me it’s actually more potentially useful. What I can say at this point is that it’s a solid way to sketch your telelphony ideas quickly and with zero setup time, which is very cool. Are you listening ITP?

Anyway, happy voip hacking.

Distance Lab’s Isophone

Just saw this very cool project presented at eComm by Stefan Agamanolis from Distance Lab.

“People lost track of time, they called for 5 minutes and thought they were chatting for 30 minutes. The nature of conversations was more creative, callers visited a lot of topics. They also gestured more, even with their legs.”

Stefan presents this project in a larger design initiative he’s dubbed slow communication – communication technologies explicitly designed to harmonize with natural human pace and sensitivities. It’s similar in spirit to some of the slow computing ideas I was tossing around a few years back.

We live in an amazing amazing world and it’s wasted on the crappiest generation.

Via Nivi and The Technium.

Search down memory lane

In an effort to soothe my increasingly compounded stresses about starting a new business, surviving the impending economic doomsday, and feeling sad about the retardation of the U.S. political process, I spent some time tonight looking through my various feeds. It’s basically the digital equivalent of sucking my thumb, though certainly more sanitary, and less likely to gross out the cute tat’d hipster girl at Ritual.

I guess it was a luckily-timed retreat to my introverted comfort habits, as I just happened on the Google 2001 search via my friend Burak Arikan’s wonderful del.icio.us links! Of course as a longtime and predictably self-conscious netizen, one of my first searches was for myself, “Brent Fitzgerald.” I was pleased and a little surprised to see myself at the top of the list.

#1 all these years. Vanity yay.

Clicking into the Internet Archive version of the result, I was treated to a nice semi-broken page with one of those damned weird scanned baby images I was so fond of back then.

Only one of the babies survived the Wayback Machine

Then another broken image (along the lines of this one I think), and uh, wow, pretty much a cliché 2001-era recent college grad home page:

A surly homepage, circa 2001

Oh man, what a winner. It reeks of that period of low self-esteem, worn out irony, and melancholic directionless, all with a savory hint of marijuana. From there, I even found my old resume, which clearly suffered from some highly questionable typography choices.

So I wonder… between Google keeping track of everything we do on the web, plus better, more OS-integrated personal backups, perhaps all is not so lost after all, even the stuff you really wouldn’t mind losing, like your lame post-college website.

John Maeda’s inauguration speech

I felt a lot of PLW and MIT Media Lab pride reading John’s RISD inauguration speech, Start Here. I particularly enjoyed the last bit:

The creative mind is not limited to black and white. It is comfortable with ambiguity, and “doing both,” as I like to say. You can be both a designer and an artist, a humanist and a technologist, a student and a teacher, a hand craftsman and a Photoshop guru, a global and local thinker, a leader and a servant, a president and a citizen. And we can start as many times as we like when we are open to the spirit and rigor of the creative way of being.

It’s a wonderful start to just the sort of boundary-bridging creative imperative kick in the ass I’d hoped he’d bring to his new role. Read the whole speech…

Losing ffffocus?

I started following FFFFOUND back in mid-2007. I think I was a little late to the party even, but I admitted to being rocked by what I saw rolling through my reader. Yet the past several months I feel I’ve seen a noticeable decrease in quality of the primary feed, driven primarily by an over-diversification of content.

I was captivated in the beginning, not by the system itself (which is elegant and simple), but by the wonderful findings of the curation community. Now, as the audience has grown, so too has the range of tastes. And with an exponential network effect style growth, the site accelerates towards mediocrity. It’s a blurring rather than a sharpening.

So how does one found an open collective that grows intelligently in innovative directions rather than diffusing out in all directions amorphously? How does one maintain community uniqueness and personality while encouraging growth? FFFFOUND clearly had a creative seed group to set a precedent for content. But perhaps some of the base system rules are at fault: a weak identity/reputation, open invitations, weak positive reinforcement, and lack of negative reinforcement. The original community had no strong way to encourage newcomers in any particular direction. The precedent was not enforceable, thus it was lost.

It’s of course ironic that I became a member only a few months ago myself, so I am literally part of the problem. I still find gems by browsing around or following friends, so the site is not without value to me. It’s all a grand experiment, and I’m not sad by the shift so much as curious to watch as the site continues to expand, and to see how future community systems deal with these issues.BLJAT

Data immediacy, publicness, protocols

Lately a few of my social circles seem to be hitting a critical Twitter point, with more people on talking about what they ate for lunch or having weird little conversations or whatever. I’m using it over IM, and it’s fun, definitely distracting, and I think I finally get the hype a little more. It probably won’t be the crazily addictive service for me that I’ve heard it is for others, especially since I refuse to turn it on for my phone. Still, the combination of immediacy with publicness makes it very intriguing.

It’s also not hard to imagine scoping Twitter to selected teams and companies, so the communication is open and archived only within that context. Perhaps this is in Twitter’s business plan, or in someone else’s.

More than anything, whenever I use Twitter I often recall a meme I picked up from Burak’s delicious a while back, that XMPP (Jabber) may be the future of internet services. It’s actually a very simple premise: compared to HTTP polling, XMPP is much better suited to 2-way, stateful, immediate communication. The post comes from an interesting company, Jive Software, that focuses on collaborative systems for business. They clearly have been thinking about XMPP a lot.

Consider a hypothetical platform for public and private data to flow in continually as time-series streams. In almost all cases, the way new data is collected and pushed to this service would be by polling the original source to retrieve the latest update, maybe massaging the data into the right format, then POSTing/PUTting to our service. But rather than this automatic checking and reposting, what we really want is for the data source to just tell us when there is new data, and to either push it to us, or give us a url to retrieve it at. We’d like to register with that source, and from then on continually receive updates as they happen.

Or, since we’re working with data over time, perhaps we’d like our service to nudge data stream providers for the latest data when it’s time to provide it. “OK, it’s been an hour, give me your latest.” If the data script doesn’t provide anything, then we can stick null values in there and just say there is a gap in the data stream.

XMPP makes it easy for either side to initiate the request, and for exchanges to happen as soon as they need to. It’s also been proven to scale well, and there are a ton of clients and libraries out there already. It’s definitely going to play an increasingly important role in services talking to other services, and I’m fairly certain it is the right way to approach data streams. But until then, I’ll just be twittering.