Open Twitter

I've been thinking a lot about Twitter lately. Despite how I might use Twitter and my personal opinion of the service, I feel that the idea of a real-time broadcast medium is a good and desirable one. That said, Twitter itself is flawed in a very deep way, namely that it is a proprietary service, built (internally) using proprietary technologies. Sure, there is an API, but Twitter holds the keys to it and may revoke access at any time and for any reason. 

When thinking of Twitter as a new type of communication medium, I'm at a loss to find a good reason why one company should have absolute control over the system. Even if Twitter remains completely benevolent, there are practical reasons why it is a bad idea. Foremost is the issue of reliablity. Twitter has had a hard time being a reliable service, and it makes me wonder, is it acceptable for a communication medium to go down, as a whole, for every user? Email does not go down. Yes, different providers will have outages at different times, but it's not as if all email access would ever go down at one time. Same for the telephone service. A communications medium should be reliable. Internet communications only become reliable when they are replicated and distributed. This will not be possible with Twitter. Twitter could build replication and distribution internally (as they already have), but it will still be a single service operated by a single company.

So, if a communications platform was to be created, as a sort of Open Twitter, what features should it have? I think there are four important features needed at the start.

  1. Real-time streams. This is core and what makes it unique.
  2. Identity. Just as @df_jones identifies me uniquely on the Twitter network, some unique ID would be needed in an open system.
  3. Broadcast. With the concept of following a broadcast source.
  4. Search and categorization. Should be network-wide (even for streams that are not followed).

An ideal replacement for Twitter would likely be a protocol or a group of protocols to allow these features to be built out. In an open system built on open protocols there could be many service providers in addition to individual users who interact with the service using their own resources—much like email and various webmail providers. 

One could spend a long time trying to create new protocols to fit these needs, but I have come across one proposal that builds these features on existing technologies and standards. You can read that proposal on the P'unk Avenue Window. If you find this to be an interesting concept, I highly recommend going there and reading that post.

