31 Aug 2009
Obamacare: Death of a salesman.. but he’ll still be selling.
Ted Kennedy’s passing marks a great loss to America. And, unfortunately, now it’s time to watch the politics of America overtly abuse his death as a reason that a bad bill should be passed. All because the Senator’s long-term goal was health care reform.
And, of course, the media now furiously broadcasts the personal involvement Senator Kennedy had with health care reform. While they didn’t say it in their broadcasts, there was an ugly, unspoken undertone in the messages: wouldn’t it be an insult to Senator Ted Kennedy’s life work if the health care reform, which he fought so hard for, would fail to pass.
Argumentum ad Misericordiam (Argument based on Pity) ..
This is one of the classic argument traps, and the one you will see used in the media and by the Obama administration over the next several days and weeks. I found this great example of it here, reprinted below.
An Appeal to Pity is a fallacy in which a person substitutes a claim intended to create pity for evidence in an argument. The form of the “argument” is as follows
- P is presented, with the intent to create pity.
- C is true.
This line of “reasoning” is fallacious because pity does not serve as evidence for a claim. This is extremely clear in the following case: “You must accept that 1+1=46, after all I’m dying…” While you may pity me because I am dying, it would hardly make my claim true.
So up the aspirin dosage as need be while tolerating the media circus. But keep in mind that the final desperate weeks are here for Obamacare. And it shouldn’t be any surprise that politicians will abuse Senator Kennedy’s memory to try and sway the tide of opposition.
But nothing has changed: a bad bill is still bad bill.
21 Aug 2009
WeedKiller 1.0.0.4-Alpha released
This has a small bug correction for Weeks as an age metric, and the help file is now launched into the default browser. This appears to be the final Alpha release.
All source code and binaries are now on the SourceForge.net project page. Please visit that site for further details as the project develops.
I’ve been maintaining the project using Visual Studio 2008 and the AnkhSVN plugin for Visual Studio, with the source repository set directly to the AVN server at SourceForge.net.
11 Aug 2009
WeedKiller 1.0.0.2-Alpha
Weed Killer Manager now has small fixes to the behavior of selected events in the Tester (and their coloring). I’ve also added a count and size display to the group box header for event selection. It shows the counts and total bytes for all items in the selected events. It allows for estimating or measuring impact on disk space and file count.
Weed Killer is now available on SourceForge, which has the updated binaries. You may also download them from the project page here.
06 Aug 2009
Facts are stubborn things… or are you just too stubborn to listen to the facts?
The White House web site recently posted a blog entry on the difficulty the White House is having with rumors and misinformation spreading on the internet about Heath Care Reform efforts. It’s evidently hindering the effort so much, that the blog entry provided an email address to report misinformation to the White House.
What ?!?!
Obviously everyone concerned about Big Brother behavior in the current administration is jumping all over the post and, no offense, all the criticism is justified. But, I’d like to point out a few things to everyone jumping all over this post.
- A lot of you are claiming that Macon Phillips wrote the post. The actual statement is “posted by” not “written by”. Still, it might be better for the actual author to post their name in a “written by” line so there is SOME perception of accountability in this administration. I wouldn’t count on it though. With all the flak this post is generating would you, as the real author, want your name associated with it?
- The White House can ask the public for help, just like any corporation trying to improve its products or promotions can do. In fact, public feedback and communication is what makes a democratic system work.
But the request on the web site is really laughable: this is not a connected administration when it comes to common sense. If they think they have a tough time sorting through the masses of misinformation on the net, now numerous people will report the same thing via an “email” message. How long do you think it will take until that mailbox gets saturated and also becomes too much to sort through? Yeah, THAT will help! We can only hope its all goes directly to an account on Obama’s Blackberry.
So that brings me to this point for you, the White House staff… Why are you asking for this information? It really makes you look like goofs for two reasons. First, asking for leads to misinformation is a very defensive step. Could it be that your offense is exhausted? It wouldn’t surprise me: you didn’t have much to begin with. Second, you clearly admit that you’re overwhelmed by the amount of “mis”-information, just like the country is overwhelmed by the volume and scope of this bill, and its outrageous deadline and high-pressure tactics that you’ve imposed to push it through. You’re now a victim of your own tactics.
One final thing… I do believe that it is important to help the government determine where misinformation is occurring. So I am recommending that everyone who sees it send you an email when they see it…
starting with the link to your very own blog entry here.
04 Aug 2009
WeedKiller 1.0.0.1-Alpha
The original installation for Weed Killer Manager had a missing help file, which has been corrected. See the project page for updated binaries.
I am creating a project on SourceForge.net for WeedKiller, which will be available shortly.
26 Jul 2009
Weed Killer released (1.0.0.0-Alpha)
The Weed Killer project has reached the alpha release stage. See the project page for details. Weed Killer takes the functionality of the DeleteAgedFiles VBScript to an enterprise level, but also works well on a single workstation.
07 Jul 2009
When a WinForm can be automated with parameters
Console applications fit nicely into the batch processing paradigm: take some parameters, do the work, write your progress and/or notices to the console, report an exit code and terminate. Occasionally, doing the same work in a Windows form provides a better visual interface into the data and activity.
A good example of this is the NT Backup Utility (Programs / Accessories / System). It can be run in interactive mode, so that the operator creates the configuration, or selects an existing one using the GUI, then launches the backup or restore project with a button. If that same application is started on the command line with parameters, the backup or restore window starts immediately–and automatically closes when complete.
A Windows Form application in .NET can easily be modified to accept optional command line arguments. The sample project WinFromWithParameters (see the download page) is a Visual Studio 2008 solution demonstrating how to do it. The application will display enabled user controls when no parameters are provided, and wait for the operator to change the errorlevel selection and close the form, or press the terminate button. When parameters are provided, it will display the command-line parameters in the text box, but the textbox and the Test button are disabled. Instead, a timer is launched with a 5 second interval. The timer event will close the form and return a specific exit code to the caller.
Things of interest in the code:
- The key to making the WinForm see command-line arguments is to add the parameters string[] args to the static void main() declaration, and add the argument args to the Application.Run (Form1()); declaration in Program.cs. In Form1.cs, the instantiation Form1() becomes Form1(string[] args), and the form now has access to the command-line arguments.
- If command-line arguments are detected, the code uses a timer to trigger the processing. It is not a good idea to call your DoWork() method from the Form_Load event. Windows will continue to render the form and its controls, even after the Form_Load event is complete. The timer interval is usually set to some small amount (100 ms or so), and the first instruction within the timer event disables the timer from firing again. Upon entry into the timer event, the application has reached its idle state: when the DoWork() method should be executed.
- You can control the exit code using the System.Environment.ExitCode property. The System.Environment.Exit() method will set the exit code, and terminate your application (firing shutdown events) preventing lines after it in the method from executing. Using the property allows further code to execute, even allowing further overrides of the exit code.
- The key to executing the Win Form from a batch file, and read its resulting exit code, is to use the START command with the /WAIT option. See the RunDemo.bat file in the project for an example.
Some recommendations for automating WinForms:
- If you detect arguments, but they have invalid content, don’t inform the users via dialog box, etc. They probably won’t be there, and your process will hang. Log the error to an Event Log (Application, etc), and terminate with a specific exit code to semaphore the caller that your app failed.
- If you update controls on your form periodically, be sure to use the appropriate Application.DoEvents() or.Refresh() methods to ensure the form content is rendered.
- Sometimes, you have a Windows Form which does a function that you want to automate as part of a batch or other automated sequencing. If time is sparse, adding command-line parameters to the form can save a lot of refactoring into a new console app, or re-encapsulating functionality into different classes.
WinFormWithParameters is available on the download page.
01 Jul 2009
Source control for the non-enterprise developer
I recently began looking for a feasible way of maintaining my personal source code in a version control system. Since I use TFS and Visual Source Safe in team environments, I wanted something that would support add-ins for Visual Studio, and be easy to use in general.
I liked what I saw in Subversion, the open-source version control application, and another developer pointed me to the AnkhSVN plugin for Visual Studio. This is a very well-integrated, TFS-like interface for Subversion. I have it communicating to a hosted server, and it works wonderfully.
The project pages are here: Subversion and Ankh SVN Plugin.
24 Jun 2009
Using the Apple iPhone headset adapter cable
I received the adapter cable in the mail yesterday, and did a full test with the iPhone headsets. The cable adapter works just fine, and I’m happy with it.
My only gripe about the iPhone microphone is that it tends to produce a bit of muffled sound, probably due to the smaller opening than on other microphones. It does, however, produce adequate audio with the gain all the way up on the PC’s audio card.
11 Jun 2009
Using an Apple iPhone headset on your Windows laptop
I recently received an advertisement for boom headphones from a retailer via email. Since my old boom headphone broke, and the price was decent, I thought this might be time for a replacement.
But I had a thought: I have an iPhone, which has headphones that are comfortable to me, and they have a built-in microphone. Why wouldn’t I just use that headphone for both the iPhone and the PC? The only problem is that the microphone input and audio output are on one 1/8″ jack, and the PC uses separate jacks. All I had seen for adapters was a number of adapter cables to allow existing, non-iPhone headsets to be used on the iPhone. There are a few manufacturers producing this product, but my requirement is the reverse: the iPhone headset, not the iPhone itself, is the focus.
Luckily, I found a lead to a solution, thanks to a blog post by Travis Pettijohn, who worked with CablesToGo to develop an adapter cable, which they now make available commercially. The product link is on his page.