Introducing Quick Group Chat

I’ve been working on a litte side project the last few weeks called Quick Group Chat. The site/service came from some IM conversations I was having with friends. I was talking to one friend on Gtalk and the other was on AIM and we were trying to plan a trip. There was no way for us to get in to a ‘quick group chat’ that let us ad hoc talk with each other.

I’d been looking for an excuse to play with nodejs and jquery, so I forked the node_chat example app. Since I started with the node_chat demo, I had a good structure to get started with. The app is basically built out of four files: server.js, client.js, style.css and index.html. To start off I added in a layer called ‘rooms’ in to the server that encapsulated a session, which represents a user. When a user joins, if they aren’t trying to join a room or if the server can’t find a room they were trying to join, a new room is created and an ID is given to it. The user’s session is assigned to that room and the chat buffer is kept for that room. The ID is passed back to the client, and the client updates the location.hash with the room’s ID.

From then anybody who has the URL with the location.hash can join the room. When the user navigates to that URL, the client passes the room ID to the server, and the server joins the user to the room. Since the chat buffer is kept for the room, every time a user joins the room they get to see the prior chat log. When the last user leaves a room, the room is destroyed along with all the data. Hence, quick group chat. Once you’re in the room, the URL is they to invite other people in.  It’s all pretty simple.

I also added in some styling to make it little more fun and easier to read. Each user is assigned their own color based on a color wheel. The formula is kind of fun and easy. For each user’s nickname the code goes over the nick and sums up the ASCII code for each letter in the name, then mod’s it against the total number of colors in the color wheel then assigns a CSS class for that color to the message. That way every time “Aditya” logs in, the user’s color is the same. There’s one exception, and that’s the “me” user. Your typing always looks the same always; thus, the way other people see “Aditya” is always consistent and they see a consistent color for you. I may change that later but it makes other people’s chat pop and your own words a bit more subdued.

Lastly, I hosted it on duostack. This was one of the coolest parts. Once I set up some SSH keys, I added duostack as a remote to my git. Every time I do a “git push duostack”, their remote repository is updated and the app recycles. It’s crazy easy to deploy to their service and it runs really well there. I’ve been amazed at how easy it is and really happy with the service.

Check it out, use it yourself, or fork it and let me know how it goes!

564 Words

Hello Sencha (& Goodbye Adobe)

This month I started a new job at Sencha, a small Silicon Valley startup that builds frameworks, tools, and services for the next web. I’m super-excited to join Sencha and to be working in a startup. Sencha has some killer frameworks (like Ext JS, Ext GWT and Sencha Touch) that make building amazing web content and web apps a breeze. The kinds of stuff you can do in the web with HTML and next generation browsers is truly stunning. I’ll be running the product management team, helping define, guide and take to market all of our products. Very exciting stuff.

Adobe’s been the smallest company I’ve worked for and I’ve always wanted to work in a real Valley startup. This was an amazing opportunity that crossed my path so I made the jump and I’ve said goodbye and thanks to Adobe. I look back at my years at Adobe very fondly — there are great people, products and customers there and I was sad to say goodbye to all my friends there. Doing a startup that I believe in made sense for me, so it’s a fond farewell to Adobe and to the Flash/AIR community. I’m super proud of the work we did shipping AIR for iPhone (aka Notus), AIR for TV (aka Stagecraft), the Mobile Distribution Service (aka Outbreak), and all the other projects, teams and efforts that continue to kick-ass.

Here’s to the next adventure! (and yes, we’re hiring!)

242 Words

Track of the Week: The Archives

I’ve been doing track of the week since mid-2007 and only started blogging the tracks in 2007. For archival’s sake, here is the full list of tracks going back to 2007. Hit the More / Continue reading for the full list.
537 Words

Track of the Week: My Life by jj or The Game

This week’s track is a bit of a choose your own adventure. You can pick from My Life by The Game, off of LAX, or My Life as covered by jj off of jj no 3. As simple as that, you have a choice: do you want the hardscrabble, mean-streets, the-world-is-f’ed-but-The-Game-made it version or do you a Swedish duo singing in a dream-pop and drifty way that “They say you ain’t grindin’ until you die”. The track as originally recorded by The Game for the album LAX, and was recently covered by jj on their jj no 3 album. Both versions of the song keep the same lyrics but take a radically different way of delivering them. jj did this before on jj no 2 and it’s a fun trick. You don’t often hear hard-core rap covered by dream-pop bands, and it’s something I think we need to see more of.

148 Words

The TV Content Ecosystem

