The Second Rule of Scuba

The first rule of scuba: NEVER hold your breath.
The second rule of scuba: always look cool, because if you look cool doing it, you are probably doing it right! :)

For my divemaster class, I did my, “teach a scuba review” today, and I passed. It is hard to get used to getting that close to the “students” while they do their skills, but our instructors threw us curve balls today to emphasize how to maintain control of a student, responding to issues as they arrive and preventing panic.

I also did my skindiver course again…the instructors that did it with me in the past forgot to sign the sheet, and it was just easier to do it all over again than to keep trying to track them down.

The only thing (besides a little paperwork) I have left is “supervising a Discover Scuba in open water”, and I have that scheduled for the weekend after next.

So excited to be finishing this project!

Mistah Kurtz – he dead … I’m not feeling so good myself.

I have a cold …well, not a full blown cold…I have a cold virus which, rather than waging open war, has been conducting a low-intensity insurgency against my immune system for the past week. I am ready for it to be over.

My dive site map, “needs alteration” because I did not show the beach…like the map needs more sand on it, and as if the diver cannot figure out that the beach is just past the area where the depth is two feet!

There is a legend about Ernest Hemingway claiming he could write a short story in six words. While I do not know if this is true, I have seen several six-word-short-story threads on various boards I frequent. I offer the following six-word contributions:

He wrote, read, sighed, tore, wrote.

Sisyphus sat, calling, “penny for Guy”.

Six word stories: easier in Latin.

…then Buffy staked Edward. The end. (This comes off a jinx.com tee shirt.)

I also present to following, six-word one-act play:

Elysium
Sisyphus (sitting): Penny for Guy.

A Halloween Playlist – The Classics and Some “Lesser Thought-Of” Works

You can file this one under the “I am Really Procrastinating” category, but it is Halloween again, and time for party hosts to dig through the mp3 collections to find two hours of “freaky” music to fill the playlist.

The Less Well Known

“Monster Mash”, “Thriller”, and any cover done by Marilyn Manson of course top the list, but here are some, “lesser knowns” that are still very appropriate to round out your two hours:

  1. “Dear Clarice” from the Hannibal soundtrack: The entire soundtrack is great for a more “sophisticated” party feel, but this track, with Anthony Hopkin’s voice-over, is downright chilling. “Ta-ta… -H”.
  2. “Vampires, Mummies, and the Holy Ghost” by Jimmy Buffett: A very funny, and strangely perfect song for parties, especially in warmer-weather states. “No aliens, psychopaths, or MTV hosts scare me like Vampires, Mummies, and the Holy Ghost.”
  3. “The Simpsons Halloween Special End Credits Theme” from the album Songs in the Key of Springfield: Most people hear the Addams Family theme over and over again during Halloween, so here is a little twist. Just so you know, the James Earl Jones reading of Poe’s “The Raven” on the Simpsons ruined that poem forever for me, so please do not put it on there.
  4. “Witchy Woman” by the Eagles: Why is this not on everyone’s list?
  5. “Pain [Slayer Mix]” and “Strong” from the Buffy the Vampire Slayer album: Rasputina’s “Transylvanian Concubine” makes the iTunes cut, but I think these two deserve an honorable mention.
  6. “Paint it Black” and “Sympathy for the Devil” from Symphonic: The London Symphony Orchestra plays the Rolling Stones: Everyone knows the words; the originals will be played; play the twist.
  7. “We Only Come Out at Night” by the Smashing Pumpkins: It should be obvious, but it is one that does not make it on many playlists.

My Top Ten Halloween Songs

Of course, the above songs do not top the list, but are the ones people forget or do not know about. Here is my top ten, just in case you care:

  1. “Warewolves of London” – Warren Zevon
  2. “Tocacata and Fugue in D Minor” – Back
  3. “Monster Mash” – Bobby “Boris” Pickett
  4. “I Put a Spell on You” – Marilyn Manson version and Nina Simone version
  5. “Love Potion No. 9″ – Joey Gaynor
  6. “Transylvanian Concubine” – Rasputina
  7. “Thriller” – Michael Jackson
  8. “Witchy Woman” – Eagles
  9. “Vampires, Mummies, and the Holy Ghost” – Jimmy Buffett
  10. “Bad Moon Rising” – Creedence Clearwater Revival

