Entries categorized 'Technology'

2009 Year in Review

Well the past 12 months have gone by really fast, again. It seems I always tell myself this each New Year's Eve. So looking back on 2009:

Ruby on Rails Consulting

I have made many changes in the past year from a business standpoint, taking on more Ruby on Rails projects and less .NET projects. I think the decision to transition to more Rails projects has been a welcomed change from .NET if only to be doing something new. I have to say the quality of potential .NET projects is a lot higher than Rails, but I'm not sure why. I tend to think it might be because Rails tends to attract too many clients with little or no money, but this is just a guess based on observations.

iPhone Development

I signed up in the later part of 2008 for the iPhone Developer Program with the intention of putting my stake in the ground and implementing some ideas I had for mobile applications I thought would be good on the iPhone.

To say the least I was disappointed by the way Apple has been processing app store submissions and subsequent seemingly random rejections. It would take a lot for me to spend 3-6 months writing an app *hoping* Apple is kindhearted enough to accept it into their store for someone to possibly find. Not going to happen.

I may revisit the platform at a later time if the approval process changes because I think it is a great platform for developing apps, I am just not into playing the app store approval lottery.

Freelancing

I have been doing full-time freelancing for over three years now and 2009 really was a pinnacle of the realization how difficult it can be. The year started off very well but as summer came and things slowed down to a crawl but picked up again in the Fall. It was really a feast or famine time and it has made me realize just how hard it is to juggle the "feast" portion of freelancing.

It has made me realize how much consulting or freelancing does not scale. I can't work 80 hrs a week for any number of clients, the work suffers, health suffers and overall life suffers. A freelancer can only work so many hours at full-speed but when times are tough, it gets really tough.

Unless you can juggle getting work, doing the work and getting more work in a reasonable time frame, it can be tough.

Looking Ahead

I think this is one aspect I need to change in my approach for 2010. Things are already in the works but I won't go into detail right now, but expect news in the coming weeks.

I wish every one of my readers a happy and healthy new year and look forward to 2010.

Technorati Tags: ,,

Enabling Wireless on a Dell Mini 9 Running Ubuntu 9.1 Netbook Remix

I have had a Dell Mini 9 for quite some time now and played around installing various flavors of Linux on it, more as an exercise than anything else.  The recently release of Ubuntu 9.1 which has a distribution configured especially for netbooks, piqued my interest.   The download is called Ubuntu Netbook Remix and is available as an ISO.  There are various instructions for installing, including a thumb drive, but I decided to burn to CD and boot off of an external USB CD-ROM drive I have just for this occasion.

The installation goes pretty quickly and is uneventful, until booting up the OS for the first time; no wireless care detected.  It seems this is a known issue with Broadcom wireless and has a variety of solutions. 

I fixed the problem in a couple of steps:

1. The Dell Mini has a wired Ethernet port, so I grabbed a cable and plugged into my router.  Internet connection established.

2. The restricted Broadcom driver needs to be installed so I ran these commands:

sudo apt-get update
sudo apt-get --reinstall install bcmwl-kernel-source

3. Setup connection to wireless network, with proper security and pass phrase.

4. Done!

It was all pretty easy but pretty annoying little issue with this distribution only on certain hardware.  Overall Ubuntu 9.1 on the Dell Mini is a really nice experience, very well done.


A Serious Windows Home Server Pain Point

pain I talked about my experiences with not having a solid backup strategy back at the end of August.  My solution included using a Microsoft Windows Home Server (WHS) system to handle backups for all of the computers on my home/office network.  I wanted to give a bit of follow-up to the experience and explain a huge pain point I found.

Reflection

I have been using the Acer Aspire Easystore H340 Windows Home Server for the past 6 weeks, backing up several computers on a nightly basis and it has been working flawlessly.  Computers are set to backup each night between 6pm and 11pm and this gives WHS plenty of time to complete all incremental backups with time to spare.  Backing up from Macs using SuperDuper works great too.

