Small code with powerful results, the occasional opinion … and beer. 

27 Apr 2012
“That’s what THEY said!”

I am a linguist who takes grammar and language use very seriously. This is one of the few times I will stand on my pet-peeve soap box.  What caused this?

<rant>

It was a blurb of text in a document on the Free Software Foundation’s site.  “…as long as the user is able to authorize the programs she wants to use…”

Back in the 1970’s, when I was in junior high school, I had a very wise English teacher who predicted the long-term influence counter-culturalism movements in the United States would have on the English language.  His point was that there was a traditional male-slant to many documents in English and other languages throughout history.  Essentially, when a person was referred to by a noun in the early part of a sentence, e.g. …

The lendee has an obligation to pay the lendor, and will be in good standing with the lendor, {insert conditional clause here}.

… it was accepted practice to further refer to the subject of the sentence (i.e. lendee) in the conditional clause with the pronoun “he”.  E.g.

The lendee has an obligation to pay the lendor, and will be in good standing with the lendor, provided he makes timely payments according to a schedule.

.. even if the person signing the contract was a she, or more than one person.  Obviously, challenging this practice was one of the things that came out of the feminist movement.  So during this time of the feminist movement, many people were experimenting with Ms. instead of Miss or Mrs.  And it was common to see the sentence above written as…

The lendee has an obligation to pay the lendor, and will be in good standing with the lendor, provided he/she makes timely payments according to a schedule.

While it seems a logical way to address the issue, try reading a document where the “he/she” pronoun is used over and over again.  It gets very annoying, very quickly.  And many of the hardline feminists were just writing “she” where “he” would have appeared before, to throw more fuel on a fire already started.

So my English teacher cautioned everyone not to take sides in the debate, and use a very simple technique which actually makes the text become neutral and elegant:  use the plural.  In all but the legalistic language I have used above, the plural will neutralize any potential offense to the reader of the text. And as for the legalese, the problem is simply solved by not using any pronoun.

Knowing this, the original phrase quoted from the Free Software Foundations site now changes to:

“…as long as the users are able to authorize the programs they want to use…”

There are some real advantages to doing this

  • You don’t have to worry about possibly offending someone with an improper choice of pronoun.
  • The plural encourages viewing the person not as a single entity, but as a collective group.  This is perfectly applicable to the text I chose as the example in this post, since it is a call to action.

</rant>

And to be fair to the Free Software Foundation whose text I chose, I really encourage everyone to read the full text of this document.  The cause is good, even if you don’t choose to sign the petition.  You can view it here.

03 Apr 2012
Folder Manifest 1.0.5.0 Released

This has a small enhancement: sorting the folder names and file names.  See the download page for the current version.

27 Mar 2012
Weed Killer 1.0.5.0

Weed Killer 1.0.5.0 is now available. See the project page here.  This is a maintenance release which corrects an issue with applying NT permissions to folders.

Weed Killer is available for download on www.SourceForge.net.

16 Mar 2012
SQL Server: reclaiming the bloated modellog.ldf file

I was working on a virtual test server with a very small (7Gb) C: drive, and the monitors were throwing alerts about low disk space. There weren’t any temp files, etc, that could be deleted to quickly free up space.  Tree Size revealed that there was a 3.5Gb file named modellog.ldf, which was clearly bloated comparing it to the other databases on the server.

I found this technique which quickly solved the problem: http://www.itbangbang.net/2010/06/how-to-shrink-large-modellogldf-file.html

13 Mar 2012
Weed Killer 1.0.4.0 (Stable)

Weed Killer 1.0.4.0 is now available. See the project page here.  This is the second stable, production-ready release of the package.

Highlights are:

  • Corrected a problem where saving a configuration file, before an active change was accepted or canceled, could corrupt the entry in the file.
  • Added a new ability for an administrator to assign delete access to a specific NT credential for all the root folders in a configuration file.  This allows the credential running Weed Killer Worker to be given access as the configuration file is being built or maintained.

Weed Killer is available on SourceForge.net.  Follow the link on the project page.

 

13 Mar 2012
ThreadPooling in .NET 4

I was reading up on (and experimenting with) the new classes introduced for managing the ThreadPool objects in .NET 4, and they are a nice change from previous versions of the framework. One technique I really like is the Task<generic> implementation. I wrote a test piece of code to implement this using a dictionary object, which acts as an indexed collection of threads. You can view the test code here.

The test code allows the ThreadPool to manage/optimize multiple threads of the same method, and keeps the thread collection in an object that can be expanded as needed. There are cases when the ThreadPool will delay the launch of a thread as part of its optimization, but the dictionary object can queue as many threads ahead of time as it wants to run .  That to me is a powerful combination when the amount of work to do is large, as far as the volume of thread launches is concerned.

The Task<generic> class has a nice way of doing error trapping with the Is_Fault property, combined with the Exception property. Notice the Go() method in the code throws an error on the 20th thread launch.  When the thread manager code detects that Is_Complete, Is_Cancelled or Is_Fault has become true, it first tests the case of Is_Fault and handles that case if true.  If Is_Fault is true, Is_Complete can also be true.. so check for Is_Fault first to avoid thinking Is_Complete means successful.

In this example, I did not attempt reuse of a dictionary item when a thread completes.  A completed Task<generic> value is simply discarded and a new item is created and added to the list.  This should execute any Dispose() method on the thread to ensure it is properly cleaned up.  A possible optimization of this code would be to recycle a completed thread entry.

Try the new classes for yourself.  There is a good overview article of threading in .NET 4 here.

18 Feb 2012
Re-emphasized lessons from a “mini” Napster

A few weeks ago, the US Federal government shutdown several domains providing illegal streaming video of copyrighted content. Unlike Megaupload.com, these sites were focusing mostly on NFL games. The article here summarizes what happened.

