Tuesday, June 30, 2009

Using Ruby Gems Behind Windows Proxy

I've been trying to get ruby gems installing on a Windows XP from behind our company proxy and finally got it to work using the HTTP_PROXY environment variable. (Why does configuration seem more like alchemy than science?) Although I usually have to supply a domain name, for some reason it was OK without it. YMMV.


SET HTTP_PROXY=http://myusername:mypassword@proxyname:80
gem install amazon-ecs
Successfully installed amazon-ecs-0.5.4
1 gem installed
Installing ri documentation for amazon-ecs-0.5.4...
Installing RDoc documentation for amazon-ecs-0.5.4...

Friday, June 26, 2009

Firefox Environment Backup Extension

My new favorite Firefox extension is "Firefox Environment Backup Extension" or FEBE. My work machine, still a desktop, is my most finely tuned box. My home machine is always lagging behind in Firefox (and Emacs) updates. I have often wished for something like FEBE and now its here. FEBE allows you to export all your Firefox extensions and settings and import them into another computer. A nice addition to the thousands of Firefox extensions.
I'm sure Internet Explorer 8 has something similar since the latest Microsoft sponsored browser "Get The Facts" report gives IE8 and Firefox both a check for customizability. (Can somebody tell me why the delicious tags on Microsoft's "Get The Facts For Browsers" page are "funny" and "humor"?)

Wednesday, June 24, 2009

Keep Swimming or You Die

shark
Some shark species must keep swimming to create a flow of water through its gills, or they will suffocate. Our aquatic friends of the deep can teach us something about software development.
Last night I stuck up a conversation with someone at my daughter's athletic event. Come to find out, he was an underemployed software developer. He was ruing the fact that for eight years he kept his head down and simply created java applications for his employer. He didn't investigate developing apps for this wacky internet web-thingy which is quite popular with the younger crowd. When he was laid-off, he found his excellent java application skills not much in demand in a sparse job market. Admirably he is going back to school and getting the skills needed for today's web-connected world.
The lesson from the fishies: Keep learning or your career will die.

Saturday, June 20, 2009

Roxio Creator 2009 not starting

I am rebuilding my home windows xp system after a disk crash. While reinstalling Roxio Creator 2009 I encountered an interesting problem. Roxio would not start. I looked in the event viewer ("Start/Programs/Administrator Tools/Event Viewer") and found the following error message:

EventType clr20r3, P1 roxiocentralfx.exe, P2 4.12.0.0, P3 48a05348, P4 roxiocentralfx,
P5 0.0.0.0, P6 48a05348, P7 17e, P8 12, P9 system.dllnotfoundexception, P10 NIL.

(The event log messages are really more like a Greek Oracles, something you only really understand, at your peril, afterwards).

I tried to install .Net 3.5 because another error hinted that a .Net library was missing. During the .Net 3.5 install I got the following less helpful error which did not have an event clue.


error

So I was stuck. Roxio won't start because of a missing .Net library and I can't install .Net because of a "Setup Error".

Realizing that Roxio Creator 2009 is only a shell over all these other programs, I tried to launch a sub-program, "Creator Classic", directly (Start/Programs/Roxio Creator 2009/Applications/Creator Classic". It did run and immediately asked to download patches from the mother ship. After those patches were installed I tried lauching the main Roxio Creator again - and it worked.
No rhyme or reason or understanding here, just trying random things, but that's what often works with Windows.

Friday, June 12, 2009

How to Slim Down a Word Document

For some bizarre reason, one of our important Word documents ballooned from 600K to 80 Megabytes. The document would compress nicely to an 8Meg zip file, but was taking up way too much space. I opened the document, selected all with Ctl-a, and pasted it into a new document. The new document was back to 600K. Go figure.

The Toyota Way

bookI just finished listening to "The Toyota Way" while commuting in my Camry as a way to get an introduction to Lean Software Methodology. A few things that struck me in the book (in no particular order):
  1. Counter Intuitive. Many of the ideas just don't sound right like stopping production if a problem is spotted on the line, or not using machines to their capacity. Although the ideas sound crazy at times, you can't argue with the success of Toyota.
  2. Set Based Solutions. Don't just create one solution to a problem, create several solutions and discuss the merits of each with many people. Implement swiftly.
  3. Continuous Improvement - "Kaizen". The production process should always be improving. People need to be committed to adapting to change and initiating change.
  4. Commitment to Training. Employees should be trained well. I was amazed at the amount of training that Toyota offers its people.
  5. Flow. Don't just optimize parts of the process - optimize the total system.
  6. Fix the Process, "Pokayoke". When something does not perform as expected, don't just fix it, find out why it failed. Pokayoke means to find the root problem and take action so the problem does not occur again.
  7. Easy to Copy Badly. The Toyota Production System is easy to copy badly with disastrous results. The example given was the magic chord that any employee can pull to stop the entire line when she discovers a defect in the process. Some plants tried to copy this method, but found it not to work well. In the Toyota plants pulling the chord doesn't immediately stop the line, but gives the team leaders some time to resolve the situation before stopping the complete line.
  8. Focus on "Standard Work". Each step of production has written steps on how to do the work. The employees should be doing the process exactly as written. When defects in the line occur, the line managers focus on how the defect occured. Was the standard work followed? If not, why not? If it was followed, the standard work needs to be changed. Standard Work is the first step to continuous improvement. You cannot effectively improve an ad hoc process.
  9. Eliminate Waste, "Muda". "anything other than the minimum amount of equipment, materials, parts, and workers (working time) which are absolutely essential to production" is waste. Seven classes of waste: overproduction, delay, transportation, processing, inventory, wasted motion, and defective parts. In software development I see a lot of inventory - written and tested software which has not been released because it's hard to install mission critical software.
  10. Visual Displays, "Andon". It's important for everyone to see progress, so Toyota emphasizes big signs where everyone can see problems and production.
  11. Hands-On Approach, Genchi Gengustu "Go see the problem". Management must visit the factory floor and see for themselves the problems.

Thursday, June 11, 2009

Using HTTPS in the Microsoft World

Using https on the server is fairly easy for internal testing in the Microsoft world. Since this is a self-signed certificate the users will get a warning that the certificate is untrusted. Using a self-signed certificate is not appropriate for sites used by the general public, but is good enough for internal sites and testing.

Here's some tips on how to do it:

*How to create a self-signed certificate. Change "mydomain.com" below, but everything else is OK.
makecert -r -pe -n "CN=mydomain.com" -b 01/01/2000 -e 01/01/2036 -eku 1.3.6.1.5.5.7.3.1 -ss my -sr localMachine -sky exchange -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12


*How to install the newly created certificate
Open "Internet Information Services", right click on "Default Web Site", select the "Directory Security" tab, select the "Server Certificate..." button.

*How to apply it to a virtual directory
Open IIS, right-click on the virtual directory, select the "Directory Security" tab. Under "Secure communications", select "Edit..." then check "Require secure channel (SSL)".