Bits In The Bucket

Just a few more bits in the bucket…

Being more active…

Brian H Mayo head shotSo here I am at my blog and putting in an entry.  I have struggled over the past years to make my time budgeting ends meet without much success.  By day, at least lately, I am an engineer working with Linux infrastructure and Java development, and by night I aspire to be a successful iOS application developer.

My struggles lie in the two main areas: attempting part time iOS development and proper time management.

I have established a decent rhythm for the past few weeks and I am excited to keep it going.  I am able to get in some reading in the morning prior to taking my son to middle school.  I am able to get some development time in the evening while the kids and Joann are at their activities.

This time allocation has allowed me to be able to chip away at my Objective-C and iOS knowledge and has really enabled me to move forward with my application ideas.  I have one application that is about sixty percent completed but not coded very well and another application well under way and shaping up nicely.

Tonight is date night, so I am out for the moment.

Brian H Mayo head shotAfter some stressful weeks and long hours, the Eureka Streams project is out on the open Internet for the open source community to enjoy.  The experiences was great since this is my first effort into putting a project out to the community.

We went with hosting the source code on GitHub, since it seems to be the de facto standard for open source project hosting and met all of our requirements including a light Wiki capability and integrated ticketing capability.  You can find the open source project here.  Up until now, we used Subversion as our source control technology, but now we are moving to use Git.  This should not be a problem, it will just require we push the software engineers to learning the new technique and getting into a slightly different mind-set.

While our program within Lockheed Martin is run as an Agile development effort, we have a rather nice set of product and technical documentation.  I say it this way since some folks think when a project is run as an Agile effort, this means all documentation and process is thrown out the window.  As it should be with Agile efforts, we put effort into important documentation and, I am sure you will agree, it shows.

As we ramp up our offering, we are still in the process of understand how best to run this open source project.  Initially, it is a read-only git repository to which our internal Lockheed Martin team will be updating.  We are accepting patches and feature updates, which I assume will come from folks forking the main repository and communicating with us about their proposed patch or feature update.  To foster communications, we setup a Google Group for Eureka Streams Development.  In our process of understanding how best to run this project, we will be switching our team conversations over to this group from using the internal Eureka Streams application (yes, we use our tool to foster communication about building our tool).  It will take some time to feel out what communications should stay internal and what goes to the Google Group.

I am very excited about this effort.  To the best of my knowledge, this is the first Lockheed Martin open source project to be published on the open Internet as well as the first for a government defense contractor.  We have our business case on how Lockheed is able to make money and still publish this software on the open Internet with the source code license we selected, and are ready to put that into motion.

Update:

A colleague provided me some additional information about Lockheed Martin and open source.  It appears that another business area within Lockheed Martin has in fact released to open source via a project named Vortex.  So, I cannot say this is the first Lockheed Martin open source project, but I can say this is the first IS&GS Lockheed Martin project.

So I have a new blog setup now… what happened?

An understanding of usage…

I had been a customer of Dreamhost for some time.  For the most part I was happy, but I really did not do much with the hosting account.

I did setup what I call a “shadow” IMAP account that held all of my e-mail due to my issues with IMAP, the folders and GMail.  I have all of my email from several accounts forward to my GMail account.  I do this due to the stability of Google, the large free storage, the searching abilities, and the “All Mail” capability.  I had struggled in the past to get the IMAP structure to appear nicely on my mobile devices, so I setup an IMAP account on Dreamhost to get all mail forwarded from GMail.  I recently undertook an effort to better understand the GMail IMAP configuration and was able to get it all to work.  I think GMail made some changes on their end.

I was using Dreamhost as a repository to store some files that I wanted to access from different locations.  Google does have their “docs” capability, but at the time they were not support file types of PDF.  I dabbled a bit with streaming, but that never really went anywhere for me.  Today with advanced file storage and sharing that Google Docs gives as well as the services provided by Dropbox, etc.

I had a few Web application sites running, mostly for me to test out different pieces of software.  I would bring up sites instances of MediaWiki, WordPress, Ruby on Rails applications, etc.  None of these applications made it anywhere or carry over to any further purpose other than allowing me to test out some software.

One service I did host on my Dreamhost account was my Subversion repositories.  I am dating myself here since Git is the new hotness in the pantheon of source control, but I digress.  As I would work on a few projects I had going on, I needed a place to store the source code and control versions.  For a few of these efforts I was working with someone else so centrally accessible version control was/is required.  But, looking around, there are many different offerings for version control.

Can you load any slower?…

As I started to use my blog, and one particular Ruby on Rails application more and more, I began to see some very poor performance, specifically in application start-up and the first time it is hit.  I was seeing performance issues on first time hit of upwards of 1 minute response time.  At one point I added a cron job to my account to “wake up” my Web site every 1 minute.

Where did my database go?…

So now to the straw that broke the camel’s back, my disappearing database.

I am developing an iPhone application and as a part of the application start-up it ping back to a central server REST endpoint giving the iPhone id and receiving back a number code, 42 (yes folks, life, the universe, and everything).  One night (morning) at about 2:45am while I was debugging the application I got an odd networking error back from the REST endpoint.  I decided to hit my development Ruby on Rails application Retrospectiva as a check and I got back a wicked looking error from Ruby on Rails about the database and the lack there of.

Seeing this ugly error I rushed to the Web application installation directory to find the database.yml file was updated just a few minutes prior and the name of the database was a munge of letters and numbers with just a hint of what its original name was.  The original database in MySQL was no where to be found.  After find the application in this state and not finding the database, I was to able get on an online live chat with someone in support.

The support person played as dumb as could be claiming there is nothing automated or running that could have caused this issue.  At first he tried to convince me that I deleted the database, but if I had the archive of it would have hit the “trash” bin for the databases, which was empty.  The support person was able to find a three day old back of the database, and I restored it from the SQL backup file.

I still never received word how/why the database.yml file changed.

Moving on…

So after all of that fun, I decided it was time to join the others in the cloud.  I went with Rackspace Cloud as the provider due to their pricing and word of mouth about their performance.  I like the idea of having complete control over the server but will miss some of the “one click” installs that Dreamhost provides, a typical trade-off situation I guess.  I know my way around a Linux server, so installation and administration will not be a problem for me.

-b