Archive for the 'General' Category

Disk cloning kills Safely Remove Hardware (hotplug.dll)

Sunday, November 9th, 2008

I love Acronis TrueImage. It’s one of the essential CDs in my toolbox, always handy for backing up data on hard drives, cloning disks and saving a lot of time. Even Seagate is using a custom version of TrueImage for its hard drive installation tool.

By the way, if you’re into Open Software, my second choice is GPartEd – free and just as powerful!

Having cloned so many disks and systems before, today’s seemed to work as a breeze. After all, I was transferring the software between two laptops of the same model, from one with lower specs to another one beefed up with RAM and a bigger hard disk. On the new laptop, Windows started normally and needed drivers only for the new wireless network card. Perfect, right?

Wrong.

Double-clicking the “Safely Remove Hardware” icon in the System Tray returned the following error: “An exception occurred while trying to run Shell32.dll, Control_RunDLL
hotplug.dll”

At this time, I was fearing that either I’ll have to fix some crazy DLL by running sfc /scannow in command line (to check all Windows core files and restore them from the hidden repository) or by doing a repair install. I also suspected the RAM, although earlier tests proved it to be error-free.

Google came to the rescue by identifying a similar problem and its solution here. The explanation makes sense.

Basically, Windows adds in the Registry some code for each hardware component it finds. This also applies to the hard drive. After Windows is cloned on another hard drive, on the first start-up it will obviously detect the new hard drive and create another code for it as well. The problem is that, for some reason, this code is corrupted in the Registry, missing the invisible “Null” character at the end of the “Generic volume” text – the code marks the end of the text. Consequently, the new hard disk’s name is crippled, which in turn crashes the Safely Remove Hardware functionality implemented in the hotplug.dll library. So there, we know what’s wrong.

Why does this happen? It’s not clear to me (or even relevant) if it’s a bug within Windows that shows up only in specific circumstances, or if it’s a bug in Acronis TrueImage. Some people say that Acronis is actually inserting the code for the new hard drive into the registry of the Windows installation it’s cloning, but I find that hard to believe.

There are two ways to fix this, depending on your PC Power User skills and desire to assume risks.

The simple way to fix this is to delete the offending disk from Windows’ list of identified hardware components, restart the computer and let the operating system redetect it and add the code correctly. For this, you right-click My Computer and select Properties, then go to the Hardware tab and click the Device Manager button. Alternatively, go in Control Panel and open System. In the Device Manager window, enable Show Hidden Devices option in the View menu, then expand the Storage Volumes section below and find the offending drive there – you’ll recognize it because of the weird characters in its name, instead of Generic volume. The options now are to right-click on it and select Delete, or double-click the volume and click the Update Driver button in Driver tab, let it find a driver automatically, and restart the computer.

The more complicated way (and somewhat more dangerous) is to find the corresponding registry entry for this volume, double-click it to edit it, then just hit OK without making any changes to it. This will force the Registry Editor to add the missing Null character at the end of the text. More specifically, navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\STORAGE\Volume\somelongcodehere and edit the DeviceDesc key – it should contain the name Generic volume. Restart the computer after finishing opening all keys for all volumes detected by the system.

Another day, another mistery solved :) The new laptop is a snappy little fella, and the cloning saved me probably 10 good hours of installing and configuring everything from scratch. Awesome!

How to work as a web designer

Monday, September 8th, 2008

I read rek’s discussion on Reddit.

In short, after months of working as a web designer for a customer, he got fed up of not getting paid and removed his work from the customer’s web host.

I can relate to the frustration, and I’d be able to pay off the US debt if I had a penny for every time a customer screwed over the web designer. :)

In principle, web design seems a fairly straightforward deal. On one side, the customer has an idea about a web site, is able to articulate it in a very specific way, and has some constraints for implementing it — budget, time, perhaps quality or responsiveness, visual guidelines for corporate stuff, and such. But the customer doesn’t have the technical abilities and skills to implement the idea, so he hires the web designer to implement the request.

The problem with web design is miscommunication of expectations and roles constraints. Most of the time, the customer has no clue what he wants, is very vague in requests, changes his mind a few times per day, keeps making changes to the initial request. Most important of all, the customer thinks he is in charge of the design, and the project is completed (and should be paid for) when he is perfectly satisfied with the outcome.

That’s wrong.

Firstly, the success criteria for the project must be written down before the first line of code is created. Most of the time, the customer is not in the intended audience for the web project, so his personal satisfaction with the outcome should not be taken into account. Supposed you are asked to design a websites for kids for a toy factory; should you ask the factory management if they like the site, or a bunch of 3 year olds?

Secondly, the project is completed when the web designer delivers all points agreed in the document signed at the beginning of the project. Being extremely specific is the key here: you must be able to prove that the work you have completed is exactly what the customer requested and works exactly the way the customer requested. You also have to be careful that the customer writes down all his assumptions. Make it clear that “if it’s not written down, it doesn’t exist and will not be delivered” so that you don’t end up with complaints like, “but I assumed that the data entry form can be used like an Excel worksheet, so I can insert multiple rows and copy/paste data on screen!” Don’t assume it won’t happen; it has, and it will!

Thirdly, any change request to what was agreed in the original document must be treated as an addition to the initial costs and timeframe estimates. The designer must reevaluate the scope of the design, the new cost and delivery date, and obtain the written consent from the customer for the change from the initial agreement (contract). If you are dealing with a difficult customer who keeps changing his mind, you can limit that by agreeing on an additional fixed fee for each change in the specifications. This will make the customer think twice if they have to pay $200 every time he wants to change (again) the site’s background color.

