BSA 728x90 Center Banner

Advertise Here

Thanks for your interest in sponsoring The blog, on average, gets 23k-30k page views per month with 16k-20k unique visitors per month reaching a global audience. has been featured as a Top 25 VMware Blog multiple years and has content ranging from VMware, monitoring, free tools, code hacks and more. Checkout the StatCounter Public Stats.


Advertising is done through Check out the Market Place listing to learn more and also use coupon code giveme5 to take 5% off your first 30-day purchase. If you are interested in a 6 month or 1 year sponsorship or are looking to sponsor on an area not listed, please send me an email to work something out.


Add a comment

Tweeting Photo Booth using Node.js for EMC World 2015

Copy/Pasta from The Tweeting Photo Booth on the EMC {code} Blog



The months leading up to a big conference is usually when the ideas need to start churning. @gracelyb had an idea for a unique way to keep people entertained while showcasing some technologies from EMC as well as showing how it can integrate with APIs from different companies. That’s where the EMC {code} Photo Booth originated.


The Photo Booth is a MEN (minus the A) stack application using MongoDB, Express.js, and Node.js. This seemed like the perfect architecture because it needed to be a semi-scalable web app that can hold a couple thousand documents/records. In addition, it needed to be built in a way that things happen in the background without breaking the flow. The non-blocking format of Node.js fit the mold perfectly.


This was actually an extremely fun project to tackle because it really allowed me to touch every end of the stack from front to back. To make it all happen there is more than just Node and Express, but there’s jQuery, AJAX, Amazon SES (simple email service) API, Twitter API, Constant Contact API, EMC ECS S3 API, and even more javascript.


Add a comment
Read more: Tweeting Photo Booth using Node.js for EMC World 2015

My latest project - s3motion

This was originally posted on



“Object” is common place in new applications and many vendors are offering this new generation of object-based storage. The one thing that has made object storage so successful is the lowest common denominator of S3. You may know it as Simple Storage Service from AWS, but Amazon has followed a simple REST based approach that many vendors just refer to as “S3 Storage”. There are many S3 compatible storage vendors such as Cleversafe, RiakCS, Ceph, vCloud Air Object Storage, and, of course, EMC ViPR and EMC ECS. Each vendor uses a similar API structure to follow Amazon’s S3 service.


Many people start their object storage journey using AWS, but at some point must look at other alternatives for cost and/or security. The piece that was missing is the ability to migrate objects from one S3 compatible service to another. This is where s3motion plays that crucial role.


s3motion is a combination of both a CLI tool and REST based microservice that can upload/download/copy/migrate objects between local filesystems and S3 storage or between S3 compatible storage systems.

Add a comment
Read more: My latest project - s3motion

vCloud Air VMs - Ruby on Rails + vCloud Air API

Yesterday I wrote an article highlighting how to use attr_encrypter and it was for this app. I made a video so not much text is needed. But this highlights using encryption, UUIDs with ActiceRecord, AJAX calls to a Rails controller, and some jQuery magic. You can access the application at


Watch the video for instructions and all the goodness. And of course here is the repo with all the code =>


Add a comment
Read more: vCloud Air VMs - Ruby on Rails + vCloud Air API

Ruby Example with the EMC ViPR REST API

Yesterday, I built out a small ViPR instance in my home lab using Virtual Isilon to start messing with the APIs. I wasn't really planning on showing this particular API because I'm wanting to play with a different set of APIs, but I figured I would take the time and show a ruby example of using the ViPR REST API. REST is awesome. Flat out. I spent part of yesterday trying to decipher the vSphere APIs with Rbvmomi and got completely lost. REST is BEST.


This ruby script is pretty simple. We are going to use the rest-client and JSON gems to fetch some information and parse it. The script will log in, spit out information about every vCenter instance, display host information for each vCenter instance, and display ViPR Service Statistics. I don't have anything configured just yet for storage, but the ViPR REST API is incredibly easy to use.

Add a comment
Read more: Ruby Example with the EMC ViPR REST API

World Cup Fun with Ruby on Rails

TL;DR - just go here -> -> now at


The World Cup is in full swing and While watching the Brazil v Chile game yesterday I figured I would play around with the unofficial World Cup API. You know the saying "if you don't use it, you lose it"? Well, it seems very true for me when it comes to coding. It seems like I have to constantly re-teach myself things when I don't code for a month or so. On with the fun.


William Lam posted on twitter about The World Cup API and Alan "Super PowerCLI Guy" Renouf even made some PowerShell cmdlets in his article PowerShell your world cup.

Add a comment
Read more: World Cup Fun with Ruby on Rails

Deploying JumpSquares with Chef Cookbooks

Over the past week, I started learning Chef. There are a few different configuration management toolsets out there such as Puppet, SaltStack, and Ansible. But Puppet and Chef have majority amount of market share and use Ruby as its code base so it made sense for me to start there. There's no point in starting a project unless you have a goal to accomplish so after I read more about Chef cookbooks, recipes, attributes, etc it seemed like making a JumpSquares cookbook would be a good place to start.


Skip the blah blah and see the code at chef-jumpsquares or read on for the complete back story.


The setup of Chef is simple and only takes about an hour or two to complete. After the server is up and a node has been added, that's where the fun begins. I began my involvement with looking around for cookbooks that use the same components that are needed in the JumpSquares appliance model. Cookbooks such as postgres for database, rvm for ruby, and nginx for web/application servers were already available and made my job starting out much easier.


Add a comment
Read more: Deploying JumpSquares with Chef Cookbooks

Chef Cookbook and Recipe for Thin + Nginx with Rails

For simplicity, I deploy thinnginx for most of my rails applications. Thin is lighter weight than Passenger and the combo makes it more favorable than running Apache. I began learning Chef and saw nothing for thin existed so I attempted to make a cookbook.


If you don't want to read any more about this, then jump over to the code on github chef-thin_nginx.


This cookbook will install thin as a gem and complete a configuration. While 'nginx' will be installed from package and installed as a normal service.


To make the 'thin' installation from gem work properly, 'rvm' is required. rvm has a shell interface that is used to install the service from the gem. I previously tried to install thin from source and it wouldn't work correctly because 'rake' tasks are necessary gems that aren't loaded into the internal 'chef' gemset. In addition, I tried to install the thin gem to chef's internal gemset, but I received lots of errors when it came to postgresql gems. That is why rvm is necessary. rvm will install version 1.6.1 of thin unless you change the parameters. This was tested with 1.6.1 so it will work.

Add a comment
Read more: Chef Cookbook and Recipe for Thin + Nginx with Rails

Automating vCloud Director Organization VDCs with Ruby

I filed this under rails projects, but it's really just some ruby code...


I set a goal for myself to become familiar with the vCloud Director APIs using REST. Mainly to see how long it would take me to automate my first task and prove to myself I can do it. Well, I'm pleased to say that it's alot easier than I thought. I had a new vCloud Director instance installed on Monday, and by Wednesday morning I was just finishing up my code. So within 2 days I was doing some automation tasks and it really wasn't that hard. It gave me a chance to work directly with the API using the rest-client and nokogiri gems. A total of 200+ lines of ruby code all together


1st: NewOrg.rb
This will create a new Organization based on the parameters specified in the XML. Relies on the new_org.xml.

2nd. NewOrgVDCandServices.rb (not completely working)
This will create a new Organization VDC based on parameters specified at the beginning of the Script. It also uses 3 XML files for the POST input parameters. After the Organization vDC is created, then deploy a vShield Edge Gateway appliance to the newly created OrgVDC. Wait 120 seconds after deployment, then configure 2 new services are created on the Gateway appliance:

  1. A default firewall rule to allow all internal traffic to pass to anything external
  2. A SNAT rule to allow internal traffic to speak on a NATed address externally.
Add a comment
Read more: Automating vCloud Director Organization VDCs with Ruby


Page 1 of 2

Related Items

Related Tags