Brainstorming


16
Jul 08

Popurls Replacement

I’ve got a subversion repository full of projects that are essentially ‘proof of concept’ hacks and I’m fucking tired of seeing them in there. Lots of them were ideas I have while doing systems administration. Some of them are goddamned atricous (but functional!) perl programs I wrote for graphing NetFlow statistics, and for visualizing BGP routing. They all worked but I kept them to myself and they were forgotten.

One proof of concept hack I’m going to flesh out is this quick rails app, that with some initial groundwork laid out by Anis, is essentially another RSS reader. Actually its just an unapologetic Popurls ripoff, but I had a good reason for doing it. I like the popurls layout and the concept: Being able to see all the latest ‘buzz’ in one spot. The issue is that none of that information is at all important, but for some reason hitting refresh is really pleasurable. Who cares what the people on Digg and Reddit are saying. Fuck you. I want to know more about Cloud Computing, Cooking, and Sailing, and I want to be able to digest that information with a glance – not browse through it site by site, category by category. Bah! (Its still a long way off from what I *really* want but more on that later)

Anyway, here’s a screenshot. Once I’ve setup OMPL imports, User Accounts and fixed the Background Processing chunk I’ll release version 0.0.1 to the public.

Note: I acknowledge the total uselessness of Slashdot, and I don’t read Al Jazzera – I was just seeing if it would work. I dont know what those words are.

Update: I’ve checked some rudimentary code into GitHub.


15
Jul 08

Feature as a Service

Websites have gone from hand-typed static pages, to massive applications with every feature under the moon. Most applications have some secret sauce that does magical things in the background – whether that be the ability to handle massive amounts of volume, reduce the barrier to entry into a market, or just keep users engaged by providing endless amounts of quick short updates.

Take Amazon as an example. Amazon operates their environment as a bunch of different groups, each running different services within the same company. S3, EC2, Payment Services. They’re all independent, highly scalable functions, tied together in the application we call Amazon.com.

Companies and startups are starting to break this operational model open, and putting those individual functions online for everyone. They’re building services that do something really well – or rather that do one thing really really well. They’re companies that focus on a specific function or feature and are open enough so creative people can say “I’m going to take this, this, and this – mix it in a pot and voila!”.

Do you want to build your own Twitter? Find an SMS gateway, Cloud Computing Host and XMPP service provider.

Do you want to build an interesting RSS/ATOM service? Find an RSS aggregator service and pour on some glue – see what sticks.

It’s Feature as a Service world (to use an already overused description). Eventually cloud companies will realize that doing one thing really *really* well is tremendously valuable. Why does everyone have to build their own DNS service? Why does everyone have to build their own hosting system? What about Enterprise Storage, Authentication, SMS Gateways, Massively scalable XMPP services? How come I have to do that myself? Can 10,000 messages sent through a jabber server be worth a dollar? I think it can (maybe the math needs adjusting but you get my point). We’re all really just building a massive computer called the internet, only with each big trend we replace ‘The Internet’ with something else. First it was ‘The Web’, then it was ‘Web 2.0′, and now its ‘The Cloud’. The fact of the matter remains – the further along we go the more tightly knit the internet becomes, and that means that theres opportunity for programmable white label services to propel us further and faster.


3
May 08

RSSI – Realy Simple Syndication for Interaction

After working on a few projects and thinking about how to tie multiple services and interaction processes into one location, I realized that there needs to be a really easy way of publishing the interactions or feedback that is required from a user for a specific application.

The nice thing about RSS is that you can find the information that you may believe is relevant or of interest to you, then have that information centralized in one place. There are websites that do this for you, such as Google Reader, or Popurls (non-customizable but pretty), and there are systems that aggregate social newtorking sites such as FriendFeed, but there isn’t a single place I can go to ‘push the buttons’ for all the applications I interact with in my day to day life. At it’s simplest RSSI is a simple boolean question with a custom prompt and application identifier.

Would you like to accept a friend request? Yes

PayPal payment failed, resend? Yes

Your virtualization environment requires upgrading, okay ? No

Things can get more complicated with fields and text values being sent along with the response, or even images sent with the interaction. What if you need to sign up for 10 services at once? Send me all the CAPTCHA images then I’ll send you the proper values in text boxes associated with each image.

With regards to implementation, things quickly get heavy, with message bus architectures, authentication and authorization, and a standard framework for describing an interaction with a user and UUID’s for interactions. Prompts, type of responses, values of responses, further action, etc.

I think this would be really cool – We’ve eliminated a lot of the repetitive actions required to get the content, we just need to figure out how to reduce the amount of work required to make things happen.


26
Apr 08

Highly Efficient Datacenters for Grid Computing

Grid services and platforms that are always on and always available are awesome for running cheap, highly-available services on the internet. That’s great, because it means the barrier to entry, and the cost to deliver those services is low making innovations by small teams with little to no cash much more possible. What it means though, is that we’re creating Datacenters with tons of capacity that’s being used during two peak periods throughout the day. After speaking with a few Datacenter architects are the Sun Open House, I realized that not only are todays DC designs supremely inefficient, but most of the stuff running in them isn’t being used up to 80% of the day. Cooling costs are extremely high, and the cost of running a grid to sustain maximum capacity + wiggle room is shocking. So in order to reduce those costs some companies like HP and Sun are actively looking at computers that will turn themselves off or into ‘low power’ mode when not being used. That’s cool, but I don’t think we have to wait for them to build that system. If a computer isn’t required, then a remote ‘green monitor’ can log in and gracefully shutdown unnecessary systems, and the magic known as ‘Wake-on-LAN‘ can be used to bring them back up again. If you could build that into your grid then you could instantly save energy, not only to run a system, but on cooling as well. Of course, this would have to be mapped to a prediction engine that would say ‘traditionally we’ve needed more capacity at 7:30AM Pacific, so boot up some systems’, but that would be a really fun project.

Let’s take it one step further.

If energy costs are really high then you want to use asĀ  little of it as possible. So how about grabbing compute cycles from a grid that’s in the peak power zone for Solar? It’s cheap to send a few hundred gigs of data to be crunched, but its expensive to work on it. If you could do that, then you could have your capacity for computing literally follow the Sun. Someone has to work out the math on what’s cheaper – moving electricity, or moving the cycles, but my bets on the cycles because I think a mile of fiber costs less than a mile of High-voltage lines.

DC A wants to send a data crunching job offsite. It’s going to check the International Grid Exchange (I just made this up) for cheap capacity somewhere. DC B’s rate is 5.28$/teraflop hour because it’s in Iceland (which has cheap bandwidth and geothermal energy – oh and its cold). DC A’s rate for the same service is $8.22/teraflop hour, so DC A exports that task to DC B, and when it’s done DC A gets the resulting data set – or a trickle of data comes back over the tasks compute time.

Now we have a market where the most efficient winner gets the utilization. True utility computing, true scaling on demand, no market hype or hand waving.

You could even buy Grid ‘Futures’; You want to make sure you get the capacity, or you could prospect and buy chunks of time for resale later on. Basically turning computing into a true commodity.

I hope that’s one way to make computing a lot more efficient.