In case I am missing anything good, please comment.

If you Must do Universal Health Care, How to Do It

I do not think Government should be running health-care, but they already are, so those carrots are cooked.  Given that the government is going to get more involved, and given that most Americans want everyone to have some level of coverage, I have a suggestion.

Let us assume the following policy goals:

  • Everyone has coverage
  • Lowering costs

Now, given those goals, let us design a system with the following additional goals in mind:

  • Preserve the information embedded in market prices, as much as possible
  • Have the fewest perverse incentives possible
  • Make all costs explicit instead of hidden
  • Make the system sustainable politically

In order to do this, I propose we create a health-care “baseline” for people that are uninsurable at their risk-level and income-level, and then have everyone else purchase health care.  This is what I propose:

  1. Pass a law requiring everyone have some form of health coverage that meets some minimal standard – I would favor a formula that takes a several baskets of common diseases and say that the total cost of treating each of these baskets cannot exceed some dollar amount ($15K with ongoing CPI adjusters), but what the standard is a “less important” issue that can be debated forever.
  2. Eliminate all of the government incentives (tax or otherwise) that encourages employers to provide health insurance for employees as a “benefit” – if employers still provide insurance for employees, than it is because of a market judgment, not a political one.  Regulation that needs to be eliminated includes:
    • Eliminate laws prohibiting employers from passing higher costs for health-related issues to employees – if you choose to smoke or be overweight, the employer should be able to charge you more (or pay you less) for your health insurance.
  3. Set up a government-run health insurance scheme as an insurer of last resort, that has a premium of 10% of a participant’s income, plus an extra 5% per dependent.
    • People that have private insurance don’t pay the premium.
    • This insurer has all of the things you expect from a government health insurance scheme: long lines, bureaucratic gate-keepers, group of gray-beards deciding what to cover, etc.
    • Subsidize the government-run health-care system explicitly from general revenues.
    • Allow the government to regulate the personal lives of people on the system as it wants to (make them pay extra for smoking, or coerce them to stop; forbid them from eating a fast food, stop them from using recreational drugs, etc.), but only allow these regulations on people in the federal system.
  4. Fold Medicaid into the new federal program, consolidating state and federal bureaucracy into the new system.
    • Relieve the states of that burden.
  5. Fold Medicare into the new federal program.
    • Eliminate the Medicare payroll tax.
    • Allow those that are 65 or older to still purchase private insurance if that is less expensive than the 10% tax.
    • Allow those that are 65 or older, with no dependents, to opt-out of insurance altogether (by signing some form at the court house), and let them spend their money (or pass it on) as they wish instead of spending it on health care. The kicker is, they make an explicit choice, and we don’t care if they die early because of no access to health care.
  6. Fold the VA hospital system into the new program, giving veterans without war injuries a defined monthly monetary health benefit (say $100 for retirees) that they can spend on private insurance, or deduct from their public plan premiums.
    • For veterans with war injuries, you can leave the VA hospitals open, give them some additional defined benefit, give them a reduced-cost or no-cost public plan, pay for private or army treatment, or have some other scheme to have them treated at public expense.
  7. Force the states to pay for any of their regulatory tomfoolery that affects the cost of the public program.
    • For example, if the State of California passes a regulation forbidding insurance companies from treating HIV as a pre-existing condition, raising the cost of private insurance, causing people to choose the public program over private insurance, the additional cost will be paid by the state to the Federal Government.
    • Alternatively, if California chooses instead to subsidize people with HIV that purchase private insurance, and that reduces the burden of the Federal program, then the Federal Government would make a transfer payment to the State of California.

The proposed system is not perfect, but it preserves most of the pricing signals for medicine.  However, it would destroy incentives to reduce costs for “catastrophic care”, since the patient never bears those costs directly (but at least the insurance companies have some incentives to lower costs).