The WHS has been great to store all of the software we use on a regular basis when we need to share installation files. 

A Pain Point

I did run into a rather annoying problem this weekend that resulted in a kludgy workaround.  When I setup the WHS in August I had purchased an extra disk to be using in the WHS after I was confident my Windows development system was functioning fine.  The idea was to take out the 1TB (Western Digital Green) and replace with a 1 TB Western Digital Black drive, which is faster than the green.

I cloned the green drive to the black, took out the green and rebooted the development system, all worked great.  I was informed by WHS that my system had a new hard drive and I needed to log in to WHS Console and configure to recognize the new disk.  When running the wizard, I was greeted by this message when almost to the end:

This computer is not online or Windows Home Server cannot access the computer's hard drive. Please make sure the computer is powered on and connected to your home network.

After much trial-and-error I could not get the new drive to be recognized by WHS.  It was aware there was a new drive but could not recognize it was a replacement for the old drive. I came up with a solution that worked but is not ideal:

  1. Uninstall Windows Home Server Connector
  2. While using Windows Home Server Console, remove PC from list of backed up PC’s.
  3. Cleanup backup database using the "Cleanup Now" button in the WHS Console
  4. Reinstall Windows Home Server Connector – install from either original DVD or by accessing via the Software share on WHS.
  5. Retry setting up backups – should now be able to configure backup for system.

I performed actions 2-3 from the actual WHS itself by utilizing a Remote Desktop Connection to the WHS.  I then had to reconfigure the backup for my system, including all of the folders I had previously Excluded.  This wasn’t a surprise but don’t forget to do this or your backup might be a lot bigger than expected.

UPDATE: Joel Ross made a comment suggesting the correct way to change out the disks under WHS:

I think (and I could be wrong here) the proper way to do this would have been to do a back up with the old disk in the dev box, replace the drive in the dev box, and then do a restore on the dev box using the windows home server software. I haven't replaced a drive in any of my machines yet, but that's what I've read others doing.

Conclusion

This solution certainly worked but was not a very clean and user-friendly way of replacing a disk.  This begs the question – what happens if I have a disk failure and need to replace the drive, will I be able to connect and restore?  The answer is not clear at this point.

After some searching around the web and there are many reports of this issue back to the WHS CTP and it has yet to be resolved as of WHS Service Pack 2.  It appears it could be due to the fact the new drive is not on the same SATA connection as the previous drive but, in my opinion, this should not matter.  A fix for this is needed or I will not have as much confidence as I once had for Windows Home Server as a key backup solution.

If anyone has a better solution than the one I have found, I would love to hear it. If there is a released fix for this, I would like to hear about it as well. I am running on Windows 7 Ultimate RTM, if that matters. 


I use Balsamiq Mockups and So Should You

No, I am not a spokesperson for Balsamiq but rather a happy customer.  In the unfortunate event you have not heard of Balsamiq Mockups and you develop software or design it, you are missing out.  Balsamiq Mockups is a tool that allows developers to create mockups easily using a library of user interface components to help ease the pain of creating screens.

mockups_fpa

Replaces Pad and Pen

This is a great little tool which helps me develop screens and workflow for the software applications I create.  I use this tool instead of the usual pad and pen to determine how a particular screen will look.  A recent mockup of the administration screen for a Survey tool I’m creating:

SurveyMockup

What makes this so nice is it appears similar to writing on a pad of graph paper with one key exception; I can determine the dimensions of my screen and how much space each component laid out on the screen will take up.  This way, I *know* how everything will fit on screen or in the browser and won’t be surprised after the HTML/CSS is written.

SurveyMockup-Dim

I can toss aside my pen and paper and just use Mockups.  I spend my time now dragging and dropping controls from the library and know exactly how much space I am taking up, keeping in mind the screen sizes of the target.  I easily move controls around, remove them and customize their text.  I cannot say enough about how much time this saves me.  Instead of fretting over how bad I draw, I can not easily create what I need to get my work done.

Control Library

