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.

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.

Why I can’t upload pictures on my laptop using Ubuntu

I have been a Linux user since at least 1995.  That was the year I bought my first distribution copy of SlackWare 96.  I have fiddled with almost every distro you can think of over the years.  I can remember going through all the dramas with Linux:  the Window Manager wars, the libc mess, the Gnome wars, the growth of Redhat.  During all of these moments I honestly didn’t hold it against Linux that I always needed to have a copy of Windows available to get real work done sometimes.  Linux was usually the best environment to get development work done for Java or LAMP so I never had a problem not having a proper Office Application.  The Dual boot thing was annoying, but, I could get over it with the rock solid stability and close compatibility with other Unixes. 

In the last 5 years I have somewhat settled on using “Desktop” distributions.  My reasons:
1.  Easier to update so I could see new features without having to do some funky configuring.
2.  Less maintenance.  I like to pretend that my computer is not a hobby that requires constant caring and feeding like a house pet.
3.  Easier installation of addons and new software.
I know I’m losing patience with my old age and quite frankly I don’t have the time for spending overnight to get printing to work.

Honestly I was in a state of Détente with Linux because I wasn’t really happy with a few things.  Driver support in Ubuntu has always been atrocious and this distro had some of the best driver support.  I hated how simple things would not work like my HDMI port.  Don’t even get me started on Linux’s lack of support for the Hybrid Graphics in my Dell laptop. 

This weekend I updated to Ubuntu 11 with its new Unity Interface and I just realized that I had been using Linux for 17 years and I was still unable to do something very basic:  Upload images to PicasaWeb that were loaded on my laptop.  First off, all my years mucking about with fstab made me know to load my windows partition as a mounted drive when I installed Ubuntu (that saves a lot of headache, but, frankly why doesn’t Ubuntu mount every partition it sees on the drive automatically?).  So getting to the pictures wasn’t the problem.  The problem was the the new Nautilus interface that popped up inside of Mozilla Firefox was complete indecipherable.  Now, I am something of a UI geek (its why I went to Ben Schneiderman’s school for my undergrad and tried to get a job in that lab) and I have worked with computers with all sorts of weird interfaces (look, I programmed doom into my TI 85 calculator, so I know how to get things done).  Its hard to admit, but, I couldn’t figure out how to get to my windows mount inside the file list window.  I thought I was losing my mind so I tried another browser, but, they all default to using the Nautilus file browser.  I’m sorry, but, after trying for about 15 minutes I gave up.

Good job Ubuntu, I just gave up on Unity at that point.  Its clear they never tested this with any user groups.  I had Gnome running pretty nicely with CompWiz (Desktop Cubes, extra effects, :)).  I switched back to Ubuntu “Classic”, but, I decided to boot into Windows to upload my pictures.  The funny thing is that I see how quickly Android has gotten away from the mistakes of Linux.  For one thing there is only one GUI for Android (though folks implement add-ons).  I find it very satisfying using the stock Android 2.2 Ui on my G2X (drool).  Over the years I have been forced into liking stock interfaces and I can say that Android is a nice one.  The travesty that is Unity is not ready for prime time.  If you can’t bring in a user group consisting of basic users and see how productive they are in using the UI then you can’t make that UI the default.  Regardless of Shuttleworth’s feelings about Gnome the decision should have been made to keep users productive even if you are using a messy code base.