The Tampa-Orlando Train Will Not Work – Even for Me

I sent this to the St. Pete Times as a letter to the editor, but apparently they have declined to publish it.  So, I have edited and published the letter here.

This letter is a response to the Tampa-Orlando high-speed rail project, which you can read about here.

The Tampa-Orlando Train Will Not Work – Even for Me

I live in South Tampa, and my girlfriend is in school at UCF.  Almost every weekend, one of us makes the one hundred five mile drive on Friday afternoon, to return Saturday night or Sunday morning.  Even if there was high-speed rail, neither of us would use it for the trip, because the rail cannot be priced low enough for either of us to ride it.

The cost of driving one way from my place to her place is roughly $100, taking the IRS’s fifty cents a mile (high for my car), adding two hours of my time valued at $20/hour, finishing with the tolls on SR417 and SR408.

The closest termination point in Tampa is downtown for me, and the Orlando Airport for her.  I live eight miles from the Amtrack station downtown, which means that trip is $4 plus fifteen minutes of my time ($5).  UCF is twenty-three miles from the airport ($11.50) plus thirty minutes ($10), plus tolls ($2.50).  But remember, someone must drop me off at the train station in Tampa, and my girlfriend must pick me up from the station at the airport, so those two trips must be made both ways, giving a total of $66.

For the train to be worth it for me, the journey would have to be Star Trek transporter instant, and cost less than $34, with no waiting time on either end.  If you assume that the waiting time and travel time together is two hours, then the public must pay me six dollars to take the train instead of driving.

All of that assumes that I have no value for the flexibility that driving gives me, being able to leave and arrive when I want instead of when the train schedule dictates.  It also assumes I have no value for having a car in Orlando, or have any value for the extra cargo-capacity of my car.

If the two cities in question are New York and Boston, or London and Paris, then the train makes sense.  However, you will have to point a gun to my head for me pay for a train between Tampa and UCF instead of driving, which is exactly what the government is doing to build the thing.  Once the thing is built, and no one rides it, what’s next?  Higher car taxes and massive tolls on I-4 to force us to ride it?… high taxes to build public transportation in Orlando and Tampa to make the train usable?… or simply high ongoing taxes to pay for a train no one rides?

Even if the high-speed rail is built with Federal dollars, and even if it brings jobs to the state, it would be much better to take the money and pay construction workers to tear down half of Westshore and rebuild it, exactly as it is now.  At least then, our tax dollars would not be perpetually drained to pay the ongoing maintenance on a train no one rides.  Or, if you must do something useful with the money, widen I-75 to eight lanes from Naples to the Georgia border.

Script that filters SVN DIFF output, removing entries based on metadata or file names

I wrote a script that allows you to filter svn diff output to exclude changes based on metadata and file names (or anything else on the first line that can be greped).

I wrote it to remove all of the “properties” changes and filter out the output files, so all that was left was the code changes and a list of binary files that were modified.

Just pipe the output of svn diff to the script, after you set the parameters at the top of the script. I put the filters in the script instead of parameters because I always run the same filters.

It is released under the GPLv2 (the licensing details is longer than the script itself).

clean_svn_diff.bash

Why Mono is Good, even though it’s Evil…

Chris Smart has posted a very insightful blog titled, “Mono: An Infectious Disease“, that succinctly summarizes the case against Mono in Open Source. (Non-techies: not that Mono – this Mono.)

Given that Mono is now part of Debian’s default installation, I think the issue has moved from “ripe” for discussion, to “rotten and stinks to high heaven.”

The basic conclusion the anti-Mono crowd reaches (and if I am wrong, please let me know) is this: you shouldn’t use Mono, because Microsoft could come back later (after it has gained wide acceptance) and claim patent violations, gaining control (or at least significant influence) over open source software that uses it. They are especially vehemently opposed to using Mono for any core packages (or packages that gain widespread use), because that places Linux at considerable risk from Microsoft.