Balsamiq Mockups is not a free-hand drawing tool, I could not use such a tool.  Rather it contains a library of common user interface tools which you drag and drop to the grid surface.  They tout 75 ready-to-use controls:

balsamiq_controls

I have yet to need any control in my interfaces that is not in this library.  They even have layout components for iPhone applications.

Third-Party Integration and Support

When I decide to use a tool I often look to see if the tool with integrate with or support other tools I might be using.  This isn’t critical most of the time but can be the deciding factor in some situations.

Although there is built-in support to export a mockup to Adobe Flex, there is a company, Napkee, which allows the user to create full HTML/CSS/JS or Adobe Flex 3 from a mockup, saving a ton of time to give you a great starting point.

Not enough parts to play with?  Mockups To Go offers user-contributed UI components and Mock4U provides some hand UML components.  I think we can all stop using Visio and save ourselves some headaches.

I subscribe to the Balsamiq blog so I know what is coming next and when I will see it.  I could imagine feedback is welcome.

In the Air

Mockups is an Adobe Air application so the installation is easy.  I know what you are thinking, I don’t want another run-time on my system.  Stop your whining, you have a ton on there now and it won’t kill you to have another.  The number of good Adobe Air applications I use is growing and are really good, TweetDeck for example. 

One really nice thing about Adobe Air apps is they run on all the platforms I need; Windows Vista, Windows 7 and Mac OS X.  I understand they also work on Linux.

The Adobe Air runtime is super-simple, just like installing Adobe Acrobat Reader and once the runtime is installed, each application is just a simple click.

Finally

Mockups is not free to be able to save mockups but you can try it out or if you don’t care about saving, they just install and use it.   The licensed version does cost $79, so a bit pricey in my opinion, but a valuable tool all the same.

Balsamiq does release updates often and you need to visit the site to check for updates and install them.  I really wish this was built into the app like so many others where it either does an automatic check or allows me to check for the update.

I also wish for a way to export as a PDF to share with others who don’t have the tool.  I would like to be able to annotate diagrams and collaborate with others, maybe myself and a designer.

I can’t say enough good things about this little tool, it makes my job easier everyday.

Technorati Tags: ,

Thinking About Google Chrome Frame Deployment

Today Google announced the availability of an Internet Explorer (IE) plugin called Google Chrome Frame.  The plugin is designed to allow HTML 5 support and is open source.  This is an interesting and pretty novel idea.  Google claims:

With Google Chrome Frame, developers can now take advantage of the latest open web technologies, even in Internet Explorer. From a faster Javascript engine, to support for current web technologies like HTML5's offline capabilities and <canvas>, to modern CSS/Layout handling, Google Chrome Frame enables these features within IE with no additional coding or testing for different browser versions.

You can watch the video from Google about this released today:

The most interesting aspect, or problem, to me with this new plugin is who will use it.  Sure, here are a lot of IE users but who will be installing the plug-in for use?  Just thinking for a moment about all of the IE6 users today, who can be broken down into two distinct groups:

  1. Corporate Users - these folks are in companies with a corporate IT staff who controls what is on their desktops with remote deployments.  Face it, if they are still using IE6 it's the IT group be running out and installing this plug-in.
  2. Grandma - she feels lucky to be on the Internet, being able to see Flickr pictures of her grandkids.  She probably couldn't tell you if she had IE6 or something else.  There is nothing wrong with this, it works for her and she is happy.  Grandma will NOT be installing this plug-in.

 

I have the feeling that there are many IE7 users in the corporate world who are facing the same thing, the IT department controls their desktop and will not be putting some open source plug-in in the nightly deploy.

This narrows down the real audience for this plug-in, geeks and developers.  I have no idea what the numbers are for any of the IE version installations and the demographics of who is using which version but I would tend to guess there are many users who will never see this plug-in.

I am interested to see how Google gets past this wall.  If they can pull it off it will mean huge barriers brought down for web developers worldwide.  I am rooting for them.

Technorati Tags: ,


