Let’s Start Lifting Each Other Up (…no, Seriously)

My constant affliction is my Inbox, several constantly-conflicting Google Calendars,  Skype, a cell phone that’s constantly beeping with Twitter, Facebook, and LinkedIn activity… and a lot of this activity is negative.  People whining about technology, society, government, people complaining about everything.  The internet is a 2/47 snark carnival and Twitter is the main stage. (I’m not innocent of this by any means, my popular posts are me calling Ruby on Rails names.)

In this overwhelming storm of negativity I find myself asking, “Where’s my list? When do I get to keep track of the tasks I promised myself I’d complete?”  For this, there is Lift.   Go check it out: http://lift.do – if you don’t like web browsers you can search for the Lift application on your phone, it’s there.

Here’s my Lift at the moment.  It’s simple, that’s what I like about it.  There’s not a lot of bells and whistles being thrown around, the app isn’t constantly trying to give me trophies or convince me to attend a webinar.  There’s no upsell, and I’m not getting overwhelmed by automated emails telling me to pay attention to it.  It’s simple, and it’s focused on the positive.  I’m trying to keep my list manageable at the moment: take some walks, learn Spanish, talk less, listen more, meditate, and write more. Clearly, I haven’t been using it enough, I pay for a gym membership, but I average two gym visits a year (that’s $550 per 20 minute recumbent bike session).

lift-dashboard

What’s great about Lift is that it is based on this idea that the best motivators are each other.  Some people use the platform to quit smoking, others use it as a way to set some personal goals.  It sounds a bit corny to the uninitiated, but you set some positive goals, you record that you’ve met them and random strangers fall out of nowhere to give you “props”.

Right, so in the last five minutes two people just decided to like the fact that I learned a bit more Spanish today. Doesn’t that sound incredibly silly? But, it isn’t. I’m motivated to keep on learning Spanish by these random acts of “drive-by” support.  Who could dislike a site that has this Aristotle quote on it?

Happiness does not consist in pastimes and amusements but in virtuous activities.

Lift was started by Tony Stubblebine some time ago.  Tony Stubblebine was the one who helped build that ancient O’Reilly social network that never panned out, and he was also a very close witness to the founding of Twitter at Odeo (maybe even a participant, at this point he probably doesn’t want to be asked about Twitter very much – I’m just guessing.)  Anyway, he went on to start a conference-focused social networking startup, and he’s the kind of guy who, if you’ve met him (even if only for a moment), you want him to succeed.

So, do it.   Let’s all Tweet a little less; let’s all focus on pastimes and amusements a bit less and let’s focus on “virtuous activity”.  If you were about to go think of the next super snarky Tweet that would gain you another follower: stop what you are doing, and go sign-up for Lift.  I dare you, and I promise to give you mad props (I’m too old to say that in person BTW):

http://lift.do

MongoDB Stole My Lunch Money and Ruined My Startup

It didn’t.  The title is a lie, but it probably got your attention.

I wrote this because I’m seeing a lot of blog posts out there that follow the same sequence of events.

  1. Forward thinking architect decided to branch out and use a NoSQL database.
  2. The aforementioned architect experiences difficulties querying data, and (out of nowhere) starts to experience performance or stability problems.
  3. Formerly forward thinking architect excoriates selected NoSQL database for not being a Perfect Utopia of data storage
  4. Formerly forward thinking architect then chooses one of two paths:
    1. Publicly renounce the selected NoSQL database and declare allegiance to another product.
    2. Begrudgingly accept the shortcomings of selected NoSQL database whilst whining about its shortcomings.

Almost never do you read a blog post like this that ends with the words.  “I’m like an over-excited puppy following every technology trend blindly.   I take full responsibility for not using technology responsibly.”

It is almost a rite of passage for today’s startup crowd, and the Mean Time Before Anti-Mongo Blog (MTBAB) seems to be about 12 months post adoption.   I’ve come to consider these as not so much “anti-Mongo” post as they are “Relational expatriate” posts – longing for the comforts of the Old World.

You should have thought of that before you got on the Boat….

