Tuesday, February 27

Outside.In a local community blog aggregator

Outside.in is a blog aggregator that organizes content into local geographic regions and categories the people and places mentioned, creating a sort of virtual local newspaper from citizen journalists (out of existing blogs).

It received funding form a bunch of smart people. From Union Square Ventures commentary:
They've built a platform that placebloggers can submit their content to. Their platform "tags" that content with a geocode -- an address, zip code, or city -- and that renders a new page for every location that has tagged content...

Outside.in is also a community with people and places in it. You can look at a person's favorite posts, favorite places, and favorite neighborhoods. These community features are brand new and their effect on the service has yet to be seen.
I really like this idea. If you want to now what's going on in an area, follow Rachel Ray's suggestion and Ask The Locals! Now you can get other people's opinion on politics, food, tourism, etc...

We'll see how the coverage expands, in my area (the Capital District around Albany, NY) the number of bloggers that consistently produce good content is limited to about half a dozen. Still, tagging and organizing all the blogs on the web is a really neat idea. We are still in the infancy of local search / local community (if you want to cram more buzzwords together call it social local search and wait for the Yahoo buyout). I can't wait to see how services like this and Yelp evolve and compete with Google and Yahoo local.

Found via John Battelle's coverage.

Update: Matthew Hurst has some interesting words to say about Outside.In and blogger geolocation. In the upcoming conference on blogs and social media (ICWSM), he will be presenting a paper on automatically identifying bloggers locations by scraping their profile pages. What's even cooler is that this work evolved into classifying blogger location based on the content of the blog content itself, work being done by Matt Siegler.

Making the world a better through word processing: Virtual Ubiquity

Today, I was reading about a new word processor (a hybrid web and offline word processor) called Virtual Ubiquity, created by Rick Treitman from Lotus.

Tim O'Reilly wrote an absolutely glowing review that is sure to start a lot of hype:

This is a REALLY sweet word processor. It's got amazing typography, pagination, resizing and reflowing, all in Flash (and Apollo, for offline use.) Unlike Google Docs, this isn't a lightweight word processor. It may well just be the slickest word processor I've seen anywhere.


They are soliciting stories about where an on-line word processor would make the world a better place. If you have any to share, drop them a message at: info @ virtub.com

Monday, February 26

Anything you can do, I can do Meta: Intential Programming

I love that title, I wish I had thought of it.

Via the recent NYTimes article,
Awaiting the Day When Everyone Writes Software

Programmers don't know what a computer user wants because they spend their days interacting with machines. They hunch over keyboards, pecking out individual lines of code in esoteric programming languages, like medieval monks laboring over illustrated manuscripts.
Interesting comparison between scribes and coders. Thank goodness for us, we have source control! When monks made a mistake the whole manuscript was ruined. Imagine if software was that way!

The NY Times article is really a condensed version of the Tech Review article series:

Anything You Can Do, I Can Do Meta
http://www.technologyreview.com/InfoTech/17969/ (part I)
http://www.technologyreview.com/Infotech/18021/ (part II)
http://www.technologyreview.com/Infotech/18022/ (part III)

There is a great quote where Mr. Simonyi, the father of MS Word, meets his match with Clippy:
Simonyi stared at his adversary, as if locked in telepathic combat. Then he turned to me, blue eyes shining. "I need a helper: a Super-Clippy to show me where to turn him off!" Simonyi was hankering for a meta-Clippy.
I think Simonyi's law: Anything that can be done could be done 'meta.' is great.

Interestingly enough, there is a connection back to my days at IBM and AspectJ via Gregor Kiczales at UBC (leader of the team at PARC that created AspectJ). There is a really interesting section in part III of the article that describe Simonyi and Kiczales co-founding Intential Software, but the relationship soon fell apart:

Simonyi admired Kiczales's work on aspect-oriented programming--a way of organizing and modifying code according to "cross-cutting concerns" that resembles intentional programming. Kiczales, another veteran of PARC, has spent his career working on ways to "make the code look like the design." Kiczales saw joining Simonyi as a chance to further that end. But Kiczales trusted open-source development, where Simonyi did not. The Microsoft-style closed-shop approach simply didn't feel "organic" to Kiczales. "I would have done it in Java," he says. "The first release would have been in six months." The disagreement was friendly but irreconcilable, both men say, and before long, Kiczales had left.

If you really want to learn about Intential Software design, take a look at Simonyi's 2006 paper at OOPSLA: Intential Software

Lessons on software

No, not Knuth's TAOCP.

Another book on software that I want to read:

Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software

On my Amazon Wishlist.

Chandler is now on .7 alpha, woohoo!

Personalized PageRank at Google

Hi, my apologies for the long delay between posts. If you haven't noticed, my blogging frequency has declined greatly since I started. Some would blame it on getting married ;-). That has been a reason, but I have also been quite busy at work and I have been burnt out.

In my spare time, I've taken to watching Heroes and playing with Google Reader.

I have had posts to myself accumulating in my inbox, so I guess the blogging bug is starting again after burning out.

I'll resume with this short piece I found the other day, an interview with Marissa Mayer on personalized search at Google. He writes for Search Engine Land, which I have taken to reading and quite enjoy. Here are the interesting parts of the article:
We acquired a very talented team in March of 2003 from Kaltix. It was a group of three students from Stanford doing their Ph.D, headed up by a guy named Sep Kamvar, who is the fellow who cosigned the post with me to the blog. Sep and his team did a lot of PageRank style work at Stanford. Interestingly enough, one of the papers they produced was on how to compute PageRank faster...

Interestingly enough, the reason they were interested in building a faster version of PageRank was because what they wanted to do was be able to build a PageRank for each user. So, based on seed data on which pages were important to you, and what pages you seemed to visit often, re-computing PageRank values based on that. PageRank as an algorithm is very sensitive to the seed pages. And so, what they were doing, was that they had figured out a way to sort by host and as a result of sorting by host, be able to compute PageRank in a much more computationally efficient way to make it feasible to compute a PageRank per user, or as a vector of values that are different from the base PageRank...

We acquired them in 2003 and we've worked for some time since to outfit our production system to be capable of doing that computation and holding a vector for each user in parallel to the base computation... So if you have a site about baseball you can say you want to base it on these three of your favorite baseball sites and have a search box that has a PageRank that's veered in that direction for baseball queries.


And on how personalized results are integrated into Google results today:
The actual implementation of personalized search is that as many as two pages of content, that are personalized to you, could be lifted onto the first page and I believe they never displace the first result, in our current substantiation, because that's a level of relevance that we feel comfortable with. So right now, at least eight of the results on your first page will be generic, vanilla Google results for that query and only up to two of them will be results from the personalized algorithm.

Finally, an interesting note on query refinements vs personalization:
When you look at the overall utility, probably 1 to 5% of people will click those query refinements on any given search, where most users, probably more than two thirds of users, end up using one of our [personalized] results. So in terms of utility and value that is delivered to the end user, the search results themselves and personalizing those are an order of magnitude more impactful then personalizing a query refinement.