Saturday, April 26, 2008

Worst Logos Ever

Having just completed the process of getting a revamped logo and setting up business cards, invoices, etc., an article in the London Telegraph caught my eye and made me laugh.

As reported by the London Telegraph, the Office of Government Commerce spent an eye popping £14,000 to create a logo.  When turned 90 degrees, it forms an abstract image which has caused howls of laughter.

The Telegraph has reported that the staff of 564 has stripped the office of imprinted souvenirs, mugs, and mouse pads:

OGC logo rotated

 

Oriental Studies

The Institute of Oriental Studies at Federal University of Santa Catarina in Brazil ultimately withdrew their logo when they realized it could be seen as something else than just a pagoda:

DISASTROUS LOGO DESIGNS

And a few more...

DISASTROUS LOGO DESIGNS

Friday, April 25, 2008

Wt: C++ Framework Evaluation

I blogged a while back that I was evaluating various web platforms for a my projects.  Well, tonight I began to seriously evaluate the Wt (pronounced witty) C++/Ajax framework.  I've decided not to use the library for one simple reason -- the licensing terms are cost prohibitive.

I had already floated Wt to a client as a possible alternative (recovery plan) to a massive Java/JSF project that was nearly a year behind schedule.  The leads were receptive to the idea so next on my agenda was to seriously evaluate it, generate some applications and mock up a demo.

First, let me say that Wt it is an awesome idea, and it is great implementation.  It leverages boost::asio (asio was included in boost with version 1.35).  Out of the box, it works with apache, fastcgi, or an extremely lightweight httpd server. 

In a nutshell -- you write your application by cobbling together widgets much in the same way you would write an application in Qt.  The underlying technologies (HTML/XHTML, JavaScript, CSS, Ajax, Forms, DHTML, etc) are abstracted so you concentrate on adding, say a button widget rather than coding up an HTML form that contains a button, and code to handle the post... You simply add a button widget to your container class and the HTML, JavaScript and forms are generated automatically at runtime.

While the examples are somewhat terse, they do showcase the possibilities -- with some effort in developing your own widgets, you could have the coding efficiency of Ruby On Rails with the speed of C++.

The framework is licensed in a dual licensing scheme.  They freely grant you a free GPL license.  However, the commercial license is € 599 per year, per developer.  At current exchange rates that is nearly $1000 per year, per developer.   

I don't mind paying for a license, and I often encourage my clients to purchase products like RedHat or MySQL.  That being said, I simply don't like purchasing licenses that expire, where you are locked in. 

What happens when you develop a 1MLOC application and the dollar continues to fall in relation to the Euro, and they want to raise their prices you are effectively a hostage.

What do you do?  Rewrite/port the application at a tremendous cost?  I've seen companies held hostage by framework providers before and really don't want to be in the position. 

Labels: , ,

Saturday, April 19, 2008

Brother HL-5250DN Low Toner Override

This week has been a bad productivity wise.  First the Mac Pro issues, then the my trusty mono laser printer abruptly died.  It seems like the universe is conspiring to keep me from developing retail software.  

My Brother HL-5250DN printer stopped working this week-- grinding to a halt half way through my 2007 tax return.  The status light glowed an angry red color, and the toner light glowed yellow.

After some initial troubleshooting, I turned to Google to have my suspicions confirmed -- the printer shut down preemptively because the toner cartridge was getting low.   Note that I said "low" and not "empty."

The toner cartridge has a small round window on each side of the toner cartridge.  Normally, toner in the cartridge will block light from passing through the cartridge.  However, if the toner gets below a certain level, the light will pass through and strike a sensor on the other side alerting the printer to shut down.

This would be analogous to Ford making their cars shut down when the gas tank only had 1/4 tank of gas left, forcing you to purchase a new gas tank with full fuel.

The work around is to block the light from reaching the sensor, by simply covering up one of the windows.  I took a self-adhesive address label and covered one of the little windows.  Problem solved.

You can expect to get another 1000+ pages out of the "hacked" printer cartridges before they start to gray or streak.

Tuesday, April 15, 2008

Apple "Genius Bar" Leaves Much to be Desired

I have to say that I'm not at all impressed with Apple's technical support offerings.  Perhaps I'm getting too old for the lackadaisical support offered by the Genius bar.  Or maybe years of developing software for UNIX and PC systems has made me a cynical pagan in the religion of computers. In any event, I can now see why most sane business owners avoid Apple products, so much so that Apple discontinued the XRAID product offering due to slow sales (Can you imagine having to wheel in a $23,000 raid array and hand it over to a 18 year old kid who would just shrug his shoulders and tell you to come back in a few days?

Apple's "Genius Bar" is billed as a hip place to get hands-on support from smart, cool people who fix your problems on the spot.  You register for an appointment, show up at the anointed hour only to find yourself waiting for your name to be called.  It's like an airline standby list, except there are no chairs to sit on.