new-sql“Relational Expatriate” what does that mean?  Think of this movement toward NoSQL databases as a mass exodus.   Back in 2008, you had an initial emigration of people motivated out of sheer invention or wanderlust.  People with little to lose (one person startups) or people who are under intense pressure to find a new approach (people working at Massive scale).  Over time, this population starts to setup infrastructure (vendors, documentation, companies like 10gen), and you start to attract more conservative architects to this movement from SQL to NoSQL.   These new adopters (you can call them the late majority), they have an entirely different set of motivations and tolerance to risk.

Inevitably you are going to have some backlash.    You are going to see these posts where someone laments the absence of something they took for granted in the Old World.  Example, a post by an architect who laments that MongoDB offers no Joins and no SQL.  There’s no acknowledgement of the initial problems that motivated the jump to NoSQL in the first place, just this overall angst that something has been lost in the transition.   Some of these people need to just get on the first boat back to “Relationalistan”.

Who jumps to MongoDB right now and then laments the lack of JOINs?   Who are these people running production databases that are freaked out about memory consumption?  When I read this I immediately wonder…

What drives this constant barrage of anti-mongo rants?

When you see these posts, you have to ask yourself “why?”   Why am I reading posts specifically about MongoDB.  I see a few possibilities:

  • Option A: MongoDB is so awful it deserves universal blog scorn.
  • Option B: MongoDB is a bit over-hyped and users are getting trapped by a technology that over promises.
  • Option C: The author of the blog post is a bumbling idiot always stumbling for the next shiny bauble, never satisfied, and stuck on an interminable hamster wheel of NoSQL databases.
  • Option D: MongoDB has captured the market.  The only reason you are seeing an anti-rant about MongoDB every 5 seconds is because they just have that many users.
  • Option E: 10gen competitors are spending money trying to get people to write blog posts about how lame MongoDB is.
  • Option F: Programmers are just a bunch of whining yap dogs going on and on about how difficult everything is.

My sense is that it is a mixture of Option D and Option E.    MongoDB has captured a large market, and because of this, you’ll see a remarkable uptick in the number of negative posts.  Right or wrong, I do believe that there are a lot of players interested in seeing MongoDB face-plant.  There’s gold in them hills, and everyone’s convinced that 10gen has found a profitable vein in the ground

Yes, the MongoDB community engaged in some extreme overhyping years ago, but if you missed the first episode of MongoDB performance problems (what back in 2010?)  Then you are not paying close attention to the technology you are adopting.   It is my understanding that they identified some glaring gaps in the product and that they pivoted to address them as quickly as a database company can.   Meanwhile I’m still running a fairly old version of MongoDB in production (with only occasional issues mostly related to limited disk space and the fact that few programmers or operations people understand what the thing even does).

MongoDB, like any other database, has a few realities for performance that are unavoidable.    If you do your research you’ll understand these limitations up front; if you don’t, well… MongoDB isn’t really new anymore, so writing a 10 pager about how it uses too much memory and how you can’t JOIN data.  That’s less a blog post about MongoDB and more a blog post about you as consumer of technology.   I’d understand if the thing was 12 months old and people wrote a 10 pager about how they were surprised, but if MongoDB surprises you today – that’s entertainment.

Also, I’m a bumbling idiot

I use MongoDB on a particularly large project.  (No, I won’t tell you which one.)  Am I 100% happy with it?  Nope.  It’s a pain to query sometimes, but it does the one thing I need it to do well (and it isn’t  really a database, sorry).  I’m about as happy with it as I am with every other piece of software in my stack from Maven to Java to MySQL to bash.  All of these things at some point during the development lifecycle are a Pain in The Ass (PITA).   I call this the Universal Law of Software Development which can be summarized as: “There is always something wrong with your software development ‘stack’.”

I’ve written at least one of these posts, and I can tell you that it was motivated by Option C “The author of the blog post is a bumbling idiot”.  I’m like an over-excited puppy following every technology trend blindly.   I take full responsibility for not using technology responsibly.

There’s nothing wrong with MongoDB. Maybe we should all stop complaining so much and get back to work?