Monday, May 21, 2012

IT New Hire/Contract? Thoughts on IT On-Boarding

Being a contractor, I get to see and experience the on-boarding practice of different companies in different industries on a regular basis. This gives me an opportunity to provide a 'value-add' for the companies that I'm contracted with. Because of my fresh perspective, I can more easily pinpoint areas of opportunity for improvement in the first week on the job.

One thing that has always surprised me, and remained fairly consistent in all of the companies that I've worked with is that they don't seem to have the infrastructure ready for new hires.  I always seem to spend the first week doing one of the following:
  • waiting for a computer or even a desk to sit at.
  • waiting for access to my computer or to files, folders, applications, servers, etc.
  • setting up/configuring my computer - installing required applications, setting up internal website bookmarks in browsers, etc.
  • waiting for licenses for the applications I need to run to do my job.
I find this lack of organization dumbfounding.  HR knows that a new hire is getting on-boarded weeks in advance.  Similarly, the team/department should know as well.  I don't think there are any real good excuses for having new hires sit on their hands for the first week while everyone gets organized.  Bringing new hires on board should be a Standard Operating Procedure.

While I'm waiting for access or a license, I busy myself with looking for things that people with history at the company would view as the 'status-quo', but are really issues that could/should be considered problematic or improvable.

Opportunities like:
  • Single Points of Failure.  (email server(s), monitoring server(s), shared drive(s), VPN access, etc)
  • Lack of network segregation between environments (can I ping/telnet from a dev or staging server to production?)
  • Misnamed or legacy names for servers or monitoring notifications that are understood by employees but a source of confusions for newbies
  • Lack of templates for common documentation
  • Lack of exportable outlook email rules that can be shared with the team
  • Lack of exportable browser favorites that can be shared with the team
  • Consolidating and organizing documentation (critical documentation in 12 different folders scattered through different directories is a recipe for confusion)
  • Lack of Automation - continuous integration through to automating deployment.  Automating monitoring
  • Preventing Fat-Finger errors (adding confirmation messages in start scripts)
Granted, not all of these will be applicable for every IT position.  Also, share your findings with your new supervisor and get his blessing before going and changing everything.  Suggest with encouragement, don't criticize! You don't to come across like your trying to relieve someone of their position.  You are there to make things better for everyone.

So, next time you are on-boarded for a new IT position, keep these things in mind.  Hopefully they can help both you and your new company.  Also, if anyone has some other suggestions of things to look for, please add a comment!

Tuesday, March 13, 2012

business idea - Muffin wrappers

Make edible muffin wrappers - My wife had a problem with some new muffin wrappers she tried sticking to the muffin.  Why can't they make edible ones?  If you get the texture just right, it could change the muffin/cupcake industry....

In fact, making products out of 'by-products' is good business.  Henry Ford did it with waste wood from his Model T's.  He turned it into charcoal bricks that ended up being used for fire fuel.  This side product eventually turned into a company called Kingsford Charcoal.  If you've ever had a charcoal BBQ, I'm sure you've bought a bag of their briquets.

Monday, July 18, 2011

Dell Latitude Diagnostic Error Code 2000-0142 Hard Drive Failure

'Apparently' the hard drive on my laptop failed yesterday.  Out of the blue I got a couple of popup windows complaining about some dll not being able to load, and then the windows blue screen of death.  I thought maybe my machine got too hot, but I tried rebooting after letting it cool off and it didn't do anything after the Dell splash page during the boot.  So I ran a BIOS diagnostic and got the following error:
Msg: Error Code 2000-0142
Msg: Unit 1: Drive Self Test
Failed Status Byte=77
I called Dell and they basically confirmed what the diagnostic test said - my hard drive was fried.

Not wanting to give up on my hard drive that easily, I googled to see what I could do.  I discovered I could try to repair windows using the Windows Recovery Console.  So I found my Windows CD and booted from it and went to the Repair option.  Once I had entered the Admin password, I got a command prompt and after a bit of searching around I discovered that most of my hard drive seemed to be intact.  This, however, was still in the dos prompt of the Windows Recovery Console.  I couldn't back up my files to a USB from there.

I tried chkdsk, chkdsk /p, and chkdsk /r - those all worked successfully.  Yet my machine still wouldn't book.  So I preused the list of commands available to the Windows Recovery Console (here) and tried a few more - bootcfg, fixboot, and fixmbr.  In the end, it was fixmbr (which repairs the master boot record on the specified disk) that ended up working for me.

My laptop is 4 years old now.  I removed the battery a couple of months ago, and with problems like this starting to happen, I going to start shopping for a new one.  Hopefully this info helps someone out there though.

