Howdy!

Welcome to my blog where I write about software development, cycling, and other random nonsense. This is not the only place I write, you can find more words I typed on the Buoyant Data blog, Scribd tech blog, and GitHub.

Speaking at Widget Summit

This upcoming tuesday (October 16th) I'll be speaking on Facebook Development to what will presumably be an audience of "widgeteers" (as I'll call them).
According to Wikipedia, a web widget is "a portable chunk of code that can be installed and executed within any separate HTML-based web page by an end user without requiring additional compilation."

Following this definition, most of Slide's products are "widgets" per se, but our Facebook applications don't necessarily fall under this category of "web things," as they are in a category unto themselves by integrating into the Facebook Platform whenever and wherever possible.

I'll be speaking on some of the differences between normal "widget" development on the web in contrast to Facebook "apps." As the session page notes, I'll be covering some of the topics like:
  • Walk-through the functionality of a basic Facebook application.
  • A brief explanation of Facebook networks including cities, colleges, companies, and groups of friends.
  • The benefits of Facebook markup over a fully-hosted solution.
  • Enabling important integration points such as user dashboard, user profile, and social news feed.
  • When to use requests and alerts, and the proper etiquette for these interactions.
I'm really looking forward to talking in a slightly different capacity than usual, as "my usual audience" is developers who are really interested in Facebook application development at other venues like at Graphing Social, the Facebook Developer Garage: Palo Alto and other mini-conferences, hackathons, and meetups. At Widget Summit I'll be speaking about a bit higher-level concepts, indirectly related to development, to an audience of product managers, entrepreneurs and folks generally interested in how to get in on the Facebook Platform.

Widget Summit will be at the Mission Bay Conference Center at UCSF is located at 1675 Owens Street, just off the 280 freeway in San Francisco (directions). I'm really looking forward to the event, if you can make it out today, our fearless leader Max Levchin will be giving a keynote of sorts this morning at 10 a.m. which should definitely be insightful and entertaining to say the least. I'll be there tuesday to speak, so if you can make it, come for both days!
Read more →

Google Search Inside of Facebook

A couple of days ago I found out that you could get Google results in JSON while poking around for simple JSON APIs that I could use for miscellaneous hacks.

I was thinking of all the fun things I could do with search results, and finally settled today on the most ridiculous one possible, searching from within Facebook. About an hour's worth of PHP5 later, I present Search!, another ridiculous example application.

Unlike my previous "Why are you awesome?" demonstration application, Search! doesn't really integrate into Facebook nearly as much. Search! doesn't post to the profile, send notifications, or do much more than provide an easy means of sharing search links via your "Posted Items" or sending them along in a message to a friend on Facebook.

Searching with Search!


Sharing search results



I can make no claims to this being a "good" application by any means, I just really felt the need to write something ridiculous, and this is what came out. The source code can be considered public domain, but I would appreciate attribution if you spread this super-mega-awesome code.

Install Search! | Search! Source Code

Read more →

Remix 07 Boston Wrap-up