Fourthly, the web designer is the designer. He is the specialist who knows how to build on the technical aspects to best implement the customer’s vague idea. The customer should only communicate his needs and constraints, and let the designer propose a solution. The designer needs to be very, very clear on who has the designer role and what are the limitations of the customer in this relationship.

There are at least two approaches to establishing the designer role.

On one hand, the web designer can work on order, simply implementing the very specific requests from the customer. In this scenario, the customer is also the designer, and fully responsible for the outcome of the project; the web designer is simply the “robot” who executes each request blindly. This kind of arrangement should be clarified from the beginning and paid by the hour, with the web designer keeping close track of the time spent on implementing the requests. Project can go on for as long as the customer continues to request changes and is willing to pay for it. This keeps the customer happy, but usually leads to poor design results, bad choices on long and even short term, huge costs and demotivated web designers.

On the other hand, the web designer can really be the designer, and supplement his technical abilities with consultancy services and encapsulating his work in a service delivered to the customer. This way, the web designer can fully use his knowledge to propose the best solution for the customer’s scenario, optimizing cost and minimizing the time for delivery. This is the kind of project a web designer will be proud of and will put his heart into. But, it is often a problem with incomplete specifications and assumptions from the customer and managing the customer’s on-going dissatisfaction with lack of control and the “I’m paying for it so you should be doing as I tell you to” kind of attitude.

Last but not least, financial tracking is part of the web design project. The developer must keep track of every hour spent working, and to make sure he is getting paid for it. For long projects, an agreement for incremental payments is recommended, and at least monthly payments for working “on order.” The developer can request a non-refundable percentage of the initial estimate to be paid before any work is done. He should implement restrictions for viewing even the partial work before it is fully paid, so that the customer can’t steal it. (Strong word, but unfortunately very spot-on.) Allowing the customer to view the work on a test server is nice, but sometimes the developer shouldn’t give the customer more than screenshots. Make sure that both parties agree on the intellectual property ownership transfer from the developer to the customer, only on the delivery day and after full payment.

Is there more to add to this quick guide on a healthy web designer job? Sure is — please send in your comments!

Photography talk

Sunday, May 4th, 2008

So, I’ve been fiddling with digital photography for a few years. I’m having a great time with it and love the few memorable shots that I produced.

It’s about time I dedicated this hobby its own section on my blog. And, to get started, every day in the next week you will find here a series of opinions to give beginners some oversight to dSLR photography.

I originally posted these tips on a discussion forum answering exactly the newbie’s question, “which dSLR should I buy?” I broken them down in a logical sequence and made some additions.

Enjoy — catch you again in a few hours!

I got hacked

Wednesday, October 3rd, 2007

The first e-mail I have sent was sometimes in 1994, so I’ve been very much alive and active online for a whopping 13 years. I’ve got a fleet of e-mail addresses, a long list of forum accounts, and many logins for various online services. 9 years ago I was launching my own tentative of a site, on Tripod. Remember Tripod, Hotbot, Lycos, Netscape and all those buzzwords back then? Gosh I’m old.

One would think it had to happen sooner. Having an account hacked into, I mean. Nope. I think I defy statistics. This must be some sort of a record, to be so prolific online and only have the first intrusion today. And it wasn’t even something important — it was my 10 year old eBay account, which only saw around a dozen transactions over the years. How pathetic is that? Not even my Yahoo! account.

So here I am, talking with eBay customer support about unlocking my account, and unsure whether I should worry or laugh. I have no idea how it happened, since those principles that kept me safe so far have not been crossed. I’m thinking of an exploit on eBay’s site used to spam sellers with ads through the “Ask seller a question” option. This would make more sense than breaking my random consonnants and digits password, always changed less than a month ago. I mean, you’d probably screw up the login even if I spelled out the password to you, twice.

For the peace of mind, I just took a tour on my major accounts and gave them fresh, random passwords. The eBay account lock-out has been addressed within 3 hours. Now I think I’ll celebrate this glitch in a perfect score, the reminder that even with the best protective measures in place, mistakes do happen. It’s only natural, and it had to happen. Issue contained, damage insignificant, moving on.

Have you been hacked? How did you deal with it?

Social networking is not for me, or is it?

Sunday, September 30th, 2007

Some time ago I started this blog mostly to have my own corner on the Internet where I could unrestrictedly publish whatever was on my mind for whoever may ever find it useful. Part of this was acknowledging that I’ve killed the narcissistic side many years ago and I simply loathe the idea of spilling my beans every half an hour on a public diary. I could just not go with “me me me me me me” all day long, as if I was some sort of superstar of the world searching for my spotlight. Obviously, I didn’t make a splash into the blogosphere either; I skim through some blogs of interest once every few weeks, rarely comment and almost never link back.

Not only does it make me an oddity among bloggers, but also reveals that social networking is definitely not one of my finest traits.

This stood out even more clearly when I joined LinkedIn and Facebook a couple of weeks back. I have no idea what I’m supposed to do with those accounts, no interest in updating my status every 20 minutes on Facebook and definitely not going to spend my time searching for everybody I know to add them there.

I basically ditched LinkedIn a few hours after signing up. I’m still tolerating Facebook for the single reason that I can scratch the surface on a bit more personal level with some people in the Company. They interest me, and if I want to work better with them then I should start knowing better the person behind the professional.

So here I am, hating every word of a post that goes on and on about me, writing something that will probably not be read, and wondering if I will ever understand what’s so hot about being on hi5, Facebook, LinkedIn, Yahoo! 360 and so on.

Stripping away all the personal issues above, the bare question is revealed: if social networking does not appeal to everybody, how could one still benefit from it in other ways than the obvious?

[edit] Lewis Green at Marketing Profs Daily Fix hinted a week ago what’s better than virtual relationships. Check out the comments too — looks like I’m not alone! :)