- Some utilities:
sudo apt-get install vim tmux git- Copy/paste from the command line:
sudo apt-get install xclip| #!/usr/bin/env sh | |
| ## | |
| # This is script with usefull tips taken from: | |
| # https://github.com/mathiasbynens/dotfiles/blob/master/.osx | |
| # | |
| # install it: | |
| # curl -sL https://raw.github.com/gist/2108403/hack.sh | sh | |
| # |
| OS Setup | |
| - Install VMs (base OS = Ubuntu 11.04) | |
| - 6GB disk is not enough. Probably 20-40GB would be good. Mongo has a lot of compression and cleanup features coming. | |
| - Create user to run MongoDB as | |
| - Get DNS or Hosts file set up so all nodes in the cluster can talk to each other | |
| - Generate ssh-keygen -t rsa | |
| - Copy ssh public keys from each node to node01. Then cat all keys to authorized_keys. Then copy that file to each node. Each node will have ssh key trust now. You will also want to ssh from node01 to 02,03,04; from node02 to 01,03,04 etc to test it out. | |
| - Create an initial architecture: | |
| node01: master (replica set 1) | |
| node02: slave (replica set 1) |
| /* sample aggregate command queries */ | |
| // make sure we're using the right db; this is the same as "use mydb;" in shell | |
| db = db.getSisterDB("aggdb"); | |
| // just passing through fields | |
| var p1 = db.runCommand( | |
| { aggregate : "article", pipeline : [ | |
| { $project : { | |
| tags : 1, | |
| pageViews : 1 |
| // make sure we're using the right db; this is the same as "use aggdb;" in shell | |
| db = db.getSiblingDB("aggdb"); | |
| // simple projection | |
| var p1 = db.runCommand( | |
| { aggregate : "article", pipeline : [ | |
| { $project : { | |
| tags : 1, | |
| pageViews : 1 | |
| }} |
| db.getSiblingDB("admin"); | |
| var databases = null; | |
| databases = db.runCommand("listDatabases"); | |
| if(databases){ | |
| for(var i=0;i<databases.databases.length;i++){ | |
| //TODO skip if it's the admin database |
| Latency Comparison Numbers | |
| -------------------------- | |
| L1 cache reference 0.5 ns | |
| Branch mispredict 5 ns | |
| L2 cache reference 7 ns 14x L1 cache | |
| Mutex lock/unlock 25 ns | |
| Main memory reference 100 ns 20x L2 cache, 200x L1 cache | |
| Compress 1K bytes with Zippy 3,000 ns | |
| Send 1K bytes over 1 Gbps network 10,000 ns 0.01 ms | |
| Read 4K randomly from SSD* 150,000 ns 0.15 ms |
| db.getSiblingDB("admin"); | |
| var databases = null; | |
| databases = db.runCommand("listDatabases"); | |
| if(databases){ | |
| for(var i=0;i<databases.databases.length;i++){ | |
| //TODO skip if it's the admin database |
| require 'builder' | |
| module MacApp | |
| class << self | |
| def new | |
| ask_name | |
| ask_file_extension | |
| ask_language | |
| create_directories |
| source :rubygems | |
| # We are not loading Active Record, nor Active Resources etc. | |
| # We can do this in any app by simply replacing the rails gem | |
| # by the parts we want to use. | |
| gem "actionpack", "~> 3.2" | |
| gem "railties", "~> 3.2" | |
| gem "tzinfo" | |
| # Let's use thin |