Sunday, June 12, 2011

Business Idea - Automated Lawn Mowers

Similar to my business idea regarding automated window washers, yet I think this one would potentially be even easier to implement. I was driving down our ring road here in Calgary and seeing all the grass growing very fast in the median and around the overpasses. I also saw a tractor/lawn mower left by the city over the weekend in one of the medians and it sparked a thought... Why couldn't lawn mowers be automated? It turns out somebody already has that idea. Check this link out: http://www.robomow.com/

These aren't industrial size/strength machines, though. I guess there are a couple of challenges with using an automated mower in an industrial/municipal context:
- Keeping them secure - they'd potentially be easy to steal. You could get around this by putting a GPS tracker on the unit something like this: http://www.gpspolice.com/
- More varied terrain - the mowers would have to content with steeper hills and soggy or muddy grass that they could get stuck in. The unit would have to be able to manage/mitigate these.
- Safety - The units would need to be well tested with emergency shut offs logic in a bunch of places to ensure the public's safety.

Thursday, May 26, 2011

Two more business ideas

I've got two more business ideas.

1. I've seen and heard of several companies here in Calgary that have tried to outsource their software development to India and have failed for one reason or another. I think it would be interesting to offer one's services as a liaison between a local client and an overseas outsourcing company to help with communication, expectation setting, and overall project management. It seems to me like there could be a big opportunity there - reasonable and talented software development, and clients looking for cheaper ways to build and implement their software. A boutique firm that acted as a 3rd party to help manage issues related to challenges with outsourcing projects like this overseas would be interesting to try.

2. On a totally different vein, (this is going to sound a bit silly, but...) it bothers me when I throw away a perfectly piece of good seran-wrap/cling-wrap. I doubt this would be a big money maker, but putting together a little utility/tool that stores the clean sheet of cling-wrap for re-use was my idea. :-)

Sunday, May 22, 2011

Access Denied - Windows Service - StreamWriter- VB.Net

I'm going to cut right to the chase on this one.  I didn't realize that Windows obfuscates error messages for security.  Without that gem of knowledge, I spent WAY more time than I should have last week trying to get a Windows Service to write a file to the local file system on a server.  (I have another post related to obfuscated error messages with Windows here, but it focuses on IIS).

I was continually getting an access denied message trying to programatically create and write a file using a StreamWriter in VB.Net.  My Windows Service was running as a particular service account, and I had  given that particular account Modify access to the parent folder where the file was supposed to be created - but it would not write.  I tried pushing to a different server to see if it would work there - still no dice.  I tried adding security policies (run as a service, run as a batch job, run as part of the OS) to the service account running the service - again, the annoying message 'Access Denied'.  For a while it was thought that maybe the file size was an issue - it was a little over a Mb.  I deployed another version that wrote just one line.  No luck.

In the end, I enlisted a colleague's help (thanks Dorina) and we discovered that the problem wasn't the user at all.  It was in the path that I was trying to write to.  I was using the Path.combine() method to put the path together which, in the debugger appeared to put the file name and path together correctly.  However when we used Procmon to look at the output it complained on a createFile command that the 'file' was 'isDirectory'.  Upon closer examination, it turned out that my Nunit test was calling one constructor that correctly used that Path.combine() method, and my Service called another constructor that did not use the Path.combine() method.

So in the end, my AccessDenied error, was really an incorrect path issue.  Windows (apparently) doesn't display the correct error message so as not to advertise potentially sensitive paths.  And I need to ensure that my Nunits exercise the same methods that my implementation classes use.

Wednesday, April 13, 2011

Hand-held application and smart board business ideas

I had a couple of new technology ideas recently.  In the last couple of weeks at work, all of our meeting rooms have been getting outfitted with Smart Boards - and quite a number of them with video conferencing features.  While we were trying to get set up for a meeting we were impressed to see the camera for the video conference realign itself after our PM had pointed it a different direction.  While he was continuing to get the display organized, I had the urge to help him from my seat using my fingers to zoom the image like it was an iPad or an iPhone.  Then I thought 'why couldn't I do that, given the Kinect technology now with the xbox?'  A touch-less touch screen?  Maybe in the future.....

It wouldn't surprise me if there is an app already for the other idea I had.  I was quickly going over a hard copy of a chart of geological formations looking for a particular name.  I thought 'wouldn't it be great if I could just hit ctrl-F and find the word I'm looking for?'  and then I realized that something like that would be a great app for an iPhone or similar hand held.  Take a picture of the document, and write some logic to parse the text in the image and then search for the search term entered.  The idea is similar to the 'Word Lens' app here, except that rather than translating text, your searching it.