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.

Silicon Valley Gangstas

Last night I attended the "Hip Hop Live" show at the Mezzanine here in San Francisco, and it was nothing short of absolutely amazing. As some of my coworkers know, I'm a huge hip-hop fan, but primarily dirty-south rap, so going to a show by three East Coast rappers was different. The show started with Brother Ali, who I've maintained for the month leading up to the show is "one of the most insightful rappers you'll see." Following Brother Ali, the venerable Ghostface Killah and his crew took the stage, dedicating a song to ODB (Old Dirty Bastard) as well as paying homage to some of the other Wu-Tang Clan members. The final act of the show was Rakim, another powerhouse act, who did some songs off his new record but also some "oldies" from the early nineties like "Don't Sweat The Technique."

In general, you missed a hell of a show. I wish I could describe it a bit better but between raising my fist in the air or making the Wu-Tang symbol with both hands, I lost track of it all and let myself become overpowered by the music.

At the very least, I recommend checking out Brother Ali, I think you'll be hearing a lot more from him over the next couple years. This is one of his more controversial songs, "Uncle Sam Goddamn." Enjoy.
Read more →

On Investing

Every month since coming to work at Slide I've been putting away some money into a low-yield savings account, the modern financial equivalent of hiding money in the mattress. The more I've been thinking about this, the more I've been wanting to change this, start investing and the likes, putting my money to work (I don't get a break, why should it!). The biggest obstacle however is that, as a young man in the 21st century, I haven't the slightest clue what to do here. It takes grown men their entire lives to really get a handle on such large volatile systems such as the stock market, what hope do I have to do anything but piss my money away?

The dollar is unfortunately weak right now but I feel that it will turn around soon, so it seems like an ideal time to start investing in a few select stocks. I figured that I would pitch my plan, and see what reactions it got before I started to actually put money down.

The Plan

Please point out as many flaws in my logic as possible, I want to be as prepared as possible before money leaves my bank account(s).

Overview

The "inspiration" for how I want to invest comes from some development methodologies that have started to crop out in various places out of the desire to increase productivity and squeeze the most bang for their buck of developer time (such as SCRUM). "The Plan" will follow a similar "flow" as it will be oriented around a planning period, an investment period (the sprint) and the analysis period (basically me crying because I lost all my money). I think that allowing for a cycle of around 7 months for "the plan" should be adequate enough to maximize returns while maintaining a good diverse portfolio. Some of the very few stocks I follow seem to perform well for a 6-10 month period before somebody either does something stupid or a product line fails, etc. Catching this wave is important, as is getting off at the right time, this concept is nothing new, but will probably be the hardest rule to follow from "the plan."

Step One: Research

The entire first month of "the plan" I intend to spend on research, not full-time, but on my weekends and free time. This part of "the plan" should allow me to scour the internet reading up as much as possible on candidate stocks, charting their progress over the first month and getting familiar with those leading the business and their ability to do so. Investing in lines on a bar graph is not what I want to do, I don't think, given my experience with investing, I will be able to analyze a company's potential just by looking at numbers. This phase is definitely going to be the most interesting and educational about the market and will help me figure out whether this is really a good idea or not.

Step Two: Invest and Track

With my set of stocks for this cycle chosen in Step One, now it's time to actually invest. I'm not certain whether going through a broker, e*trade or another online firm will be the right way to do it, but I'm open to suggestions. Pending the research I would do beforehand, that would gauge how much money and where I would invest. Once money is invested however, it's hands-off until the end of the sprint of 6 months. Every week I intend on watching the stocks, following the companies and what they're doing to, and doing basic incremental metrics on how well everything is performing. This should be the fun part of the entire cycle, partially since it's the least work, but it will also allow me to learn the most about how the market works in contrast to world events.

Step Three: Extraction and Analysis

Regardless of how well they're performing, what goes up must go down, after the 6 month sprint from Step Two, sell! Once all the money is out of the selected stocks, it'll be time to really analyze how well everything performed. Ideally finding which sectors are doing well, what influenced the stock prices, what the company did during the sprint and how well the market as a whole did during the sprint. Pending the success of the first cycle of investment in this fashion, this step will lead nicely into another cycle's "step one" and allow for rapid iteration on fine tuning my investment savvy and give me a chance to try out investment in a variety of different businesses and markets.

In general I haven't decided how much money I want to start putting into the stock market nor have I decided on when I want to start, but I've been pondering this plan for almost a month now and would love to get feedback from anybody that's tried their hand at investing, etc. Because the first cycle will be an experiment I will most likely be noting my progress here. If anybody wants to join, let me know! It could be fun to "pick your teams" like fantasy football (I can't believe this exists) except with actual money and (hopefully) actual returns.
Read more →

My new favorite chuckle

Whenever discussing possible Facebook applications or some of the concepts involved in bringing a product into Facebook, I invariably hear a lot of:
"we want to do X because we've found college students respond well to Y"
or
"college students [on Facebook] will love Z"



Now, I don't mean to be too picky but there's a couple of problems with this:
  • Over 50% of Facebook is not in college
  • Just how old do I look to you?*

Seriously now.





* I dropped out of college earlier this year, after winter semester

Read more →

Any Unemployed .NET Developers in NYC?

