Thank you Mr. Musk

As a human alive on earth at the beginning of the 21st century I would like to extend my heartfelt thanks and appreciation for what you have been able to accomplish, because it has done so much to give humanity a fighting chance and to give a push to others to think of the future.  Your two companies, Tesla and Solar City are going to change humanity for the better.  Its not easy to do what you have done and as a failed entrepreneur I don’t even understand the basics of how you have done it, but, I recognize it for what it is:  akin to human evolution.

Before Tesla the idea of a main stream electric car was a footnote.  Most of of us are aware that cars were originally Electric, Steam and alternate powered and it was the oil interests who latched on to the internal combustion engine for dear life for the last 100+ years.  However, that hold was always tenuous at best and fraught with dangers for the species.  We are only now recovering for the crime wave brought on my leaded gasoline (and it is definitely a part of the chaos across the world where it is still available).  We are slowly rebuilding our public transportation system.  Shifting to electric cars is a small part of the energy picture, but, it had the effect of opening us up to the next big step: off the grid.

The massive, error prone electrical grid was another monopoly that was forced upon us to our detriment.  However, you are now showing us the way forward.  The combination of solar power and long term battery storage is going to end the municipal power industry (if hackers don’t do that first).

Thank you Mr. Tesla.  Thank you for not only showing us the way, but, also giving us a swift kick forward.  I can’t wait for what else you are working on and I look forward to all others who follow you.

My guest blog post is live

I’ve made a guest blog post on the AWS public sector blog about Amazon Workspaces.  I use Workspaces every day and several of my customers make use of it so I’ve had to dive deep into the platform.

BYOL is a great feature as it allows you to use your existing Microsoft Windows image and license and get reduced pricing.

Check out the post here

New me

For folks following me on linked-in you will know that I have a new gig.  Its a dream job for me actually.  I’m not in DC anymore, but, I have clients all over the DMV so you may catch me in different places.  I’m finally working for a cloud provider and it feels good to be working on the future rather than playing catch up like so many in the industry are.

Its one of the bigger companies so I’ve been holding a firehose for the last 3 weeks.  I’m back in VA now so hit me up if you want to do lunch or something.

Docker presentation to Node DC

Thanks again to the Node DC folks for allowing me to talk about using Docker with Node JS.  It was a packed house and I was just glad that the projector and my laptop were friends.  The feedback so far was that my presentation was well received and I had a few folks come  up to me after with questions and comments.  The slides are available here:  http://www.slideshare.net/lenworthhenry/node-dc-2-2614-docker-and-node-js and the code example is available here:  https://github.com/lenworthhenry/Docker-Example.

Would love to do that talk again so if any local meetups or hackers want me to talk about Docker just drop me a contact below.  I am also interested in doing freelance work so if there is a way I can help you with Docker or Node JS please contact me as well.

 

Inserting Master Data Services Domain Attributes Using Staging Attribute Table

Inserting Master Data Services Domain Attributes Using Staging Attribute Table.

You need to insert the following into the staging tables:

INSERT INTO [CPSRMS_MDS].[mdm].[tblStgMemberAttribute]

([UserName]

,[ModelName]

,[EntityName]

,[MemberType_ID]

,[MemberCode]

,[AttributeName]

,[AttributeValue]

,[Status_ID]

)

values( ‘Your User Name’ as UserName

,’Yout Model Name’ as ModelName

,’Your Entity Name’ as EntityName

,1 as MemberType_ID //This should be leaf

,Code as MemberCode //The Code of your child table

,’The Name of the Domain Attribute You want to update’ as AttributeName

,The MemberCode of the Parent Entity that you want to set the child field to.

,0 as Status_ID

)

A new certification regimen

I have been working in the industry for a while and I have gotten one or two certifications over the years. My current employer is a Microsoft Partner and there are benefits to the company for me to receive certification. I have decided to pursue some certification based on my work experience.

