14 Jul 2013
To Florida, or not to Florida: a quality of life question … maybe
I’ve been really amused over the last few months with some discussions about the best (or at least better) place to live. Currently it’s focused on the city of Pittsburgh or the Central Florida area. The debate between Florida and the rest of the country always seems to be a more heated, emotionally-intense debate. It may have to do with some subconscious rivalry between the snowy north, and the almost year-round summer in the south–with the occasional tropical storm risk in Florida thrown in as the wild card.
I see these debates differently now than I did a decade or two ago. I have some thoughts and insight I want to share, with the hope it will help you see these type of debates from a different perspective.
The late American humorist Erma Bombeck wrote a book entitled “The grass is always greener over the septic tank.” Ironically, when we get into debates about what location has the best combination of being the better place to work, live, socialize and play, we are hoping to discover that greener pasture for the next phase of our life. And I am sure the debates are also to uncover how much manure we are going to have to put up with for that greener pasture, which everyone understandably wants to minimize.
Over the course of my post-High school life, I have lived in eight cities. Clermont Florida, the most recent, has been a really good experience. It’s one which I am very thankful for, but it’s also the one which I could not understand why it was so good for me. I had visited Florida on vacation before, but did not expect it to be so enjoyable and a great fit for me as a place to live.
And, strangely, I began to understand why during a recent trip to Europe with my family. We visited the Austrian town of Kaunertal at the end of skiing season. The town is in a valley surrounded by the Alps, with the skiing on a slope at a 10,500 foot elevation. At the ski shop in the town, I spent a few minutes talking with the young man who was helping us with the rental equipment. He was born and raised in the town, and is an avid snowboarder. And ski season was ending in the Alps in less than a week.
So I asked him, out of curiosity, what he was planning to do in the off-season. The ski shop does close down for the summer, after all. His answer surprised me a little: he was going to go to Chile for 5 months. I asked him why because, to me, it seemed like an odd choice. He pointed out that the Andes mountains in Chile where he goes have some of the best snowboarding in the world. And he takes this trip every year.
And then I considered something I had not thought too much about before: imprinting. For the part of the world he grew up in, winter sports are awesome. So being able to travel to (or better, escape to) another winter sports location while your hometown is warming up continues the fun. And when it starts warming up in that other location , go home again–a perpetual winter. He had grown up in winter, and it was in his blood.
I spent the latter part of my youth in Los Angeles, in the desert heat. I didn’t have snowy winters, just a little cooler weather than summer. So after having lived there and in Texas, I was very used to (and enjoyed) warm climates. For the next 20 years, I spent time in colder climates, and then I moved to Florida.. and my imprinting as a teenager kicked back in. No wonder I love Florida life so much.
So the next time you hear a debate about Florida or some other area of the country being better, there’s way more to that debate than just the facts. Even the debaters have their reasons for their positive or negative reactions to different areas of the country–from their own imprinting.
20 Mar 2013
The French Taxi Driver Test
This analogy, which I heard long ago while living in Europe, is a very revealing exercise. The story goes as follows:
“A Taxi Driver is driving his taxi down a city road at 2:30AM. The traffic light at the intersection he is approaching is red. As he approaches the intersection, he brings the taxi to a stop just before the white limit line. He then looks around in all directions and sees no cars or pedestrians anywhere on the road. So he presses the gas pedal and continues through the intersection while the light is still red.” .. and that’s the end of the story.
And the point of the story? Well, that will become obvious later. The basic idea of the story is to tell it, provide no further information, then just OBSERVE the listener’s reaction to it.
The reactions that people give are amusing, humorous, sometimes insightful, and sometimes downright scary. I’ve heard some people ask if the driver also was checking for animals in the intersection, as well as pedestrians and cars. Others have wondered why a full-time professional driver would even stop for a red light that early in the morning (most people answering this way are from big cities). And there are people who get offended that the taxi driver ran a red light–regardless of what was or wasn’t in the intersection.
And regardless of what the listener’s reaction is, I always ask a simple follow-up question: “If you were in that situation (stopped at a red light, with no other car or pedestrian around), what would you do?” And I have heard some very interesting and strange answers to this over the years. And I like to ask everyone “Why is that?” to allow them to explain their thinking. I’m happy when a person can rationalize their answer (regardless of whether I agree), and I never like it when I get the dreaded answer of “I don’t know.”
Why do I like this story and enjoy sharing it with people from time to time? It (hopefully) forces a person to think about a scenario that, taken only at face value, is illegal: crossing into an intersection while the traffic light for that direction is red. The paradigm applied here is the authority of the law which applies to the traffic light.
But the French Taxi Driver used the context of the situation: there was nothing at the intersection to stop for. The paradigm applied here is the real purpose of the traffic light: negotiation. As any city planner can tell you, traffic lights are avoided because of their expense. Most non-highway roads use less expensive solutions (e.g. stop signs and yield signs) which assume that a certain amount of cooperation occurs between drivers. They also use an approach best described as “go when its your turn.” Once a certain frequency of major accidents and even fatalities occur within a designated time frame, the cooperative approaches are deemed no longer effective, and the cost of the traffic light can be justified.
Traffic lights shift negotiation of right-of-way from the cooperative-approach of stop signs and yield signs to a time-sharing approach. Because of the declarative nature of a traffic light, people tend to follow its signaling as instructive. It’s very common when training young drivers to have to remind them, that even though the light is green, it’s still the safe thing to check all directions for any cars entering the intersection before pulling into it. But that behavior is automatic with a stop sign, due to the cooperative nature of the stop sign.
The core reason for the traffic light being installed (time-sharing) occurs far less late at night, since the vast majority of travelers are off the road at that time. There have to be multiple cars wanting to use the intersection for the traffic light to really fulfill its intended purpose.
This may sound like nit-picking, or trying to stretch or rationalize the law, but it is more important than you might first think. Back when I was in Berlin in 1987, not long after I first heard the French Taxi Driver analogy, my wife and I personally witnessed something very similar to the analogy. It was 1:30AM in Berlin, and we were approaching an intersection on foot. There was another man walking towards the intersection just ahead of us. And at the intersection already, where the traffic light was red, was an older woman standing at the corner waiting to cross.
When the man ahead of us got to the intersection where the woman was standing at the red light, he quickly looked around to see if it was safe to cross, and then proceeded to cross the street. The older woman then did something that astonished me. She raised her fist in the air, and began cursing out the man at the top of her lungs for going into the intersection before the light turned green. And all this cursing ended with a very ugly statement from her: “.. if Hitler was still in power, you’d be paying for this!” I was just stunned when I heard that. Fortunately, the man who crossed the intersection just ignored her and never looked back. And later, my wife explained to me that this was a very common reaction from older people who were raised in the Hitler youth or in school during the Nazi era. They were taught always to obey the law and never question authority–to an extreme.
Waiting at the red light for the light to turn green may sound like the good and decent thing for a citizen pedestrian to do. In this case, the woman appeared to be just pointing that out to the man that he was breaking the law, but that was not what was happening. What was really happening was easily observed when the it was daytime instead of nighttime.
During the day, it was very common to see the same old people standing at an intersection waiting for the red light to turn green. But this time when the light turned green, they just stepped out into the intersection–even if there were still cars in the intersection trying to clear out it. Sadly, it was a common occurrence for a number of these poor old people to be injured or killed because they never took their eyes of the traffic light, their absolute authority, and blindly followed its instructions.
In hindsight, it is easy to understand why the Allies agreed that Germany had to be occupied for at least 50 years at the end of World War II: there was a generation of this thinking and behavior that needed to die off for Germany to reinvent itself.
So my opinion is, how we behave at a red light at 1:30 AM when there is no traffic shows a lot about our thought processes at a given time in our life. If we choose to wait for the green light, that can be perfectly in context. Maybe we don’t feel comfortable with the intersection (an unfamiliar location for us), or the street lighting may not make us feel comfortable enough to declare the street hazard-free and proceed through the intersection. Maybe the person is a new driver and is still not comfortable with the controls of the car or the behavior patterns of other drivers. All of these are perfect reasons for not to risk proceeding through the intersection until you have the green light.
But if we are familiar with the intersection (important point: the taxi driver probably drives though the intersection a lot and is very familiar with it), and if we have been driving for a while, we get to a position where our ability to make a decision on right-of-way and safety easily supersedes the traffic light’s dumb timing sequence. And at that point in our mental maturity, it becomes counterproductive (in fact, almost bordering on mental slavery) to allow the traffic light to dictate our actions when we know better.
That may sound wrong, but most states across the United States already allow a right turn on red with the same process: come to a complete stop, proceed when it is safe. And that is during all hours of the day. The right turn simply has less risk than going straight or making a left turn.
Germany was an extreme case, which I mentioned only because of personal experience with it. However, the red light traffic cameras we are installing today are actually encouraging a pattern of thinking similar to what got those older Germans into danger: never being allowed to question authority. I have a separate post on why that is here.
So what is the point of the story? It is simple. At what point does automation and authority stop serving you, and you begin serving the authority and, especially, the automation? The lesson of this story applies much more broadly than to just traffic lights. It applies to all aspects of our lives where we have rules.
So the next time you are stuck at a red light at 1:30AM, there is no traffic around for blocks and it makes no sense to wait, think about this article. I will tell you that if you decide to proceed through the intersection, you do risk getting a moving violation from a police officer (even if what you did was rational, but the police officer was just not in the mood to be rational). You also risk more if there is a vehicle you do not see and you get hit. And while I have proceeded through the intersection many times in the past, I don’t always do it. I only do it when I am absolutely sure it is safe, just like making a right turn on red.
I have been pulled over once for proceeding through. I explained to the officer that I did come to a full stop as required (which I was sure he witnessed), and only proceeded when I was sure that there was zero traffic, so there was no reason to wait for a green light. After checking my documentation, he returned it to me with a simple “Thank you. Drive safely, and be careful when you pull out.” .. which was somewhat humorous in context since there still were no other cars on the road around us.
So how do I explain that reasoning to a still picture camera? Obviously, I can’t. And if enough of them send me fines for violating a red light, no matter what was going on in context, my free thought is discouraged and punished. I am being told to just blindly follow the instructions of the traffic light as if it were my master–not a negotiator.
In a society that prides itself on free thinking, that’s a really bad thing.
02 Mar 2013
Install or Uninstall a Windows Service without Installation Packages
Generally windows services are deployed one of two ways. One way is in an installation package, that will handle the installation for a user. The service may be one of several parts of an installation package, and the package approach makes the installation easier to maintain. This method is mostly useful for an unknown number of installation points (i.e. machines), and mandatory when the installation is for an end user on their personal device.
The second way which I focus on here, is by using the InstallUtil.exe utility in the .NET Framework. This console application has a few handy uses:
- bulk deployment of a single, simple service across a number of servers in a given cluster or data center.
- scripting the install/uninstall as an option into the Windows Explorer context menu for executable files.
I’ve rediscovered two files I have been using for a while, which can facilitate this specific interface to the context menu in Windows Explorer. The first is a command file which can be executed directly, but is designed to be called from a Windows explorer context menu. It currently supports version 2.0 or 4.0 of the utility, but can be easily adjusted as new versions of InstallUtil debut in later frameworks.
The second is the registry file to merge into the HKEY_CLASSES_ROOT to create the Windows Explorer context menu for the install/uninstall options. Simply create a folder C:\Scripts\ExplorerContext, copy these two files into it, merge the registry settings file, and then you’ll see four new options on an executable file for installing or uninstalling the service in .NET version 2.0 or 4.0
The process to install these files is to place these files in a folder, and merge the registry file. Be sure to adjust the paths in the Registry file content to the correct path to the command file, if it is note the default: C:\Script\ExplorerContent
To use the file from Explorer Context, copy the service executable and support files to their operating folder. From Windows Explorer, right click on the entry executable for the service, and select the Service Install menu option for the version on .NET needed.
Likewise, to uninstall the service, select one of the uninstall options.
That’s it. The command file is below. You can download both the command file and the registry file as a zip file here. This is a very useful was of automating installs for bulk code updates.
@echo off REM install_services_dotNET.cmd -- use the dotNET InstallUtil.exe console app to install/uninstall REM a windows service. REM J. Schultz -- 3/11/2010 REM Interface to Windows explorer as a context menu item set using the following registry settings REM NOTE: Adjust the path to the cmd file as needed (C:\\Scripts\\ExplorerContext\\). REM ------------------------------------- 8< -------------------------------------- REM Windows Registry Editor Version 5.00 REM REM [HKEY_CLASSES_ROOT\exefile\shell] REM REM [HKEY_CLASSES_ROOT\exefile\shell\.NET 2.0 Service Install] REM REM [HKEY_CLASSES_ROOT\exefile\shell\.NET 2.0 Service Install\command] REM @="C:\\Scripts\\ExplorerContext\\install_services_dotNET.cmd I 2.0 \"%1\"" REM REM [HKEY_CLASSES_ROOT\exefile\shell\.NET 2.0 Service Uninstall] REM REM [HKEY_CLASSES_ROOT\exefile\shell\.NET 2.0 Service Uninstall\command] REM @="C:\\Scripts\\ExplorerContext\\install_services_dotNET.cmd U 2.0 \"%1\"" REM REM [HKEY_CLASSES_ROOT\exefile\shell\.NET 4.0 Service Install] REM REM [HKEY_CLASSES_ROOT\exefile\shell\.NET 4.0 Service Install\command] REM @="C:\\Scripts\\ExplorerContext\\install_services_dotNET.cmd I 4.0 \"%1\"" REM REM [HKEY_CLASSES_ROOT\exefile\shell\.NET 4.0 Service Uninstall] REM REM [HKEY_CLASSES_ROOT\exefile\shell\.NET 4.0 Service Uninstall\command] REM REM @="C:\\Scripts\\ExplorerContext\\install_services_dotNET.cmd U 4.0 \"%1\"" REM REM ------------------------------------- 8< -------------------------------------- if /I "%1" == "I" goto CONT01 if /I "%1" == "U" goto CONT01 echo First parameter must I for install, or U for uninstall. goto HELP :CONT01 if "%2" NEQ "" if /I "%2" == "2.0" goto CONT02 if "%2" NEQ "" if /I "%2" == "4.0" goto CONT02 echo Second parameter must specify the dotNET version: 2.0 or 4.0 goto HELP :CONT02 if "%3" NEQ "" goto CONT03 echo Third parameter must specify the full path to the executable file for the service. goto HELP :CONT03 if exist %3 goto CONT04 echo The executable file for the service (third parameter) specifies a non-existent file. goto HELP :CONT04 if "%4" EQU "" goto CONT05 echo Expected three parameters, but have four or more. goto HELP :CONT05 REM Parameter check passed REM %~d3 REM cd "%~p3" if /I "%1" == "I" echo This will attempt to ** INSTALL ** the file... if /I "%1" == "U" echo This will attempt to ** REMOVE ** the file... echo. echo %3 echo. echo .. as a service. Press ENTER to continue, or Ctrl+Break to abort. pause > nul echo. if /I "%1" == "I" if /I "%2" == "2.0" "%windir%\microsoft.net\framework\v2.0.50727\installutil.exe" %3 if /I "%1" == "U" if /I "%2" == "2.0" "%windir%\microsoft.net\framework\v2.0.50727\installutil.exe" /u %3 if /I "%1" == "I" if /I "%2" == "4.0" "%windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe" %3 if /I "%1" == "U" if /I "%2" == "4.0" "%windir%\Microsoft.NET\Framework\v4.0.30319\installutil.exe" /u %3 echo. goto END :HELP echo. echo Example command lines: echo. echo install_services_dotNET.cmd I 2.0 "C:\Program Files\My Company\My Service\ServiceApp.exe" echo install_services_dotNET.cmd U 2.0 "C:\Program Files\My Company\My Service\ServiceApp.exe" echo. echo install_services_dotNET.cmd I 2.0 "C:\Program Files\My Company\My Service\ServiceApp.exe" echo install_services_dotNET.cmd U 2.0 "C:\Program Files\My Company\My Service\ServiceApp.exe" echo. :END echo Press any key to close this window. pause > nul |
The two files below demonstrate what is needed for windows context. One is a batch file
22 Feb 2013
Mimicing an old Dumb-Terminal in a Console, Putty or Powershell Session
For anyone who grew up using a dumb terminal connected to a remote mainframe or minicomputer, or even remembers the days of the monochrome screens on early DOS-based computers, here is a way to make your console screen look like one of those old monochromatic wonders we got rid of a long time ago. You can even tweak the scheme a little to simulate a brand new out-of-the-box monitor, or one that has been running 24-hours a day for a few years. Even Powershell has carried this ability forward.
I actually find this more comfortable to work with, than the default light gray on black scheme provided.
For Putty sessions
The colors are controlled in this one section, and you can use the color numbers from the Windows console sessions below:
One recommendation I will make is that you adjust the ANSI color settings for blue, blue-bold, etc, since the color scheme may worsen the default contrast and make them harder, or even near impossible to see.
For a Windows console session
Right click on the windows shortcut for the command prompt, and click properties. If you have a console window pinned to the task bar in Windows 7, hover the mouse cursor over it and right click. Next, move the mouse cursor over “Command Prompt” at the top of that context menu, and right-click it. Select Properties from the menu.
On the font tab, I recommend using raster fonts. The 7×12 or 8×12 selections are pretty close to what the old terminals used to display. My hat’s off to you if you can still use 6×8 or smaller.
The next two screens show how to make a green screen. Essentially, the text is the value of Green at maximum (255), with the background color set at a level of about 42-48. The background emulates the contrast/brightness. For a brand new monitor, try a green value of 0 to 10. For a monitor that needs a little less contrast, try 32-48. For a monitor that is about three or more years older, and the brightness/contrast controls no longer have any real effect, try a foreground (text) value of 200, and a background value of 64 to 90.
While the next settings use Amber as the monitor color, notice also that the highlight is the inverted foreground/background pair.
And for Powershell, just hit start and type Powershell in the search box. Right click on the x86 or whatever version you want to set, and select properties. The properties window is the same as for a console window.
Finally, for those that want to be a little different, here are a few jumpstarts for other colors in case you want to remember the regular monochrome monitor you once covered with an X-colored transparent sheet.
Enjoy!
Color | Foreground (R/G/B) | Background (R/G/B) |
---|---|---|
Purple | 255/0/255 | 32/0/32 |
Cyan | 128/255/255 | 16/32/32 |
Orange | 255/0/50 | 32/0/3 |
20 Feb 2013
Google It !
If you haven’t been following the technology-specific news outlets for the past two weeks, it would have been easy to overlook the news that Google has acquired the company in Florida where I work: Channel Intelligence. It’s quite a milestone.
Channel Intelligence was founded in late 1999, while the tech bubble was nearing the bursting point but was still growing. For me, it started back in December 2004 with a random call from the company’s HR department about my resume on Monster.com. I was living in Maryland at the time, but within a week after that call I had done extensive interviews, and had an offer and a projected start date in January. My wife and I packed up the house, and on January 4th, 2005, we arrived with our three kids in Florida. Later, in 2007, I was also fortunate enough to have my wife join the company as a co-worker.
Despite the hard work and dedication, it was Florida. It turned into the best 8 years of my life.. so far. I’ve had the opportunity to work with so many talented people here, who taught me quite a lot over the years. Hopefully, I was able to teach them… um, something.
Channel Intelligence defied a lot of odds against it, both real and perceived:
- A West Coast-style software company, located in the Southeastern United States.
- Located in the Orlando area, which I have repeatedly discovered is not taken seriously among software developers in well-known tech centers in the United States. They apply tunnel vision to Orlando, and can only relate it to Disney.
- Located in the town of Celebration, FL, on the South Side of the Disney theme parks in Orlando. The idea of putting a tech company in a town near a Disney theme park is taken as a joke by some developers who work in the metro Orlando area itself. A small note: The town of Celebration was designed and built by the Walt Disney Company to model the ideal of the live/work/play planned community concept, a cause championed by Walt Disney himself. The town was also visited regularly by tour buses from Disney itself, until the town became incorporated. How much more Disney-like can you get?
- Many people in the Orlando area, who could get past the perceptions above, wouldn’t consider the commute to Celebration from where they lived. Having lived in the Baltimore/DC area for 14 years, it was hard for me to understand why a drive of 20-25 miles was considered too far.
- The company survived the dot com bubble bursting.
- Despite the economic downturn in 2008, the company held steady and even grew its income.
As of today, the deal is complete and Channel Intelligence is a part of Google. We are now Googlers: a concept that will take some adjustment for me. I am pleased, and frankly a little surprised, to be one of a number of people who are ultimately moving to Google’s office in Pittsburgh. If the interviews that Google folks held with us were seeking overly passionate oddballs who love what they do to a fault, don’t like rules that don’t help them regardless of who it is supposed to help, and consider the time spent in an interview with a Googler a hindrance to their productivity (ours, not Google’s), then they can declare their selection of me a success. If anyone at Google is reading this and that wasn’t what you were looking for, I think you’ll still enjoy having me as a developer for whatever period of time.
When the time comes later this year, it will be hard to work geographically separated from a group of people I have worked with over the years, who formed a great team and made this company into such a success. Even more, it will also be hard to say goodbye to Florida, even if it ends up being only for a period of time. Before I leave, I will be visiting the beach a lot and making the most of bike week this year.
I will be coming back to Florida at some point, even if I have to wait until my retirement (whatever that really means for people who love their work). I hope it won’t be too long. While my visit to Pittsburgh proved that there is plenty to explore and enjoy, Florida is absolutely beautiful and a great environment for work, family, recreation and life in general.
But for now… myLife.chapter++;
07 Feb 2013
Open DHCP Server
I previously used a Winform app that was a simple DHCP service to assign addresses on a closed LAN network for test servers. It was unreliable, in that it would assign addresses but would never let the lease go beyond 15 minutes or so.
I just replaced it with Open DHCP Server. If you are looking for a simple DHCP server, try this one: it is on SourceForge.net. It installs on Windows as a service, and uses an easy to configure ini file (with lots of comments). I like that I can assign addresses with an infinite lease. It also has a web interface on port 6789 which shows the active addresses.
A very simple and well written piece of software. The project is located here.
02 Feb 2013
Beer for code.. the community in Open Source
My son discovered this license statement in some code he was looking at. Daniel, I like your license: hope we get to meet you some day.
/* * ---------------------------------------------------------------------------- * "THE BEER-WARE LICENSE" (Revision 42): * daniel@bimschas.com wrote this file. As long as you retain * this notice you can do whatever you want with this stuff. * If we meet some day, and you think this stuff is worth it, * you can buy me a beer in return * Daniel Bimschas * ---------------------------------------------------------------------------- */ |
17 Jan 2013
The Developer’s Commandments Revisited.
About 20 years ago, I remember reading the original 10 commandments for C programmers. A lot of time has elapsed since then, and there are some things that needed to change as technology and experience have changed the developer’s world.
So here is my modernized version for the sect of Microsoft C# developers in the world.
The Ten Commandments for C# Programmers
- Thou shalt enable ReSharper and study and obey its pronouncements with care, for verily its perception and judgment doth exceed thine own.
- Thou shalt not override the Dispose method of a class without just cause, nor shalt thou attempt to tame the Dragon of old known as “mutex”, for yea thou shalt surely be greeted by chaos and madness at execution time.
- Thou shalt faithfully force a cast upon an foreign object, lest it take cruel vengeance upon thee when thou least expect it.
- Thou shalt carefully consider thine host servers and their environment before committing thy design to code, lest the false glory of thine own workstation lead thee astray from the truth.
- Thou shalt exercise care with boundaries and encoding of all data entry points, for surely where thou processeth “foo” now, there also shalt thou someday process “ما في العالم أستطيع أن أكتب هنا“.
- Thou shalt avoid the wide road to destruction by unhandled exception, and ensure that thine code snare any exception and rebuke it swiftly and decisively, yea that thine execution times may be long and prosperous. For if thou thinkest “thus can it not happen to me'”, the god of Murphy shall surely punish thee for thy arrogance by heralding thy childest oversight directly to Microsoft itself.
- Thou shalt study thy tools and existing assemblies and strive not to reinvent them without cause, that thy code may be short and readable and thy days pleasant and productive.
- Thou shalt learn to “speak in keys” (Ctrl+K,D) to make thy neighbor’s bracing style clear to thyself, and renounce the false god known as “The One True Brace Style”, for what doth thy coding time better serve: the understanding and solving of problems, or the understanding of the demons of thy fellow coder.
- Thou shalt not include nor reference the project from a neighboring tribesman’s solution into thine own tribe’s solution, excepting that thou compile that project source into a working and tested assembly. For curseth is the coder, that forseeth not that thy neighboring tribesman shall eventually seek to make his carriage wheel better and, when he faileth, shalt also break thine horse cart as well.
- Thou shalt foreswear, renounce, and abjure the vile heresy which claimeth that “All the world’s a 32-bit machine”, and have no commerce with the self-benighted managers who cling to this barbarous belief, that the days of thy code (and resume) may be long even though the days of thy current machine be short.
09 Jan 2013
Folder Manifest 1.0.6.0 Released
This has a small enhancement: a checkbox to include the directory names in the result, including empty folders (this was previously unsupported). See the download page for the current version.
28 Dec 2012
The loss of two notable military veterans this week
While the death today of General Norman Schwarzkopf is sweeping the news, there’s another military veteran who died on Monday that you might recognize… but not for his military service.
Character actor: Charles Durning
He was a one of a number of actors who served in the military, fighting in overseas wars. In this case, World War 2 in Europe. Some other actors in this group were Bob Keeshan (Captain Kangaroo) and Don Adams (Get Smart).
Charles Durning’s war experiences are definitely intense. They are summarized in this article here, within the gray text box near his picture.
So to both Schwarzkopf and Durning, a big thank you for your service to our country. Sometimes you just don’t know what the person you see right in front of you has done for his country.