When Neglecting Backups Becomes Costly

I recently had a setback in my work because I had failed to backup my system properly and it cost me dearly.  The term “dearly” is really relative and it could have been much worse.

My daily work consists of both Ruby on Rails work and ASP.NET projects for clients.  Since both of these web frameworks have completely different environments, I have different operating systems to think about backing up.   The ASP.NET work is done on native Vista 64-bit and on VMWare VM's running Windows 2003 server instances to keep client work isolated.  The Ruby on Rails work is done solely on my Apple MacBook Pro.

My main development system for ASP.NET client work suffered a sudden and catastrophic hard disk failure which was the main hard drive for my client virtual machines.  The disk never started acting strange, as others I have had in the past, no read errors, not entries in the Windows Event Log but rather a sudden disappearance from Windows.  Upon examination on reboot, the drive can be heard clicking which usually means there is a head-related issue.  This particular drive was only about 6 months old and is a Seagate Barracuda 750G SATA, one of the 7200.11 which apparently is known to have these types of sudden failures.  I was not aware until I asked around after the fact.

The result of this failure meant I had to go to my last backup to restore, which was 03/2009, 5 months ago.  This was certainly going to be painful and resulted in losing 5 months of email since one account uses Outlook as the client, many Word documents and worse of all was the client development work since my last commits to their source control system.  This will prove to end up costing me a week of coding work and trying to remember what was done...not good at all.

After first replacing the hard disk with a Western Digital Caviar 1TB drive and restoring what I could, the updates to the operating system and other patches took a few hours.  The replacement of code took 4 days of working longer hours than normal.  The email was a total loss for 5 months and all-in-all resulted in a few days of lost time which adds up to several thousand dollars.  Not acceptable in any way, my backup strategy needed to be looked at and fixed.

Original Backup "Strategy"

My recent so-called backup strategy consisted of the following:

  • JungleDisk on OSX and Vista used to backup documents an photos to Amazon S3 - this works great but takes a lot of time and not really intended to backup large (gigabyte) files or complete operating systems.
  • SuperDuper on OSX to backup complete system to external USB drive - this works great and has helped me in the past.  The major drawback here is the process is manual but be made to be a scheduled task and an incremental update.
  • Time Machine and Time Capsule - this may seem a bit redundant to using SuperDuper and an external USB drive.  It probably is but Time Machine really gives me a nice view into the past and lets me restore very easily.
  • Acronis TrueImage on Vista to backup complete system to external USB drive - also works great and can be scheduled.  Notice I said "can be scheduled", which works if you actually set up a schedule.
  • Dropbox for various documents for clients and reference.

As you can see this mix of backups is fine if done all the time but the manual nature of some of some aspects can lead to inconsistency.  This was a haphazard mix of inconsistent backups.

New and Improved Backup Strategy

After the failure and all of the lost time, I decided to fix the problem now and not have to face this again.  Since I needed a solution that will back up both Mac and Windows systems it had to be cross-platform.  The obvious choice to me was to look at a Windows Home Server.  As I write this, two companies make solutions, HP and Acer.  I reviewed each company's offerings and determined HP used Seagate Barracuda drives while Acer reportedly used Western Digital.  This fact alone was the deciding factor to purchase from Acer.

I ordered an Acer Aspire Easystore H340 from NewEgg and it arrived in a couple days.  The specifications are pretty decent:

  • Intel Atom 1.6Ghz Processor
  • 2GB Memory
  • 1 TB Storage - expandable with 4 drive bays, 3 free
  • Gigabit Ethernet Port
  • 5 USB ports for external storage or printers

Upon receiving, the setup was pretty easy.  Client software gets loaded on each system (not the Mac) and are backed-up nightly.  The Acer can even wake-up shutdown clients to back them up.  Pretty slick.

IMG_1182

Backing up with the Mac is a bit different, with no native client.  I again use SuperDuper (licensed) to attach to the Acer and create a bootable image which can be updated on a schedule basis from SuperDuper.   A nice tutorial on how to be able to attach a client Mac to a Windows Home Server is available.

