Category Archives: Technology

Things humans make that weren’t there before.

MythBuntu vs KnoppMyth, a cursory examination

A recent discussion with a MythBuntu user who had complaints about KnoppMyth inspired me to check out MythBuntu and see how cool it is.  As I remembered from my last time with it, the installer is pretty.

However, it asks you some things that KnoppMyth is able to figure out on its own.  Instead of auto-detecting an attached remote control receiver, MythBuntu gives you a giant list of options you have to scroll through.  Instead of figuring out which of three proprietary nVidia drivers is best for your video card and installing it automatically, as KnoppMyth does, MythBuntu depends on the user to have this knowledge and tell the installer what to do.

On the plus side, MythBuntu managed to guess the max resolution of my display correctly, which is something that KnoppMyth does not yet do.  On the neutral side, it guessed that I wanted to use my DHCP server and didn’t ask if I wanted to do manual configuration.  As long as there’s a way for users to switch after the fact, which there is, I suppose that’s a fine default.

When I clicked the button to run mythtv-setup, I see that MythBuntu didn’t detect any of my capture devices, locally or on the LAN.  I had to pretend I was using an older version of KnoppMyth and go set this up manually, but it didn’t recognize any of the three DVB cards I have in the test system, so I couldn’t even add them manually.  In the plus column for MythBuntu, the reason that mythtv-setup was not automatically run was because it was giving me an opportunity to launch a web browser and create an account with SchedulesDirect.  KnoppMyth’s installer doesn’t offer to help you do this.

It asked me if I wanted to run mythfilldatabase after I exited mythtv-setup, which is a strange question.  If I hadn’t configured any guide sources, it could catch that and warn me, or at least not ask me if I wanted to run something that wouldn’t produce any results.  If I had configured a guide source, it should just run it on its own and not ask me, as KnoppMyth does.  It does no harm in either case just to run it.

It has a very pretty installer, though.  All the extra questions it asked me were very beautifully displayed.

I also noticed that it doesn’t set up a separate partition for content like KnoppMyth does when it creates /myth.  Depending on your upgrade path, that may or may not matter, but it sure is handy for KnoppMyth upgrades, since anything that stays lives in /myth, and the upgrade only reformats /.  It also makes it easier to offload /myth to a NAS box or a shiny new machine.

There are several plugins missing from MythBuntu, and there are no pre-configured user jobs for recorded television.  Off the top of my head, KnoppMyth adds the Netflix plugin, an Apple Trailers plugin, comes with Frozen Bubble in the games section and has pre-defined iPod and xvid transcoders.

In MythBuntu, the baseline mythtv-setup program, part of MythTV’s core, was renamed to mythtv-setup.real, and mythtv-setup is a wrapper.  While I appreciate the wrapper and what it does, they’d have been better off giving the wrapper a different name, like mythtv-setup.wrapper and leaving mythtv-setup alone.  They seem to have done that for the frontend too.  For package maintenance alone, renaming a core file seems odd.

Although it is possible to get network-driven updates in MythBuntu, and not so much in KnoppMyth (at least not as a full upgrade path), MythBuntu uses Ubuntu’s built-in software for that.  Unless I missed it, it’s not integrated into the user’s MythTV experience and seems to require them to exit MythTV and drop to the desktop to accomplish an upgrade.  Mind you, KnoppMyth doesn’t do network upgrades after the initial installation (when there is a patcher that runs automatically) so it’s a bit like comparing apples to no apples.

MythBuntu didn’t turn on GL menu effects for me, even though it should know that I’m using the nVidia video driver, and my card can handle that option.

I think MythBuntu could improve greatly if more emphasis were given to hardware support, automation, and extras.  KnoppMyth could still be improved in terms of auto-detecting display data and using it to configure display resolution, and by adding full network update features.  I happen to know that both are being investigated for the next iteration of KnoppMyth.

Bad QA Can Kill People

Let’s say you’re in the business of buying food raw materials.  How do you know you’re buying a protein powder and not, say, talcum powder?  Tasting it may not be your first idea, just in case a shipment got mixed up, and it doesn’t scale well, so you’d probably want some way to test the powder to make sure it’s what you ordered.  You could probably perform a really specific test that would be costly and/or time consuming but would definitively tell you that you had protein powder with a given protein content and zero contaminants.