This started for me this past weekend and I have already achieved my first SharePoint certification (My MCP Business Card). I intend to become MCP SharePoint Developer and Administrator as well as ASP.Net Web Developer.

Amazon EC2 Performance will cost more than other vendors.

When we first started working on our platform, there was no question that we would use Amazon’s platform for hosting. EC2 has amazing tools, rock solid reliability and instant name recognition for investors and users. It is actually a part of our marketing.
During development, we created dozens of servers to either test functionality or to validate features. We actually used several AMI and host operating systems. EC2 is great for validating ideas. It costs us very little for all this.
So we are approaching launch and I assumed that we would be using a small or large instance since a micro instance seemed sluggish. The plan was to go with RDS for the db and S3 to offload some load from our web host.
So I setup a small instance with RDS and do some performance testing (ab, j-meter, and some of those testing sites like pingdom). The numbers returned back were atrocious: requests per second of less than 1 and page load times of 37 seconds with load. I review CPU utilization on the RDS instance: nothing more than 30% during the tests. After some digging its clear that the web host was to blame.
The next step was to create a large instance. Monthly cost for this would be 250 per month just for that box: the RDS and S3 would be more. In total, our monthly costs would be $400 per month. What did we get for this cost: 4 requests per second and page loads of 14 seconds. The RDS was lucky to see 40% CPU utilization. This was not something we could go live with. These numbers were what we got locally so across the internet it would be worse.
Now we didn’t do performance tuning (caching in the app, memcache, xcache). That wouldn’t have bought us much and even a five fold increase would not get us to acceptable levels of performance.
EC2 has server more robust than large, but, then costs go up rather quickly.
We have found another VPS vendor who offers much better value for the money. For what we are working on right now, EC2 cost structure just doesn’t work.

Switching Blog Platforms

Long story short, I had been paying way too much for my blogging site and getting less performance than I could for the money.  I had been running my server for a few years using a VPS Windows server.  A Windows Server with 512 MB of memory is a very different animal from a Linux Server with 512 MB of memory.  Of course I am paying less than half per month for my new server and I am getting 6 times the requests per second.  Its not even fair to compare a Windows web server to a Linux one in this scenario.  IMHO there is no good reason why Windows VPS servers cost about $50-$60 per month.

The good news is that there are plenty of Linux VPS vendors that offer very good hardware for lower prices that can host a much higher performance site than I can get from a Windows Server.  I am very happy to be a WordPress customer.

 

Why I am switching to using Windows 7 as my boot OS

This is a little embarrassing.  My most recent source of unhappiness was my purchase of a Dell Vostro 3700 laptop that happened to be one of those “Hybrid” chipsets.  In exchange for a smashing purchase price I am stuck with an Nvidia FX graphic card that will not work in Linux.  Instead I get the equivalent of an Intel HD graphic card.  The awful truth is that I would have saved even more money and gotten a laptop with just Intel HD graphics.  Pulling at this small thread has led me to even more sources of discontent.

 

In reality, my problems are much bigger than just my graphic card.  I have been a Linux user for quite some time (my first store bought copy was SlackWare 96).  I have used a variety of flavors with all types of user experiences:  source compile only Gentoo, Debian package management based distros, even some live CD versions. My younger more patient self was more willing to put up with the little foibles:  bad device driver support, half baked UI rewrites, API wars about issues that maybe 5 people in the world care about.  I was willing to put up with it because until about 2 or 3 Windows revisions back Windows was not the most competent O.S.  Furthermore, Linux was usually blazingly fast on even limited hardware.  One of these things has changed though:  since about Windows Vista, Windows has actually become a very usable and elegant O.S.  In fact, its fair to say that Windows 7 is easily the best desktop O.S. that has every existed.  I say this without the least irony and with a little eating of crow.

 