This takes care of each computer backup but the data is stored on-site.

A general policy I put into effect will help us be more vigilant with our work:

  1. Continue to use JungleDisk on all systems to backup documents, text based assets (source code, etc), photos and email.  This will be more inclusive and run daily.
  2. No source code will be left out of source control, check it in or shelve the changes.
  3. Monitor nightly backups to Windows Home Server to verify integrity.

Finally

I have learned my lesson being lazy with backups.  If anything I will be backing up too much but I equate that with having too much money.  I also do a firm commit with any source code I am working on for a client, if it does not poorly effect the build it either gets checked in or shelved. Savvy Freelancer had a nice article recently on this subject, definitely worth a read.


Great Surviving in a Downturn Discussion

I just wanted to point out a great (in my opinion) panel discussion from TechEd about how to survive as a person with a technical job in today’s economy.  From the TechEd site:

Times are hard--we all know that. With companies laying people off left and right, this panel discusses specific ways to stay relevant, stay engaged, and frankly, stay employed during the economic downturn. From technologies to focus on, to focusing on quality practices, to managing the politics of the workplace, to networking, the panel discusses how developers can make sure they do all they can so that their careers are not casualties of the economic crisis.

The discussion is titled Surviving the Downturn: A Panel Discussion and is from TechEd, but don’t let that deter you.  This is not about Microsoft technology but about being a software engineer today, whether you are an employee, contractor, freelancer or self-employed creator of software.


Consulting on Different Platforms and Varying Requirements

successful_freelancing I have been doing freelance consulting work for the past several years, mostly for .NET applications but over the past year I seem to be doing more Ruby on Rails applications.  I enjoy the Ruby community more that the .NET community, not sure why but maybe because they seem more laid back. 

Recently I have been getting more involved in some iPhone development work and learning a bit about the iPhone and Mac development community, yet a different group of folks. This post is not about the various communities but what each type of community expects from either freelancers or someone looking for a job in general.

 

.NET

The gigs and jobs I have pursued and taken in the past have included many .NET related projects.  The project requirements are pretty straight-forward with the hiring folks just asking for an up-to-date resume followed by a phone call and possible interview.  This approach is pretty easy, just keep your resume updated with new skills and/or projects.

 

Ruby on Rails

This community, and probably like any community centered around open-source, doesn’t care a lot about resumes but wants to see your list of of open-source projects you have committed to via your GitHub page.  This seems to make sense to people who are heavily into open-source projects, giving their time to the good of the open-source cause. 

So what if you use Ruby on Rails to make a living and you don’t spend your free time writing code to commit to freely available software?  I certainly don’t have the time to commit to open-source and I find the measure of someone’s worth is how much they commit as total bullshit!  I guess some folks have the time to sit around all night writing code to freely giveaway, which is awesome.  What about those with families that actually work to live, not live to work?

I have nothing against open-source and I totally support it but make it a requirement to position yourself against others?  I would contribute to an open-source project if I was using in a project and needed some functionality others could use.  I think this is the best scenario for most folks to give back.

 

iPhone

The iPhone projects I have run against are looking for experienced developers but aren’t looking at resumes or open source projects but seeing what you have in the iTunes store.  I can’t say I agree or disagree with this but it seems to be the only real way at this point to measure someone’s experience in iPhone development.  Resumes probably don’t work because iPhone development is too new and people are not creating many open source projects for the iPhone due to Apple’s limitation on getting applications on the phones.

So, what it if I don’t have an application in the store yet?  I guess I am out of luck but is probably a good way to judge the best talent.

 

Finally

While I agree with the way .NET and iPhone folks are hiring people, I find the way the value of open source developers are measured.  I won’t be giving away my free time anytime soon to contribute to an open source project in the hopes of building reputation, not after 20+ years of software development.

I do find it interesting how each separate community judges and rates its contributors.  Each has a very different way they feel is the best way to bring people on projects.