But why would you do that?  People are basically honest, right?  All you need to do is look for something associated with protein to check up on your supplier now and then and compare what they’re sending you to what their rivals could provide at the same or better cost. Well, there’s plenty of nitrogen in protein, so a test for nitrogen would be a pretty good test for protein…  Or fertilizer.  Or melamine.

You’ve heard of melamine in the news, and QA is the reason why.  Two tests are generally used to measure protein content in milk, one called the Kjeldahl test, the other called the Dumas test, both of which provide similar results.  It is tempting to call it the Dumbass test instead, though that would be unfair to the test itself, which does a good job of detecting nitrogen levels.  No, the dumbasses are the people who use these test results to determine protein levels, when what they actually do is determine nitrogen content.  That’s how it ended up in baby formula and other food products, because the test results showed a high nitrogen content, which the testers falsely concluded to mean a high protein content – and not a high protein + industrial chemical content.

Put in other terms, this is like taking the knowledge that English documents are about 6.5% N’s and trying to determine if an author sent you a 40,000-word novel by counting the N’s and deriving how many total letters there must be, and by extension how many words.  Much like with the protein test, it works fine as long as the test subject is honest.  When the author who knows your QA process sends you a document containing nothing but N’s, you are in for a surprise of the worst kind.

What is most frustrating is that there do appear to be accurate alternatives to the foolable tests, though they are surely not cheaper.  As with so many things in life, cheaper wins until cheaper fails so badly that cheaper ends up in the headlines and in shiny new laws.

Two Ways to Force Firefox to Remember Passwords

Some well-meaning web UI designers will specify that login and password fields are not to be remembered, by setting the autocomplete attribute to ‘off’.  When autocomplete is ‘on’ a good browser like Firefox can remember your login and password for you and keep them in an encrypted list of passwords that you unencrypt with a master password.  The trouble, I suppose, is that it’s not mandatory to encrypt the password list, so uninformed users may leave themsleves open to an attack which the “autocomplete off” sites try to prevent.  But I’m not an uninformed user and want Firefox to remember all my passwords for me, whether the site designers like it or not.

Enter greasemonkey.  With the greasemonkey extension to Firefox, you can “fix” broken web pages by applying changes to the DOM (Document Object Model) via little Javascript commands.  Greasemonkey can support many sub-scripts, and the one I chose to get around M&T Bank’s broken login page is simply called Allow Password Remembering.  It’s straightforward – find anything under a form that has an ‘autocomplete’ element, and change its value to ‘on’.  However, this wasn’t enough for Highmark Blueshield’s site, possibly because greasemonkey isn’t the last thing that runs to alter the page’s contents.

Enter DOM Inspector.  Thanks to Jason May for introducing me to DOM Inspector, which allows you to view and edit a webpage live.  No it isn’t magical and can’t push changes back to the server, but you do affect the way the page behaves for you, at least temporarily.  So I went to Highmark’s login page and opened up DOM Inspector (Tools -> DOM Inspector).  Searching for the ‘form’ tag narrowed the search down to the login form, and after some manual looking around, I found the ‘autocomplete’ attributes for the userid field and the password field, and I changed them both to ‘on’.  When I logged in, Firefox dutifully asked me if I wanted to remember the password.  The best part is that revisiting the page in its natural state still allows Firefox to use the saved password.  (Apparently, Firefox will offer a saved password no matter what the ‘autocomplete’ field says; it just won’t offer to remember it if it’s ‘off’.)

Like an Onion Skin

I saw that Valve was offering a cheap bundle of all the old X-COM games on Steam, and I decided to buy them, hoping they’d run in wine.  The Steam version was too new to show up on wine’s compatibility list, but it was less than $14, so I gambled.  Out of 5 games, 4 run in wine well enough to play, and 1 does nothing.  Here’s the insanity: The older DOS games were not actually ported to Windows, so the Steam version includes a Windows-based DOS emulator.  In my case, I’m running Linux and launching wine, which runs the Windows program, which launches the Windows-based DOS emulator, which runs the old DOS game.  And it works.  You’d sound like a zealot or a crazy person if you suggested that I try to run it that way on purpose, but this only serves to highlight how good wine is now.

Circumventing QA Processes