RSS with with domains providing user identity (just like email— seems like a good, open way to approach this problem. The biggest criticism I find with what they've proposed is that it relies on search engines to provide most of the real-time capability. However, the upside to this is that there are many search engines (and perhaps new services that would be created) that could fill these needs instead of a single provider.

As more people join Twitter (and Facebook, for that matter) and make real-time, broadcast communication a part of their lives, the tech community has the responsibility to pause to evaluate the world around them and the services they use. When they do, I hope they will come to conclusions similar to what I've talked about here. 



Closing Cr-48 and ChromeOS Thoughts

Now that Google has productized the Cr-48 and anounced the Chromebook, I wanted to write down some closing thoughts as a Cr-48 pilot user.

I'll start with the positives.


  • Lightweight, nice form factor (obviously this could change with different hardware providers)
  • Fast boot times and very fast wake from sleep
  • Chrome runs well, but is not fast
  • Long battery life even with WiFi on
  • Accounts and settings sync seems to work well, but is essentially the same that you get with normal installs of Chrome


  • Video sucks. This is 90% the fault of Flash and 10% the fault of Google. Any Linux system with low-powered CPUs will have problems with Flash and the Cr-48 is no exception. It will probably improve, but will likely not ever be a great experience. (At this moment, Netflix doesn't work, but supposedly they are working on a Chrome App.)
  • Audio is meh. I guess it depends on where/how you get your music on the web. Web based streaming will work just fine, but you won't come anywhere close to the experience of a dedicated player or something iPod/iPad like.
  • I haven't found Chrome Apps that make me care about the Chrome Web Store. Granted, I haven't spent all that much time looking, but, not even once, I have I found one recommended by someone else on the Web
  • It's hard to get any work done on this computer. Of course, that's specific to me (when I say work, I'm talking about programming or other developement related tasks).
  • The form factor, while nice, is not really different from what you could get with a proper laptop.

However, I think the biggest problem with ChromeOS is that I don't see how it will fit into an average consumer's life. If you want a lightweight, web browsing and content consuming device, I feel like a tablet is a better option. My iPad 2 feels about as fast as the Cr-48 in normal web browsing tasks. The media experience on the iPad is definitely better. 

Looking up the other way in the computing spectrum, I feel like if I'm already going to use a notebook like device with a full keyboard, I might as well use a full notebook and have available all of the power of that platform.

So, to me, the Cr-48 and ChromeOS feels like its stuck in this valley where it doesn't make much sense given the other options on the market. Maybe they could compete on price, but for the announced price of $350 for Chromebooks, I feel like its probably a little too expensive. I'm also unsure that people will realize what they are buying if they were to pick up a Chromebook in stores. How many consumers would be comfortable not having access to anything outside of a web browser?

That leaves me wondering, is there any market where a Chromebook makes a lot of sense? Potentially, yes. I see the biggest benefit in markets that can take advantage of having everything stored "in the cloud". For example, businesses and education comes to mind. In both cases, there is benefit to giving the user a computer that is simply a terminal to a controlled environment (meaning a company's web portal or a school's eductation web app). These markets tend to be naturally moving toward completely web-based work flows, so a device like the Chromebook, where administrators don't have to worry about what software is installed locally, or what the user might do to screw it up (no more viruses!), could potentially be a great fit there.

Well, it's been fun using my Cr-48 and I'm glad that Google sent one my way. (How awesome is it that a company sends out such a significant piece of hardware for free?!?) However, I don't feel like the Cr-48 ever found its way into my life. It turns out, I don't need an underpowered laptop running Chrome when I have a very powerful laptop that also runs Chrome.

Chrome OS Things Worth Noting

Here's a few things worth noting about Chrome OS.

You can turn on experimental features by opening the "about:flags" page and enabling the features you see listed. At the moment, I'm trying out the media player and the click-to-play for plugins. The click-to-play for plugins is a nice feature, since it allows me to block flash (except for when I want to play it) without needing an additional extension. 

Actually, I don't think you need to enable the "click-to-play" flag. Seems that if you go to Settings > Under The Hood > Content Settings you can set plugins to require click to play without having that flag enabled. So, at this point I'm not sure what turning that flag on does.  

More Chrome OS and Cr-48 Thoughts

After a few more days with the Cr-48, I've got a few random thoughts I'd like to share.

Performance of the device is not as great as you might have hoped. Pages with a lot of elements (think ads or widgets that load from various sources) load slower than I'd expect. I'm sure only having one Atom core available to Chrome is holding perf back a lot here. Something interesting that I noticed is that the Chrome task manager shows a GPU Process. I'm not sure what it's used for. Could be there simply for WebGL, but it's possible they are going to accelerate the page rendering pipeline with the GPU.

Flash performance sucks. This surprises no one. In general, Flash on Linux sucks. Flash on Linux on Atom sucks even more. It's too bad really, cause I'd like to watch video on this thing, but unless you knock the resolution all the way down it's almost unusable. I don't think Chrome OS really has anything to do with this (or that they could do much to improve this). This problem is in Adobe's hands. Thankfully, it seems that Google has been able to pull Adobe's strings to get them to care a little

The trackpad isn't that great, but it's not as bad as some people think. Maybe I'm just lucky with my hardware, or there have been software updates to fix things. I don't know.

I mentioned before that I switched my machine to Developer Mode. Now, I've switched back. Turns out there wasn't that much going on to make Developer Mode worth it. Sure, there's a full terminal, but you can't easily install apps (in fact the root partition is not even mounted with writes enabled) or do much other than much around with the file system. So, as a user, it's not very useful. If I want access to a full Linux system, I'll install Ubuntu. That's not what Chrome OS is about, so I decided that I wouldn't bother messing around with it. So, I'm back to normal (l)user mode. 

Surprise, Google's Cr-48 Running Chrome OS Arrives!

Today I received a Google Cr-48, a lightweight laptop running Chrome OS, as a part of their pilot program. It was a surprise since Google doesn't inform you of your acceptance into the program. The only way you know you got in is when the laptop is in your hands. 

The BoxThe Cr-48 up and running!Here's some of my initial thoughts after a few hours of playing around with it.

The build and quality of the hardware is pretty high for what is most likely an inexpensive laptop. Much nicer than earlier netbooks, such as the Eee PC that I've had for two years. The keyboard is pretty nice (I'm typing this on the Cr-48), higher quality than I'd probably expect on a laptop of this caliber. I also like the rubberized feel to the machine. Seems like it would be harder to drop this thing than if it had a glossy finish. The biggest flaw that I've noticed so far is with the operation of the trackpad. It isn't honestly that bad, but it does stand out as something that should work better. I've been spoiled by Apple trackpads for some time, but even basic scroll gestures can be tough on this pad. I feel like it's something that will probably be addressed in a software update.

Right off the bat, I wanted to get into the Linux system that this machine is built on. The default configuration allows you to press Ctrl+Alt+T to open a very minimal terminal. The only familiar things that seem to work are minimal access to ssh and top. There what look like some developer/debug commands and that's it. Thankfully, Google builds a Developer Mode into the machine. Accessing this is as easy as flipping a switch located under the batter of the device. Here are instructions for how to do that. Once you do, the machine will do its thing as it boots and wipe all local storage in the process. After it's up and running, here's a list of some of the things you can do. Most useful to me is full shell access on a virtual terminal. At least with this, I could conceivably get some work done using this machine. Without dev mode, I don't think that'd be possible. 

I'm really glad to have one of these to play around with. I think it will make a fun companion for the upcoming holiday. Also, free Verizon 3G service is awesome. Thank you, Google! While I'm definitely excited to have my hands on this thing, I'm not convinced that Google needed to develop an entirely new (well, halfway new) operating system for Chrome. I imagine most of the pain points and issues that they get feedback on will be OS level things that have already been solved well in other operating systems. Linux is a great platform to build on, but its hard to catch up years of usability efforts put into other consumer OSes. Chrome is a great browser and I love using it, but I'm not sold on the idea that it should be the only thing my computer is capable of doing. Still, I'm going to keep using this device and put it through its paces. Off the bat, it seems to be a good netbook. 

Ants in an Infinite Loop

This is one of my favorite things about ants -- the ant death spiral. Actually, it's a circular mill, first described in army ants by Schneirla (1944). A circle of army ants, each one following the ant in front, becomes locked into a circular mill. They will continue to circle each other until they all die. How crazy is that? Sometimes they escape, though. Beebe (1921) described a circular mill he witnessed in Guyana. It measured 1200 feet in circumference and had a 2.5 hour circuit time per ant. The mill persisted for two days, "with ever increasing numbers of dead bodies littering the route as exhaustion took its toll, but eventually a few workers straggled from the trail thus breaking the cycle, and the raid marched off into the forest."

Well, at least programmers aren't the only ones who have to worry about this. 

via:, originally:

Long Live the Web

Here's a great article on Scientific American by Tim Berners-Lee, the creator of the World Wide Web, about keeping the web open and free. 

Why should you care? Because the Web is yours. It is a public resource on which you, your business, your community and your government depend. The Web is also vital to democracy, a communications channel that makes possible a continuous worldwide conversation. The Web is now more critical to free speech than any other medium. It brings principles established in the U.S. Constitution, the British Magna Carta and other important documents into the network age: freedom from being snooped on, filtered, censored and disconnected.

I completely agree with what Berners-Lee has written. I see the Internet and the Web as one of the most important inventions of the modern age. It is certainly worth defending. 

Mac OS 10.7 -- Probably not the last of its kind

Here's a quote from a TechCrunch article about Mac OS 10.7:

The computing world is shifting into the age of mobile, and iOS is now seen as Apple’s major operating system. Perhaps OS X Lion will represent the beginning of a unification between OS X and iOS. And if Apple is giving it the Lion moniker, which they won’t be able to top, perhaps they mean this to be last version of OS X? (Though they do say “next” version of Mac OS X and not “last”.) 

It seems really odd to me that anyone would predict that the next release of OS X could be the last. As if everyone is suddenly leaving their desktop and laptop computers behind in favor of their iPhones and iPads. Trying to merge iOS and OS X would be fundamentally stupid. They are operating systems that target different types of devices with wildly methods of user interaction. Sure, it's smart to share some components, but I wouldn't want to run the exactly same OS on my phone and computer. 

Promote JS

Documentation is important, especially when you are learning something for the first time or even just a new aspect of a familiar technology. For Javascript, I think good documentation is even more important since different browsers can potentially have different behavior. 

That's why I'm adding this banner to my page:

JavaScript Reference, JavaScript Guide, JavaScript API, JS API, JS Guide, JS Reference, Learn JS, JS Documentation

Read more about this banner and how it will help on

Qlobe (Ruby Quine)

Check out this awesome Quine written in Ruby. The best thing is, the globe will spin with successive output. Be sure to read more here: The Qlobe