The pro-Mono crowd (for which I think this rant by Jo Shields is a fair representation, though if you have a better one please post) contend that Microsoft’s patents aren’t really a threat, they are perhaps unenforcible, and in any case, a patent-suit from Microsoft is against Microsoft’s best interests. I think the pro-Mono crowd is missing the point…

At the very least, Microsoft could use the threat of its patents and the “murkiness” of the issue to spread FearUncertaintyDoubt. At worst, Microsoft could sue major distributions, forcing them to sign patent-license agreements, and destroy (by sending a chill through) the open source movement at its core (even if Microsoft later withdrew its claims). Mono is evil, and to paraphrase Douglas Adams, Microsoft has shown it is not above such behavior “in the same way the sea is not above the clouds”.*

Killer Proprietary Apps

That said, I use Mono (sometimes). I like Mono, I think it is good technology, and I think Mono is essential because it helps solve the critical problem that Linux faces to gain wider and wider adoption – Killer Proprietary Apps (KPA’s). Killer Proprietary Apps are pieces of software that are closed source applications, that won’t run natively on Linux, and users won’t live without.

The largest problem most users face switching to Linux is no longer “usability”. Despite Linux’s reputation, I honestly believe (from observation) that Ubuntu/Gnome is easier to use than Windows and even Mac, different, but easier – the usability problem has been solved, or at least “solved to no longer be the problem”. The insurmountable barrier to adoption that most users cannot and will not overcome is killer proprietary apps that don’t run natively and easily on Linux. Microsoft Office, Apple’s iTunes (with DRM), Adobe Photoshop, Inuit Quicken, and World of Warcraft keep home users on Windows and Macs more than any other factor, even the fact that Windows came with their system and that they would have to install Linux themselves. If they must dual-boot (or run a virtual OS, or futz around with Wine), they’ll just stick to Windows thank you very much.

In that context, anything that makes it easier for companies to port proprietary applications to Linux, even to keep those apps proprietary and sell them, is a “good thing”. While Microsoft will never publish a Linux version of Office (unless coerced by the EU), Adobe, Inuit, and Blizzard would, if and only if they could make a profit on it. Since profit equals revenue minus costs, anything you can do to lower their costs is a win-win for Linux and Open Source, even if it means running proprietary, closed source applications on Linux. If the goal is wider adoption, Mono is good…fantastic…essential.

Business Users

Home users are just foreplay though, the real sex is in the workplace, with companies and programmers. If companies start using Desktop Linux (i.e., start forcing their employees to use it), it is my belief that Linux, being a superior product, will be “taken home” by those employees.

However, medium and large companies face four major remaining obstacles switching to Linux on the desktop:

  1. K.P.A. business software, especially industry-specific software.
  2. KillerInternalApps written for Windows.
  3. Human Capital invested in .NET that is not otherwise transferable to Linux.
  4. Lack of commodity IT people for Linux1.

Of those four, Mono can directly and drastically impact three. The fourth is simply a function of market-share (as Linux becomes more common, desktop-level IT people will begin appearing, trained on Ubuntu or Suse, and ready to help users turn off the CapsLock key when their password doesn’t work), and insomuch as Mono helps increase Linux market share, it helps there too.

If you think about all of that internal code floating around companies, much of it ancient with little to no documentation, written in .NET, it is clear that those companies face an enormous expense trying to migrate to Linux. An IT manager that prefers Linux, looking at the choice, is going to say, “well, when we retire the old system and move to a new application, then we can talk about switching platforms”.

But, the company acquires human capital to maintain those legacy systems, and those programmers are intimately familiar with .NET, so even if a company rewrites its entire application from scratch (instead of “evolving it” as tends to happen), the company is going to be sitting on programmers that know .NET, and are less familiar with Python or Java.

If a company is faced with large decreases in productivity while its programmers learn an entirely new platform, it will add the decrease in productivity to the “cost of migrating” side of the balance sheet, and decide that it is cheaper to stay with Windows.

Mono changes that, providing a way to both migrate existing .NET systems to Linux, and leverage existing human capital. Linux moves from “too expensive” to “the kind of cost reduction that will get me promoted”.

