For years I have used Ubuntu for my desktop environment and CentOS in production. Why? Ubuntu makes a great desktop distro and since CentOS is basically a copy of Red Hat, it is considered an enterprise OS.
The trouble with being an Enterprise OS is you avoid the latest updates to the OS and aggressively patch proven packages. CentOS has worked fine for me up until recently and I suspect all my future deployments will use Ubuntu. CentOS packages are lagging behind and this lag is causing pain. Here are some examples of my recent pain points.
Every 3 months on the dot I fail my PCI compliance scan with the following error.
OpenSSH 4.3 is vulnerable Severity: Critical Problem
OpenSSH is up to version 5.8 but RedHat keeps patching 4.3. It is totally secure, it has the latest patches but every 3 months I need to contact the scan company and prove that I have a patched release. Not fun.
CentOS is using gcc 4.1.2. Gcc 4.1.2 was released in 2007 and many tools are requiring newer versions to work. Most recently I tried using opscode/chef and while the site says it works with CentOS you’ll need to update the compiler to 4.2 or higher. This defeats the purpose of using Chef IMO.
I also find myself building things like git on CentOS that are part of the standard repository on Ubuntu. Sure, I can start adding random repositories to get these things but I’d rather work with an OS that has them in the default/supported repository.
I’ve talking with colleagues at several other companies over the past few weeks and several are using Ubuntu Server or are planning on getting off CentOS in the near future. A side note on Rails from my talks, there seems to be little excitement about CoffeeScript or Sass in Rails 3.1 (just learn css and js already) and folks prefer test-unit and shoulda over rspec. I totally agree with this sentiment.
Good wiki pages have good titles and the title is usually in the URL. This is all well and good but if you’re creating pages on a corporate wiki that is hidden from the outside world, your title may be giving away too much information.
A few days ago on twitter one of my colleagues noticed this post on twitter.
His initial thought was that all our candid discussions about Erlang on twitter gave us away. But this wasn’t the case.
For those non-techies out there let me explain what a referrer is.
When you click a link on a web page, the destination site is sent information on what page sent it the traffic. The source page is the referrer (or referer as it is misspelled in the HTTP spec). There are several useful applications that use the referrer information that I won’t discuss here. Naturally, Wikipedia has a good article on the subject. http://en.wikipedia.org/wiki/Referer
What would have been worse is if we had a page called wiki.office.aol.com/wiki/Technology_Acquisitions_In_Process and someone at company X noticed this referrer in their access logs. If company X was a public company that person might run off and buy a pile of stock based on this simple observation.
Now most wikis are public and people wouldn’t be creating pages like this in the public space. But more and more companies have internal wikis and it is becoming common to discuss things on these pages that should not be shared with the public. Rather than having to worry about your page titles giving away too much information I have created a mediawiki extension that will prevent referrer information from being sent to external sites.
Information on the extension can be found here.
A few months ago I was asked to do a Technology Due Diligence of SocialThing. My 1st reaction was why do we need another aggregator? We have BuddyFeed and several technologies that are proven to scale. People always snicker when AOL and technology are mentioned in the same sentence but the fact of the matter is that we’ve been building products that need to scale to millions of users, on day one, for well over 15 years. There are some amazing software engineers at AOL.
Back to SocialThing….
As TechCrunch and others have noted, there are several social aggregators out there, but SocialThing found a powerful niche in the LifeStream aggregation market. Let me start by defining what a LifeStream is and then I’ll get to what makes SocialThing unique.
LifeStreams focus on feeds about your life.
- What you are doing right now
- What pictures you recently uploaded
- What you posted to your blog.
Feeds on news and other events that are published by 3rd parties are not part of a LifeStream. They may still be feeds but they are not part of your life.
Life with a single social network
If everyone updated their status, uploaded pictures and blogged on a single social network LifeStreams would be easy. The standard Facebook News Feed would be all we needed to keep up to date with what our friend were up to. Of course, if there was a single network it would probably be pretty boring. Competition between social networks means we’ll always have the latest and greatest features, and if we don’t we’ll eventually move to where the best features are.
The problem with this competition is that our online life is fragmented and our friends are in various places. If we want to keep up with everyone we need to sign into several services or find a way to aggregate information on the people we care about.
LifeStream Aggregators try to make this easy. I’ll compare three of them here. These notes were made on my wiki a few months ago when I was hashing out what it was we were looking to buy.
Many of the things our friends do are available via public feeds. This makes pulling them together in a meaningful way easy. FriendFeed makes this easy but you need to define what you want people to see in your feed (Me Feed) and then people can subscribe to your feed.
For example. I can quickly build a feed on FriendFeed that includes my Twitter, Pownce, Flickr and Blog feeds. Then my friends that use FriendFeed can subscribe to my feed to build a LifeStream of people they follow. FriendFeed makes this easy but its another account you need to create.
AIM Buddy Feed/ Buddy Updates
AIM has a buddy feed that does almost the same thing as FriendFeed. The AIM Buddy Feed feature is not well advertised but if you set it up your updates will show up in your friends buddy lists. Setup your feed here. If AOL promotes this feature and your friends are already on AIM this will save you from registering at yet another site. The aggregation of all LifeStreams of your buddies has been at dashboard.aim.com at times and then disappears. I hope it comes back soon.
SocialThing makes aggregation simpler than FriendFeed and AIM Buddy Feed because they took a different approach. Instead of requiring all your friends to join SocialThing they just pull your friend’s feeds from the networks you already belong to. They also let you post messages to your various networks.
They can do this because they ask you for your name and password on these sites. Personally I find this scary. Some sites like Facebook can give 3rd party sites tokens that they can store and use to access your account so the password is never sent to the 3rd party site. But sites like Twitter do not have this capability so sites like SocialThing need to save your username and password.
What do you get for giving up your usernames and passwords? Power!
Some services like Twitter have APIs to fetch your aggregated LifeStream in a single call. This makes SocialThing’s job easy. Other APIs require a 2 step process to get the aggregated LifeStream.
- Step 1 — Fetch my friends
- Step 2 — Fetch my friend’s “Me” Feeds.
This second scenario presents a scaling nightmare. If I login to SocialThing and I have 5 networks that require a 2 step process and I have approximately 50 friends in each, they need to make (5 + 50*5) 255 calls anytime I visit. They then need to keep polling these services to keep them up to date. This is a lot of work for SocialThing to be doing but it is also beating up on my 5 networks. As SocialThing grows its user base they might find their IP Address block as they overload the sites they are polling to build LifeStreams.
Another nice feature that you get by giving SocialThing your password is the ability to send messages to your various networks from SocialThing. With 1 click you can update your status on Twitter, Facebook and Pownce.
Honestly, I don’t know. At this point the product folks are in control. We have an opportunity to make a great product even better and to bring our AOL, AIM and Bebo users into the world of LifeStream aggregation.
I normally keep my caffeine intake to a minimum (i don’t drink coffee) but due to big code drops at work I just had a cup of coffee with hot chocolate mix instead of cream/sugar.. It was pretty yummy and now I’m wired.