Last week at the Widget Summit speakers dinner I met an executive from DoubleClick, you know, that gigantic ad company that recently got acquired by Google, Inc. While talking about some of the difficulties in developing scalable web products I brought up some of my history in terms of developing .NET web applications and of course, Mono (at least I think that's how we got on the topic).

As it turns out, DoubleClick is really pushing to modernize their internal infrastructure on the .NET platform and really needs some smart folks either willing to move to New York City, or that already live there. If you're looking, feel free to contact me at tyler@monkeypox.org and I'll put you in touch, or hit up their careers page.

If you go to work at DoubleClick, I think you can technically get away with saying you work for Google. You'll also be able to say you are working on truly scalable .NET, which is something I really only think Windows Live and Myspace* developers can say currently.

Of course, if you're on the west-coast or lean more towards Python, Slide is always hiring.



* As it turns out, Myspace runs one of the largest .NET sites on the internet, and lays claim to the largest SQL Server installation on the entire planet.
Read more →

Widget Summit Slides

I recently got off stage at Widget Summit and figured I'd better post my slides before I get back to the grind at Slide.

Unfortunately given some of the restraints on my personal and professional time, I couldn't come up with an entirely new presentation for this event but some of the concepts I've talked about at previous presentations and talks could be brought into this presentation. The audience here at Widget Summit was slightly different than previous talks so I needed to modify and remove some of the more developer-targeted content as it simply wasn't pertinent to this audience.

In general I think the talk went reasonably well, with the sole exception of running about 10 minutes short of the allotted time because I talked too fast. It did however give me the opportunity to answer plenty of questions. I hope my slides are more informative than I think they will be by themselves, since I didn't have any presenter notes and was speaking impromptu almost the entire time. Enjoy?

Facebook for Widgeteers (PDF)
Read more →

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 →

Conference Season: CommunityNext Platform

As luck would have it, I'm currently masquerading as Max at CommunityNext in Sunnyvale. The underlying drive behind the entire event is to discuss some of the intricacies behind a locked-down platform like Facebook's. CommunityNext is interesting in that Noah Kagan, one of the organizers, did a really good job of finding, and bringing a lot of the upper tier Facebook Platform developers to Silicon Valley from Philadelphia, Boston, New York City, etc.

If nothing else, CommunityNext is rumored to have great parties, and there just so happens to be a BBQ later today down here in Sunnyvale. It's somewhat late to suggest that everybody I know to attend, so I'll just mention that you're missing some good fun in South Bay, and leave it at that.
Read more →

Remix 07 Boston, Woohoo!


Turns out I'll be attending Remix 07 Boston next week but unfortunately my mega-cool-Silverlight hack won't be finished due to some scheduling complexities involved with working 130% of my time at a start-up in San Francisco (turns out, not too conducive to side-projects). I will be arriving bright and early at 6:30a.m. pounding down a gigantic (and expensive) airport coffee, and then heading to the Hyatt Regency Cambridge, so I apologize in advance if I look exceedingly tired Monday morning.

It'll be a great opportunity to get a feel for where Microsoft thinks that Silverlight is going, and how they intend to get there. It's a long hard road to even become near where Flash is in terms of market entrenchment, but Microsoft is one of three companies I believe currently capable of acheiving it (the other two being Adobe itself [bought Macromedia, they cheated], and Apple).

I would also like to give those Popfly guys an earful but I may spare them depending on how busy I am trying to find some fellow Facebook developers that live in the Boston area, or Miguel, who I'm pretty sure doesn't exist, but is merely a robotic creation of some wacky laboratory in Mexico.

If you'd like to meetup and have lunch, or a beer in the evening Monday or Tuesday, feel free to send me at email (tyler@slide.com) or track me down during the actual conference (i'm this guy).

Special thanks to Anand for what us young-folk call "the hook-ups" and I look forward to seeing both of my blog readers in Boston next week ;)
Read more →

Graphing Social, Building your first app workshop.

As one of the developers behind a big Facebook application or three (1, 2, 3), I've tried to share the love as much as possible. I can be found regularly on the #facebook channel on Freenode as well as in various tea lounges and bakeries. Through our Indie App Promotion in Top Friends and some other projects still developing, I'm trying my best to help ease the transition from web developer, to Facebook Platform developer as much as possible for my fellow hackers out there.

So, partially because my employer has been gracious enough to allow me, and because Dave McClure has given me the opportunity, I will be hosting a workshop at the Graphing Social conference in San Jose, CA, this upcoming Sunday.

The workshop is titled "Facebook App Dev 101: Intro to Platform / Building Your First App." In the first half of the workshop I'll cover some of the basics, with an introduction to the Facebook Platform, some Facebok Platform developer resources that are available, and then I'll touch on the various frameworks available for the Facebook Platform ranging from Facebook's PHP4/5 client library, to PyFacebook (Python), rfacebook (Ruby), and the Facebook Developer Toolkit (.NET). The second half of the workshop will cover building a sample application from the ground up, i.e. from setting up the developer version of the application as well as the live version, to writing a basic feed-postin', invitin', profile updatin' Facebook application in PHP and finally to running some basic tests and setting up basic metrics for the application.

Regardless of whether the workshop is recorded on video (it's going to be two, hour and fifteen minute, sessions, so most likely not), I'll be sure to post my "workshop materials" here after the fact. Hopefully they become as useful to novice Facebook Platform application developers as I hope my previous presentation "Coping with Success" (video) has been.

If you're in the Bay Area, I would highly recommend at the coming to Graphing Social as most of the bigger players on the Facebook Platform will be there, and it should definitely be an interesting conference, and if you're a developer who wants to get the scoop on developing Facebook Platform applications, be sure to come to the super-mega-awesome workshops we'll be doing this Sunday preceding the two main days of the conference.

Hope to see you there :)
Read more →