Sunday, August 26, 2012

Stop Writing Crappy Software

My diatribe today is aimed at recent (unpleasant) experiences with:
  • HP Printer Deskjet F4400 series
  • Yahoo! Mail
I know that ranting is NOT the best'est way to resume blogging, but hey, I'm surprisingly disgusted!  Appalled! Sad! Furious! Irritated!  And yes, you have every right to ask how can you feel so many things at one time!  What happened?
Well, rest assured, I (miraculously) still have my all of my mental faculties ~~touchwood~~
Let me lay it down upon you...
I had returned after a long day's work, went on house hunt right away, picked up a few groceries on the way home for dinner, helped prep up the dinner and had just finished dinning.  So far so good.
It was right then that we got an email asking us to send out a few documents urgently.  It was a race against time, literally, come to think of it.  I printed them, we filled them up and then came (what I could only recall, in retrospect, as the SCARY) part: Scanning them!  No biggie, I said we have that all-in-one copier I just printed these on, don't we!  Having unsuccessfully tried scanning a document last time, I was not too hopeful.  But I was (hopelessly) optimistic.  You know, it is not uncommon for software to have failed you the first time and it works the next time you try it out again.  It is as if software has healing powers and miraculously fix themselves over time or something.
So, I set out to scan.  I put the first paper on the glass, flipped the cover... Tick-Tick, and the copier starts grunting, sucks in a blank paper and makes an exact hard copy for me.  Tcch... entirely my fault, I hit "copy" button and that is NOT what I wanted.  It turns out, in that incomprehensible maze of buttons, there isn't a "just scan and don't damn print it!" button.  So I fire up "Print and Fax" from my OSX, it connects to my printer promptly (relatively speaking).  And lights up the "Scan" button on the software, which I promptly hit. Poof!  After grunting for good part of few minutes, the scanner was making multiple pass over the document (am guessing once for each of the 3-4 primary colors it can deal with).  Each time pretending to be enhancing the preview on my macbook's screen.  And then it just stuck there, scan completed at 100% but "scanning..." dialog still showed it was working on something.  I let it set for a while but then after too long I killed it.  I checked the destination folder...  No scanned images.  I repeat the process, only this time I don't hit the copy button but the correct "scan" button.  Exact same behavior, but this time I did see a scanned copy of my document.  Got me a bit excited there for a minute.  +1 for optimism!
One down, 4 more to go!  I swap out for the next page.  Repeat, no luck. Patiently I do it again, no luck.  And try it again!  Still no luck.
Every time I had to kill the darn program because it would finish a 100% and then never budge from there.  But this time I didn't get any scanned copies as a byproduct.  As it turns, there are multiple ways to scan a doc on OSX, so I fired up "Preview" this time.  No luck with that either.  But I noticed Dropbox stopped sync'ing, the icon turned red.  It complained my disk was full.  Scanning also stopped throwing a "Disk is full" error.  "#@~! Yes right! That is all I needed at this time!" I was starting to loose my cool by now.  I could swear I had plenty of disk space to go around.  So I hit terminal and indeed the good'ol trusted "du" told me I was out of disk space.
I deleted a few large files and paused Dropbox syncing to free up some disk space.  I restarted scanning and pooff!  The darn scanning window complained I was out of disk space eff'ing yet again.  There's no denying this time I had few MBs worth of free space to begin with because I had deleted the files with my own bare hands (metaphorically) and checked free space with my own eyes (indeed tired and strained by now), but unfailingly I had noticed I had made some space available before restarting the whole scanning ordeal.  What is going on, by this time I was adorning my sentences a few verbal niceties!
All I needed was a few MBs.  I have noticed that sometimes rebooting OSX gets me back some disk space, I think that comes from reclaiming the filesystem log space, am not sure though.  But it was worth a try.  Plus it would kill any unwanted lingering programs potentially interfering with the scanning.  In parallel, I was trying to snap photos of the document with our phones in the hopes we could get decent photos rather than fight with the copier.  But that wasn't panning out well either.  After reboot, I back up 3 GBs worth of data and delete it off my macbook.  Ahh hhaa!  Now lets try this again.  This time I fire up "Image Capture" to rule out any software issues.  Maybe they all use the same backend to talk to the printer, implying same hung behavior, but it was worth a shot.
I hit "Scan" and lo-and-behold!  Still the same "hung" behavior after reaching 100% completion.  But... out of curiosity, I check disk space... And ~~~horror in my eyes~~~ Holy Spiderman's mad-cow crap!  It's depleting.  And depleting real fast.  Within few moments of Image Capture being hung, it had consumed nearly 2GB of disk space.  At this time I was more furious than I was frustrated or even tired and started turning red (I'm sure if I looked at myself in the mirror, my eyes were already bloodshot!).  I shot a few more verbal projectiles in the scanner's direction, cursed the software developers under my breath who made this crap and abandoned the idea of scanning altogether.  Two hours into it and it was getting on my nerves.
I can understand sloppy UI design, hard-to-navigate menus, unintuitive user controls, etc. even an occasional crash (though I would ask why, but say I gave it so much lee way) and I have seen a healthy share of those... but a scanner hogging on my disk space by GBs within seconds... that is taking sucking to totally new heights altogether!  Totally unacceptable. 
Something that was once a scanner, in my eyes was now an array of dysfunctional mechanical parts clubbed with even crappier software.
I were all so set to unleash the full wrath of my bottled up verbal abuses on that lowly inanimate object.  But just then Zen took over me: Atul, nothing good has ever come out of violence, you know.  I resisted that stupid inner voice of mine, "Sure as hell it has, you want to try (I almost got into my alert fighting stance)? Look around in the real world, one with the most fire power, rules everyone.  You really want to try it! Huuh!", I felt myself repeatedly muttering it under my fiery breath!  The only thing (thankfully!) missing was a visible flame coming out of my nostrils.  Long story short, cooler mind prevailed, but probably only because there were larger issues to take be taken care of later that night than fighting with the lowly copier.

Now I don't know if it is Apple's OSX who is at fault or HP, I would guess the driver comes from HP, but I could be wrong.  I would give Apple some benefit of doubt, just because everything else on my MacBook (including bootcamp'ed Windows) works flawlessly and drivers typically come from device manufacturers, so I say it must be HP.  Trying to scan and reproduce the experience on Windows would have definitely narrowed down the culprit, but I dare not scan from that piece of crappy copier again!  As a printer it is not too bad, but as a scanner, God save you.
Thank you very much however-is-at-fault here, for teaching a lesson (see morals below) here the hard way, I will never forget it!  If it was any consolation, I was reminded that I got the all-in-one crapper printer free with the laptop.  Wonder why, I laughed?  All the more reason to trash it to pulp with a baseball bat.
Well, that by itself wasn't enough to prompt this post... that last nail-in-the-coffin came in the form of online experience the next morning.
I have a yahoo mail account that had been attracting nothing but spams for the longest of time.  So I thought of salvaging it for sending craigslist queries.  So I went in and tried to edit my profile.  First off, it was an effort to find "WHERE" should I look for my profile and change it.  There were too many options: Should I look under "Hi, Atul" or should I look under the "Options" or should I look under the most promising "My Y!"??? 
Confusing Multitude of options
Well as it turns out "My Y!" is THE LAST place you should go to.  The thing I wanted is under "Hi, Atul", it gave me a drop-down menu with few a options, one of them being "Profile". Gotcha! Wait, not yet! That page throws an annoying 404 Page Not Found Error.
The annoying 404-Error
I try to keep it cool.  Moving on. I trace back my steps and then follow other lead, "Account Info".  That looked promising, shows my profile and besides my profile it had an "Edit Profile Details" link.
But guess what, that link too takes me to the same 404 error!  What is even more @!#$'ed up is that all the links on that page are invalid links!  They all land you in the same "404-Page Not Found" world.  Even the f___ing Help link!  Seriously, are you eff'ing kidding me!  Does anybody ever test this crap?  All the links on that page were crapped out.  And this is NOT a transient error, I have been giving it a try for a week now, every single day of the week.  It is permanently damaged.***
So after that, I give up hopes and dig out the REAL Yahoo help page.  That is even more eff'ed up.  After selecting categories and sub-categories of my issue, Yahoo throws an error saying something to the effect of "We are too busy with other issues, try seeking help in  online forums".  Damn right you are busy, I said, with this kind of crappy web designing you better be busy either helping people or fixing up your shit.  I gave up.  With renewed energy I have been trying it day after day.  One fine day, night actually, it let me type the question after selecting categories.  But THE only thing it showed me were some pretty useless "Quick Answers".  None of them relevant for my problem. I can't actually contact the damn Yahoo engineers who wrote this crap!  Seriously, are you kidding me now? So there is virtually NO way for me to resolve this issue :( If I'm expected to post this on some forum and then wait eternally while some God-sent messiah answers the question, then sorry, I neither have the energy nor hope to do that.  Sorry Yahoo, you are off my list too :(  I can't say I will miss you, but I sure liked using your services in the past.
While I have some expectations from Yahoo now that the reigns are in the (seemingly able) hands of Marissa Mayer, (esp. after introducing that free food and now new iPhones for every employee), I'm not too hopeful of their online services improving anytime soon despite improved morale.
I intend to serve multiple purposes by writing and sharing this... 
First, of course is to vent out the anger and frustration, so that the crap gets out of my system ~~~phew~~~ feels sooooo good now.  Next is to show how rampant the distribution of crappy software/hardware/services is, even from well repudiated companies who are (or rather, once were) industry leaders (wonder why they slipped into irrelevance).  Third is a lesson to myself and other software developers is to understand how important it is to focus on the end-user experience and the quality of whatever we produce.  On which front, Apple is really a role model to follow.  No I'm not Apple fanboy and I hate iPhone, but there is no denying their uber attention to detail and uncanny polish in their products, that was once only afforded by Sony.

At this moment, Oatmeal's comic on Printers is spot on: Printers Are From Hell.  No, seriously, some really ARE made by Satan himself!

Moral 0: I have said this before and saying this again...
Writing good software is anything but a trivial task, it takes tremendous skill, practice, patience and time to write a functional and elegant piece of code.  As usual, my role-model has always been the ubiquitous all-round best-in-the-class editor: vi[m].  Oh God, there is so much to learn from vi, at least from a user's perspective.  More than a decade of using it on all possible platforms (Linux, Windows, MacOSX, HP-UX, Solaris, AIX) and it is yet to hang or crash on me!  That is something. You can err on the side that vi might not be as complex as, say a scanning software, but the sheer functionality it gives without breaking fundamentals of usability and stability stand unrivaled.
Moral 1: Never, ever, ever, ever in my life am I going to get another crappy HP printer. 
My request, an earnest'est request (if such an adjective doesn't exist then let's invent it!) my earnest'est request to the world is PLEASE PLEASE STOP writing crappy software and services.  It is crime against humanity and seriously it won't be long before it will be unlawful to write crappy software and shove it down users' unsuspecting throats.
I'm no Richard Stallman, nor can I call myself an avid RMS fan, but I do love open source software. And holy bajeesus apesh!t, today I swear I totally understand how frustration drove RMS to start the whole Open Source movement: inability to add code to improve printer functionality in the 1980s.
Moral 2: Either you sit and crib about your problems or fix what is broken.
Wait, why can't I do both, sure I can :)
So, now that I have cribbed about it, I will make sure the work I produce shall meet at least certain quality standards.

No comments: