Home

Archive for the ‘My Releases’ Category

SXSW09 Live Blogs (all 28 of them)!

Tuesday, March 17th, 2009

With SXSW interactive coming to a close today, we would like to thank everyone who liveblogged the hell out of the sessions for the education/enjoyment of the rest of us suckers who weren’t down there. We’ve been following along all week and you guys did an awesome job!

Hope to meet you all at mesh in a couple weeks where we can thank you in person (and get a beer) :)

SXSW 09

Friday, March 13, 2009

Saturday, March 14, 2009

Sunday, March 15, 2009

Monday, March 16, 2009

Tuesday, March 17, 2009

Our database CPU during the iPhone OS 3.0 event today

Tuesday, March 17th, 2009

We’ve spent a lot of time since we launched last Spring improving our software load-handling. To give you an example of how our infrastructure has improved, here are the CPU levels on our primary database server during the iPhone OS 3.0 event today. This liveblog alone was sustaining over a thousand people at a time (remember, those are real-time numbers of visitors, not totals). As you can see, our database rarely got over 2% CPU for all the events running simultaneously this afternoon.

There is lots more we can do to further cache our sites, but for now, I’m happy to report that we are looking very stable under those spiky loads :)

Database CPU

Varnish HTTP Accelerator + ASP.NET + IIS

Sunday, February 1st, 2009

For the past couple of days I’ve been trying to figure out the best way to run an HTTP accelerator on the front-end of ScribbleLive. To handle the really spiky loads (20,000 GET/s) we get around large events, we do a lot of memory caching using .NET static variables and memcached for the bigger items that need to be distributed. But we’re still limited by IIS’s ability to serve the requests, which adds on a lot of WindowsAuth, OutputCaching, etc. overhead that really isn’t needed if we’re just serving static files. And it would be great to use something running on Linux (cheaper licensing and servers) on Amazon EC2 (easier to add new servers when we need them).

I’ve known about high performance servers like lighttpd that have been around for a while, and the new up-and-comer Nginx. I tried them out and they are amazing at serving-up content (PHP, Perl, mono, Rails) but their proxy abilities are still in their infancy. For example, Nginx when acting as a proxy has a Memcached Module which can check Memcached for an object, before going back to the origin/upstream server. However, you have to load your cached items into Memcached yourself, so it’s very useful yet. (Sidenote: the Nginx project is very impressive and I’m definitely going to watch them over the next year). Squid is the obvious choice when it comes to “proxy” and “caching”, but the other projects seem to perform much better under stress; not to mention, Squid configuration for a reverse-proxy is horrible.

After a lot of messing around in /etc config files, I stumbled on Varnish. Varnish isn’t a proxy product or a server like the others. It was built from-the-ground-up to be an HTTP accelerator, and it shows. Configuration is very straight-forward if you’ve used a CDN before, and it can do a lot of URL rewriting, managing cookies, edge-server includes (ESI), backend health polling, and support for inline C. The docs leave a lot to be desired, but you can’t have everything ;)

I got Varnish running on a Fedora virtual machine in Amazon EC2 with ./configure && make && make install. Then you just have to set-up a configuration via /usr/local/etc/varnish/default.vcl and launch the daemon.

On ScribbleLive, we use an ASP.NET session (stored in Memcached, with SQL 2005 failover) to keep track of your login. But until you login, we don’t use the session for anything. So my caching strategy is this: cache everything (images, stylesheets, etc) including ASPX files without any Set-Cookie headers until you login, then don’t cache ASPX files. Logging in is done via an HTTP POST, so I just told Varnish to not cache POSTs, and strip all cookies from cached responses unless an “ASP.NET_SessionId” cookie was sent in the request.

Here’s the configuration file I’m using which seems to work great. It remains to be seen if I actually roll this out into Production sometime soon, but using it myself in our Staging environment, it gives a massive improvement in page loads and origin offload, so I wouldn’t be surprised if someday soon when you visit ScribbleLive, you’ll be going through Varnish ;)

New liveblog translation tools from ScribbleLive

Thursday, January 15th, 2009

We want to bring together as many people as possible with the liveblogs on ScribbleLive and as such, supporting writers around the world has been our goal since day 1. Now we have taken our on-the-fly translation and extended it to our embeds.

If your site supports many different languages, you can now easily embed the same liveblog and have it translated to any major language. For example, you could be writing in English, but your Spanish visitors could see the liveblog in spanish, your French visitors in french, etc.

It’s as easy as adding ?lang=fr (where “fr” is the shortcode for any language) to the src of our standard iframe embed which looks like this:


For example, the same liveblog in french would be:


Below is an example of the same embed translated into 4 other languages.

We hope you like our new feature and please keep the suggestions coming. Happy liveblogging!

Original:

English (?lang=en):

French (?lang=fr):

Spanish (?lang=es):

Russian (?lang=ru):

ScribbleLive Launches New Look, New Features

Sunday, January 11th, 2009

There’s nothing like a MacWorld in the world of liveblogging. I often tell people that it’s the quintessential example of liveblogging. This January, we wanted to have something special for the users of ScribbleLive. We’ve been working on a major redesign for weeks, and this week we officially go live. This launch brings, not only a new look, but a new set of features and service enhancements.

The first thing you’ll notice is the look-and-feel. Since liveblogs are all about reading, we’ve made everything on our site as easy to read as possible; big, clean fonts everywhere on soft backgrounds. There’s nothing like 80px fonts to enhance readability :) There’s also much more sliding using the script.aculo.us library.