Technorati Tags: ,,,

The Rise and Fall of Computer Magazines

I used to subscribe to a lot of different computer-related magazines over the years but I realize now I still receive very few in the mail.  Why so few?  It’s pretty simple to me, usually the information in the magazines is outdated by the time I get it.  I get some information from online-only magazines or blogs these days.  Times have changed.

So why do I get any magazines at all?  Well, I like to get away from the computer screen and read an old style print-version while sitting on my couch listening to the news.  I actually only read a couple this way, Macworld and Linux Journal, and the information doesn’t seem out-of-date.

It seems more and more magazine these days are closing the doors completely or taking their publications as digital only.  Magazines have been getting thinner and thinner over the years too as advertisers have gone away, forcing the magazine publisher to publish less per issue.  The fall of magazines has been happening for quite a while now and none of us should be surprised.  My favorite magazine from the 80’s was Byte Magazine which had loads of great technical content.  Byte was purchased by CMP Publishing in 1998 and simply shutdown.  I was sad to see this one go.

Print magazines are faced with less and less subscribers so they are forced to make cutbacks or simply close the doors.  Dr. Dobbs Journal is one publication that went away rather quietly recently.  Eric Sink wrote a bit about Dr. Dobbs on his blog saying:

I suppose this was inevitable.  I've been writing for several years about the decline of print publications for developers.  Like most of them, this one has been looking thin and sickly for quite some time.  Sadder still, their final issue featured a huge grammatical error on the front cover.  I'm sure this was not the way the DDJ staff wanted things to end.

Z Trek has some insight as to what is becoming of Dr. Dobbs Journal:

Beginning in January 2009, Dr. Dobb's is turning into "Dr. Dobbs Report — A Special Software Development Monthly Section in InformationWeek Magazine."

It is a shame to have such an important magazine in our industry end in this way.  Dr. Dobbs Journal is not alone, PC Magazine recently went digital-only, ending their long running print magazine.

In the end the great pillars of tradition change and die off.  The magazines we have all loved over the years will probably all go away, the same away as newspapers.  So what are we left with, sitting in front of our computers to get the latest world news or some technology advancement?  I am a bit disappointed that it is coming to this.  I for one don’t want to only get my news from my computer screen.  Maybe it is time the creation of a magazine reader is created and we use those to get updated, something like the Amazon Kindle.

The upside is that it levels the playing field a bit for “amateur” writers like myself to be able to produce content and be heard.  No longer do we have to submit a proposal to a magazine to get our ideas out, I can do it right here like I am right now.

Anyway, good-bye Dr. Dobbs Journal and all those others to be put out to pasture in the future.

 


Outsourcing Not All Its Made Out to Be

This is some of the best news I have seen in a very long time, from Obie Fernandez’s blog:

You may have heard that Satyam, one of the most prominent Indian IT outsourcing firms, is in deep doo-doo this week, due to revelations that they inflated their balance sheet by almost a $1 billion (among other sins).

One of the things that annoys me as an American software developer trying to make a living with my craft are those companies who outsource software development to India and other countries like Russia.  I have nothing against these countries or anyone I know from them but I have been involved in too many projects which outsourced some of their development to India and seeing first-hand the quality of code coming back..well, let’s just say the term “junk” comes to my mind.

I don’t know if the disconnect is with people in our country trying to give half-baked requirements to overseas partners but it does not work very well.  Obie’s experience has been similar:

Over the years, some of my bigger enterprise clients have flushed ridiculous amounts of money down the toilet with Satyam, Wipro and Infosys. All of us collaborating and integrating with their software teams were privy to their dirty, little secret. They usually had one guy that actually knew (anything about) programming, floating at least five or six others that didn't have a clue and hid behind the excuse of language barriers. However, since their individual bill rates where around $20 or less, the managers on this side of the world thought they were getting a great deal!

This pleases me very much indeed.  So, anyone in larger companies outsourcing, take a note here and bring development back in-house, in America where it belongs.

Technorati Tags: