Here's a real-time look at the total count of likes for Mitt Romney's Facebook page. Mmm, sweet tasty schadenfreude!
I have never had a better audience for a presentation, nor have I ever felt prouder of the people I came up with at Yahoo. Gary Flake, Tom Hughes-Croucher, Greg Schechter, Steve Souders, Nicole Sullivan, Estelle Weyl, and Nicholas Zakas all gave stellar presentations, and reminded me why this sort of thing is so much fun to attend. Hope to be back next time!
Some generative Canvas magic, with a little help from the Twitter API and YQL's instant-data-URI converter. To try it out, enter your twitter nickname down there where you see mine.
Drag and drop files into your browser and immediately see their base64-encoded data:uris, with thumbnails.
Placeholders are sweet; they supply the reader with a hint about what he's supposed to enter in a text field, allowing for much tighter design. Sadly, placeholders only work with the most recent browsers, which do NOT include Firefox less than version 4 or IE less than version 9.
Random notes about the fine time we had in Austin, including my 20x2 movie and Mistakes I Made Building Netflix for the iPhone.
While I was away in Brazil, crackers released a large blob of information containing much of Gawker Media's user database.
After many fine adventures at Netflix, I'm off to do the next thing
Hello, Froyo! Love your
Turns out @jeremiahg's Safari autocomplete exploit is trivially easy to implement.
Hey, neat! Flickr's launching HTML5 video for the iPad. Here's how to find it and get it for your site. (Webkit only, sorry!)
Shown at Revenge Of Kick-Ass Mash-Ups, SxSW 2010
Here's the hack that won me the very first Yahoo! Hack for Good award, way back in 2007. Sadly, this did not ship while I was a Yahoo employee; I am seeing encouraging signs that Phillip Tellis is working on it, so I now feel free to post this in public.
On 14 December 2009, Netflix quietly launched a pair of new widget builders, at
Backchannel is a re-implementation of @jerrymichalski's Red:Green Cards. It's intended for use during seminars and other meetings where the audience needs to communicate a limited set of one-way messages to the speaker. While running Backchannel, your phone's screen will turn red while vertical and green while horizontal. This could be used for feedback (faster/slower, go/stop) or voting (yes/no). There's no technical reason why the colors couldn't be different, or programmable, or a third color added to the plus-ninety-degrees orientation. To try it out, fire up your iPhone and go here:
Once you're done flipping your device up and down to see the color change, try saving a local copy. To do this, touch the + button at the bottom of your browser and choose Add to Home Screen. The Add to Home panel should come up, with Backchannel's red-and-green icon and title. Touch Add and you should see it on your home screen.
After being absolutely floored by some really impressive new HTML5 demos--see the 9elements Twitter mash-up, for one--I figured it was time to give it a try myself. Here's the result.
A short while ago, something sucked the fun right out of Twitter. All of a sudden, replies from people who I was following to people who were a) not me, or b) not people I was also following, mysteriously quit showing up. Without knowing more about the underlying data structures I'm not certain I understand Twitter's explanation; it seems to me they'd have to go out of their way to find and remove tweets from people I'm following that were in reply to tweets from others that I'm not following, rather than just show me all the tweets from everybody I am following.
Anyway. I figured I'd go with it for a while and see if I noticed any difference ... and ... yeah, I do. Turns out the main way I found new, interesting people to follow was through those half-conversations. I haven't followed anybody new since replies broke, and find myself growing increasingly bored with Twitter.
At the top of this page, you'll see an entry box with my Twitter id filled in. If you click the button, you will see a list of tweets from people I'm following. Each of these tweets is the most recent one posted in reply to another Twitter user. If I'm not following that person, I won't see it when I look at my Twitter page. If you'd like to try it out and see some (probably not all) of what you're missing, fill in your Twitter screen name and click Go.
Twitter Search is turning out to be a very powerful force in real-time search. Instead of relying on a vaguely-defined, possibly-corrupt, almost-always-out-of-date algorhythm owned by somebody else, why not check out what your fellow Internet readers are marking as interesting and/or relevant?
Also included: my 15-slide presentation from the May 9th BayJax meet-up, detailing the development process.
Netflix, in case you didn't know, is a marvelous place to rent movies and television series on DVD, and watch an increasing percentage online. Over the last ten years, Netflix has accumulated a treasure trove of information about movies and the people who make them, and has recently opened it all up with the Netflix Catalog API. (Full disclosure: yes, I work there, and yes, it's awesome.)
Here's a handy tool to help you get your feet wet without having to worry about OAuth.
Backup plan: I cracked into a couple of URL returns with Firebug, thought I understood what was going on, and plunged blindly in. (Famous last words: "It's just a string, right? How hard could it possibly be?") Here's my top ten list of horrible mistakes made while trying to reverse-engineer OAuth.
Updated 3/27/2009, 10:01PDT: looks like this may have been fixed a few minutes ago. Read on, to learn more about what was happening.
As usual I'm late for the bandwagon. Here's my very first GitHub project, a case-hardened badge that allows a certain amount of surfing around between GitHub repositories, owners, and watchers.
The first thought I had after building Cleeper was "Dude, this is way too complicated. It should just copy straight to e-mail."
One of the iPhone's few glaring disappointments is the lack of proper copy and paste. If I'm on a page and I want to send a chunk of it over to Twitter, I have no choice but to memorize it, bring up Twitter's horrific little iPhone interface, and painfully bang it in there with my big fat fingers. After warming up with iClock, a toolbar bookmarklet that contains an entire Web page in a base-64 encoded
data: URL, I was ready to try something a bit more useful.
Cleeper will inject itself into the page you're on, wait for you to click an existing block-level element, and copy the text of the element into an entry box, where you can edit it. After you're done editing, click the Cleep button to send your message off to Twitter.
Once it's running, go back out to your Settings, turn off your network by going into Airplane Mode, and then come back and try iClock again. If all went well, you should see a working clock with your network disabled, because the bookmark itself contains everything necessary to recreate the page.
Until the release of Yahoo! Query Language, one of the key parts missing from del.icio.us (or "Delicious," as it's now branded) was a full-text search API. Delicious Search Exploder uses YQL, Pipes, and a couple of native feeds from Delicious to provide an on-page search-and-browse experience, for users, tags, and sites.
Added: native API calls, searching, sorting, Identica-like styling, home-page, reply-to and original-message links. Fixed: Unicode support.
For my SeedCamp talk I've built a small application using Yahoo! Query Language and oAuth. To try it out, enter the stock ticker symbol of your choice. (YHOO, MSFT, GOOG, and AAPL are a few of my favorites.)
Of particular interest here may be the compressed HMAC-SHA1 function; this was simplified from Paul Johnston's full-sized version, here:
After the result renders, we're running everything back through the link detector, so you can continue to surf CrunchBase while remaining on the page you were interested in. Once you mouse over a second enhanced link, its title will go into the select box in the headline, and you'll be able to easily find your way back.
Here at last is my presentation from Web 2.0, which I've been criminally remiss in posting. It's live now because of L.M. Orchard's marvelous Firefox Download Day Mega Widget, which uses some of the techniques.
For a while now I've been hearing about various "data portability" initiatives, most of which will only allow you to make a copy of some small subset of the current state of your profile. Everything else--including historic transactions and top-secret personal information--remains online, per the terms of the TOS you ignored when you first joined up.
Remember, if you can't delete it, it's not portable.
I've been interested in FOAF for a long time. Abstracting out all my social relationships into a separate layer, just as I do with my presentation and behavior layers, really resonates. Future possibilities like being able to point marketers at my FOAF object so they will quit wasting their time trying to sell me timeshares seems like a very real possibility.
What changed today? MyBlogLog rolled out FOAF. And now, finally, I don't have to worry about keeping a file on my Web site. All I need to do is add people and services to my network on MyBlogLog, and it's taken care of for me.
Over the past few months I've published articles documenting an extremely trivial weakness that allows any third-party operator to determine if its users are signed in to several well-known Web services. This is pretty clearly information that ought not to be shared; even if it's not explicitly stated in the service's terms of service, it's expected by the public.
Here's a toolbar bookmarklet that looks for a MyBlogLog identifier on the page you're on, and uses the MyBlogLog API to dig out information about its reader roll. You can try it here, or drag it to your bookmarks toolbar and run it anywhere else on the Web.
After much hard work, the team at MyBlogLog and the Yahoo! Developer Network--including but definitely not limited to Todd Sampson, Ian Kennedy, J.R. Conlin, and the one and only Chris Goffinet--have released the MyBlogLog API into limited public beta.
Suddenly there's a wide-open source of information about who lives where on the Web. With a minimum of fuss it would be easy to go grab a Twitter status, del.icio.us bookmark set, or Flickr feed for anybody listed below and slot it neatly into place, and that's just the beginning.
Think of it as a small-scale Sudoku board with a twist: you must place pieces on the board in the order that they're given to you. If you make an illegal move, by duplicating a color in any row or column, the move you made will stay while enough of the previous moves (row, column, or sub-board) will drop out and return to the end of the line. This may turn out to be smart strategy, depending on the layout you're faced with. To try this out on your iPhone or iPod Touch, visit http://kentbrewster.com/glint
Here's a list of notes-to-myself about hacking the iPod Touch. I'm posting it here in the hope that it may be useful to other owners, who are happy with their new toys but can't help thinking that there might be more fun to be had.
We're into the New Year, and not a word from Mr. Boyd besides the demand that I take this down. While I understand some folks would like more detail, it won't be posted here. Unless you're the sort of person who thinks "she pissed me off" is a good reason for a man to sucker-punch a woman, details are not important.
Back late last night from Defrag, which I hope to attend again next year. It's been noted elsewhere that most speakers at the conference repeated several main themes; this seems true to me. In this post is a long list of highlights, sorted in alphabetical order, which seems as good as any.
If you're like me and you prefer the "classic" Windows start menu and task bar--flat gray, minimal distraction, not so Teletubbies-looking--you may have already noticed that there's no easy way to tell the Classic version not to track and show your recently opened documents.
Had a bit of trouble today: one of Vickie's two-gig thumb drives went catatonic. All Windows could come up with was the scary message that the disk in drive E wasn't formatted, and did she want to format it now? (Answer: nooooooo!) After a bit of investigation--the usual stuff: reboot, pray, try it on several machines, sacrifice a chicken--we came to the conclusion that the thing's file system had broken. To the rescue: Christophe Grenier's TestDisk/PhotoRec suite, at http://cgsecurity.org.
Back from a week-long jaunt to the heartland: to Chicago, for Adobe MAX, and thence to Champaign-Urbana, for a lecture to Mike Woodley's class and the kick-off event for the UIUC chapter of Yahoo!'s University Hack Day.
In which our friends Structure, Presentation, and Behavior go on a New Adventure, outside the browser window....
Implementing the del.icio.us tagometer badge on the new site clashed with my main goal for the redesign: it had to be as fast as possible. So I cracked into it this afternoon, and wound up with a single 6k script that works, and does nothing to my YSlow score, which is currently a 96% on pages that don't have a bunch of external includes. (Bonus: there's even a way to recreate the del.icio.us logo without loading an image!)
A week or so back, Amazon released their Widgets page, which seems to be a corral for many existing widgets and services, plus some neat-looking new ones. What's most interesting to me is that the cool new toys all seem to be in HTML, and not Flash. Amazon seems to be going after a smaller, more-capable crowd (bloggers, hackers, small business operators) and not the denizens of the MySpace/Facebook walled gardens.
Because of the way Answers is set up, high-level users--and by "high-level," I mean "anybody level 3 and above"--are not powerful because of what they know, but because of the frequency and tone with which they communicate what they know. They're on the service a lot. They answer questions quickly and accurately. And they have high status because they write graceful, easy-to-digest answers that don't make the person who was brave enough to ask the question feel stupid for having done so in public. These folks are volunteer evangelists for whatever product or site they recommend ... and they are easy to find, using the Answers API.
I'm doing my best to bring all the old posts, content, and comments over, and have added something new. Here and there you'll spot a closed norgie next to a purplish headline, indicating that there's something behind the curtain that you might or might not want to see. In this case, it's the nerdish details of how the new site works. (Or, in the words of the folk singer: "I've suffered for my art; now it's your turn.")
Creating properly-sized vertical dividers between columns seems like it ought to be easy. It is, if you're using tables for layout: you bang out a couple of cells, put a border-right on the left one, and you're done. If, on the other hand, you choose to write standards-compliant HTML, you're heading down a harder road.