Programmers

Speaking of human capital, what about all of those hours Windows developers have spent learning .NET, and all of their .NET productivity? Will they listen if you tell them “sorry, all of your time, energy, and training are now sunk costs”? Of coarse not…those programmers will resit you even if you show them a superior technology/software methodology/way of thinking about software development, because, given their human capital investments, that technology/method/ideology is not superior to them.

But, with Mono, there is no longer this “leap” from Windows to Linux, or from “proprietary” to “open source”, now there are smaller steps. It lets .NET programmers become involved with open source (even tainted), and exposes them to new technologies and ways of thinking about software. Without Mono, these programmers will keep doing what many of them do now when you mention open source, stick their fingers in their ears and shout, “NO NO NO NO I CAN’T HEAR YOU!”.

Once you get them on Linux, they will learn other, “pure” languages simply because Linux is so inviting and conducive to learning – as they want to change little things in the operating system (and once they get hooked on APT and YUM), they will become Linux programmers, with human capital now invested in Open Technologies.

Conclusions

Commercial, proprietary software is not going anywhere, and neither are custom, internal-only applications. If these current applications can be ported to Linux using Mono, then we have drastically lowered the cost of Linux Migration. This is a “good” thing.

If Microsoft wants to extract “economic rents” from these users for using “their intellectual property,” I’m not happy, but I won’t get my panties in a twist over it… in my opinion, if you aren’t opening your code (or ideas) for others, you deserve to pay for others’ code (or ideas). If Microsoft tries to make these royalties prohibitive, the EU will drag them back to court before the first check clears. Yes Microsoft’s patent threats raise the cost of migration, but not nearly as much as Mono lowers it. Companies at the margin will stick with Microsoft, but many more will see cost-savings and switch.

As the anti-mono people are right to point out, you shouldn’t use Mono for new Open Source projects, especially core projects – the potential threat from Microsoft is just too large. But, remember that Microsoft’s power is market power first, and its political power is derived from that. Anything that reduces that market power should be seen as a “good thing.” Mono in the core of Linux distributions has the potential to endanger Linux, but used properly, Mono makes Linux viable for many more people, giving them more choice, and more choice is “good.”


1. Commodity IT people are those rank-and-file AS from community college that “majored” in MIS, and form the “bottom bulk” of “Microsoft Certified Whatever”…the ones you send downstairs when the “administrative assistant” to Ms Davis in marketing has a problem the printer…who have no interest in computers aside from World of Warcraft and would rather be running a bar. Companies rely on these people, liking the fact that they are cheap and easily replaceable. They are coming soon to an operating system near you…yeah…maybe replacing Microsoft is not such a great idea after all.

Of all the things I run in Wine… An Open Source Text Editor?

Here’s one in the “say what?” category…

I am proud to say that I have been Windows-free (booting directly on hardware for use as desktop for something other than using “one app”) for a year now , and off Windows as my primary system for two… first to Mac and then to Linux (I still use Mac on the laptop). I’ve come around to the position that largest barrier to Linux on the desktop is not usability, but Killer Apps that are not available for Linux, and lately, I have been thinking about the Windows applications that force me to pull up my VM or run Wine.

Of course there is World of Warcraft, Microsoft Office (just checking to make sure the export worked), iTunes (remember I have a Mac laptop), and Internet Explorer to check my sites. But, the application I run in Wine the most is an Open Source text editor, Notepad++. I’m not the only one; there are even instructions for running Notepad++ in Linux on the project’s FAQ’s.

Linux if full of great text editors, but none really “fill the shoes” of Notepad++. It is in that niche of text editors that go beyond “basic”, but don’t have all the bloat and complexity of a full integrated development environment. On Linux, there is Kate, Gedit, Geany, and a whole bunch of others in that same category, but none of them quite match up.

