Statically Typed

I used to think liberals were more logical than conservatives

I used to think that conservatives were just stupidly illogical. They deny things like global warming and evolution and parade out a couple “scientists” that disagree with the vast majority of those who have studied the evidence. They try to argue that things like evolution are more of a feeling than what science is – a method of discovering truth through verifiable, repeatable tests.

Unfortunately, I’m starting to see that liberals can be just as silly and unscientific – just on different things. One of my friends recently said that I should be eating fresh produce (fruits and veg) rather ...
More »

Reddit Demographics

Since this blog is so new and one of my posts was redditted (accounting for about 95% of my traffic), I actually have a great source of information about the people who read reddit – or at least about their computers.

Countries

A majority came from the United States, followed by the rest of the English speaking world. Mostly the west (India being the only in the top 10 not from the west). A total of 88 countries which really says something about reddit’s global reach.

...
More »

Why you think databases don't scale

In a few words: you’re doing it wrong!

With the announcement of Google’s App Engine, people have been buzzing about it and the conclusion that most people are coming to is that Bigtable is a huge limitation since it really doesn’t provide you with the tools that mySQL or similar engines do. In a sense, it is really limiting, but there’s a reason for it.

All of those joins you’re so fond of are exponential operations. On sites like reddit, people are fond of saying that the database engines just aren’t written to scale well. In reality, what you’re trying ...
More »

Google's plans for App Engine

Google just launched their cloud computing competitor to Amazon’s EC2 to a limited number of users. This begs the question, why is Google getting into cloud computing?

On the surface, Google is the perfect candidate for it. Their infrastructure was made for this kind of stuff. From Bigtable to GFS, Google was made to handle web applications with little thought on the programmer side. And that’s why it’s so appealing to programmers. No longer do you have to worry about RAID drives, backups, load balancing, provisioning instances or servers, data storage, file serving. . . You just have ...
More »

Google App Engine vs Amazon EC2 and S3

Originally, I thought that Google’s App Engine would be a great competitor for EC2, but in reality it’s very different.

EC2 allows you to configure a GNU/Linux environment to your liking and use it almost the same as you would use a dedicated server or VPS. Google’s App Engine allows you to create Google Applications. They’re written in Python (one of Google’s production languages) and need to be written specifically to use things like Google’s Bigtable.

That’s not necessarily a bad thing. Google’s infrastructure is top notch, but it might be hard to market yourself as a company ...
More »

Update on Joyent

So, I have my shiny new Facebook Accelerator. I’m going to run down the good, the bad, and the interesting/different.

The Bad

1. You can’t reimage automatically. Sometimes I like to mess around and just then reimage. This is crappy.
2. Webmin/Virtualmin. They suck. I’d rather just manually do Apache config, user management, etc.
3. Blastwave. It just isn’t up to par when comparing to yum and apt-get.
4. Things seem very custom. Part is Solaris, part is Joyent and it means that you are forced to learn more than you should to get things done.

The ...
More »

Amazon EC2 and Data Persistence

So, another Amazon Web Services article. Ugh. I’m just trying to figure out the best way to launch an application.

I had commented on Slashdot that EC2 had no persistent storage and was rebutted by someone who said that you shouldn’t trust mirrored RAID‘d disks combined with a daily backup either and so other providers only gave the illusion of persistent storage.

The solution proposed by the commenter was to launch 2 database server instances and use mySQL’s clustering ability to replicate onto the backup. That way, you have a hot spare ready to take the place of the ...
More »

Amazon S3 and Reliability

So, I really hate it when companies aren’t honest and open about what their product does. While there are players that are really terrible about this (mediatemple and mosso), Amazon tends to be decent about their web services, but there are still some big questions.

Specifically: when I put something in S3, how many copies of that file are created and are they created in separate data centers? If Amazon is keeping 2 copies of all files around in the same data center, I feel a lot less safe than if I know that they have 8 copies in at ...
More »

Hosting on Slicehost with Django

I’ve finally bit the bullet and started moving my blog to Slicehost and Django. I’d definitely recommend them. Why?

With Slicehost, you know what you’re getting: a Xen instance with dedicated RAM on a quad-core box (2 AMD dual-core Opteron 265s in my case and they’re probably using better processors now then when I signed up a year ago) with RAID1+0 drives in a real data center. You know what you’re getting. In the year that I’ve had my slice, I haven’t had any downtime (that wasn’t me restarting the box or turning Apache off). They run a ...
More »

Rails' Flash: Now for Django

For those unfamiliar to Rails, flash is a message passing system from one page to the next. In Django, there is User.message_set.create(), but that only works for logged-in users and is a bit cumbersome.

While I’ve been loving Django, I’ve missed the ease of doing flash[:message] = ‘It has been saved”

So, I made it for Django:

class FlashMiddleware:
> def process_response(self, request, response):
>> try:
>>> request.session[‘flash’] = request.flash
>> except:
>>> pass
>> return response

def flash(request):
> if ‘flash’ in request.session:
>> flash = request.session[‘flash’]
>> del request.session[‘flash’]
More »

Why Apple has a Defense Against Cisco

While Cisco did buy the registered trademark “iPhone”, it might not actually be their trademark to use. Trademark law doesn’t allow one to simply apply for all sorts of trademarks and then allow the owner to enforce them in arbitrary ways. Trademark law is actually very restrictive in what one must to to get and maintain a trademark.

Descriptive Marks. The trademark iPhone falls under the trademark category of descriptive marks. That means that the mark describes the underlying product in the way that “All Bran” or “Holiday Inn” describe what their products are. Being a descriptive mark, it only ...
More »

USA 3,100
Canada 395
UK 388