Now and then, a manager will make a decision to meet a software delivery deadline by bypassing a QA process, because in their mind, meeting the deadline is more important than assuring quality.  They may send something broken, but at least they send something broken on time.  To be fair, this is not always their fault; their own managers may be the ones enforcing this world view, and adhering to it, however nonsensical, may make a major difference in their annual raise.

Those of us who actually produce work product for a living tend to think of things in terms of whether or not they work, not when they are delivered.  The when is largely a measure of how inaccurate the manager’s arbitrary schedule was, nothing more.  It took as long as it took to make it work, and that’s that.

I propose that any manager who elects to circumvent a QA process in order to rush software toward a deadline must read and sign a document stating the following:

I’m a manager, and as such, I know way more than the QA department’s trained professionals about the chaotic nature of software changes.  I acknowledge that one simple change can cause side-effects that are not obvious, but I’m certain that this isn’t the case here because my mind is more powerful than any mere QA process, and I know better than the entire QA group.  If for some reason I’m wrong (which I am not), I will buy everyone a pony of their choosing.

This may seem a little harsh, but when I was starting my career, I became the delivery manager and the QA department, making me the gatekeeper between a deliverable and our customer.  I had a total quality failure involving someone who was new to a software module and building it for the first time.  Twice in the same week, he assured me it was good to go, and twice in the same week, I trusted that and delivered something that was fundamentally broken.  We worked together to resolve the problem, but the lesson I learned was that trust and judgment are not as powerful as a robust QA process.  When I elected to bypass the QA process, I was essentially making an implicit declaration like the one above.  Of course, I was, in effect, saying that I knew more than me, since I was both the delivery manager and the QA department 🙂

Whole-house Air Conditioner Tip

This is mundane but practical.  In the course of having a minor but critical repair done on a failed air conditioner, I learned that it had never had enough freon.  I had just accepted that the vent temperatures in the low 70s were what we could expect, but after our friendly neighborhood repairman added some freon, our vent temperature is 59°F now.  It’s strikingly analogous to what happens to humans when they’re missing blood volume – they don’t tend to work as well.  And just like with humans, optimal efficiency is achieved by the precise amount of fluid in the system.  If you put in too much, then it doesn’t move because there’s no room for the pressure differentials that allow pumping in a closed system.

The environmental and economic benefit is much like proper tire pressure’s effect on fuel economy.  We’ve been here for three years, and on every hot day, our second-floor air conditioner was running for longer than it should have, simply due to the fact that it was inefficient. All that time, we used more electricity than we needed to.  This simple cheap step would have paid for itself long ago.  As someone who loves efficiency, this really hurts, but I’m glad it’s fixed now.

I encourage all of you to measure your vent temperatures.  You should get somewhere around 60°F – anything more is inefficient and costly and needs to be addressed, possibly with more freon.

(In?)efficient Laptop Cooling

I haven’t worked out the math yet, so this is either pure genius or yet another indicator of imminent societal collapse.  My laptop heats up enough to give first-degree burns when under heavy use, and when the fans run, they ruin sound quality for Skype, which I’m about to use.  Today’s solution is a stainless steel surgical tray on my lap, two flexible freezer packs on top of it, and the laptop on top of them.

In terms of efficiency, my freezer consumed an unknown-to-me amount of electricity to freeze and maintain the temperature of the freezer packs, which are good for maybe an hour, after which they’ll need to be re-frozen.  A laptop cooler tray with large slow-moving fans would cool quietly as well, but that has startup cost (the tray) in my case, and it uses electricity as it runs, too.

Could the laptop cooler tray possibly be more efficient than my Energy Star freezer?

Coding Music

When I have music dominating my ear canals, I seem to be able to slam out code faster and better than usual. I don’t need it to be very loud, but it needs to be loud enough to drown out the ambient noise. I don’t know if the pace of the music makes me want to keep up, or if a lifetime of watching action heroes kick ass to a soundtrack has primed me to kick my program’s ass to my own soundtrack. Regardless, nothing else seems suitable to get me into the zone where I’m a conqueror who uses code like a sword swung from horseback.

Some of my favorite coding music falls into the category of gothic metal or industrial. Some examples: KMFDM, Pig, NIN, After Forever, Nightwish. What about you? Do you use music to get into the zone? If not, what do you do?

Incidentally, this is tangentially related to Nate’s post about mind-enhancing drugs possibly being of benefit.