Thomas Edison Quote

I have not failed. I’ve just found 10,000 ways that won’t work.

— Thomas A. Edison

MongoDB, Conferences, and a MongoDB Conference

07 Feb
February 7, 2012

Most excellent! If everything goes according to plan I’ll be attending both MongoDB Austin and the Lone Star Software Symposium conferences this year.

A recent post on the Trello technology stack got me in gear and researching a lot of things I’d had on my “to learn about” list but had been “too busy” to pursue. The “I’m too busy” excuse only works when you really are too busy and can’t find a way to make time. Unfortunately, the excuse allows inertia to build and sometimes that inertia doesn’t just get built but it also gets walls and a moat built around it too! There is so much incredible tech out there right now and I’m determined to stay on top of it.

Here’s my philosophy on new tech: It’s all just tools. But I need to know what tools are at my disposal to be able to make appropriate choices regarding tools and architecture. I can’t imagine  spending weeks or months working around a roadblock on a project only to later realize the roadblock you were facing was already a solved problem. It can happen if you don’t keep up.

Over the weekend I took a quick detour off my ActiveMQ and RabbitMQ research to read MongoDB: The Definitive Guide. It’s a great book and a quick read.  Unfortunately in the process of reading up on MongoDB I ended up with a few more NoSQL implementations I want to read up on: Redis, CouchDB, and Amazon’s SimpleDB and DynamoDB. Before this weekend I didn’t understand NoSQL at all — my only database experience was with SQL/MySQL. Even the name “NoSQL” confused me. Now that I grok it I’m actually aching for an opportunity to use MongoDB! And what I’ve already read on Redis makes it looks so cool that I imagine it won’t be long before I pick up a copy of Redis: The Definitive Guide.

A housekeeping note: I’d been previously kept a blog whose posts I’ll soon be migrating here. They posts are mainly about NSIS work I was doing at the time, but the posts contain valuable information I don’t want to lose.


Now to get back to queues …

Early Postings

31 Jan
January 31, 2012

Even though I didn’t think it would be possible, I’ve actually started waking up at roughly 5am every morning. The most immediate effect is that come 8pm I’m absolutely spent. But on a more positive note, I do feel that I have more time available to me. It’s odd because this time seems to have just magically materialized out of nowhere. But honestly it’s probably the time I used to spend lounging around the house in the evenings doing nothing. By waking up earlier I feel more focused and have time to read Hacker News and even do a little reading for work!

On the topic of reading for work, we’ve been studying various message queueing technologies recently. While most people at work seem to be enamored with ActiveMQ I’ve gone off into the weeds and have been reading through the ZeroMQ guide. If it’s possible to fall in love with a toolkit then I’m officially smitten! I haven’t gotten a chance to do anything beyond reading about it at the moment (my time is a bit short), but conceptually ZeroMQ seems to have so much potential! Maybe it’s just that ZeroMQ’s guide is so well written? From the ZeroMQ Guide:

ØMQ socket is what you get when you take a normal TCP socket, inject it with a mix of radioactive isotopes stolen from a secret Soviet atomic research project, bombard it with 1950-era cosmic rays, and put it into the hands of a drug-addled comic book author with a badly-disguised fetish for bulging muscles clad in spandex. Yes, ØMQ sockets are the world-saving superheroes of the networking world.

That’s right at the beginning but the humor continues throughout the document. When you’re reading about implementation patterns  that might be applicable to your network topology a little bit of humor is always welcome.

Anyway, time to go do some more reading. I’ve put ZeroMQ aside for the moment and am going to start reading up on RabbitMQ now.

Boot Sequence Successful.

25 Jan
January 25, 2012

Reading the blog post at inspired me to try something similar. I don’t know that I can wake up at 5am every morning, but I’m going to try to wake up earlier and spend some time every morning doing some reflection and reading to start the day.

I also felt the need to tell people I was doing so. I’d been keeping a blog over at that I used infrequently, but I really wanted more power than it was giving me so I figured I’d go ahead and set this up. Maybe trying to be a more active blogger will help my writing ability?



15 Sep
September 15, 2011

To date this blog’s contained a lot of info on NSIS … that’s not all I work on, but at the time I was doing a lot of learning of NSIS intricacies. Given that the name if this blog is “Today I Learned (for code)” it only makes sense. The blog’s been silent recently because development at work went back to dev that didn’t involve a sustained burst of learning like my NSIS work had.

However in the last few weeks I’ve jumped head-first into Javascript and jQuery. I’ve learned a *lot* since then and the more I’ve learned the more the language sucks me in and makes me want to keep learning.  I’ll be making some posts soon with some of the things I’ve learned so I hopefully don’t have to relearn things from scratch later if I forget!

TIL: More Command Line Tricks

18 Apr
April 18, 2011
  • FSUtils – useful for a lot of things. In my case for creating hardlinks.
  • ChkNTFS c: – use to obtain the type of file system the disk is using. (doesn’t work on network drives)

TIL: iCacls & Reg.exe

13 Apr
April 13, 2011

Haven’t needed to mess with iCacls in the past. Needed to use it today though but the command line help doesn’t quite explain everything.. In particular I didn’t know what (OI) (CI) and (IO) meant.


  • IO: Inherit Only – This flag indicates that this ACE does not apply to the current object.
  • CI: Container Inherit – This flag indicates that subordinate containers will inherit this ACE.
  • OI: Object Inherit – This flag indicates that subordinate files will inherit the ACE.
  • On a different note, I can’t believe I didn’t know it was possible to query the registry from the command line! Head to your nearest Windows command line and run Reg.exe query /? for more information (or just reg.exe /? for adding/removing/etc).

    TIL: About a neat Windows tweak

    06 Apr
    April 6, 2011

    … about an awesome tweak I never knew I needed until I saw it:
    Show Drive Letters Before the Drive Name in Windows Explorer


    05 Apr
    April 5, 2011

    From all the NSIS posts I made you’d think that was my main job. Not the case. But I think I was starting to like it.

    I was pulled installer work to do more routine stuff so I haven’t had too many “Today I learned …” opportunities. Today I’m working some VBScript for some odd jobs. It’s one of those silly languages that I relearn and forget as need arises. Going to use this entry as a cheat-sheet to accelerate the relearning phase when I next need to.

    TIL: Some NSIS utility functions

    11 Mar
    March 11, 2011
    • To trim a string use:
    ${WordReplace} $target " " "" "{}" $output


    • To get day/time info use:
    ${GetTime} "" "L" $Day $Month $Year $DayOfWeek $Hour $Minute $Second


    • To check a string for invalid characters you can use ${StrFilter}