Rebuilding your infrastructure

Marathon and Mesos
HAProxy, SmartStack, Zookeeper
Alerting with ElasticSearch (
Redis Driver – Lettuce – has some nice features
Java Redis Orm
Advanced Java Data Structures
Redis Meetup – NY 04-August-2015
SSL Tunnel with Redis
Java with Redis
Redis Proxy
Testing Points
Linux Performance Tools
Docker/Microservices issues
Consul and Puppet for Service Discovery & Mgmt
Drill for Mongo query
Moving to Scala

Apache Drill with AVRO and MongoDB

Drill with REST and JDBC -> AVRO, MONGO
Set up Zookeeper based cluster
firewall was blocking it < watch these ports
select * from dfs.`/Users/timothyspann/Downloads/apache-drill-1.1.0/sample-data/region.parquet`
SELECT * FROM cp.`employee.json` LIMIT 20
show databases;
use mongo.`security-mydatabase`;
show tables;
Mongo Issue:   I have similar observations. At the moment I can only query elements that are strings. Numbers and dates do not work.
This is Drill 1.1 with Mongo 3.0 issue
bin/sqlline –u jdbc:drill:schema=dfs;zk=local

10gen: M101J MongoDB for Java Developers – Week 2


This class has been going great.

The flow of the class is great and it’s worked well on Windows with Eclipse, Maven and JDK 1.6.

Some notes and links:

document oriented database
The Spark web framework for Java is nice, very small and simple.


MongoClient client = new MongoClient();
DB db = client.getDB(“school”);
DBCollection people = db.getCollection(“people”);


Hibernate OGM – MongoDB vs Kundera vs Jongo vs MongoDB API vs Morphia vs Spring Data Mongo – MongoDB Drivers for Java

I am working on a Spring MVC app that demonstrates all of the different MongoDB Java APIs.

Some Links

Maven POM Settings For Various Drivers


		    Kundera Public Repository



		Kundera Public Missing Resources Repository





Hibernate OGM for MongoDB

Kundera (JPA for MongoDB)

Raspberry Pi and Development

Here are some links I have found useful in setting up my Raspberry Pi machine for development and more.
Raspberry Pi
Raspberry Pi on My TV



Development on Pi
C-64 Emulator (Games)
Java on Raspberry Pi


Some Useful Updates via Raspian/Debian
sudo apt-get update
sudo apt-get install eclipse

Java library for Raspberry Pi
Java Library for RPi (Pi4J)
JVM on Pi
Oracle JVM Downloads
JDK1.7 on Pi

General Raspberry Pi Usage

Node.JS on Raspberry Pi
Scala on Raspberry Pi

Installing the TypeSafe Stack


sj:mug Holiday Mongo Talks

MongoDB @ HP in Mt Laurel, NJ



My local demo is hitting a MongoDB instance at MongoLab, the provide free hosting for a small dataset.


I have a simple application based on Spring Data for Mongodb.


MongoOperations mongoOps = null;
 AppConfig config = new AppConfig();
 try {
 mongoOps = config.mongoTemplate();
 } catch (Exception e) {
 logger.error("Mongo Connection Error", e);

 Person person = mongoOps.findOne(new Query(where("name").is("Joe")), Person.class);;

 model.addAttribute("MongoInfo", person.toString());


august 2012 – 2.2
aggregation framework
improved concurrency
mongo is great for email storage / documents
aggregation  – unix style piping
TTL (time to live)
garbage collect data
unwind an array



mongodb meeting with SJ

Introduction to MongoDB



A first time meetup in South Jersey at the Fire Hall in Pennsauken.   With some great support from 10gen with info sheets, stickers and pizza.


Notes from A. Riveria presentation:

  • Document Data Model
  • Database Technology anywhere…
  • Written in C++
  • Source Code on Github
  • Runs on most platforms
  • BSON (Binary JSON) – binary-encoded serialization
  • JSON collections
  • Embedding of objects/arrays
  • Table => Collection
  • Row => Document
  • Join => Embedded
  • Foreign Key => Reference / Link  (Object Id – autogenerated serial # for each document)
  • Partition => Shard (Shard keys across nodes)
  • Indexes on fields and collections of indexes
  • Great for lat/long
  • Geospatial queries
{} – select all where
db.users.find( {}, {username:1, firstname: 1, lastname:1, email:1}
1- true
Results (JSON):
{  username: “smith”,
    firstname: “angel”,
   lastname: “Rivera”,
   email: “”



var insertString = {username:”smith”, value:1}

   can use quotes around the fieldnames.




(users is our collection)



db.users.update({username: “jones”}, {$set: {email:””}}


first section is where, set part does the update on the field(s)


MAKE SURE YOU USE $SET modifier in updates.

Only updates first record it encounters.



Upserts.  Update or if not found then create/insert.




db.users.remove( {username:”aname”});


deletes a document


Mongo Query Operators


$ne (not equal)

$lt (less than)

$lte (less than equal to)




Also supports CSV, best to do JSON, the default.    Arrays in a field does not work in a CSV.

mongoimport –db sjmug -c users -v –file data.json –host localhost –port 27018 –jsonArray





Thanks to 10gen for sponsorship!




Node.js and Mongodb Links

No, Not Python, It’s the Holy Grails…

I’ve been evaluating a few different technologies for doing some rapid web development work and recently I have been looking at the bounty of available tools, libraries, frameworks and associates of Spring.  Spring ROO and Groovy/Grails are the big two RAD tools from SpringSource and they look pretty amazing.  I don’t think I’ve found the Holy Grail of Web App development, but these two tools are really helpful in rapidly developing apps.  I am hoping someone combines Roo or Grails with Vert.x to make a really awesome alternative to Node.JS.  I like Node.JS and have been doing JavaScript for a decade, but I prefer the languages of the JVM and Vert.x’s support for multiple languages is pretty awesome.  Hmmm, Vert.x in Grails.

With the excellent STS inside Eclipse, this gives Groovy and Java a great IDE for development, testing and debugging.  And that is something that is lacking for Node.JS.  Node.JS has a few tools out there, but nothing open source, free, full of awesome mature plugins (PMD, Checkstyle, GIT, Maven, JUnit, FindBugs, …) and just plain easy to use.  Eclipse also has plugins for working with CloudFoundry, Heroku, OpenShift and other Cloud environments.

Between Grails and Roo, I really like the fact that I can remove Roo at anytime and still have a fully functionally application setup that utilizes standard Spring tools.  It’s also easier to add other cool Spring projects like Spring Social, Spring Mobile, Spring Data and more.

Both Grails and Roo support MongoDB very well and that’s great too see.  I have a few Mongo DB instances on MongoLab, MongoHQ and OpenShift.  These services all have great free developer services that are great for learning, prototyping and for tutorials.  I am really loving Heroku and OpenShift.  It’s hard to pick one, so I didn’t.  I use them both.

Vert.x + Groovy is really cool, but again not much IDE support, tools or extra libraries.  It should grow start building support now, but competition with Node.JS is pretty fierce.

Interesting, Roo vs Grails Jobs.



But if you look at just Spring (which Roo is just a tool to help with a Spring project):



There’s also some great documentation, tutorials and books on Groovy/Grails since it’s been out for a while: On the other hand, Roo is newer, but since it generates standard Spring + Java, you are really just getting a good head start on your project.

Heroku has a nice article on using both with their awesome platform:  and

I will post a Github repository of some samples soon.


Spring MVC + Spring Data for Mongodb + Mongolab + OpenShift

I created a small tutorial application following the Spring Data for Mongodb guide with a little bacon for flavor. I wanted to use real hosting for MongoDB, so I created a database at MongoLab.   It was quick and easy and the hosting is fast and works great even remotely for local development.

The tutorial application in process is one to register your Bacon Creation for this year’s BaconFest.  The winner gets a mini BaconExplosion.

This is ONLY a test, you will not receive BACON.

ETE Presentations

Chariot Solutions Presentations / ETE Presentations

Chariot Solutions Emerging Technology Philly ETE 2012 Screencasts

Chariot Solutions Videos and ETE Videos

CoffeeScript Edge

Emerging Languages

StratisfiedJS (Structured JS)

Large Scale Agile

Spring ROO with Addons

Backbone.js / Real-time Web Apps

Rich-Web Apps with Server Side Java

Vaadin Java Framwork

Interesting Stack (Backbone, NodeJS, Restify, MongoDB)

Dependecy Injection

HTML5 Apps with Java and Scala with Play


Massive Scaling

Lean, Kanban and Large Scale Agile

Let’s Play TDD

Cross Platform Mobile Experience

Real-Time Web Apps with Backbone

Better Agile Through Tribes

Java EE in the Cloud(s)




Grails 2.0

JavaScript Testing / BDD

Converting to MongoDB



EclipseLink JPA to MongoDB

Cloudify Groovy and MongoDB 

MongoDB Windows Services

 Morphia QuickStart


Simple MongoDB Example Servlet


We will also need some JSON.

Android + MongoDB + Node.js (in progress)

Mobilize Your MongoDB

MongoDB with Morphia 

LinkedIn’s Platform

Node.js at Heroku

VMWare Player for Cloud Foundry

Cloud Foundry





Main Documents

MongoDB Manual

I have MongoDB and RockMongo installed on my OpenShift PaaS site with JBoss.

JBOSS + MongoDB Quick Start

MongoDB + Java Tutorial on OpenShift

MongoDB Driver for Java (JavaDocs)

MongoDB + Android Part 1 + PaaS

Spatial MongoDB in OpenShift

SoLoMo (social, local, and mobile)

Geospatial Indexing in Mongo

MongoDB Shell on OpenShift

MongoMonitoringService (MMS) on OpenShift PaaS

MongoDB Native Driver for Node.js

MMS Manual

MongoDB Free on OpenShift

MongoDB Tutorial

BinaryJSON (Primary Data Representation for MongoDB)

SQL to MongoDB Mapping Chart

MongoDB Quickstart

Performance Tuning

Java Driver

Webinar:  Zero to MongoDB Intro for MongoDB with Java 

Mongo Tutorial

Slides and Videos


MongoDB + JavaScript

MongoDB + Java

MongoDB + Hadoop

ORM Node.JS for MongoDB

New MongoDB Docs

RHC / OpenShift Starting