We’ve been trying to get a Twitter integration that makes sense for months, and I think we have it now. Not only do we make it really easy to “follow” a Twitter account and pull all their tweets into your liveblog, but we have a new Twitter live-search that will constantly check Twitter for anyone talking about your topic. The tweets will appear right in the sidebar where you can easily pull them in as comments. This provides a never-ending stream of comments for your events. Here’s a video walkthrough of using Twitter in your liveblogs. And of course, you can login to ScribbleLive with your Twitter account.

Another great feature we now have are “sticky” posts. During your liveblog you can click the “stick” button next to any post to pin it at the top of your liveblog. It’s a great way to keep a score or video stream where everyone can see it, or just use it as promotion for your site. We can’t wait to see how people use it and look forward to your feedback. This video walkthrough also shows you how to use sticky posts.

We now support any Flash embed. Just copy-paste the HTML for your embed directly into the input box and we’ll take care of posting it. We always supported YouTube but now you can embed videos from Ustream, Qik, or any other Flash widget. You can even write your own and embed them!

As well as the features you can see, there’s several big changes under-the-hood. We completely changed how live-updates work to use the power of the Amazon cloud products to handle more watchers than ever before. On Tuesday we successfully served up over 11M hits without any performance impact. We don’t just want to be the flashiest live publishing platform out there, we also want to have the most horsepower.

There are many more changes with this launch and the best way to see them all is to try us out! Thanks to everyone who sent us suggestions and please keep them coming. We love to hear what you think.

Happy liveblogging!

Scribblelive screenshot

.NET: Monitoring Windows processes from ASPX webpage

Saturday, January 3rd, 2009

I was recently working on some ScribbleLive features that require asynchronous processes to be running in the background on Windows. Since I want to make sure they keep running, I wanted Pingdom to be able to monitor (and alert) on them.

I was happy to find that in .NET, a web application can access the processes running on the host server. I whipped up this little bit of C# (which will be on an ASPX page) to check for the processes, and report if they are “UP” or “DOWN”. Pingdom will then check for the word “DOWN” on a request to the page and let me know if it finds one.

Here are the using statements that you have to have for this code to run:

using System.Diagnostics;
using System.Collections.ObjectModel;

Then here’s the bulk of it:

Collection<string> RunningProcesses = new Collection<string>();
RunningProcesses.Add( "Program1" );
RunningProcesses.Add( "Program2" );

Response.ContentType = "text/plain";

foreach ( Process proc in Process.GetProcesses() )
{
    if ( RunningProcesses.Contains( proc.ProcessName ) )
    {
        Response.Write( proc.ProcessName + ": UP" + System.Environment.NewLine );
        RunningProcesses.Remove( proc.ProcessName );
    }
}

foreach ( string s in RunningProcesses )
{
    Response.Write( s + ": DOWN" + System.Environment.NewLine );
}

When I have a bit more time, I’m going to add a call to Process.Start(…) to restart and processes that have gone down. You know, at some point this code will probably make me unnecessary :)

Brightness Theme Wordpress 2.7 Patch

Saturday, December 20th, 2008

I’ve been using the Brightness Theme on my blog for the past few months. It’s been great and a lot of people have complimented me on it. But it looks like the creator of the theme has gotten screwed by a domain-squatter. His site was DailyWP.com which is now just a link-farm page. It’s a shame because a lot of people are linking to that URL to get the Brightness Theme.

I have a copy of the theme files which I may post if they don’t come back soon, but for all those people already running the Brightness Theme, there are some issues if you upgrade your site to Wordpress 2.7. I’ve written this patch to fix the problems and get you up and running. There were just some minor problems with the setting screens and the “news sections” on the home page. Just drag these files into your /wp-content/themes/Brightness Theme/ directory and it should fix everything.

I hope those theme-ers at DailyWP.com come back some day; they did good work ;)

UPDATE 12/26: I’ve gotten a few requests for the full theme, so I’ve included it below with the patch applied.

DOWNLOAD PATCH
DOWNLOAD FULL THEME

berlineblase.de builds liveblogging console for Le Web ‘08

Tuesday, December 9th, 2008

Wow, I’m really impressed by what the berlineblase.de guys have built to cover Le Web ‘08 today. They put the ScribbleLive embed alongside the video stream of the event. It looks great and they have some great running commentary of the event.

Nice job guys! It’s great to see ScribbleLive taking on more of a roll as a platform for liveblogging, a focus we will continue to develop this month with the launch of our whitelabel product and a major redesign. Happy liveblogging!

The Score launches new liveblogs powered by ScribbleLive

Sunday, December 7th, 2008

Today is the inauguration of The Score’s new liveblogging site liveblogs.thescore.com powered by ScribbleLive. We’re very happy to be working with The Score on the first white-label version of ScribbleLive’s liveblogging platform. Even if you’re not at a computer, you can follow along on your iPhone with ScoreMobile. There’s lots more to come from The Score in the coming weeks, so keep checking back!

Today from 1pm EST Scott from Raptorblog.com will be liveblogging the Raptor’s game on the web or on ScoreMobile. Come join in!

TheScore-ScribbleLive integration

See how many people are watching your liveblog!

Tuesday, November 4th, 2008

With the US election tomorrow night, we couldn’t resist rolling out a new much-requested feature on ScribbleLive: a real-time visitor counter!

Everyone is curious how many people are watching their liveblog, and now it’s easy to find out. Whether you have your liveblog embedded, crossposted, or are linking right to scribblelive.com, we’ll keep track of the number of unique visitors watching your event in real-time. You’ll find the count right in the header and it’s accurate to about 20 seconds. The entire system is built on memcached so it can keep pace with all the traffic you hit us with.

There’s even more to come in the way of metrics including traffic graphs and other statistics. If you have any suggestions for what you would like to see, drop me a comment.

Hope everyone has fun liveblogging tomorrow night! Happy liveblogging!