19 9 / 2013
Today I am both sad and excited at the same time. Sad in the fact that I have made the decision to leave VCE, but excited about the next opportunity ahead of me.
VCE is a fantastic company where I have made so many good friends and learnt so much over the past years. Being involved in a company that is growing so quickly is an incredible experience, and I would recommend that everybody try and do that at some point in their career.
At the end of the month I will start a new chapter in my career, as a Solutions Architect at Amazon Web Services (AWS). This is really exciting for me, working for the undisputed leaders and Pioneers of Cloud Computing. This also aligns with my latests interests around Distributed Systems, API’s and Utility Computing. I cannot wait to get started!
As you can imagine the content on this blog may change some what, but I hope to continue to post regularly. I hope you are still interested ;-)
07 8 / 2013
I wanted to give a quick and dirty post on installing Ruby 2.0 and Rails 4 on OSX. I know a few friends have tried this recently and had some difficulties, so this should give you the steps you need to get started.
NOTE: This has only been tested on OSX 10.8.2.
The First step is to install HomeBrew. If you dont already use Homebrew, then you should! Its a great tool for package management on OSX and is super simple to use. To Install Homebrew use the command:
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
Don’t be confused that you are using ruby to install this. OSX comes with a version of Ruby by default, but it is really old (1.8.7) and you will definitely want a later version.
Next, you will need to ensure that Homebrew is running correctly. Luckily Homebrew comes with a command to check everything is ok.
No doubt there will be some things you need to fix. Brew should explain pretty nicely what needs to be done to rectify the issues.
The most common Issue that I see is that people do not have Xcode Command Line Tools installed. You can head over to the apple developer site and download just the Command Line Tools. You do not need to install the full Xcode Product.
Head over to https://developer.apple.com/xcode/index.php but do not download Xcode (unless you want to). Click the link shown in the image below. You will have to sign in, but a quick search for “Command Line Tools” should be good enough to find the installer.
Once the brew doctor command is showing no errors, we are ready to start installing Ruby.
Ruby doesnt natively allow the running of multiple versions on one system. However the use of multiple versions can be very useful when writing ruby applications. There are various tools available to tackle this problem, one of the most common alongside Rbenv is RVM. However I have chosen to use Rbenv this time around.
As we have homebrew installed, it is very easy to now go ahead and install rbenv. You can do that with a few simple commands.
brew update brew install rbenv brew install ruby-build
You will also need to add eval “$(rbenv init -)” to your profile to get rbenv to work correctly. If you do not have a ~/.bash_profile file, your system isn’t different, it isn’t there by default so you can create one.
touch ~/.bash_profile sudo bash echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
You should be now all set up with Rbenv.
Installing Rubies with Rbenv is really simple. But firstly you have to know which versions are available. Luckily Rbenv offers tab completion so if you simple type rbenv installand then press tab, you should be able to see a nice long list of rubies that are available.
As of writing this article, ruby2.0.0-p247 is the latest stable release available so I will be installing that. It literally just takes one command to get ruby installed.
rbenv install 2.0.0-p247
NOTE: It may take a while for Ruby to install so don’t worry if it sits there for a while.
Once Ruby is installed you just need to run one more command, this is required every time you install a new ruby or a ruby gem to rebuild the rbenv shim executables. (read more about this at the rbenv github page)
Feel free to repeat this step as many times for various versions of ruby.
Now that you have ruby installed, you need to tell your system what version of ruby to use. There are two places that you need to configure this. The first is locally, this command tells the system to change the ruby version to use right now in your local session.
rbenv local 2.0.0-p247
The next place you will want to change the ruby version is globally. This command tells the system what default ruby version to use. If you do not set this, the system defaults to your system installed version of 1.8.7 and we do not want that.
rbenv global 2.0.0-p247
You can use Tab completion to see which versions of ruby are available. Alternatively you can use the rbenv versions command to get a list of versions installed on your system
You can double check that you are using a new system by opening up a new terminal window and running the command:
Now that we have ruby installed, installing Rails is pretty straight forward. The Rails framework is all packaged into a Ruby Gem (more on those here), which makes it really easy to deploy.
If you are going to use rails you probably want to use bundler also, so go ahead and install that first.
gem install bundler
Once you have bundler installed go ahead and install the rails gem. It actually installs a bunch of different gems that are dependencies for rails to work, so don’t be surprised if this takes a little longer than the bundler install.
gem install rails
Don’t forget to run rehash again as you have installed new gems
There you have it, you should have a ruby on rails environment running. You could specify the exact version of these gems that you wanted, however the above will ensure you get the latest stable release.
Create an App
You may want to quickly deploy a rails app to test everything is working ok. You can do that very quickly using the following commands
rails new testapp cd testapp rails s
Now navigate in a browser over to http://0.0.0.0:3000 to see the app running. You can click on the link “About your applications environment” to check everything is running on the correct versions
04 6 / 2013
Last week I attended Glue Conference over in Colorado. Glue has been labeled as “a case study of what a conference should be”. And I must say, I could not agree more. I thoroughly enjoyed the 2 day event.
One great thing about Glue Con is that they host a hackathon every year. Being a developer conference, the hackathon is a popular event. For those that don’t know what a hackathon is, its basically where software developers work together in a short period of time to build some software. Some hackathons are themed, and others are sponsored by vendors with nice prizes to give away if your cool new app integrates with their software in any way. The hackathon ends with a round of demos where each group steps up and demo’s their application to the judging panel. Judges deliberate and hackathon winners are announced.
At GlueCon the hackathon was sponsored by various companies that were offering prizes for the best use of their API’s. These included General Motors, Dyn, Twilio, and Nexmo. Each Vendor had their own prizes to give away as well as the two GlueCon Master Prizes. One for Best API Mashup, and one for Best API Created.
As most of you know, I am an infrastructure guy who learnt to code a few years ago. I would never call myself a software developer, but I would like to think I have a good understanding of development practices and how to hack around an IDE. When I received the email asking if I would be participating in the Hackathon, I thought it would be a fun idea to try and invite a few colleagues who were also at the conference to see if we could get a team together. I knew Alan White was a Java guy, Mike Dugan was learning Python and Trevor Roberts was into Ruby like myself. So Team DevGoggles was built. We laughed a lot on email and I think most of us thought we would never even start coding. However, at the end of GlueCon Day 1, we decided to sit down and write some code. less than 24hours before Demo Time.
So with the help from Jae Ellers and Praphul Krottapalli we came up with the idea for our App AlKey. The Idea was simple. Integrate the Twilio and General Motors API’s to stop a drunk person from accessing their car. 6 hours later, we had a working prototype, you had to call your car, and answer a “reasonably” difficult math question before the door would unlock. If you couldn’t answer the math question, we would allow you to “Press 1 to call you designation Ride Home”, “Press 2 to call directory Services and find a local taxi” or “Press 3 to go back to the bar”.
We were impressed. 6 hours of coding, pizza and beer and a bunch of infrastructure guys had managed to build an app. Next up… Demo Day.
Midday struck and it was time to demo our app to the hackathon teams and judges. The demo went pretty well except for it being hosted in the basement and mobile reception being pretty poor. The other teams demo’d their apps and we were blown away. We thought we had a pretty cool idea, but honestly GlueCon Attendees are smart, there were some awesome apps developed in the 48hour period. Anyways demo completed successfully we had about a 4hours wait to see who won the prizes.
4 hours later and various awesome presentations viewed, we went in to the main conference room to close out the conference and see who had won the hackathon.. We hadnt won the two big prizes but we did win one of the Twilio Bonus Prizes. A Sega Genesis Games console and some games. Awesome!
I must say I really enjoyed the whole hackathon experience. Working with a group of smart guys under pressure to deliver an app in 48hours is weirdly rewarding. Thanks to the GlueCon organizers and my fellow team members for an awesome experience. Alkey Sourcecode can be found on GitHub at http://github.com/devgoggles (Coming Soon).
28 5 / 2013
Earlier this year VCE announced they would be releasing a new product called VCE Vision™ Intelligent Operations. For me this really was a game changer in the converged infrastructure industry. The VCE Vision Software is enables VCE to offer the first Converged infrastructure stack with a single touchpoint for management that is fully programmable via open interfaces. I don’t want to talk too much about the product as you can read about it here and here and here.
What is so cool about the VCE Vision software is that it encourages organisations and individuals to start thinking about gathering information about their infrastructure in a programatic fashion, whether this be via the REST API, AMQP, Syslog or SNMP. To enable people to start developing code and start sharing last week VCE launched the VCE Developer Portal.
Whether it is to just look at what is possible or start contributing your code, please head over to http://vce.com/developer and sign up.
You will find that this is the go to place for getting your hands on the VCE Vision™ Intelligent Operations SDK and simulator, so please download when you feel ready and get coding. There is also a healthy amount of content in the community already including sample code from various programming languages and blog posts from VCE employees explaining core features. I have found it a must have resource whilst getting hands on over the last few months.
If you want to reach out to me for anything, or follow my progress on the community you can find my profile here.
I look forward to seeing your activity on the VCE Developer Community.
07 4 / 2013
"Learn to Code, so that you can code to learn."
05 4 / 2013
About a year ago I moved away from a privately hosted wordpress blog to a publicly hosted posterous blog. The move worked out ok, but twitter decided to pull the plug on Posterous last month. Since then, I have been looking around and trying to decide which blogging platform to use.
I played around with landocms which is an awesome idea. You basically host all of your content on dropbox in a specific directory structure and the blog pulls the data. Pretty neat, but the real blocker for me was still having to pay my hosting company to host the small amount of PHP needed for the front end.
Another thing I would love to do more is add more content, I feel with a traditional blogging platform that I had to write a lengthy post every time I had something to say, but with Tumblr it is easy just to post a photo, link, quote or post very quickly. So I am not promising anything, but I am hoping this enables me to think differently about content and offer more regular updates. Wish me luck!