My Mac died unexpectedly Thursday night and because of commitments to a client, I wasn't able to drive across town to take the Mac Pro in for service until Saturday morning.  Apple phone support informed me that I would need to register for an appointment at the "Genius Bar."  I did, boxed up and carted the Mac Pro down to one of two stores in the state of Minnesota. 

After weaving my way through befuddled senior citizens and zombie-like customers bumping into me, I checked in and waited.  After ten minutes, my name was called, and I calmly explained the intermittent stability problems I was having:

  • When I put the system to sleep, on waking the system does a hard reboot
  • Sometimes the system will freeze on waking
  • Sometimes the system will not boot fully.
  • On Thursday night, the system just completely died while I was working on it.

The "Genius", plugged the system up and flatly said, "I can't reproduce it.  What would you like to do?"  I was dumbstruck.  I though for a moment I would explain the definition of intermittent but thought better of it.  He recommended a block scan of the drive and diagnostics.  He promised someone would work on it right away and someone would call me with a status in the afternoon.

Since I had already removed the two drives that held my precious data (which was nestled in the sweet cocoon of a RAID 1 array), I explicitly told him to blow away the system drive, and do whatever it takes to test it out. 

That evening, since no one called me, I tried to call the store for a status.  I was routed to "Apple dispatch" wherein I discovered that I didn't have a repair number the Genius was supposed to have given me.  In fact, they didn't give me any evidence that they had my workstation.  It could walk out the back door of the Apple store and I would have no proof I dropped it off.  There was no status except that they "probably" were running stress tests on it.

Thinking that what I was describing might possibly be power line related, I ended up purchasing a 1500VA Back-UPS XS power supply and started charging it up (it even has a watt meter built in to measure current draw).

While the Apple store had the Mac Pro, I had plenty of time to research the stability problems on the Internet.  I quickly found out that the early 2008 Mac Pro line had quite a few problems with the ATI video cards, and most Mac Pros had problems with the system resetting out of sleep.  There were also cases of Mac Pros drawing enormous amounts of power and overloading uninterruptible power supplies.  A fair number of cases revolved around general system stability, with no workarounds.

Surely the Geniuses knew this, right?  Well no.  They don't.

Sunday afternoon I called to see how long they were going to keep the machine, and the lackadaisical reply led me to believe that they intended to keep the workstation for several more days.  After a few more pointed questions I was able to get a "maybe Tuesday" out of the Genius. 

That simply was not going to work, especially since I had almost zero confidence that they would find or fix the problem. 

Frustrated, I picked up the system on Sunday night, took it home.  Later that night, I found out that earlier this week Apple had released several firmware updates for the Mac Pro (and new ATI firmware) to fix various "stability problems."  I installed the firmware updates and it appears to have resolved most of the issues, even the sleep/reboot issue.

Further, after examining the machine, I see that the Geniuses only de-fragmented the system drive.  They didn't upgrade the firmware or reinstall OS X like they promised. 

Simply stated, they just wasted my time.  On the plus side the new firmware seems to be working well:

Macintosh:trunk jturner$ uptime
22:04  up 1 day, 21:58, 2 users, load averages: 0.15 0.25 0.24

Thursday, April 10, 2008

My 64-bit 8-Core Mac Pro Died Tonight...

It has been a little over three months since I purchased a Mac Pro to be used as my primary development workstation.  Tonight while I was coding, it just completely died.  At first, I thought it was just a power outage, but the lights and everything else stayed on.  I switched plugs and it came up for a few moments before abruptly shutting off again.  Troubleshooting was futile.

It was dead.  I waited several minutes and tried again.  I got the apple boot screen before it shut down.

I called apple technical support the response was a pre-recorded, "... You have called us outside of our normal hours.. try again later."

An hour later, I tried again and it booted. 

I'll be calling Apple support tomorrow to try to figure out how to get it repaired.   It was having problems not waking up from sleep, which I would tolerate.  But there is no way I'm going to tolerate a machine that will just reset at random times.

Labels:

Wednesday, April 9, 2008

Milestones

A milestone is one of a series of markers that are placed along a road at regular intervals, to reassure travelers that they are traveling on the proper path and to indicate distance traveled.  Within the framework of project management terms, a milestone has a similar connotation, that you are going in the right direction towards a the completion of a work item, phase, or project. 

It is those small victories that tell us we are moving in the right direction, albeit often slower than we want.  Last month I hit one of those milestones -- I started to pay myself from the company coffers. 

This week I've had to file three returns with the government concerning payroll taxes.  While I would never celebrate paying taxes, it does mean that I've made enough from consulting to start drawing a modest salary and consequently, that means paying Uncle Sam as well as the State of Minnesota their due. 

Timeline:

  • Sign first full time client;
  • two more months of invoicing to accrue enough in sales to be able to pay myself a modest salary; and finally
  • Paying withholding and paying taxes, unemployment insurance, and Minnesota withholding. 

In a nutshell, I am now working for myself full time, and surviving.

