architecture, bigdata, mongodb

MongoDB 3.0 worth the upgrade

MongoDB 3.0 (dev version of 2.8) has been almost a year in the making and there are several prominent changes that are worth mentioning:

 

  1. Document level locking – changes to those large json documents (aka rows ) will work similarly to regular RDBMS. Previously you had to either queue or create a custom way of handling inconsistencies.
  2. Document has a hard limit of 16megs (reasonable) and that allows your app to create massive amount of data that will require sharding your servers. A new storage engine WiredTiger will provide better compression for storage, allegedly up to 80% , shed those Gigs of data Foursquare!
  3. Besides other significant improvements, a new tool is introduced named Ops Manager, uncertain if it would be available to all or MMS subscribers.
  4. Looking into MongoDB Jira , there is a large set of bugs that have been fixed, better error handling in GEO lookups, syncing issues between nodes and others.

 

 

A few notes:

 

In order to take advantage of a new pluggable storage engine wiredTiger you need to explicitly configure it as such:

 

mongod --storageEngine wiredTiger

Overall great job!

 

 

Share This:

coding, Uncategorized

GO lang is getting unofficial support from GCC compiler

Support for the Go programming language has been added to GCC. It is not enabled by default when you build GCC; use the –enable-languages configure option to build it. The driver program for compiling Go code is gccgo.

Go is currently known to work on GNU/Linux and RTEMS. Solaris support is in progress. It may or may not work on other platforms.

Reference: https://gcc.gnu.org/gcc-4.6/changes.html#go

Share This:

javascript, Uncategorized

AngularJS Pluralize – build a friendly message, good ui practice

Have you noticed that some web apps creators absolutely ignore common grammar in message or labels?

Well it is common.

You have 1 messages.

Or it might be cooler and human like but still:

You have one messages.

 

What you’d want to do in your AngularJS application is use a wonderful directive that is baked in and helps you avoid such mishaps.

 

<ng-pluralize count="report.CriteriaSelected.length"
                 when="{'0': 'No criterion is selected',
                     'one': '1 Criterion is selected',
                     'other': '{} Criteria selected’}"

What this will nicely take care for you are the conditions when Nothing is selected or you have 1 or many conditions where a different text is used.

Thereby avoiding using “message(s)”.

 

Going further, i would suggest using internationalization i18n for your labels in such cases so that it makes sense in other languages.

 

This feature exists for a while now.

 

Enjoy

Share This: