BSA 728x90 Center Banner

Persistent Data on Docker Containers from EMC {code}

Docker containers are architected to be ephemeral, meaning the entire container can be wiped out and no harm is done. But what about containers that you are using for databases such as PostgreSQL and MongoDB? What about containers that need access to backend storage. There are tricks that can be done such as using LVM to mount volumes, or using something like NFS or Amazon's new elastic NFS services to automatically mount those shares on docker run. But what about creating those volumes directly from the docker run command line? What about spinning up many containers all attached to block services that can come from AWS or even your own storage infrastructure?

 

Today, the EMC {code} team is happy to announce a few new projects. All of these were created by Clint Kitson and his genius of the Go language. Check out these videos below and you can check out the repos here:

https://github.com/emccode/rexray

https://github.com/emccode/rexraycli

 https://github.com/emccode/dogged

 

Read the official blog release: Dogged-ly Pursuing Persistent Data for Containers with REX-Ray

Read more: Persistent Data on Docker Containers from EMC {code}

Simple Gmail Hacks That I Use Daily

Email is the thing we all love to hate. However, if we can't use Slack, then Gmail is by far the next best thing. Having been a user for Gmail since its early early beta days when you need an invite, I've grown fond of it. The spam filters, the style, the responsiveness, and the access from anywhere is what I love. There are some hidden "features" that many don't know about. I'm going to highlight some that I use daily.

 

In true Google form, everything always seems to be in a stage of "experimentation" like it will eventually die. Remember Google Wave?  The Google Graveyard

 

We are going to look at 3 projects within the Gmail Labs and also some other Account Feature hacks. Where is Gmail Labs? 

 

Within Gmail, click on the top right drop-down with the gear icon and go to settings

Read more: Simple Gmail Hacks That I Use Daily

Deploying a Node.js WebApp with MongoDB to Cloud Foundry

I recently created a new project to help me get a better understanding of Node.js webapps using Express.js and using MongoDB on the backend. It took me a little over 2 hours to get this app properly deployed to CF and run in development at the same time. Documentation is sparse, so I'll spare you the details and just show you how it's done.

 

package.json:

The only thing you need here is that if you are using express.js then the "npm start" needs to be setup correctly. If you used the express generator then this is done for you.

"scripts": {
    "start": "node ./bin/www"
  }

 

Read more: Deploying a Node.js WebApp with MongoDB to Cloud Foundry

Win a vSphere Home Lab from VMTurbo!

Do you need a home lab or just want to add on to your existing? Of course you do. Who the heck doesn't. So what's up for grabs?

  • Intel NUC with Intel Core i5-4250U
  • G.SKILL Ripjaws Series 16GB (2x8G) 204-Pin DDR3 Memory
  • SAMSUNG 840 EVO 250GB SATA III TLC Internal Solid State Drive
  • Synology DS415+ Diskless System DiskStation 4-Bay NAS
  • 2x Dell 1TB 7200 RPM SATA 3.0Gb/s 3.5" Hard Drive
  • Cisco SG300-10 10-port Gigabit Managed Switch
  • Rosewill 7ft. Cat 6 Network Cable

 

How do you enter? Simple. VMTurbo is giving away a home lab to 3 lucky winners who sign up for their 5.1 release webinar!

 

 

 

Read more: Win a vSphere Home Lab from VMTurbo!

Encrypting Data Using attr_encrypted With Rails

I'm making a new application that will be public facing but I don't want any clear text being stored on the server for any user at anytime. This way, there will be no compromising of data. In this case, username and password credentials. This isn't an application where a user will login with their creds, if that were the case I would have used Devise. Instead, I'm taking these username and password credentials and piping them in to the application to talk to an outside service.

 

The first part of obscurity was making the Rails model create new entries based on UUID instead of sequential numbers. That was pretty easy by following this tutorial How to start using UUID in ActiveRecord with PostgreSQL. The second part was implementing the attr_encrypted gem. attr_encrypted allows you to store data in encrypted format to your ActiveRecord database. In this case, i'm using Postgres. 

 

The README is a start but doesn't get you all the way there. So here is how it's done.

 

Start off by creating a new scaffold. You must specify encrypted_ before anything you want encrypted in the model

rails g scaffold Model encrypted_user:string encrypted_password:string host:string

 

Read more: Encrypting Data Using attr_encrypted With Rails

How to Fix ScreenFlow Internal Error When Recording Computer Audio

Yesterday, I wanted to record a few minutes out of an embedded HTML5 video but didn't want to cut and edit the video. So I figured I would just use ScreenFlow to capture it. Before I was able to record computer audio, I had to install the ScreenFlow Audio Driver. I followed the proper steps, and when I went to record computer audio I was hit with the error: "Recording Error Due to an internal error, the recording has unexpectedly terminated. Please try making your recording again, and if problems persist, contact us for technical support."

 