Secondly, our corporate application to the iPhone Developer Program has been vetted and ultimately accepted by Apple.  Oddly enough, I had to fax them the articles of incorporation, and business documents to prove that I was a real company.  Then and only then, I received a phone call to tell me that I would receive an email to finish the enrollment. 

  • This is our first formal relationship with a vendor/partner.

Lastly, I've decided to reorganize the blog categories.   I've already revamped the blog HTML template and removed the Google ads. 

From now on, I'll be posting in the following primary categories:

  • Announcements: corporate announcements and news, press releases, product updates.
  • Business of Software: blogs relating to selling, marketing, creating software products.
  • Programming: General articles on user interface design, C++, Perl, Python, etc.,
  • Business: items of interest for small business owners, freelancers, and self-employed people.
  • Consulting: Consulting or Freelancing articles.
  • Time Management: items on time management and generally getting stuff done.

Labels:

Thursday, April 3, 2008

FIX: iPod Touch with "BSD root: md0, major 2, minor 0"

Tonight I attempted to jailbreak my 16GB iPod Touch with firmware 1.1.4.  I successfully turned the iTouch into a brick that would boot and continually print out the following message on the screen:

BSD root: md0, major 2, minor 0

To fix you will have to restore the original firmware:

  • Attach the iPod to your PC/Mac (ignore any warnings).
  • Hold down the power button (on the top of the phone) while simultaneously holding down the home key (on the bottom).   Keep holding down the keys long enough for the device to reboot.
  • Continue holding the key combination while it reboots to kick it into restore mode.
  • You should see a pop up warning in iTunes saying you need to restore.  Click ok, select restore.

Wait for the device to restore.  It may reboot a few times, but it will eventually become usable.  Select the option to restore your backup (or set it up as a new device).

Wednesday, April 2, 2008

QuickBooks Online for the iPhone (and iPod Touch)

iPhoneIntuit has released software that will allow you to access QuickBooks Online Edition from your iPhone, by pointing your browser at a special address.

I was able to get it to work on my iPod Touch (via wireless LAN) and it is basically a business dashboard with additional features: accounts receivable and payable; vendor, customer, and employee lists; Bank account and credit card balances; Balance Sheet and Profit & Loss reports.

If you are using an iPhone, your contact information is tied into the iPhone, allowing you to call, email or lookup addresses using Google Maps.

To use the free portal, you simply point your iPhone/iPod Touch browser to https://accounting.quickbooks.com/m.

Labels: , ,

Tuesday, April 1, 2008

Programmer/Developer Job Trends

'There are three kinds of lies: lies, damned lies, and statistics.' - Mark Twain.

Today (April, 1), the application window for next year's crop of H-1B visas begins.  Companies will be flooding the the USCIS with applications hoping their applicants will snag one of the coveted 65,000 H-1B visas which will be chosen by lottery.  If previous lotteries were any indication, the visa cap will be exhausted within days, and roughly 3 out of every 4 visas issued will go to Indian-born IT related specialists (most of whom work for outsourcing or offshore consulting companies).

Last April, roughly 120,000 applications rolled in, nearly twice the annual limit of 65,000.  Given that it is a numbers game, it is not surprising that some companies would try to send in applications for all of their employees (regardless if they had an assignment in hand or not), or send in duplicate applications for employees.  Note:  this week, the USCIS implemented a rule to prohibit the practice of filing duplicate applications.

So dire is the need for H-1B that Bill Gates has ventured to Capital Hill with the same message for the last two years:  let us hire more foreign workers.  Executives from Sun, Oracle, IBM also decry the limits keep them from suffering a critical skills shortage-- there are simply too many open jobs that remain unfilled.

Unfortunately, most of the emotionally charged arguments relating to the H-1B visa issues are only half true -- there is not a shortage of people to fill those jobs, but there is a shortage of good developers to fill those positions. 

And before you assume that I'm anti H-1B, most of the H-1Bs I know have been top notch developers and have nothing against them (only a few have been technically worthless).  But quite frankly, I'm good at what I do, so I don't see them as a threat to my livelihood any more than I would see coworkers or other consultants as a taking away potential jobs from me. 

Interesting Job Posting Statistics

With Bill Gates screaming to end or triple the visa cap, because of critical technological labor shortages, why is it that since July 2006, the number of programming jobs (C++, C#, Java) all decreased by more than 30%?   And why has the number of jobs specifically advertising the words "H-1b" increased 23% during the same timeframe?

Check it out for yourself.  SimplyHired (a job search engine) has a little application that will graph out trends derived from their own indexed jobs openings.  Likewise, indeed.com has a similar web offering.

This graph displays the percentage of jobs that contain your search terms. Since July 2006, the following has occurred:

  • C++ jobs decreased 37%
  • C# jobs decreased 35%
  • Java jobs decreased 33% 
  • H-1b jobs increased 23%

However, Ruby is still blazing hot (relative job growth):

java, c#, c++, ruby, visual basic Job Trends graph

... until you look at the absolute number of jobs:

java, c#, c++, ruby, visual basic Job Trends graph

Interesting, don't you think?

Labels: