Mother of all MiFi wishlist

My Mother of all MiFi wishlist:

  • Runs for 4 ~ 5 hours on rechargable batteries. Preferably 4xAA NiMh cells which I have in abundance.
  • WPA encryption if possible otherwise pre-auth by mac address or live auth via authpf.
  • Automatically connects to my lan using certificate based IPSec.
  • Provides DNS locally.
  • Gui configuration but can be a python TkInter of X11 Gui.
  • 802.11b/g although given my experience last week 802.11n over 5GHz would be nice.
  • SNMP configuration? That’s why I got an enterprise number from IETF.

To Do:

  • Put the Soekris Net4511 on my Kill-a-watt meter to see how much juice it really needs (and how efficient the power supply is.)
  • Figure out how to get USB into the thing. The outside internet will be a Verizon or Sprint network dongle.
  • Get a case and power supply for the 4511
  • Will OpenBSD provide WPA2 authentication?
  • How hard is it going to be to get a USB jack into a 4511 case? (Bill Johnson?)
  • How many people can I connect to it before it’s overloaded?
  • 4521 Case? Automatically has room for batteries.

Alright, it’s no longer 1998!

One thing that really ticks me off the web designer conversation where your web design guy insists on designing to an 800×600 screen resolution to ensure that your pages will be accessible by everyone on the web. Today I ran across this nugget (opens in a new window). I’ve always said that this is so 1998 yet I’ve had this conversation as recently as 2007. Well, if you dissect the table you come up with this:

1920×1200 2.27%
1680×1050 8.72%
1440×900 18.37%
1366×768 20.76%
1280×1024 —-
1280×800 —-
1280×768 58.09%
1152×864 61.04%
1024×768 94.94%
800×600 100.00%
1920×1200 2.27%
1680×1050 8.72%
1280×1024 21.97%
1440×900 31.62%
1152×864 34.57%
1280×800 56.92%
1366×768 —-
1280×768 —-
1024×768 94.94%
800×600 100.00%

That’s right. If you design for 1024×768 you reaching nearly 95% of all the web browsers that participated in this survey. Now web designers can partly like it’s 2004!


If you’re expecting something about the latest Transformer movie, I’m sorry to disappoint. This venting of my spleen concerns or societies move towards a deception-ocracy. I’m coining a new word o describe a system where the market protects those producers who do the best job of deceiving their customers. The credit card companies have been doing this ever since they discovered that they make more money from customers who cannot pay of their bills. There entire business model now is to deceive people into getting in so deep that they can’t pay off their balances. They live fat and happy on the finance charges. It used to be that credit card companies were happy to make money from yearly fees they charged consumers and the convenience fee that they charged merchants. But that changed when they started offering consumers cards with no annual fee as a means of boostin customer retention. It wasn’t long before Jack Welch famously called the people who paid off their GE platinum cards in full each month “Dead Beats” because they didn’t make any money for the GE. The financial analysis is spot on but I can’t help but think that Jack’s got something wrong there.

I’m currently dealing with a PC from eMachines. If you know me you know that as far as windows recovery goes I’m with Ripley, Hudson, and Cpl Hicks on the recovery of Windows machines that have been hit with viruses: “I say we take off and nuke the entire site from orbit. It’s the only way to be sure.” In a normal world when you spend $400.00 on a PC the manufacturer includes recovery media at a cost to him of about $2.00. Apparently, eMachines is so starved for cash that the extra $2.00 is the difference between staying in business and not. It’s too bad considering that the overwhelming majority of Windows boxes would benefit from a periodic re-install even if there were no viruses. And that re-install process changes the recovery media from a luxury item into a must have. Or, perhaps Acer/eMachines has found a way to turn the $2.00 recovery media into a profit center generating $18.00 in “handling fees”.

How to torpedo your own open source project.

My friend Leanne has a wisdom that I am only beginning to understand. A couple of weeks ago we were having pints of beer at an old college hangout and topic of conversation got onto computers. At this point a mutual friend interjected:

“But the Macintosh is the best computer platform available. How can you not think it will take over the entire PC marketplace?”

— DW

Now, if someone accuses me of being a Mac fanboi I’ll demure so I agree with his statement about the best platform. But I’m more than willing to argue over his question. As I learned long ago from Leanne:

 “Being the best product in the market place does not guarantee that you will win in your market.”


 As denizens of open source this is an axiom that we would do well to understand. Most time when I meet Linux fanbois, especially in businesses outside of the computer industry I both admire and am appalled by  some of the things that they want to do. I wish they would ask themselves the question:

 If Microsoft is not the best product in it’s marketplace why does it have the best marketshare? 

In operating systems Microsoft is certainly not the best product in the marketplace. It has the most users because of a combination of things. Not to be minimized in that list of attributes is the support that Microsoft gives to it’s customers. (In fact support is probably the main reason why Mac OS X is the best product in the OS market).

 For denizens of Open Source the support line is critical. As this economy rolls onward more and more of us will be getting the opportunity to build cool business projects on Open Source. When we do this we must understand that being the best tool in the market place isn’t enough. So when you are making the decision between say FreeBSD, CentOS, and Red Hat Linux: Unless you know that you or someone a lot like you will be supporting the project until you are  90 years old and buried. You’d better choose Red Hat or have a damned good reason for choosing something else. As a consultant I’m getting used to seeing and hearing IT managers freak out when they find out that some mission critical app is running on an operating system that they haven’t heard of. Trust me, you are very lucky if your Manager is even aware of CentOS.

 If you must choose an open source application for your project it’s very important that the application has developed to the point of having both a stable and a development branch. Because no matter how sexy the development branch is, if you want to see the project end up with a reasonable life span then you’d better choose the stable one.

 These are two of the things that your Director of Open Source Development and CIO want to see. They want to see it for a lot of reasons:

 Imagine, a mission critical app is intermittently up and down because of a bug in the operating system. Two managers, one’s on the phone to Red Hat in North Carolina and the other is grovelling through Google looking for a source code kernel patch for FreeBSD. Which one gets to keep his job after the problem is fixed?

 Imagine, your intranet project that needs just a couple of tweaks to authenticate against Active Directory so it can go corporate. The expertise to do so doesn’t exist in house because you left for that cherry job at Google. What does your manager say when he finds out from his consultant that you need another 20 man hours to pull the project onto a stable release the wiki software that you chose for the foundation?


Windows… Ugh

My hat’s off today to the guy who packaged Windows Patch KB951847. An update to the .net Framework. There’s three hours of my life that I won’t get back. Just as a general rule I want to know how to turn Windows Update off completely. The Mac OS X’s update is smart. It pops up sometime during the day and says that there are updates. Then it give me the option of downloading them. It lives under the Apple Menu so it’s always easy to find. About 90% of the time I say not right now and then do the update manually within a day or two. On the other hand: windows update complains loudly if I try to make it emulate the same behaviour. It’s constantly putting up a little red shield in the system tray and then putting up a balloon to say “You turned me off, what are you crazy”. It seems reasonably obvious that Windows does not know it’s place in my computing world and more so, doesn’t understand why it got put there in the first place. On my Machine Windows is a VM under Parallels. I’ll start it once every six months or so when openning a Word doc or excel spreadsheet and I’m trying to work around a bug in or I just don’t feel like using iWork. That’s pretty much him. I’ll run Windows Update when something breaks but since Windows is a distance also-ran on my computer that won’t be frequent. As to why it got there.Window’s behaviour in the first place is the issue. Insistant system tray applications constantly stealing my screen real estate. Update that were written by crettins who thought to try and save me time by not sending a complete package and an attitude towards system failures that would have stranded Jim Lovell on the Dark Side of the Moon are pretty much all it took to convince me to buy a Mac.


In Dante’s Inferno there were circles in hell designed to separate the ordinary sinner: the guy who designed the keyboard I’m working with (which provides no feedback when a key has been struck for example) from the guy who deliberately put the “global nuclear war” button right next to the “toast apple poptarts” button. My  “9th circle of hell award” goes to the guys who designed the firewall that I’m working with lately. It appears that in their wisdom they’ve chosen to implement the “Red Alert — all hands on deck” alarm for the following scenario. You have a server connected to a client via tcp. The server is a fairly recent linux box that can do RFC1323 extensions. The client is a boring Windows XP box with a TCP RWin size of 65536 bytes. Between them is a Comcast business class Cable connection. In this scenerio the Windows box is trying to download a file from the server on the Comcast connection. The problem is literally that the connection is too fast for the Windows XP Box to fully cope. Nowadays when I test Comcast Cable connections I’m surprised to see anything less than 25Mbit/s.In whole numbers thats 25,000,o000 bits / sec. In more familiar units that 312.5 kBytes /s. The problem is that I’m starting to see firewalls that see this as an issue because they have been programmed with very conservative specifications about what constitutes a denial of service attack. I’m seeing firewalls that scream DOS when they are connected to a Business Cable modem line and have clients with tcp receive window size of 65536 bytes. Why? it’s simple. On aBusiness Cable line with 25Mbits/s download rate you have to be able to buffer 96kbytes/s in tcp windows just to keep up with a server (or client) at the other end of a fast line. These firewalls are calling DOS because  the other end can fill their TCP window and then some. The right thing to do is to watch. If the otherside wants to DOS you he’ll send many packets after your Rwin is filled. If he’s just a really fast server on a really fast pipe. He’ll respect your RWin and quit sending. If you’re firewall decides to be agressive and drop the connection (by proactively sending a TCP RST) then you should probably act accordingly.

My thanks to Chuck Skuba on this post. I have to be 100% and fess up that I gathered the data but he did the homework.

— Chris

Pantone Huey/MacBook success

A while ago I found the Pantone Huey on closeout at my local Circuit City. At $80.00+ I didn’t consider it much of a bargain but at $25.00 it didn’t look like such a bad deal. I fired up the device on my MacBook and began the disappointment. It turned my display Green. On my Mac Mini with my Samsung Display it was pretty good. If you don’t know it the point of this device is to tune your display’s color so that when you process a photo and then print it you don’t get surprised by the difference between what your monitor and printer consider to be fully saturated blue. At $25.00 I figured that it would be ok with the Mini. I was on vacation for a while and would have good access to the Apple Store and Genius bar so I packed the Huey along. But that was still no news. Then I ran into this link.    a At the bottom they discuss the Huey and it looks like it doesn’t like the polarization of the MacBook Screen. On calibration it wants to be oriented vertically but I found that it gave me a good calibration oriented horizontally.

Automating the dart league (Part 1)

I’m trying to automate the process of getting scores on my Dart League web page. To that end I’ve reworked the typical dart league standing Spreadsheet (called a model for the rest of the the article) for easier integration with a website.

Here’s the sheet: Dart League Model.

The idea is that the League secretary or statistician will update this model to generate the periodic league standings sheet. The added bonus is that this model has a sheet (see why I wanted to call it a “model”) that serializes the results data for easily and automatically updating the mod_python/postgresql or php/mysql or whatever you prefer. In the long haul I’ll use the following toolset:

  1. php or mod_python to handle the file upload form
  2. mod_python or php to handshake in the uploaded file
  3. xls2csv to convert from Microsoft Excel format to comma separated value format
  4. mod_python to insert the data into a temporary table in mysql or postgresql
  5. mysql or postgresql to integrate the results into the website.