Granted, much of this is the fact that I am “just used to” Notepad++ – I have been using it since… 2004 I think…, and I have loved it since then. But more than familiarity, there are some things it does that no one text editor for Linux does, and that is why I Wine it.

  • Advanced Find & Replace that includes regular expressions, line endings, and can search entire directories for strings in files.
  • Macros Macros Macros. It lets you record Macros for repetitive tasks.
  • Good “Large-File” handling – some editors choke when you give it a 25meg xml file.
  • Spell checker (it’s a plugin).
  • Plugin support in general.
  • Easy to set up custom syntax highlighting.
  • Support for Windows line endings.
  • Support for Windows Batch Files (yes, some of us have to write .bat files for Windows clients).
  • Color code printing – the syntax highlighting prints.
  • TextFX – think of all those annoying Search&Replaces you are always doing, like inserting back slashes in front of quote marks – that’s what TextFX does, on steroids. All the things that you do in Tidy, plus a little more, right on the menu bar.
  • Block comment/uncomment in several languages.
  • Tabs
  • Auto-complete

Geany comes closest, and it does several things (like version control system interaction – I really love that) that Notepad++ doesn’t do. It’s not that one is better than the other, in fact, I think they are at about the same level, but they’re different. I find myself using Geany more and more, and Notepad++ in Wine less and less, as I get used to Geany, but for those few things it won’t do…

I don’t think a port to Linux is necessary – the stuff that Geany won’t do, Notepad++ will do in Wine. Notepad++’s strongest feature is it’s fast run speed in Windows, and that is something that won’t translate as well to a new OS. The rest of the items could be added as plug-ins to Geany.

I’m not advocating anything, and I really don’t have a point; I’m just saying the application I launch in Wine the most often is an Open Source Text Editor, and I thought it was a little odd.

How fairness doctrine stifles free speech

On the surface, the Fairness Doctrine seems like a good idea: if you present a controversial issue, you need to present a fair treatment of the issue and present both sides of the debate. If the public hears both sides of the issue, goes the logic of the doctrine, they can form a better opinion. Furthermore, the argument continues, the fairness doctrine prevents media owners (or managers) from advocating their own political agendas at the cost of public debate.

However, like most public policy, the unintended consequences of the Fairness Doctrine undermine its intended purpose and cause perverse effects that are more harmful than the problem the doctrine was instituted to fix. The two major ways the Fairness Doctrine stifles free speech are 1) opportunity cost and 2) chill of potential prosecution.

Opportunity cost is simply what you give up in order to pursue a given activity. For example, the opportunity cost of me writing this blog is me playing World of Warcraft – the activity I forgo in order to explain the Fairness Doctrine.

In the case of radio shows, there is only so much time in a given radio show (or in a given day if you say the show could just expand to add additional commentary). In order to present a “fair presentation” of an issue (say, the Iraq invasion), a radio host can must cut in half the ten minutes he wanted to spend explaining what a bad idea it was, and give five minutes to a “pro-war” expert. The extra five minutes he might have spent clarifying his point are now quashed.

Furthermore, radio outlets are businesses – there to make money. A radio host once might simply shoot his mouth off for ten minutes about the stupidity of the invasion. Now he must expend the resources to find a “counter point expert” for his show (and pay said expert), resulting in a drier, less appealing (less money making) show. If the alternative is to mouth off about the stupidity of Lindsay Lohan’s latest escapade, needing no additional expert and creating a more appealing ten minutes of commentary, which is he going to choose (at least at the margin)?

Now, look at the station manager’s point of view. If his radio jockey “pushes the envelope” on this, he may have to pay the very real costs of dealing with the FCC. He is much more likely to tell his radio jockeys to “stay away from politics”, and he will choose non-political programming over political programming at the margin. Thus political speech the would have happened absent regulation is quashed.

The function of radio today is not so much to hold public debate; the function of radio is to spark it. The major effect of the Fairness Doctrine is to stifle public debate about issues, since fewer issues can be addressed due to time restraints, fewer people want to listen, and the threat of potential litigation causes risk-averse broadcasters (who are trying to make money) to avoid controversy (at least at the margin).

PS: I did a quick search, and the Cato Institute has a similar article that is likely clearer than mine.