MySQL import into Azure (ClearDB) via PowerShell

I attempted to import a MySQL database I had previously exported today via PowerShell, and was greeted with this lovely error:

For the record, the import command was:

mysql -h [hostname] -u [user] -p [tablename] < backup.sql

And the error thrown, "The '<' operator is reserved for future use.".

The fix is to read each line of the data into PowerShell as an object using Get-Content, then pipe it to MySQL... sort of the opposite of the method above, like so:

Get-Content .\backup.sql | mysql -h [hostname] -u [user] -p [tablename]

Hope this helps somebody else, or future me.

Andrew Hodges Alan Turing

I rented The Imitation Game recently and enjoyed it, but I felt that it glossed over the details behind the 'universal machine' that Turing spent his life creating.

I don't feel like I need to recap the movie, go watch it or checkout Wikipedia if you aren't familiar. Oh, and be sure to checkout Computerphile's YouTube series on Turing and Enigma.

I picked the book up from the library (the Columbus Metropolitan Library is amazing), thinking it would be a quick weekend read. I was wrong. Here's what I discovered when I picked the book up on Friday:

I hope the book keeps me interested, otherwise there's no way I'm making it through!

Gotchas with knife-azure gem on Yosemite

I ran into some issues with the chef/knife-azure installation and configuration sections of the README, so I'm writing them down here.

Installation

sudo gem install knife-azure fails. I found a good writeup on this at http://effectif.com/ruby/installing-nokogiri-on-mavericks

I'm using rvm, not rbenv, but the solution that worked for me is pretty much the same:

  1. xcode-select --install
  2. sudo gem install nokogiri which, in my case, was the knife-azure dependency that was causing the build error.
  3. sudo gem install knife-azure

Once the gem installs, it should be available in your shell $PATH. Try running knife azure --help to confirm.

Configuration

Once you've downloaded your Azure publishsettings file https://manage.windowsazure.com/publishsettings/index?client=xplat, you have to tell knife where to find that file so it can communicate with your Azure account. The publishsettings file is actually a really convenient way to authenticate to Azure.

DO NOT check your publishsettings file into GitHub, for obvious reasons.

You'll find your knife.rb file in ~/chef-repo/.chef or ~/.chef. If it isn't there, create it manually or run knife configure.

Simple.

Add to your knife.rb file:

knife[:azure_publish_settings_file] = "/full/path/to/myazure.publishsettings"

Don't use a relative path or your home path "~/" as indicated in the README. If you do, you'll get an error

WARNING: no knife configuration file found

After configuring knife.rb correctly, you should be able to get started using knife-azure!

Beginning Again (this time in earnest)

I've decided to make yet another attempt to get back into development, at least, I intend to (confidence inspiring, no?). My hope is that by putting my thoughts down in a public place, I'll at least keep myself more honest.

I'm not new to it, but it sure feels that way. It's been 6 years now since my last full time job as a developer. I've kept a toe in it since leaving, but it hasn't been enough.

Why?

Creative outlet. Personal fulfillment. Pursuit of something more, something satisfying. Can these be achieved? Creative outlet, sure, but the others are more waypoints off in the distance.

Why Now?

2 kids, full-time job, weekends taken up with housework, birthday parties, extended family visits. This is something that fits into my schedule right now, productive work I can do after the kids go to bed.

Where am I coming from?

I definitely can't say I've consistently focused on any one thing profesionally. I started in IT out of college, doing general support for a few years before jumping into full time Ruby on Rails position at a startup. This was during the social networking craze - everything was trying to be social, figure out how it fit in - so that's what I did, built a series of "me too" social networks. More than anything, I learned that diving in headfirst is the only way to learn.

I had the fortune of going RailsConf and FoWA in 2008, which exposed me to some cool technology, and introduced me to some very talented and intelligent people. I also worked with some incredibly smart people at the startup too. This is where I developed my relationship with code and respect for the people who are crazy good at it.

By the end of 2008, I could see that the startup wasn't going to last; I was recently married, a new homeowner, and I was looking for something with more promise. so I left and returned to IT.

I've been working in IT ever since. I've developed a few applications professionally since - a touch-enabled keypad in Ruby on Rails (TDD and my first gem), a system status page (Zend framework), several Wordpress sites for various projects and dabbled in Node.js with all of them - but I'm not a full time developer. I'm barely even a part time developer.

Where do I want to go?

C# and .NET. It can power websites, desktop apps, APIs, and now every mobile platform via Xamarin. It's one language that can do it all. It's a strongly typed language, meaning I can't just create a variable and assume the interpreter will know what kind of type it is (which is found in Ruby, PHP, and others). C# types are cast when variables are defined or objects are assigned to a variable.

C# is a compiled language, another new-to-me concept. C# compiles into an intermediate language, which is then translated into platform specific machine code at runtime as it is needed, or "Just in Time". The nice thing about this C# can leverage libraries written in other languages that also compile into that intermediate language, or that leverage the .NET framework.

C# leverages Visual Studio, which, though daunting at first, contains so many nice features beyond code completion (which Microsoft calls Intellisense). Installing Visual Studio, as "bloated" as it may seem at 14GB (but hey, storage is cheap) is easier than setting up a local development environment for PHP, and in most cases Rails if you're like me and don't use the built-in rails server. I don't have to worry about an update to my OS breaking Apache, MySQL, or any of the dependencies I painstakingly compiled with a multitude of flags and options.

Then there's Azure websites - a platform that integrates with Visual Studio that includes scaling, load balancing (across multiple physical locations), metrics and more all bundled up in a nice and cheap package. Seriously? You mean I don't have to standup my own servers (I know, I know Chef is a thing), configure a lengthy deployment script, manage my reverse proxy and application runners? Sign me up!

Oh, and parts ASP.NET are going open source with the vNext release. That's some street cred with the cool kids out there.

My hope is that all of these features will make my life easier as a developer, and make me spend less time digging out.

Ok, enough fooling with my first real blog post - I'm publishing this thing.

Hello World

Lookin' at a thing on the web. DaveyB!