Alternatively I may use procmail  and python to handshake in the data from an email attachment. This replaces steps 1 and 2 above. The result will be either a webform where you upload your statistics or an email address for a bot which automatically handshakes in your stats. If I go email I may have to wrap everything with GnuPG to sign the data so I can know what to ignore.

Just for the purposes of naming I’m going to refer to a “spreadsheet” as a “model” from here on in. This is because Excel allows you to have multiple “sheets” within a model and you can link the data between the sheets. The model that I’m presenting makes pretty heavy use of this feature. The following describes how it works and I’m gonna give you estimates of how long it took me to set things up. I consider myself pretty good at Excel so double any times that I quote for Novice Excel users. If someone here is good at Excel Macros I can see spending some time to embed some of my knowledge into the model in the form of macros.

To use this model you start by laying out the sheet called “Tables”. This sheet has entries for your teams and the dates that you play on. These table contain your master data for your league. Since they get referenced in the rest of the sheet this is where you would go if you want to use the correct a misspelled team name. This took me about a hour to setup and needs to get done once at the start of the season. After that you shouldn’t ever have to touch it.

The next thing to do is to setup the sheet called “Enter Data Here”. This is where your week-to-week data entry goes. There’s an row for each team in your league and a column for each week that you play. That defines a box for each score. So if the Beachcomber Cafe team scores 11 points in Week 1 (June 26th) you put an 11 in the appropriate box. There’s a separate area for penalty points should you get a late score sheet or a late payment for a player. This took me  about another hour to setup. You would have to set this up once also during the season. Adding this weeks scores took less than 15 minutes. Adding scores has to get done each week but I expect that this work will become common so it should take the same effort as me, week to week, as anyone else.

There is a sheet called “Results for Display”. This is the sheet that you want to print out or convert to PDF and distribute to your members. It’s exactly like the sheet that you are currently using for this with the exception you do not enter the data here. This sheet references the data on the previous sheet: “Enter Data Here”. The only thing would want to do to this sheet is fix the formating to suite your own league. I did address a pet peeve of mine in my rendition of this sheet. I show the team, then their total score, followed by their average. And the teams sort into places, first, second, third, by average. I’ve talked to a bunch of people about this while they agree with my math they say that sorting the scores by average rather than raw points is beyond the math skills of the common dart player. You don’t have to do it this way.

This sheet took me a little less than a hour to setup for MSDL. It requires weekly maintenance to sort the teams into order. The sorting columns are hidden so the maintainer has to know how to show hidden columns, sort from Z-to-A, and then rehide the columns. All told this takes about a minute for me to do.

There is a sheet called “Results for Display”. This is the sheet that you want to print out or convert to PDF and distribute to your members. It’s exactly like the sheet that you are currently using for this with the exception you do not enter the data here. This sheet references the data on the previous sheet: “Enter Data Here”. The only thing would want to do to this sheet is fix the formating to suite your own league. I did address a pet peeve of mine in my rendition of this sheet. I show the team, then their total score, followed by their average. And the teams sort into places, first, second, third, by average. I’ve talked to a bunch of people about this while they agree with my math they say that sorting the scores by average rather than raw points is beyond the math skills of the common dart player. You don’t have to do it this way.

The final sheet is called export_for_website. It took me about a half hour to set that up but for someone else the effort is all done. This sheet formats the data into one big long table suitable for direct import into a database. My plan is to import this data using a combination of tools which will take the sheet, convert it into a data format (CSV or comma separated value), load it into a database table and then then have some database code (a stored procedure) which updates the website tables. The trigger to load the database could be a special email recipient or I could put together a web form with a box for uploading the spreadsheet. Either method should be pretty easy to work for a novice user. If you don’t understand any of that I will be glad to explain it to you. If you do understand that but don’t get the next piece that’s completely okay. For advanced users I could set things up so that you directly import the data if someone is using the full Microsoft office Suite including Access and ODBC. Similar functionality is available to people who use OpenOffice. *Plug* I’m using open office to create all this and the package is Free!