Ponderings

Indexes on collections that don't exist: one of the mysteries of Mongo

I've been working on a Drupal module which aggregates and reports on some data from Mongo. In order to keep from having to re-do all the aggregations, the aggregated data itself is written off to a Mongo collection which is then retrieved and displayed when the reports are requested. To make the retrieval more efficient, I need an index on the table storing the aggregated data.

Mongo MapReduce FTW!

One of the systems I've lately inherited makes heavy use of Mongo for data storage, a data system I've not used previously. So, when the boss called tonight and said that his boss needed counts of an object in our system by state in the next 10 minutes my thinking went something like...

No problem, that's a simple SQL group-by....Oh, wait. This is mongo. Oh, crap! How do I do that?! It's a function; Map...Something.

A Mnemonic for the DC Metro Red Line

Now that I'm commuting into the city each day, I've been forced to actually learn my way around metro. It didn't take me long to get tired of checking my phone for the station map, so I put together a little mnemonic to help me remember the order of the stations on my route: Bethesda to Union Station.

Joining the Cult

AdorationOfTheApple

I've joined the Cult of Mac.

For several years now, I've been running Ubuntu Linux on all my personal machines. I loved the freedom of Linux, that I could recompile the kernel to do things exactly as I wanted. I took elitist joy at the puzzled looks on non-tech people's faces when I told them I ran Linux (and then had to explain what Linux, and often an operating system, was). And, to be quite frank, I loved not having to fork over a ton of money for software.

The thing is, while I loved that I could recompile the kernel, I really hated that I so frequently had to. The wireless card in my netbook didn't play nicely with Linux, so each time I updated the kernel had to roll in a code patch and recompile the kernel to get it working. To get my printer working required another recompile. Trying to sync my ipod to my music collection, while it didn't require a recompile of the kernel, required three separate programs one of which had only a command line interface. Don't get me wrong, I really like the command line, but it's just not the right medium for controlling an ipod.

Maybe it's a sign that I'm getting older, but I don't want to invest time and energy into making my computer work any more. I have things I need to accomplish on my computer and I need to know that when I sit down to do them, the computer will cooperate with me. I have neither the time nor the energy for mucking the computer for the sake of mucking with the computer.

So, after a brief flirtation with Windows 7 (I was weak, I admit), I ordered myself a MacBook. I've only had it about a week now, but so far it's everything I hoped it would be. It has a Linux style command line that handles all the command line tools I love, like grep, curl, and tar, and ... stuff just works! To connect to my home wireless-n network using WPA2 security, all I had to do was enter the passphrase. I didn't have to recompile anything or go digging through the forum posts for solutions; it just worked. It even comes with PHP, Python, and Apache pre-installed.

I'll still keep a Linux box around the house for some things, but I don't see myself going back from the Mac anytime soon.

How Mozilla is using data to manage their developer community

Developing Community Management Metrics and Tools for Mozilla

I came across the article linked above, discussing the new dashboard Mozilla has developed to help monitor and manage their community and thought it appropriate given my previous post about the need to be able to monitor your community.

Great introductory Agile videos

I came across these great videos giving a simple introduction to what Agile is and how it differs from waterfall. Unfortunately, it doesn't appear their author is making any more in the series.

DrupalCon Chicago wrap-up

DrupalCon Chicago is done. Now it's time to unpack, review and condense my notes, and begin to sort out how to integrate everything I learned into my processes going forward. In subsequent posts, I'll expand on each of the points below, but my goal at the moment is to lay out the biggest things I'm bringing back from the con.

DrupalCon 2012 in Denver

drupalcon_denver_logo
At the end of DrupalCon Chicago, the team working on the 2012 North American DrupalCon announced the location: Denver. What could be better than geekery and spring skiing?

What is Drupal?

In preparation for his upcoming keynote at DrupalCon Chicago, Dries has posted a request on his blog that Drupal users answer the question of what Drupal is to them. My answer to the question is:

Drupal is the lackey that I force to write the boring, repetitive code (e.g., log in/log out, change password, database CRUD operations) so that I can focus on the interesting problems.

Pages