Last week I shared the talk I gave at MAX which described the the new ecosystem of connected TVs for the Flash developer.

I wanted to take a look at one slide specifically and expand on what the talk track from the presentation. Generally speaking if you look at most content driven ecosystems, there are three components that make up the majority of the revenue. The content, distribution of the content, and advertising on the content. This applies in the TV ecosystem just as much as anywhere else.

This diagram helps articulate the various ways that money flows through the ecosystem. It’s not perfect but it’s a 50,000 foot view on how the money flows with a focus on the fact that you, the consumer, are basically paying for everything. The arrows point out which way the money is flowing. I’ll focus in more detail on the top half, which is for broadcast TV entertainment. The bottom half/third is about movie entertainment.

Value Chain for the TV Ecosystem

Value Chain for the TV Ecosystem

Distribution & Content

In the United  States, the majority of television is watched through some Pay TV operator, whether it’s a cable company like Comcast or a satellite company like Dish. This is the distribution side of the equation. Distribution accounts for roughly $75 billion dollars of revenue in the value chain and is mostly from consumer spending. This is basically the second row of the chart.

Most of the money consumers pay goes to the cable operator and then from them to the content creator to pay for the content. Cable companies pay a different amount for each channel they carry. For example, ESPN is the most expensive channel, costing roughly $4.40 per household passed (e.g. if Comcast is available in 10 million homes, Comcast pays ESPN $14.4m per month).

Online distribution is basically the same (which is the middle row), with the OTT aggregators like Netflix paying for each stream delivered rather than each household passed. There’s a lot of change happening in the online delivery world, and 2011 will likely be quite a bit different than 2010 was. Two specific things will happen in this space. First, Netflix’s deals are about to expire which means the cost they pay for content is going to change (and likely the cost you pay for Netflix). One of the key contracts in Netflix’s arsenal is its deal with Starz for $30 million. It’s likely to cost over $200m to get that content this time around. Second, much online content will come behind a pay wall / TV-Everywhere. This means that when you want to watch a video online (say on Hulu or you may have to sign in to your Comcast account.


The other major side of the equation is advertising — which in the United States is roughly $83 billion. At the core, the pricing for advertising is based on the size of the audience you can deliver as well as who that audience is.  Top shows like Lost or Modern Family get paid for by the advertising the network (ABC) sells for each of the shows. Companies like Nielsen are in the business of measuring the audience, and based on the ratings (e.g. points) the networks price out the advertising for the show.

In a 30 minute slot, there are 22 minutes of programming and 8 minutes of ads, so 16 ads. Typically they’re organized in to what are called ad pods, and each pod contents multiple ads. For each available spot some number of the spots will go to the network’s own cross promotion (i.e. while watching Modern Family you see an ABC ad promoting the new fall lineup), local ads (likely served by the distributor), and proper ads. The ownership of the ads in the pods is often part of the distribution agreement between the TV network and the distributor.

The DVR radically changed the way that measurements of audiences has done. New metrics like C3 added in broadcast plus three days of DVR recordings to the mix to capture people time-shifting. That same kind of “+3 days” is now occurring in the online world, too. With TV Everywhere, broadcasters and measurement companies will start to blend the online and broadcast world when it comes to ratings. Since online and broadcast audiences will be measured the same, you’ll start to see the same kind of advertising happening within the C3 window and at rates blend (or are the same) between two delivery methods.

746 Words

Track of the Week: Days Go By by Dirty Vegas

This week’s track is Days Go By by Dirty Vegas, off of their self-titled eponymous debut. An older track, from 2002, this album and this track are a great example of turn of the century (fun to say that!) house. Pulsing bass line, plus very low key lyrics that are layered with what sounds like a little auto-tune make this a fun track. The music video is also worth a watch.

Turn of the century context: this song won the Grammy for best dance recording in 2003. To give a sense of the sounds of house and dance at the time, other nominees where Superstylin by Groove Armada and Gotta Get Thru This by Daniel Bedingfield. The Groove Armada track is in the same general genre as Days Go By, but Gotta Get Thru This has all the sounds of a late 90s dance track.

143 Words

Track of the Week: Wonderman by Tinie Tempah

This week’s (weekend’s) track is Wonderman (featuring Ellie Goulding) by Tinie Tempah off of Disc-Overy. Wonderman is a high octane, bass-thumping synth-jamming track that immediately pumps you up. I think half the reason I picked this track this week is Ellie Goulding — her hook swings the track back and forth between hip-hop to electro-pop and I have yet to find something she’s done that I don’t like. The whole soundscape is uplifting, energizing and a great listen.

78 Words