After a quick google search showing me a few youtube videos and Telestream forum posts, including 4.5.2 Wont Update Audio Driver, none of them worked. By the way, don't follow 4.5.2 Wont Update Audio Driver thread and repair disk permissions unless you want to waste your time.

 

After reading how to uninstall the ScreenFlow Audio Driver did I finally understand how to reverse engineer it. Follow these steps:

 

Read more: How to Fix ScreenFlow Internal Error When Recording Computer Audio

2014 into 2015 with Virtualization, Containers, and Code

You asked for it John, so here it is!

 

In the realm of virtualization, 2014 was a major buzzkill. It's a big indicator of things on the horizon for 2015. From my look back in VCE, I saw a rise in VDI deployments because SSD is cheaper and getting to be commonplace. Lots of talk about network virtualization, but I've seen marginal "real-world use". I really thought a network virtualization provider such as Plumgrid, VMware NSX, Cumulous, or someone else would be leading the charge, but it looks like the technology still needs more time to mature. Give it a few more years. And for me personally, virtualization has lost my mindshare. Some of my VMware certifications have officially expired and the world doesn't need me as a VCDX.

Read more: 2014 into 2015 with Virtualization, Containers, and Code

Implement a list item tagging system using jQuery

2 weeks ago I completed a new feature on EMC Code's github page. We have a bunch of different projects that need to fit in different buckets but can sometimes span more than one bucket. Or projects in two different buckets use a common technology. To make it easier for our users to find things relevant to them, I created a tagging functionality. 

 

The HTML

First create a div that will have nothing in it. I've assigned this with a class if "hiddenUL". This is where we will use jQuery to append the list items with specific tags.

 

Next, create an unordered list of items that will need a common class. In this case, the class is "item_box" because every item is in the shape of a box. Next, we give each list item a set of classes. Don't pay too much attention to everything *inside* the list item. All of that is there for the styling of it. These classes, however, are going to be our means of tagging. Make sure spelling and capitalization are all correct. It's also important to note that we can have multiple sets of unordered lists. 

 

Lastly, create some buttons. You will need a button for every type of keyword or class you defined in the previous step. Also, create a 'clear tag' button that will be used to clear the tags.

Read more: Implement a list item tagging system using jQuery

Creating a worker process on Cloud Foundry with Clockwork

I just got finished writing a Rails application that requires a 'cron'-like job to run every 30 seconds. This job will scrape a website for data every 30 seconds and update the database and notify me via SMS about any changes. I was able to get this all working on Heroku after a while with the assistance of some Procfiles. but I wanted to try this on Cloud Foundry as well.

 

The problem existed because of lots of out-of-date documentation on the part of Cloud Foundry. The most confusing part was not understanding this requires 2 containers/applications. One for the app, and another for running the clockwork task. In Heroku, this requires 2 Dynos as well because 1 is for 'web' and the other is for 'clock', however, this is all masked behind Heroku's magic.

 

So how do you create a worker process? I was going back and forth creating rake tasks, then tried putting logic into my controller, and having everything ultimately fail. After some trial and error, I found out the best & easiest way is to put all the logic into the Modal. Once the logic is in your modal, you can easily call it by doing Modal.method.

 

Second, add the clockwork gem to your Gemfile, then create the file "lib/clock.rb". Follow the gist below to configure your clock.rb file. Specify the Modal.method that you wish to call.

 

Great! now we just need to build our manifest.yml file for Cloud Foundry. The important thing to remember is that we are essentially going to spin up 2 applications. The first container will be the web front-end of our rails app, and the second container is just the clockwork reoccurring job. If your reoccurring process will need to make changes to the database (which it most certainly will) make sure you append the correct services. In this case, both of my containers will be using the same database.

Read more: Creating a worker process on Cloud Foundry with Clockwork

Phonegap Cordova Geolocation Integration with Google Maps Javascript API v3

I'm venturing into a new world of hybrid mobile development to test the waters and I have a new project I'm currently starting. I can't divulge the specifics yet, but the very first part is to get Google Maps working. I had a harder time doing this than I thought.

 

At first I tried using the recently released phonegap-googlemaps-plugin and got it semi-successfully working. I had it working in both iOS and Android but then came to find out that you can't use the Places API to find POIs on the map. That won't work so I reverted to using the old Javascript API to show in 'browser' mode instead of the native SDK. I came across  Implement Google Maps API on PhoneGap Using the Device API and struggled for 2 days on trying to figure out exactly why it wasn't working. It was a combination of type, outdatedness, failure to copy/paste, and missing CSS variables. I'm going to recreate it to make "spoonfed" useful.

 

You can see this entire project at https://github.com/kacole2/jsmap1 or look at this Gist for the entire code: Phonegap Cordova Geolocation with Google Maps Javascript API v3

 

Read more: Phonegap Cordova Geolocation Integration with Google Maps Javascript API v3

Page 3 of 32

Related Items

Related Tags