Wednesday, June 30, 2010

cygwin and gnupg

I upgraded my installation of cygwin from v1.7. to 1.7.5.  Doing so broke gnupg (v1.4.9, the version that comes with cygwin).  Others have encountered this too.


  $ /usr/bin/gpg --decrypt foo.txt.gpg
  gpg: can't lock memory: Permission denied


My solution - use the native Windows build of gnupg downloaded from gnupg.org.
I had to copy the config over from ${HOME}/.gnupg to ${USERPROFILE}/.gnupg.


  $ /c/programfiles/GNU/GnuPG/gpg --decrypt foo.txt.gpg

  You need a passphrase to unlock the secret key for
  user:


Problem solved.  I will wait till the cygwin distribution gets everything together.  In the meanwhile, I can get on with with my work.

Saturday, April 10, 2010

Canon camera repair

Props to the Canon repair center in Virginia. I recently shipped a broken DSLR to them. Within an hour of receiving it, they sent email with a quote. (Deduced from the timestamp on their email and the Fedex delivery notification.) I responded that evening with the online payment (and rebuffed their attempt to upsell by declining an upgrade.) The camera was fixed and shipped the very next day. Quick and efficient service. Good show!

Monday, March 22, 2010

CGI on lighttpd

Installed lighttpd on an Ubuntu box over the weekend. Enabling CGI turned out to be a non-trivial exercise just because the online documentation was a bit confusing. The simplest config that will work is:

server.modules += ( "mod_cgi" )
$HTTP["url"] =~ "/cgi-bin/" {
cgi.assign = ( "" => "" )
alias.url += ("/cgi-bin/" => "/some/path/to/cgi-dir/"
}

Saturday, March 13, 2010

Thoughts on being Agile

Attended the 2010 Michigan Agile and Beyond "mostly free" conference on Saturday, March 13. There was a strong turnout - close to 400 people showed up on a rainy, blustery Saturday. Turned out to be wonderful day for being indoors.

A lot of attendees were unfamiliar about Agile (with a capital A - ie. use of any formal agile methodology, separate from agile the adjective - you can do the former without necessarily achieving the latter) and were there to get a better idea of what it was all about. A lot of questions asked during a panel discussion on "real-world" practice tended to reflect that - "what about large teams", "what about architecture", "is test-driven development realistic", "what about fixed-price bids?" All of these questions are valid, and the answers are often the same regardless of what the development methodology is. Coordination with large teams is always hard, exponentially so with increasing size. Power-point architecture doesn't work very well regardless, and the implementation phase always throws up previously unknown issues. Etc.

This theme continued during a lunch-time conversation with a couple of acquaintances from Ford. We have complex systems, and work with other teams that may not be agile. It requires longer analysis. The DBA team works with a 5-day SLA. Can't keep changing the database. I adopted the Socratic method, asking a series of questions that allowed them to question some underlying assumptions.

One of the speakers made a great point - to make it work, where it is adopting agile all the way concept to development, you need buy in from the very top and the very bottom. It will not fly unless both are absolutely committed.

There is an engineering aspect related to agile practices. But it is not all about making programmers work faster or just improving the development process. The iterative nature of agile is about enabling better decision-making by allowing course corrections sooner rather than later and by accommodating inevitable change.

Thursday, March 11, 2010

Java on FF3.6 and Chrome

Both Firefox 3.6 and the Chrome browser require a minimum JRE version of 1.6.0_10. Simply install it and you are good to go. As of writing, the latest version is 1.6.0_18.