I have to admit, I wasn’t exactly rooting for Microsoft in the desktop O.S. wars.  I frankly didn’t care about commercial operating systems as I was perfectly happy using freely available ones.  A few things have changed for me in the last few years:

  1. I don’t have time to tinker anymore.  I have a full time 9 to 5 and then I come home to code my startup application.  I don’t have time to spend days or weeks without my computer just working.
  2. Linux driver support has become progressively worse.  Back in the day Linux was usually made to work on a few manufacturer pcs and maybe one or two high performance computing platforms.  Today, Linux is running on everything from cell phones to toasters.  The resulting dilution of resources means that Linux just doesn’t have the same driver support that it used to have.  This is particularly bad for desktop users as the paid driver developers are working for enterprise vendors like Red Hat and they no longer care about desktop Linux.
  1. I finally have a big problem with the perpetual change model of Linux.  Here is the thing, do we really need to have 25 window managers?  Do we really need 10 application servers.  I’m all about diversity, but, diversity should be moving us forward not just changing for the sense of change.  The Linux community seems to accept that the platform is perpetually changing and that we have to keep updating on a regular basis like a waiter serving drinks on the roof of a moving vehicle.  That analogy explains what its like being a Linux desktop user today.  Every day you log into your machine and you are greeted by 5-10 updates.  You can read the developer descriptions of those updates, but, they don’t get into the epic flame wars that may be associated with those updates.  You also won’t hear about why your machine may be broken after installing these updates.  (I could write a book on why this is not really always the developers fault, in fact, there are so many reasons why this is).  The problem is that other than the Kernel, Linux frankly has too many updates that can cause end user problems.  The traffic cops for this are the distro developers and this problem lies in their hands.  This problem is for them to solve.  Quite frankly distros need to have integration labs like what Microsoft have where they thoroughly test new versions before hoisting them on an unsuspecting public.
  1. I am more concerned about being able to work and be productive than I am about having new features.  Maybe I’m getting old or maybe I am very busy.  Either way I wouldn’t mind using FVWM and old lib C if I didn’t have to worry about my laptop breaking every few weeks. 

 

So how does Windows 7 fit into all this.  First off, it’s a damn fine OS.  I’ve never had it crash on me and I’ve used it on several different laptops and desktops.  Its not a memory hog.  The UI is very nice and simple.  The driver support is amazing.  Overall it is a very unfussy product.  This leaves me in somewhat of a bind though since most of my development work at home is on the LAMP stack.  However, there are several virtualization platforms that allow you to run Linux inside Windows 7.  Now this may seem quite strange, but, I need to run Linux for all the great developer tools and wonderfully free API.  However, I am likely going to give up on dual booting my laptop.  Long rant for little pay off, but, this is what you get from staying up late because of something stupid.

Sobering details of the startup

For those who know me personally you know that I haven’t been able to shut up about this platform that I have been working on for the past few months.  Its been a lot of hard work, especially because it was happening after I would do  my 9 to 5.

Unfortunatley, a competitor has gotten to market with a product very similar to ours.  But, if you know anything about people who try things like this, thats just water on a ducks back.  We are aware that the market has changed, but, we are still convinced that we can develop a viable platform and a good company.  You see thats what we are really after, not so much to be the most well known or to be the most profitable, but, just to be sustainable and reputable.

At this point I only have the following advise:

  1. Do something you believe in.  Don’t be caught doing something that you wouldn’t want to be doing when you die.
  2. Remember that the race belongs to the dedicated and wise, not the quick.
  3. You have to be doing this for a reason other than making money, because frankly you can make money selling internet porn or as a mail carrier.
  4. God rewards those who pursue their dreams with a singular conviction.  You may not get exactly what you thought you would get, but, trust me it will be something so much more worthwhile.
  5. Don’t limit yourself to just what you can imagine.  There is a whole universe out there and you can’t imagine what the boundaries of it are and of where you might fit into those boundaries.
  6. Have a fine German Ale every once in a while, it will reboot you very quickly.

Best of luck on your adventures my friends, I am actually enjoying my own.