It’s my birthday today, so I’m going to subject you to more things that I’ve been reading recently.
William Gibson says the future is right here, right now – I couldn’t agree with this more. Time gets faster because we’re constantly connected to the world.
The Humble Pencil, The Mighty Computer – I love using pencil and paper to work through things. In fact, I don’t understand people who can draw, sketch, or brainstorm straight into a piece of software. Pencil and paper is so automatic, natural, and fun.
How to Practice a Technology Talk – Just so you know
Index-Only Scans – SQL Server has had the ability to do index-only scans for a long time because of how it handles concurrency and isolation levels. PostgreSQL still doesn’t have this feature, in part due to differences in how PostgreSQL handles concurrency.
NoSQL: Don’t Take the Drug Unless You Have the Symptoms – I get paid to do this and I’ll be the first one to tell you that some kind of NoSQL/non-relational doodad may not meet your needs.
Writing Your Own Storage Engine for Memcached part 1 part 2 part 3. Just in case you wanted to know what goes into building a storage engine.
Free Amazon Web Services for new customers. Amazon are giving away 12 months (from the date of your sign up) of a bunch of Amazon services. If you want to try to start up a business, now is the time to try!
IronRuby is alive! There was some conjecture about the life of IronRuby after Microsoft cut the team. One of the original developers is picking up where he left off.
Programming is for Stupid People… You know, I think he’s right!
SQL Server Transaction Marks are a great feature that very few people seem to know about. I’ve used these in the past for critical workloads and transaction demarcation. You should try it out, you’ll like it.
Using MySQL as NoSQL Just because you need something to be fast, doesn’t mean you have to learn something new.
ARel Two Point Ohhhhh Yaaaaaa Arel is the new Ruby on Rails/ActiveRecord ORM. It’s also interesting because it is an abstract syntax tree – meaning that it can be used to make arbitrary grammars for anything (including SQL). Aaron Patterson walks through the optimizations that were made to Arel 2.0 to bring it up to par with the old ActiveRecord implementation.
Cassandra: RandomPartitioner vs OrderPreservingPartitioner Data order is important in relational databases and it’s something that you need to be aware of with a non-relational database, too. Improperly ordered data can put a huge load on a few nodes in a cluster. This article goes over the trade-offs in Cassandra of using a random data order vs key ordered data.
liblfds Want to write your own NoSQL database in C? These (free) libraries should make it pretty easy to do. They’d probably work good for other projects. If nothing else, it’s a good read to see how some of the underlying data structures are implemented.
Riak Bitcask Capacity Planning Spreadsheet We have capacity planning tools for our relational database, why not have one for our non-relational databases?
Foursquare outage post mortem Foursquare uses the NoSQLs (specifically MongoDB). They had a big nasty outage last week. One of the interesting things this thread brings up is that NoSQL databases still require a good knowledge of their internals in high performance scenarios. You can’t abstract away the problems even if you abstract away how data is stored on disk.
Relational Data, Document Databases and Schema Design There are some things that are really different. Get your learn on.
Prime Number Shitting Bear
It’s been a technical week.
Exclusion constraints are generalized SQL UNIQUE One of the cool new features of PostgreSQL 9.0 is exclusion constraints. Exclusion constraints make it possible to create a scheduling grid for a classroom or hotel that prevents double bookings of a room.
Your Software Can Learn A Lot From ATMs ATMs are simple. They work. They work well. When they don’t work, they tell you that something is up, but they don’t do anything sneaky or have side effects or do two things at once. Do you want to take out money? Do you want a receipt? Do you want to deposit money? There aren’t multiple options with strange combinations. You do one things and then move on to the next. Your software should be like this.
Gurus and Bastards What’ll it be? Helpful optimistic guru or grumpy bastard?
Learn Python the Hard Way A fun new way to learn how to program: type the program, run the program, do the extra credit.
txn.commit() are you sure? Think about whether you’re really using those transactions the right way. Think about it.
Where Good Ideas Come From It’s more watching than reading, but whatever. There are words in there!
Storyselling 101 It’s a marketing piece, sure, but it applies to everything you do. The most compelling way to educate is to do it with a story. People identify with and engage in stories. Ever watch a good movie and end up on the edge of your seat for most of the movie? That’s engagement. Engage your readers with a story.
10 Hadoop-able Problems (a summary) WTF would you want to use Hadoop for? Here are ten problems you could use Hadoop to solve.
14 Ways To Have Fun Coding Ruby Even though it says it’s all about Ruby, these are great ways you can remind yourself that writing software is something that should be fun, not a chore. If you’ve always thought writing software was a chore, you should quit your job and sell shoes. Now.
Read Ruby A free book that covers Ruby 1.9. It’s still an early draft, but it’s a free learning resource that you can read and contribute to. The author is releasing the book under a Creative Commons license and the code is up on github so you can contribute back to the project.
Relational Database Design and the Optimizers I haven’t read this book yet, but I think it should be on everyone’s reading list.
Facebook Privacy Settings for Bigamists
The Texas Sharpshooter Fallacy Your brain plays tricks on you and looks for patterns everywhere. Don’t be that guy.
Cognitive Load A world with more heads up displays and instantly available information carries a lot of distraction. I don’t want more information constantly streaming into my brain. I want the right information instantly available, when I choose it.
Peak MHz Scale out, young man. Scale out.
Online Schema Change for MySQL Facebook have special problems – they have mountains of data. This document is a collection of internal documents describing how the engineers at facebook make changes to their massive databases.
Performance implications using NewID() in Random order
Is Cassandra to Blame For Digg v4s Technical Failures?
Lost World’s Fairs Beautiful HTML and CSS work that showcases the newer features in IE9 (also WebKit, Chrome, Safari, Opera, and FF). This will not be good for you if you have an older browser. You have been warned. The various people involved have blogged about the process, too. It’s quite interesting to read. Frank Chimero, Jason Santa Maria, Trent Walton, Naz Hamid, and Dave Rupert
ISO Time Formatting Standards Read it. Love it. Use it.
Reducing Bloat Without Locking Just in case you wanted to know all about ghost record clean up in PostgreSQL land.
Links and Link Walking Links are crazy awesome fun and make riak a wonderful thing to behold. BEHOLD THE LINKS!
Cassandra Data Model Cheat Sheet New terminology is confusing. Pictures are helpful.
Setting the record straight – “So, What is an MVP Anyway?” Awards like Microsoft’s MVP award are ways for companies to recognize the help that people selflessly give to the community at large. Like many other awards, it’s an acknowledgement of something you’ve done and continue to do without seeking any recognition or monetary reward. My good friend Jonathan shares his thoughts much better than I could.
A Brief History of Programming
Quotes on Car Design Ford’s chief designer sounds off.
Tiny Pony Stampede Scattered thoughts from a visitor to the post office.