Earlier this week, following CommunityNext and Graphing Social I was lucky enough to have been asked out to Boston for Remix 07 Boston. After receiving the necessary flack from my co-workers at Slide (primarily a Python/Linux shop), I boarded a plane late Sunday night to arrive extremely early on Monday morning (6a.m. isn't my best hour).

Upon arrival to the Hyatt Regency Cambridge, I found out that I had access to the Media Room, which allowed me to recharge my laptop and plug into a hard-wired connection such that I was able to write up a few blog posts from the conference itself. Having such access also allowed me to work on some sample Silverlight applications that I'll write up over the weekend covering Silverlight and IronPython.

While I enjoyed the sessions, such as Miguel's session on Moonlight and Mono and another session on the DLR and dynamic languages, what I enjoyed most was the ability to pick the brains of some of the folks there. Specifically guys like Aaron Brethorst, who works a lot on Microsoft Popfly's interface among other things, who let me question just about everything under the sun with regards to Popfly while still maintaining that I really like the application and its potential.

I also really enjoyed meeting up with Miguel and his crew at Novell (Aaron Bockover and Michael Hutchinson) after Miguel was kind enough to take me to a late lunch and then show me around Novell's Boston office. I also think Miguel successfully guilted me into contributing more code that I've been putting off for so long, like my Mono.Nat NAT-PMP code, Mono.Facebook.Platform, and some patches for System.Web.Script.Serialization; all of which I have neglected in the difficult search for a good night's rest, or the perfect ping-pong serve against co-workers.

I still look and feel mostly dead from exhaustion, but not dead enough not to continue pounding away on everybody's favorite Facebook app, or working on some of the other really cool things that we work on here at Slide (bubble text!). In the valley, everybody knows who Slide is now, everybody knows what's going on with Facebook, and an extremely small subset of people that matter know who I am; but on the east coast, far fewer understand what's going on right now on "that college social network, right?"

Miguel said he doesn't install Facebook applications citing the near-complete opacity of the security and data-storage policy to the end-user, but maybe now that he's met me, and knows who's behind it, he'll install Top Friends and I'll finally be able to claim that Miguel uses something that I wrote, instead of the usual case of vice versa.

Note to self: Travel back to Boston, soon.
Read more →

Miguel de Icaza's Remix 07 Boston Keynote Address

Before I leave Boston, I had to make sure of one more thing, that my fellow Mono bretheren got to see what I got to see, Miguel's keynote. Thanks to lots of hard encoding and video preparation done by G. Andrew Duthie and his crew from Microsoft's Media Room at Remix 07 Boston, the videos from the keynote have already been posted in their entirety to Channel 9.

Unfortunately they didn't clip the videos on a per-speaker basis, so you'll probably want to fast-forward in the video to about the 11 minute marker to watch our fearless leader question the manhood of 400 Microsoft developers as I had previously mentioned. Talking with Miguel after the fact he mentioned that some of his more witty quips were mostly due to him worrying about things breaking on stage and going impromptu with some of the things he was talking about. Overall though I think Miguel did a great job exhibiting Moonlight and the Gnome desktop in general, so I hope you enjoy the video (again, fast-forward to the 11 minute marker).

Watch Miguel on stage at Remix 07 Boston (direct link)
(Download VLC to watch on Linux/Mac OS X)
Read more →

Unofficlal Facebook Developers Meetup: Boston

During the insane array of things that have been/are going on these past couple days, I have neglected to mention that I'll be organizing another Unofficial Facebook Developers Meetup, this time in Boston.

The Facebook event can be found here, and I am thinking we'll be striving to grab dinner and drinks tomorrow (Tuesday, October 9th) in the Cambridge area since that seems to be central enough for everybody to come.

Zach Allia, of Free Gifts fame, myself, as well as a few independent Facebook developers have already RSVP'd, but I'd love to see as a lot more Facebook developers, or those just interested in the platform, come out and join us to discuss some Facebook platform related things, pick each others' brains, and throw back a pint of Sam Adams.

The venue hasn't really been decided yet, I'm debating between a couple different resturants in Cambridge, so if you have any suggestions, by all means bring it up. Regardless, if you're in the Boston area, come on out, it should be lots of fun.
Read more →

Miguel questions the manhood of 400 Microsoft Developers. Awesome.

Miguel de Icaza, one of my own personal geek heroes, just gave his brief "keynote" as part of Microsoft's partner talks component of the overall Remix Boston 07 keynote speech.

After previous demos being proudly shown for "working in Safari on Mac OS X, and oh by the way, it's PC compatible too", Miguel showed everybody up by pulling up the still very development version of Moonlight and dazzled a room full of hardened .NET/ASP.NET developers and designers with Mono's progress on the Moonlight project in a scant 4 months since the original "Mix Vegas" conference earlier this year.

If you hang around Miguel enough, you'll know how much he loves Compiz, which he used gratuitously during his demonstrations. The mixture of a good looking Gnome skin and Compiz really helped convey that "yes, Linux is here, Gnome is a fully-featured desktop environment, and check out this AWESOME CUBE EFFECT!" As a developer who's participated in the open source community for almost five years now, it was very inspiring to see a room full of Microsoft's battle-tempered third party developers pine to have some of the cool features that Linux has!

Some of the Silverlight applications Miguel demonstrated were Metaliq's Top Banana which ran surprisingly well, then Silverlight Chess followed by the Halo 3 trailer running (not streaming) on Miguel's Linux laptop. To invite further jealousy from the room of developers, Miguel fired up Firefox, running Moonlight, running the Halo 3 Trailer, on the edge of a "cube" workspace (such as this). Applause ensued.

Coming back to the topic of developing Silverlight/Moonlight applications on top of Linux, Miguel fired up MonoDevelop claiming that "we have one, I just don't use it; I have an allergy to IDEs." Much to my surprise, he then fired up Emacs to edit his local copy of Silverlight Chess, updating a property such that it returned "Mono" instead of ".NET" in the interface, dropped back into his X terminal and ran "make" like, quote, "real men do" (to which some of the crowd applauded and the rest laughed). Miguel then ran the SilverlightMoonlight Chess application and closed his keynote speech stating that:

"Your designers can use Expression Blend on Windows, but your real developers can use Linux to develop Silverlight."

Overall the keynote was very well done but it really seemed like Miguel stole the show after so much emphasis was placed on "Silverlight's portability" by really showing what the Mono Project is capable of, and that while Silverlight may work on Mac and Windows, Moonlight runs on the corner of a wicked cool cube.
Read more →

In Boston, At Remix. Phew.

After a grueling flight that started with a full-on sprint from the TSA security checkpoint and ended about a quarter mile through the terminal (in socks no less), I have made it across the country to Boston for Remix 07 Boston.

I'm still anxiously awaiting the keynote, and trying to find the Mono guys that are in attendance to try to learn as much as possible about the development and future of Moonlight, while simultaneously trying to learn as much as possible about how other developers are embracing and using Silverlight too.

If you're at Remix, come find me, I'm a San Franciscan in a rainy Boston, and I'm scared ;)

I'm this idiot, rocking my "business attire"
Read more →

"Why are you awesome? Source Code

I got off-stage just a few moments ago, but since Dave McClure already blogged about it, I would go ahead and post the source code so Dave could link to it.

"Why are you awesome?" source code


The version of the client that the code is using, is specifically for PHP4, you can just replace the client/ folder with the PHP5 version depending on your host settings. The source code also includes the database schema that "Why are you awesome?" expects.

Happy hacking, and add the app!
Read more →

Facebook App Development 101 Wrap-up

In addition to posting the source code for the application I wrote specificaly for Graphing Social ("Why are you awesome?") I also figured I should post my slides from the two hour or so session, which was composed of much more discussion and suggestions from Ari Steinberg (a Facebook Platform developer) and myself on developing on the platform and some of the intricacies involved. Gary Lerhaupt did a good job of "live blogging (part one)" (part two) the workshop if you're interested in the play-by-play.

In theory there should be video soon so "stay tuned" (get it!) and I'll be sure to either post or link appropriately.

Regardless, I hope you can at least find the presentation informative if you couldn't be here.

Facebook App Development.pdf


In general I really enjoyed presenting and answering questions from some folks in the audience who were really keen on squeezing as much knowledge out of my pea-sized brain as possible. Unfortunately I can't stay for the next two days of Graphing Social, as I'm off to ReMix 07 Boston and some Silverlight hackery!
Read more →

Introducing: "Why are you awesome?"

As I previously mentioned, I'll be teaching a workshop on "developing your first Facebook application" tomorrow at the Graphing Social conference in San Jose. I figured, what better way to explain building your first Facebook app then to write one! Why the hell not right? So last thursday night I cleaned the dust off my pathetic PHP skills and set to work to create an application in a couple hours, that I could use as a tool for teaching the "basics" of Facebook application development.

Behold, awesomeness




Why are you awesome? is a relatively simple application that follows the self-importance of Twitter, but adds the "social graph", and voting capabilities. Using "Why are you awesome?" I hope to convey in a marginally basic sense some of the core concepts behind rendering FBML pages, making use of notifications/feed posts/invitations and Mock AJAX from the profile.

I won't disclose too much before the presentation (not that anybody will see this before the presentation), but I'm extremely happy with what about 4 hours of morning hacking has garnered me, and the possibilities of the application.

You know what, let's see that super-mega-hot interface one more time.

Read more →