The operation was code named “Operation Fake Sweep”. My first point to the government would be to fire the person who created the code name with the double meaning. Or maybe.. there is some hidden truth in that choice, since one of the sites targeted (FirstRowSports.com) is now relocated to FirstRowSports.eu, outside of US Jurisdiction. If anyone wanted an example of the ineffectiveness in the recently defeated SOPA bill, there it is. So “Fake Sweep” has a somewhat prophetic content, whether the government intended it or not.

But there is a bigger picture here which should not be missed. There are similarities to Napster and First Row Sports (and similar sites) that facilitated this type of media sharing. Was it illegal what they were doing: yes. Would they exist if there was no viable market to fulfill: no. If there were no viable market being addressed, it would take only simple economics to shut them down instead of a massive federal effort.

It is important to remember that the RIAA, the legal protection arm of the recording industry, held militantly firm to no downloading of music, even when paid for. Their resistance was just laughable, because their pure negative attitude of digital media was never balanced with a reasonable effort to establish a proper channel for purchasing and downloading music. While Napster allowed sharing to an extreme, the extraordinary popularity of the site was never seen as an opportunity by the RIAA that there was an unmet need in the marketplace. And even if they did, their legacy thinking of media in a broadcast and mass distribution sense never wanted to adapt to the new world of the internet.

It was Apple who first successfully distributed paid music electronically, in their online store. Had Napster never been such a successful site, the RIAA would never have had any motivation to listen to Apple or any other vendor trying to make digital downloads a viable distribution channel.

FirstRowSports.com was very popular, because of the number of relocated NFL fans in the US and the world, who would love to watch their home teams every Sunday. (An interesting side-note: ESPN has a “30 for 30” special called “Steeler Nation” which is an excellent explanation of this phenomenon–and it is not limited to just the Steelers). While living near the city where your favorite team plays, it is easy to get a ticket to the stadium, or usually locate a station in town broadcasting the away game. Because of broadcast restrictions and practices, and other limitations including exclusive deals, a Ravens fan who relocated to Florida has a hard time watching the Ravens’ home game. A Cardinals fan in Minnesota has the same problem watching his team, etc.

The NFL has a wonderful service called NFL Sunday ticket. It has a $200 price tag per season, but in my opinion it is well worth the price for access to every game being played on Sunday. You get to watch all of the games being played–especially your home-town team. I would love to order it, except… it can only be purchased as part of DirectTV. And I will NOT install DirecTV for any number of personal and technical reasons. Cable is the proper solution for my hosuehold, enticing offers and services not withstanding.

The NFL has options for streaming audio of their games for a monthly fee. Not only does that fee over a season add up to over half of an NFL Sunday ticket price, why would I buy it? First it has no video. Second, and more importantly, I can easily locate an AM/FM station online if I want just audio, and listen to their broadcast of the game on an audio stream from that stations web site. Every radio station has one now.

If the NFL made their Sunday Ticket package available over live streaming, I am sure they would not be leaving so much money on the table and sell dramatically more Sunday Ticket packages to fans. The shear number of sites the government shutdown (over 300) should be a warning to the NFL of how much money it is pissing away by trying to make exclusive deals with distributors like DirecTV.

And so the NFL is now facing the same “infringement” as the RIAA did, but has the benefit of hindsight if it chooses to avoid RIAA’s mistake. Hopefully, they will see this government shutdown as their opportunity to move NFL Sunday Ticket into a non-exclusive distribution channel and provide the video streaming themselves. Or they can make the mistake of limiting the distribution to non-streaming, archaic models of distribution.. just like the RIAA did by trying to force music media distribution as CD’s.

So to the business managers at the National Football League: Whenever you are ready to add the NFL Sunday Ticket programming into a streaming media service, my payment is waiting for you.

14 Jan 2012
A case of revealing double-speak..

The leader of Iran, Mahmoud Ahmadinejad, is currently on a South American tour and getting a lot of support from the socialist/communist Central American leaders there. Not really a surprise. His choice of destinations (Cuba, Venezuela) are well know adversaries of the United States, making him very welcome.

There was one interesting comment during the visits from that infamous Anti-American leader of Venezuela, Hugh Chavez. Remember him? He was the one constantly threatening an oil embargo against the US. He was also the man who stood at the speaker’s podium in the General Assembly of the United Nations, after then U.S. President George W. Bush finished his speech, declaring that the assembly had just finished hearing from the “great satan” himself (referring to Bush, of course). It was extraordinarily overdramatic, indeed.

This week, the same Chavez said the following (quoted from MSNBC here)..

Chavez even joked how Ahmadinejad’s tour was making America nervous: “When we devils get together … it’s like they go crazy,” Chavez said.

So there you have it.  Obviously, Chavez has a double-standard like anyone totally consumed with power and fame, and lines up with typical US-bashers who will say anything to whip up anti-American emotions. So much for his argument of George W Bush being the great satan.

Thanks, Chavez.  It’s about time you started speaking the truth.

 

12 Jan 2012
Folder Manifest 1.0.4.0 Released

This has some small enhancements, including options to include time and size, and optionally change the column separation from spaces to tabs, so the result can be copied directly to an Excel spreadsheet.

See the download page for the current version.

23 Dec 2011
Bulk File Rename v1.0.0.0

Bulk File Rename is a simple windows form application, which allows complex file renaming within a folder, for all or a selected subset of the files. It supports remove, find/replace, prefix, suffix (root or extension), or “insert at” adjustments, and even supports wild cards and character remapping. See the help screen for examples. It works in Windows XP/Vista/7.

This little utility has saved me from a lot of grief over the years. I originally wrote it in Visual Studio 6 around 2004, and have now migrated it to C#.

Visit the project page for more details.