I hereby claim:
- I am johnnyt on github.
- I am johnnyt (https://keybase.io/johnnyt) on keybase.
- I have a public key ASC_wuMrm5gUcRYGCTjKUwWDiuX1PbqKqkJQkvYEZ3aWcAo
To claim this, I am signing this object:
require "avro" | |
require "nsq" | |
SCHEMA = <<-JSON | |
{ "type": "record", | |
"name": "User", | |
"fields" : [ | |
{"name": "username", "type": "string"}, | |
{"name": "age", "type": "int"}, | |
{"name": "verified", "type": "boolean", "default": "false"} |
I hereby claim:
To claim this, I am signing this object:
MagLev is a Ruby implementation built on top of a mature VM which offers native object persistence. Working with these live objects is awesome - but this image-based development is very different than traditional file-based development. MagLev uses both which has broad reaching effects - from design to deployment.
In traditional applications, data and code are separate. Deployments involve pulling new code, updating or migrating the data-store, and restarting or reloading the application which creates a new runtime with this new code.
MagLev's transient objects behave in this same manner, but committed objects are always there. Migrating these live, persistent objects is quite different. Your ‘data’ migrations involve things like instance variables, method definitions and class hierarchies, rather than creating tables or updating column definitions.
In this talk we will walk through how to:
# Install NGINX | |
sudo apt-get install nginx | |
# Rename github repository to ads_archive | |
# Create new github repository named ads | |
REPO_URL="https://github.com/mediaFORGE/ads.git" | |
ADS_DIR=/mnt/tmp # ?? | |
ADS_ARCHIVE_DIR=/mnt/ads_archive |
worker_processes 1; | |
#error_log logs/error.log; | |
#error_log logs/error.log notice; | |
#error_log logs/error.log info; | |
#pid logs/nginx.pid; | |
events { | |
worker_connections 1024; | |
} |
* { | |
margin: 0; | |
padding: 0; | |
border: 0; | |
} | |
body { | |
background: #dff; | |
font: 30px sans-serif; | |
} |
Smalltalk current createPackage: 'HTML5' properties: #{}! | |
Object subclass: #LocalStorage | |
instanceVariableNames: 'scope' | |
category: 'HTML5'! | |
!LocalStorage commentStamp! | |
LocalStorage is a wrapper around HTML5 Local Storage. | |
Take a look at: http://diveintohtml5.org/storage.html | |
Example |
smalltalk.addPackage('HTML5', {}); | |
smalltalk.addClass('LocalStorage', smalltalk.Object, ['scope'], 'HTML5'); | |
smalltalk.LocalStorage.comment=unescape('LocalStorage%20is%20a%20wrapper%20around%20HTML5%20Local%20Storage.%0ATake%20a%20look%20at%3A%20http%3A//diveintohtml5.org/storage.html%0A%0AExample%0A%0A%09%7C%20local%20%7C%0A%09local%20%3A%3D%20LocalStorage%20new.%0A%09local%20at%3A%20%27message%27%20put%3A%20%27Hello%20World%21%27.%0A%09Transcript%20show%3A%20%28local%20at%3A%20%27message%27%29%3B%20cr.') | |
smalltalk.addMethod( | |
unescape('_keys'), | |
smalltalk.method({ | |
selector: unescape('keys'), | |
category: 'accessing', | |
fn: function (){ | |
var self=this; |
sudo sh -c 'sudo add-apt-repository -y ppa:pitti/postgresql \ | |
&& add-apt-repository -y ppa:webupd8team/sublime-text-2 \ | |
&& apt-get update \ | |
&& apt-get install -y linux-headers-generic linux-firmware-nonfree \ | |
sublime-text chromium-browser \ | |
autoconf automake bison build-essential curl git libtool openssl pkg-config sqlite3 subversion \ | |
libc6-dev libncurses5-dev libsqlite3-dev libreadline6-dev libssl-dev libxml2-dev libxslt1-dev libyaml-dev libzmq-dev zlib1g-dev \ | |
python-setuptools dkms pgadmin3 \ | |
htop nethogs iotop tmux vim-nox zsh psmisc quicksynergy grc \ |
MagLev is a Ruby implementation than runs on top of the GemStone/S Smalltalk VM. It can transparently manage a large amount (terabytes) of data and has a scalable built-in model for parallelism across VMs. Since all connected VMs see the same objects, it can have thousands of truly parallel threads running in a single, shared, transactional object space.
MagLev isn't a Ruby VM with an integrated NoSQL database, it's a pure object database that uses Ruby for its data manipulation language.
This session will show examples of MagLev specific collections (e.g. IdentitySet
), indexes (including multi-level indexes like @address.@zip.@average_income
) and benchmarks comparing MagLev with other NoSQL databases.
You will see how MagLev lets you have fun when working with Big Data by: