Chris X Edwards

Bought a scraper which had an obnoxious sticker on it. Not off to a good start when I need a scraper for my scraper.
2018-12-09 10:42
Brits use "silicone" as a verb while the US enjoys caulking cracks. Usually it is the UK that prefers antique+cheeky usage to tech jargon.
2018-12-09 10:41
For a sense of how Xmas songs are cringeworthy to me, check out Loretta Lynn's "Shadrack the Black Reindeer". Don't hear that in Home Depot.
2018-12-08 09:44
The Erie and Welland Canals seem inevitable when you consider how good the people of that area are at shoveling.
2018-12-08 09:17
Disraeli's idea of an agreeable person was someone who agreed with him. I also try to allow those who can enlighten me to change my mind.
2018-12-07 20:44
Blah Blah

Armchair Triathlon Advice

2018-08-25 12:00

Recently I drove to Cleveland to watch my brother compete in the Age Group National Championships.

The temperature on Lake Erie was quite nice, but there was much hot air generated by me, a has-been mediocre triathlete, about how it all should be done. Since this is, strangely, the second time in a week I’ve been reviewing my little opinions about triathlon strategy with someone, I thought I’d go ahead and write too much of it down so that I can try to be useful while minimizing future prattle about my trivial racing career.

My first tip is some perspective. My brother finished roughly in the middle of the pack yesterday for his age group, but that’s not really the way to think about it. If you take all the men in the USA who are older than 29 and younger than 35 and line them up at the starting beach head to foot in order of how good they are at this sport, my brother would still be able to fit in the swim/bike transition lane. This line of guys, however would stretch from Cleveland to Perth, Australia. What’s important here is that even if you come in "last", cliche as it may seem, you are a winner — you deserve that medal they gave you!

With that in mind, if you decide to join the elite humans who even try this crazy stuff at all, here are some of the motes of wisdom I collected during my racing career which can make it go a little smoother.

Let’s go in order and start with the swim.


Unfortunately, the best way to approach the swim is to start being coached as a child and go to swim meets non-stop as a teenager. If, like me, you failed to do that, you will have an endless parade of very attractive college girls swim over top of your back during the swim. Could be worse. Actually it is worse, but I try to focus on the positive. It’s worse because a triathlon swim is like a hockey fight among water polo players. What can be done?

  • My most important triathlon swim insight is this: There are no lane lines in lakes. Just let that sink in for a moment. No lane lines. None. Unless you’re in the Caribbean, the chances are very, very good that water visibility is barely to the end of your arm. This was certainly true in all triathlons I competed in. If you’ve accepted this premise that the Midwestern reservoir you’re swimming in is so murky that you won’t see anything useful underwater, the next thing to contemplate is exactly why goggles would be needed. Turns out, goggles are not needed. How do you keep water out of your eyes? Keep them closed! Eyelids! Use them! Simple. There is a magic trick here and it must be rehearsed but it is simple. When you are in the pool training, pretend you do not have lane lines! Take off your goggles and learn to swim laps in a pool without them. This will feel very wrong to serious competitive swimmers, but believe me, it can and should be done. Ironically the less "swim team" background you have, the easier this is to get right.

    The technique I came up with involved a breathing pattern that could solve all the problems of limited vision. Remember, although you don’t have limited vision in the pool, you’re not training for the event properly if you don’t simulate that! My breathing cycle would go something like this: I would breathe right as my right arm is pulling; as my head rotates out of the water, I open the right eye that is now out of the water; I learn to get a quick fix on where the lane divider is; as I rotate my face back down I close my eye. Then I swim two complete right arm pulls with my face pointing down and my eyes closed. How off course are you really going to get in two strokes? Well, you need to find that out! Then on the next left arm pull I do the same head rotation on the other side, left eye opening and get a fix on the left lane divider.

    You may object that competition venues have as many lane dividers as lane lines painted on the lake bottoms. While that is true, the skill of sighting that lane divider is extremely valuable for sizing up who is around you and whether you’re converging on them. If you practice, that technique is actually enough to keep you going in a straight line in the pool. But there is more to it.

    If you swim like this in the pool you’re likely to hit your head when you reach the end of the pool. Fortunately the cure to this serious problem is the most important triathlon swim training tip. After pushing off the wall, after about two right side breathing cycles, the third one needs to be more elaborate. It can be simulated something like this: try sitting in a chair facing forward with eyes closed, then put your chin on your right shoulder and open your right eye, then look at the ceiling directly above your head opening both eyes, and then look forward again closing your eyes. Now imagine that exact same motion alternating sides while your body is horizontal. You need to be able to do that motion fluidly both from the left and the right. In the pool it will inform you where the end of the pool is so your flip turn isn’t an epic fail, but out on the lake the benefits are profound.

    I can say with no exaggeration that I always saved at least 10% of swimming distance by not going off course. I can also say that after about the top 5% of swimmers (whom I was never among!) almost no one swam the course straight. Literally everyone is seriously off course pretty much always. And that is because they’re wearing goggles and there are no lane lines. They are completely unprepared. I, on the other hand, while not being a freakishly fast swimmer per se, did always swim the course correctly. And I knew this because I had trained myself to be aware of what was above the water and to sight on marker buoys that were ahead of me. Pretty much every outing I would think to myself, "Where are you idiots going?" as a huge pack of people swam off at some crazy angle to the shortest direct path.

    Not only was I swimming much less distance, but because everyone else was swimming off course (seriously, it’s a crazy problem) I also enjoyed relatively empty water than the typical navigation technique of "follow everyone else". This is very important because when you’re in a big pack of people the fisticuffs can really throw you off your mission of energy smoothness. Remember, a lot of these self-selecting people have as much confidence and physical potency as you do and fighting with them in the water like wild animals can be suboptimal. Another thing with goggles is that you’ll usually spend at least a minute to reset them on your face after they get kicked off. Because conditions on the early morning lake are not at all like conditions at your indoor pool, the goggles will usually be foggy and full of water negating the only conceivable reason to wear them. When your head is in the water you’ll see lake murk; when your head is out of the water, you’ll see goggle fog. Without goggles, you have a crystal clear view of the only things you need to see. Also goggles are easily damaged by UV and sunlight and fail spectacularly right at the worst times. Having one less piece of equipment to worry about is a blessing.

  • I’m no special fancy swimmer, but I could excel where years of swim team training was not relevant and common sense dominated. This perfectly describes the exit from the swim. Most fancy swimmers just hop out of the pool — even I can almost swim out of a pool with a strong kick. But exiting a lake is a different scene altogether. How do you know when it is time to stop swimming and exit the water? The way most people figure it, after a long slog in the water, getting out as soon as possible is tempting. The compounding problem is everyone around them is doing the same thing. Here’s why that is not the right plan — I have passed hundreds of people who stopped swimming too early and tried to wade through deep water. It was easily the most reliable way I could instantly pass huge groups of people. If you can not feel the bottom of the lake while doing a crawl stroke, you are not finished swimming. It doesn’t matter how close that boat ramp looks. It doesn’t matter who around you is slogging through chest high water. Keep swimming! Once you can feel the bottom with your hand you can spring up instantly and high step out at pretty much a full running pace. While the goggle fogged people are wading and thinking, "Wow, that beach is sure a lot farther away than it looked", you can be focusing on calmness and recovery.

    In this photo I guarantee that I just swam easily past everyone else in the shot which was taken immediately after I jumped up one step back.


  • I’ve also seen a lot of people not used to swim caps struggle to get them off at the end of the swim. They pull them straight up and get that "shark fin" look. The answer is to simply grab them at the back of your neck and pull them up and forward. Practice this because any dumb surprise like fumbling with getting your swim hat off is really fatiguing.


  • I didn’t think it needed to be said, but from what I saw yesterday, apparently it does: leave your bike in a good gear to start riding it. An alternative is to not do that, but if you’re going with, say, a single harsh chainring plan, you must at the very least practice your starts. I saw people literally fall over trying to ride away. Remember that water flows downhill; this means the lake you just exited will usually be lower than the bike course; this means there easily could be a slight (or severe) climb right at the start. Practice wobbly starts up hills.

  • Tape/velcro/stick/strap stuff to your bike so you don’t have to worry about it in the transition. For example, don’t think about sunglasses or sunblock or snacks or gloves or whatever other minor details you might think you need on the bike until you’re a few hundred meters away and settled in. Ideally just don’t mess with any distractions. Certainly minimize.

  • Do your best to learn to ride without socks.

  • Some helmet clips are easier to operate than others. Make sure your helmet has the easiest. Hint, you can take a fastening clip you like and put it on a different helmet you like. Or pay a tailor/shoe repairer to do it.

  • Know how much water you need. Do that kind/length of course in that expected temperature enough to get it very close. Have a hydration plan and mostly stick to it. It’s easy to get distracted by it. Advance planning cures that.

  • Watching people struggle with their wetsuits made me wonder about their ultimate utility for such a short swim in very warm water. Certainly anything shorter than 1500m would seem very unlikely to benefit from a wetsuit. But if you are going with a wetsuit, make sure you can get out of it in a hurry.

  • For short course events, consider wearing racing flats the whole way, bike and run. If that doesn’t sound fancy enough for you, be prepared to justify (with a substantial collection of personal relevant TT times) exactly how much time those stiff soles are saving you.

  • The transition may not look anything like it looks when you dropped off your bike, especially if you’re early because you are fastidious and punctual, or early in the race because you came out of the water quickly or simply were in an early starting wave. Finding your bike can be a serious challenge. My solution was to have a bright orange plastic milk crate (mine finally broke a couple of weeks ago which means they can last decades). The crate was very useful for carrying everything I needed for the race. I could then turn it upside down and use it as a place to sit without wobbling around for the 3 seconds I needed to put on running shoes. But being able to look for that distinctive shape and color was very helpful for finding my transition location. I also had a high visibility color matched towel that I would put down in front of it which could also help with beach sand and post race care. Remember, as The Hitchhiker’s Guide To The Galaxy says to know where your towel is means to be in control of one’s life.


Triathletes are not supposed to specialize but they do and my specialty is the bike. One of the nice things about triathlon is that it is a perfect venue for people who suck at your specialty to compete with you (you just have to submit to their specialty). I could write several books about cycling (and if you like that kind of thing, I endorse this book). But basically competitive cycling comes down to four components. Let’s look at these in reverse order.

  • Unless you’re an Olympic triathlete (where the drafting rules are idiotic and render the entire sport pointless), you shouldn’t have to worry much about your competitors. Ignore them as best you can. It’s tempting, but don’t draft. Not even a little. It’s pretty much that simple. You may also want to watch out for inexperienced and clumsy bike handlers because even if they are professional road racers many strong cyclists are not properly at home on a time trial bike. Be alert for them doing wacky stuff. It’s getting better as pros born after LeMond’s convincing demonstration of time trial technology enter the peloton, but even today, I regularly see TdF pros whom I would not trade time trial bike handling skills with.

  • Bike handling is a special topic with triathlons. Time trial bikes are weird and, frankly, much less comfortable than a regular Dutch person’s regular bicycle. A lot of triathlon excellence is developing the level of comfort on a harsh bike needed for long hours of training and racing. My strong advice is to make sure you are comfortable with whatever fancy racing technology you are trying to take advantage of before you race with it. For example, fancy stiff shoes may save you 3 seconds in the first quarter of the course, but if your feet fall asleep and you lose 15 minutes later as a result, that’s not a good deal. It’s ok to train to make uncomfortable things comfortable, but don’t try to accomplish that by racing.

    The number one bike handling tip which must be fastidiously practiced is stay down! When should you stay down in an aerodynamic position? Always! At least every moment you are riding a time trial bike where it is safe to do so. I see so many people with aero bars sitting up while they train (it’s more common than seeing them use the bars properly). You can’t tell yourself, "Oh, I’ll use the drops when I’m really racing." No you won’t! You’ll be sitting up all the time and/or very uncomfortable. You must do long harsh stretches of training in the drops until it no longer feels long and harsh. Imagine if at some point in the bike course you had to stop and get off your bike and then hop back on and ride away. When you sit up from the aero position, it is like having 10% of that experience. Sit up 10 times or for long enough duration, it is as wasteful and fatiguing.

    At this point for me when I ride into a headwind, it is more painful for me to not get into an aero position because I have trained myself to be uncomfortable when I’m pointlessly fighting air resistance. Yes, even on my normal bike which doesn’t even have "aero bars" — I just put my forearms on the regular bars. I’m not exactly recommending riding like that on normal bikes, but I’m finally starting to see pros do this too in road racing. It is enormously beneficial if you’re fighting air resistance. And in a triathlon, you are.

    If all my triathlon advice had to fit into two words, they would be: Stay down! This includes any climbing that is done faster than walking pace. Stay down! Sitting up should be thought of like the side of the road rest breaks you take on the bike course. What’s that? You don’t stop and take breaks during the bike? Exactly!


  • The topic of wattage building is vast and everyone has their theories. My theory for bike wattage building is pretty straightforward but often overlooked: ride a bike! Really, get out there and put in a lot of time and a lot of miles. Don’t obsess with working out in a gym or cross training or other things that may distract from actually riding a bike. A lot. Is your bike riding uncomfortable? Fix that. Is your bike riding dangerous? Go somewhere else. No time for bike riding? Replace some car trips. Etc.

    I have some additional counter-intuitive tips for wattage building. Should you ride a fancy racing bike? No. You do that to ride fast in a race. To become strong, you need a different approach. You should ride a very cheap bike, a heavy bike, maybe a bike loaded with cargo. That will make you very strong. Ride your light bike just enough to be perfectly at home on it. Other than that, ride a tank. It will be cheaper, you’ll be able to carry more of the gear you need to be 100% comfortable (jacket, rain gear, tools, kickstand, fenders, lock, etc), and it will give you less maintenance hassle over rough training roads. Plus such a bike is much less attractive to thieves than exotic racing hardware.

    If you have hills, they are good for building cycling wattage. If not, headwinds are actually your friend. You should start cultivating that attitude anyway! Hills, wind, rain — all can be allies.

  • You’re properly ignoring your competitor’s pace, you’re in the drops riding beautifully like Fabian Cancellara, you’ve been riding up your local mountain every day with 30kg of bike and gear — what else? It turns out that once you have the strength and bike handling worked out, the sport of time trial cycling actually begins. What are you actually thinking about and consciously doing during the race? The critical thing you’re doing is managing energy output. In pretty much all athletic endeavors, managing effort is very important, but in time trial cycling, it is really the essence of the sport.

    One way basketball coaches train their players for fitness is "intervals". The reason this works is because having an erratic flow of energy is very tiring. However, I’m not a fan of intervals because I also feel that it trains you to accept that mode of athleticism. Whether swimming, biking, running, or playing basketball if you let some "interval" thinking sneak in to actual competition, you’re thwarting your potential.

    What then is the opposite of doing intervals? It is precisely a cycling time trial. It is critically important that you not vary your power output. Ever. For any reason. This is the entire game. If you turn into a headwind, should you pedal harder to fight it? No. Never pedal harder. Or softer. Always pour the exact same wattage from your body. Note carefully that I’m not saying maintain the exact same speed. If your course is completely flat and there is absolutely no wind, then yes, never change your speed. But if there are rises or breezes or even different pavement textures, you must feel the power you are unloading and modulate it with perfect smoothness. (The same is actually true when getting the best mileage from cars.)

    I don’t have strong opinions about heart rate monitors, but if they help you have a smooth power delivery, use one. At this point I can feel my wattage pretty well and gadgets can be a distraction but they can also be helpful to develop that skill. The pro riders now use wattage meters on their bikes which directly measure exactly what power output they are producing allowing them (or their director in the trailing car) to know exactly how to manage road speed. If you have a lot of money, such a power meter is probably a better investment (for high performance) than a fancy bike.

    The way I trained myself to master this essential time trial skill is by doing time trials. Every week for years I did the same course at a club time trial like some weird religion. I got to know every tiny detail of the course and how I would ride it. The minute adjustments I would make from week to week would be exposed in the only metric that matters — the final time.

    The main thing I learned about what that skill required was that you must always stay calm. This is not easy to do in competitive environments. After the first dozen or so club time trials, events like that finally started to become so routine for me that I could stop wasting energy on pre-race nerves. When I am out riding on the street I can be somewhat combatif and silly with respect to power output. But when I get into some kind of mountain climbing duel with a well-matched adversary, my mind folds into a state of pure calmness and perfectly even energy flow. At that point, win or lose, I will be riding my best ride. It is literally the best you can do. The other good thing this mentality does is it shifts focus from your adversary to yourself. Your adversary may be fine now but struggle later with the pace, but if you’ve set your correct pace, you will be fine. In a time trial, that kind of thinking is 100% of the event.

To summarize my triathlon cycling advice.

  • competitor handling - Ignore them!

  • bike handling - Stay down!

  • wattage building - Ride a bike a lot! A heavy bike too.

  • wattage management - Perfectly smooth power output. Stay calm!

Transition 2

  • Don’t ever waste your time tying shoes and do not ever risk having an untied shoelace out on the course. I used these ordinary cord locks to completely solve that problem.

  • This is speculative, but I feel like if I raced today I might not wear shoes on the run at all. As it is I now wear very thin sole shoes for any running I do and I think it improves form and, ironically, reduces injury problems (because of improved form and attention). But hey, mush around on your waffle iron soles if you feel differently.

  • One tip that I feel like nobody but me figured out is to fold your number. When I raced, I was one of the very few people who used a number belt. I just created a simple loop of elastic. Today number belts are quite ordinary at triathlons and can get quite fancy. But when you attach your running number to the belt (or your shirt or whatever you’re doing), the important thing is that it shows the number. You are (probably) not required to show off the sponsor or a bunch of blank space. If you are #6 on a number sheet designed for #66666, it turns out that you can fold that down quite a lot. I found this kept it out of my way and, more importantly since it’s probably made of windproof Tyvek, provided critical ventilation. Let me put it a different way: if you’re doing a race on a very cold day and you want to keep your groin as warm as possible, do not fold your number to reduce its frontal area. But here’s the catch with number folding! Modern races have fancy trackers, but in my day, there was often a tab you’d tear off your number at the end of the race — you must make sure you can unfold the number easily and get at that if needed. Trust me, it can be done.



I’m an ok runner. I was blessed with a good physiological running style which is naturally smooth and fast. Still there are things you can and should do to improve. I put a lot of thought into my stride and kinematics. For example, I may have a naturally good fast style but if the race is a marathon, that may not work in my favor. You must analyze your style for wasted energy and motion. Are you slamming the pavement? Are your shoes wearing in a funny way? Are you waving your arms pointlessly? There are many things that can lead to a wasteful stride. All I can say is that I spent many of the long hours training thinking about the details of my running mechanics. It’s worth doing.

Let’s assume you have given your stride sufficient thought or professional coaching — what else can be done? I’ve got a few other less subtle tips for triathlon running.

  • Draft! It’s not legal on the bike (except in the stupid Olympics), but it is perfectly legal on the run. Just because you’re doing 8 miles per hour instead of 24 mph doesn’t mean there are no benefits to drafting. Because running is so not aerodynamic, the effects can be pretty noticeable. If I’m running a race down a long straight city street into a full flag waving headwind, the chances of me not being behind some tall guy are 0%. I will even run slower or faster than my correct pace to get out of the wind and draft someone. And yes, look for that tall guy or a group or, ideally, a group of tall guys. To learn how to deal with crosswinds study echelon riding in pro cycling. The same physics applies to running. Here is an excellent video on the topic. Just remember, in a running race, you should never have to take a turn at the front! Leave that for people who are clueless about drafting effects.

  • Use shrewd navigation. Do not run a longer course than is necessary. Always sight the next turn you need to make and go directly to it. As a mental check think about where on that straight line to the next turn you should be when you are half way to it (maybe the middle of the road if you’re switching from left turn to right turn). Double check that’s where you really are when you get there. Always be checking this kind of thing. I am always amazed at the people who will run some serious extra distance because they don’t economize this. Think about why track starts over 100m are staggered!

  • The only sensible deviation from a perfectly direct course is if you can go out of your way for some shade (assuming it’s hot). By thinking about that in advance, you can optimize. This also applies to getting shelter from wind against a building or behind parked cars etc. Running up against a building will often be less windy than in the open road.

  • If your running is mediocre and you want it to be as good as it can be, the best thing to do is run with a group. That will motivate and push you to run at levels you never thought about achieving. My best recorded athletic performance was a half-marathon (80 minutes, which I’m very proud of, thanks for asking) and that was a direct result of doing a weekly 11 mile run with a club of freakishly fast old guys who taught me a lot. Old guys can do that.

I’m sure I have a lot more to say on the topic of triathlons but that’s most of the important stuff. One last piece of advice is the most important of all. Smile. There are a lot of good reasons for this. First of all, if you’re a normal grimacing competitor, that just tightens up muscles that really should be relaxed. But from an attitude management standpoint, by forcing yourself to smile and training enough so that it’s not even that hard to, you’re preparing your mind to be unstressed by how things are going to go. You’ll handle adversity much better. You’ll manage your energy better. You’ll be happier. Smiling helps you to have a good race no matter what happens.

Steam Hardware Survey

2018-07-07 09:16

One of my eccentric beliefs is that the state of the art of computing is the state of the art of gaming and not the other way around. My Linux loyalty has greatly limited my gaming agenda but it has given me an interesting perspective. When it comes to serious computing, I can’t help but notice that gamers lead the way. Consequently I like to keep informed about what the major trends are there.

Glance over this search I did for "best cpu motherboard". The word "gaming" in some form appears in 8 of the 10 first hits (it features prominently on the links of the other 2).


Are non-gaming people not interested in the "best cpu motherboard"? I’m going to say that as far as market forces go, no. Your CAD draftsman or molecular modeler or video editor or spreadsheet farmer doesn’t need the "best" today. Anything will do for them. But the gamers are always looking to push the frontiers.

A source of some interesting data is the Steam Hardware Survey. This is where Valve’s venerable gaming platform harvests a lot of data about exactly who is doing what with what.

Of course the most interesting thing about the Steam Hardware Survey to me is not necessarily the hardware. Before looking at that, let’s first look at what platforms the games are supporting these days.

Games appearing in search results constrained by OS.

Obviously these aren’t mutually exclusive. Let’s just say that everything runs on Windows. To be precise, only 23 of 48056 go missing when you limit search to just Windows. Still 24% of games available to Linux is pretty extraordinary given the situation as little as five years ago.

With the knowledge that about a quarter of the games are available to alternative platforms, what does the actual usage look like. We can check with the hardware survey and see who’s running what. Here is a very depressing plot of the OS ecosystem in gaming.

55.87 Windows 10 35.57 Windows 7 4.53 Windows 8 3.07 OSX 0.57 Linux 0.22 Windows XP 32 bit

Talk about hanging on by a thread! At least Linux grew .02% since the start of 2017.

This is a bit surprising to me since Linux has enjoyed the aforementioned huge surge of compatible games in recent years. With impressive Wine support a lot of games are running better on Linux than their original target. But still, if you’re simply a path-of-least-resistance player, passing up on a non-negligible number of games you’d like to play may not be realistic. I’m going to take these Linux numbers to represent vive-la-resistance players!

What’s also strange is that with Android, tablets, and cloud office suites, it seems like Windows is teetering on the edge of insignificance. Here’s a good article about how Windows is being internally dismantled at Microsoft. But apparently gamers didn’t get the message. I wouldn’t be shocked to see Office move to an online platform and Windows get branded as a game platform like Xbox. Clearly Valve has their work cut out to fight Microsoft’s monopoly and Linux is a key weapon in that fight. Here’s a recent article on the whole showdown.

I was kind of surprised to learn that 0.22% of Steam users were using 32 bit Windows XP. Ouch. Reminds me of some ancient computers which are forever stuck to some equipment in science labs I know.

Among the 3% of people using Macs for games, it seems like they mostly keep them up to date.

1.47 10.13.4 0.28 10.13.3 0.09 10.13.2 0.07 10.13.1 0.51 10.12.6 0.28 10.11.6 0.15 10.10.5

I think I found the language preferences most interesting. English dominates Linux users a bit more than it does in general. Here’s an interesting look at the language settings. When all OS choices are looked at, Chinese is dominant. But when you focus only on Linux users, the trends shift quite a bit to Russians and Europeans.

27.54 Chinese 10.67 Russian 4.59 Spanish 3.69 Portuguese 3.54 German 2.70 French 1.78 Korean 1.67 Polish 1.66 Turkish 1.08 Japanese 0.87 Thai 0.71 Italian 0.49 Czech 0.37 Swedish 0.35 Hungarian 0.33 Dutch 1.00 Seven Others All Steam 4.05 Russian 2.72 German 1.98 French 1.54 Spanish 1.33 Portuguese 0.81 Chinese 0.57 Polish 0.45 Italian 0.25 Japanese 0.24 Czech 0.19 Ukrainian 0.13 Hungarian 0.10 Dutch 0.35 Eight Others Linux Only

Note that these don’t add up to 100% because it is missing the majority of people who use English language settings. Note also that a lot of Russians (I can personally assure you) and Chinese and everyone else often use English despite that being a foreign language for them.

That was interesting to me with respect to Linux. But there’s much more of interest to the whole computer using world. Let’s look at the hardware.

Monitors are pretty standardized now. 60.49% have a 1920x1080 monitor. And 34.87% have two such regular monitors for a grand total of 3840x1080. I have two regular monitors set up for serious work for a grand total of 2160x1920 which really bakes Steam’s noodle.

I’m a little shocked that 60.51% have 4 CPUs but in the many years this has been standard only 4.15% have 6 CPUs and only .99% have 8. That leaves 31.40% of people using 2 CPUs like my laptop had in 2006. The conclusion would seem to be that a lack of more processing cores is not generally a serious performance bottleneck in gaming.

RAM seems to not have become much more plentiful either. There are roughly three equal groups: less than 8GB, exactly 8GB, and more than that. At 38.97% the setups with 8GB are most prevalent. But 36.67% have more than 12GB. The survey format doesn’t even explore silly levels of RAM that people like to have for VMs and video editing. But again, I think we must conclude that after 8GB, going crazy on the RAM has diminishing returns on gaming enjoyment.

Graphics cards are a rout — 15 of 16 most popular graphics cards are Nvidia GeForce. Here’s a rough breakdown of popular video cards. Don’t get too upset if I’m a couple percent off — I think the survey was too. The interesting thing to note here is that half of gamers have pretty decent cards. My guess is that the other half are making do with laptops and tablets and such.

32.46 GeForce 10xx 17.93 GeForce 9xx 10.38 GeForce 7xx 8.76 GeForce 6xx 10.20 Radeon 10.53 Intel 11.96 Other

Last year I wrote about how prices are stablizing in the computer world. Usually that’s a good thing but since computers have been getting delightfully better and cheaper historically, this feels like the end of the party.

I’m really curious how this will all turn out. Clearly Intel has some serious challenges. Here’s a nice article discussing Intel’s many strategic problems. Clearly they’ve lost to Nvidia on what matters to the serious people, the gamers. And from that gaming enthusiasm came GPUs that are now the default way technical people do advanced technical things. Intel may want to catch up but I’m not sure that will be easy.

The only prediction I will make is that gamers will continue to greatly influence what technology gets seriously developed — more than the other way around.

Review: Homo Deus

2018-07-04 16:12

Homo Deus: A Brief History Of Tomorrow is the follow up book to Yuval Noah Harari’s Sapiens (which I reviewed here). It is hard to know what to say about this book. The first blurb on the back is from the freakishly insightful Daniel Kahneman and it immediately singles out this book’s core value.

It will make you think in ways you had not thought before.

Just so you don’t think I’m being lazy here, I had a look at today’s NYT hardcover nonfiction best sellers list and for each of the top 15 books, I calculated the percentage of Amazon reviews that contained the phrase "thought-provoking". Have a look.


Yes We (Still) Can - Dan Pfeiffer

0/51 = 0.0%


Calypso - David Sedaris

4/190 = 2.1%


The Soul of America - Jon Meacham

2/231 = 0.8%


How To Change Your Mind - Michael Pollan

3/128 = 2.3%


Trump’s America - Newt Gingrich

0/65 = 0.0%


Educated - Tara Westover

27/1389 = 1.9%


Bad Blood - John Carreyrou

1/402 = 0.3%


Lincoln’s Last Trial - Fischer & Abrams

0/36 = 0.0%


The Sun Does Shine - Anthony Ray Hinton

3/211 = 1.4%


Astrophysics For People In A Hurry - Neil dG Tyson

34/2851 = 1.2%


Born Trump - Emily Fox

0/64 = 0.0%


Barracoon - Zora Neale Hurston

3/177 = 1.7%


The World As It Is - Ben Rhodes

0/73 = 0.0%


Room To Dream - Lynch & McKenna

0/9 = 0.0%


Factfulness - Hans Rosling

6/258 = 2.3%

Total for NYT NF Top15: 83/6135 = 1.4%

That exercise itself was a bit thought-provoking. Check out how Harari’s book crushes this silly metric.

Homo Deus - Yuval Noah Harari - 128/1146 = 11.2%

Let’s look at a very typical example but one that I took a special interest in. Here he’s vaguely pondering the nature of consciousness (a topic I am especially interested in) without getting too precise about what he means by that word.

Maybe we need subjective experiences in order to think about ourselves? An animal wandering the savannah and calculating its chances of survival and reproduction must represent its own actions and decisions to itself, and sometimes communicate them to other animals as well. As the brain tries to create a model of its own decisions, it gets trapped in an infinite digression, and abracadabra! Out of this loop, consciousness pops out.

Fifty years ago this might have sounded plausible, but not in 2016. Several corporations, such as Google and Tesla, are engineering autonomous cars that already cruise our roads. The algorithms controlling the autonomous car make millions of calculations each second concerning other cars, pedestrians, traffic lights and potholes. The autonomous car successfully stops at red lights, bypasses obstacles and keeps a safe distance from other vehicles — without feeling any fear. The car also needs to take itself into account and to communicate its plans and desires to the surrounding vehicles, because if it decides to swerve right, doing so will impact on their behaviour. The car does all that without any problem — but without any consciousness either. The autonomous car isn’t special. Many other computer programs make allowances for their own actions, yet none of them has developed consciousness, and none feels or desires anything.

The photo on this page (p.115) is of Waymo’s Firefly/Koala (did it even have a proper name?). I’m pretty sure this particular specimen had absolutely no ambitions to talk to other cars. Brad Templeton who advised Waymo for this project has this to say about that issue.

[V2V is] definitely not necessary for the success of the cars, and the major teams have no plans to depend on them. Since there will always be lots of vehicles (and pedestrians and deer) with no transponders, it is necessary to get to "safe enough" with just your sensors. Extra information can at best be a minor supplement. Because it will take more than a decade to get serious deployment of V2V, other plans (such as use of the 4G and 5G mobile data networks) make much more sense for such information.

In addition, it is a serious security risk, as you say, to have the driving system of the car be communicating complex messages with random cars and equipment it encounters. Since the benefits are minor and the risk is high, this is not the right approach.

I point that out because this is one of the areas I know pretty well, and it could be that Harari is doing quite a bit of such hand waving.

The first part of the book makes a surprisingly animated attack on the idea of eating meat. I eat very little meat but I also have other topics higher on the list of philosophical issues to worry about. Still, if you’re a vegetarian, you’ll like the first part of the book.

Harari spends a decent amount of time letting you know that your mind is composed of different cognitive actors. Most people who know me have been exposed to that idea before. I do like his clever term "dividual" to describe our collection of cognitive contributors.

He talks here and there about science fiction topics. The title refers to what humans may "evolve" into — what will be beyond us (Homo sapiens) on the evolutionary tree.

Hence a bolder techno-religion seeks to sever the humanist umbilical cord altogether. It foresees a world that does not revolve around the desires and experiences of any humanike beings.

But when I read that, I wondered, why so complicated? Some people can already "upgrade" themselves with an ancient medical procedure that will almost always strongly reorient a person’s priorities — castration. But Harari doesn’t talk much about why men aren’t improving their lives with that technology upgrade, so I’m not quite sold on the inevitability of fancier computerized versions.

Don’t get me wrong. I would recommend the book. It is interesting even if slightly questionable here and there. It’s decently well-written and engaging. Whatever flaws this book had, it was definitely a rare champion of "thought-provoking".

The Toaster Problem

2018-06-23 18:55

A couple of years ago I was visiting my dad and I was introduced to this toaster.


This is a fancy and somewhat expensive toaster. Just look at that fancy digital display! I don’t know about you but for me and many others toast is a breakfast thing. Sometimes I get up and make toast while other people are still sleeping. Imagine my surprise when this toaster announced the readiness of my finished toast with a shriek like a chimpanzee being disolved in acid. It scared the hell out of me! I wondered, what moron designed a breakfast food preparation appliance to literally sound like an imminent train wreck?

This would not do. Annoyingly the toaster was assembled with special security screws. That just made me even more committed. First I had to make a tool to disassemble the thing.


Having accomplished that I was able to open it up.


And here’s the obnoxious source of all the fuss.


This spec sheet shows a very similar 1205 buzzer producing 85dBA. This means that it is similar to a dump truck driving by. I was able to disable the buzzer, reassemble, and finally make toast in blessed silence.

That was a toaster problem.

It was not the toaster problem.

The toaster problem is a shorthand phrase I use when discussing autonomous vehicle technology or any futuristic technology that is heavily dependent on artificial intelligence that hasn’t quite been invented or perfected. The toaster problem is that toasters can not reliably toast a piece of bread. All toasters I know about may be able to be set up to make one piece of toast satisfactorily, but if you scale that to 9 pieces of toast, maybe on a cold morning or a hot day, well, if you want your toast perfect, you, a human, will have to keep an eye on it. No big deal usually, but the important point is this: if we can’t have autonomous toast toasting machines, how the hell are we going to have automatic machines that can perform double lane highway merges?

I focus on toasters because the technology is so banal and stupid. Not only that, but I personally can envision a solution. I believe that I could set up a camera to watch the progress of my bread toasting and with enough iterations, I could train a machine learning algorithm to produce a "toastedness" score which would actually be related to the toast you were wanting regardless of how hot the coils were at the start of the process. I’m a wee bit surprised that KitchenAid doesn’t have such a thing for $1000.

But why is this a useful phrase? It’s important because there are tons of things that are unsolved toaster problems. For example, trains have drivers. I happen to know that some trains do not and this industry is working hard on their toaster problems, but still — if 2d cars are to drive themselves, shouldn’t we be seeing 1d trains do it first?

Another example being worked on are floor cleaning machines that can operate with or without a driver. This is actually the first (2d) autonomous vehicle I ever got to ride.


A couple weeks ago I spent twenty minutes being actively driven around O’Hare airport on the ground in a fancy fleet-managed airplane. I would guess that taxiing in such a controlled environment is a toaster problem even if full gate to gate autonomous flying turns out more complex. Certainly ground support vehicles in tightly controlled airports could be easier than general passenger car transportation. Oxbotica is working on that toaster problem now.

Sometimes it can be tricky to place a technology concept on the toaster spectrum. Is an automated battleship easier than a unoccupied robocar that safely doesn’t kill cyclists? That probably depends on many complicated factors but that idea is currently more than science fiction. How about a car that can race off-road through the Mojave desert? It’s not obvious.

Certainly partial technological progress on the way to fully autonomous passenger cars implies many useful intermediate technologies. Is a car that can park itself essential before a car that can do everything that I can do as a driver? I’d say so. All the modern ADAS features are toaster problems solved.

I think one of the biggest mistakes made by a lot of autonomous car teams is to neglect the toaster problems. For example, Kitty Hawk is aiming for flying autonomous cars. I suppose if you’re ok eating burned toast, you might as well dream big.

UPDATE 2018-07-04

Car alarms. That’s way way lower than toast. And, a very similar stupid problem, the obnoxious klaxons of garbage trucks and backhoes in reverse. There will be no meaningful autonomous cars while these things exist.

UPDATE 2018-07-12

The Economist covers some projects that may literally be working on the toaster problem as part of a grander robotic chef.

Also there can be toaster problems in other areas too. For example, the fact that I can’t live under the surface of the ocean or in central Greenland is a toaster problem for people wanting to colonize Mars.

Review: Probabilistic Robotics

2018-06-07 13:09

I have been interested in Probabilistic Robotics by Sebastian Thrun, Wolfram Burgard, and Dieter Fox since I first heard about it while learning about the rocket science of Kalman filters from Professor Thrun himself in last year’s grand educational experience with Udacity (a company started by, yes, Sebastian Thrun). I was finally able to put my employer’s library to use and borrow this massive and expensive book. I found the topic to be interesting and important enough that I wanted the hardcore experience and this is definitely it!


A good summary of the book’s mission is on page 488:

Classical robotics often assumes that sensors can measure the full state of the environment. If this was always the case, then we would not have written this book! In fact, the contrary appears to be the case. In nearly all interesting real-world robotics problems, sensor limitations are a key factor.

And we learn, not only is it sensors that are not telling the truth—it turns out that actuators don’t actually do exactly what you tell them either. Oh and the maps you have or make are never quite right. These are the problems that this book tries to come to grips with.

Another way to think of it is that the existence of this book explains why a Roomba navigates the way it does (randomly). Or put another way, "stupid" easy navigation may be just as smart as fiendishly difficult hard navigation if you can get away with it. This book is not looking for the easy solution!

A big topic was SLAM which stands for Simultaneous Localization And Mapping (note Professor Thrun’s DARPA Challenge car, Stanley, in the SLAM Wikipedia page). This is where the robot is dropped into a place and has to figure out what’s there and how to reliably not hit it, even when all sensors are a bit wonky. This is fine, but I think there is more to this topic than the book even thought about (despite covering EKF SLAM, GraphSLAM, SEIF SLAM, multi-agent SLAM, etc). SLAM in rooms or controlled indoor environments which the book spent a lot of time on may be necessary for SWAT teams and turning off a serious nuclear reactor malfunction, but for everybody else (and the nuclear plant actually), just mount cameras on the walls! This may not be a terribly hard problem unless you really want it to be! But hey, what do I know?

If I had to provide a one word answer to all of the problems this book worries about, I would say: Bayes. Apparently using Bayes Theorem early and often can really provide a lot of help with these tricky problems. How exactly that is done can be tricky.


Page 233 quotes (Cox 1991) by saying, "Localization has been dubbed the most fundamental problem to providing a mobile robot with autonomous capabilities." It is definitely hard, but if they still believe that after doing some work on the autonomous car problem among idiot human drivers, then I think they need to take another look at things.

Every chapter concluded with (some freakishly microscopic print in) a section called "Bibliographical Remarks". I found this interesting because they did a decent job of summarizing the history of this weird little corner of robotics math nerdery. However, many times the saga would build up until the final word on the topic was Thrun et al. Which is fine but I sometimes wondered if I was reading a Thrun biography. On page 144, we are reminded that, "Entire books have been dedicated to filter design using inertial sensors." So it could be even more painfully specialized I suppose than Sebastian’s greatest hits which are genuinely impressive.

I was quite frustrated to read this on page 329, "Little is currently known about the optimal density of landmarks, and researchers often use intuition when selecting specific landmarks." It goes on to say, "When selecting appropriate landmarks, it is essential to maximize the perceptual distinctiveness of landmarks." I’m a big proponent of making these gruesome algorithmic/computation problems as easy as possible. Yet never is the topic of how to eliminate the uncertainty with environmental augmentation mentioned. It would be like fretting over how hard it was to train people to memorize all street names and features because putting up street and road signs would be expensive. But, hey, my little thoughts on how horrifically hard problems might be simply averted with a dirty trick are probably not appreciated by people whose job it is to solve hard problems.

There were some interesting fun bits of knowledge that I had never heard of. For example, the fact that terramechanics is a thing is interesting to me. And I learned that the Aurora CEO Chris Urmson once worked on an autonomous robot to search for meteors in Antarctica which is very cool (in many ways). That reminds me of my concept for autonomous archaeology robots which also would use a lot of the ideas from this book to make very accurate maps of where items were found.

I don’t think that this book was remarkable for a graduate level textbook, but wow, what a crappy way to teach something! The first thing to complain about is that pseudocode equals pseudoquality. As it says on page 596 "This algorithm leaves a number of important implementation questions open, hence it shall only serve as a schematic illustration." The "algorithms" were to me useless. Implementing them from the opaque pseudocode scribbled with frantic Unicode hand waving seemed no easier than thinking of a decent algorithm myself directly in code. It’s like betting someone that you climbed Mt. Everest but instead of just showing them a picture of you on the summit, you say that they’ll need to climb the mountain too to see if there really is proof of the deed up there. Just write real code! This isn’t probabilistic abstract thinking! Everyone who looks at this book will want this technology on a machine that runs software. Showing some real code could highlight good practices throughout, easily demonstrate algorithm effectiveness, and easily prove they even work at all.

I was really not delighted with the gruesome math and just unnecessarily harsh, but no doubt typical, syntax throughout. It certainly was great practice for slogging through such muck. I definitely feel more prepared to read obfuscatory stuff like this in the future. It was so baroque that it was hard for everyone to keep it straight. In Table 16.3-7, for example, there is Q(u) = 0 but then in the text on the next page it talks about it as "all Qu's." Yuck. I did not spot a rho, nu, iota, zeta, or upsilon — though I could have overlooked them during my quick census. All other Greek letters made an appearance, at least half in both forms! Did I mention that just writing software, a language that all roboticists must speak, would be much better?

Sometimes even the algorithm outline was not especially encouraging. On page 366, for example, "A good implementation of GraphSLAM will be more refined than our basic implementation discussed here." Gee thanks!

I feel like with the intense level of math, theory, and algorithms that mentioning real world robots at all may be premature. I got the feeling that all of this math would be more intelligently applied to abstract computer models only and talking about real applications just muddles things. I even was reminded of automata curiosities and that is finally explicitly mentioned (referring to Rivest and Schapire 1987a,b) in the final paragraph of the book’s text!

I sure wish I had this book’s TeX source because I would love to search and count the occurrences of these words: "straightforward", "obvious", "of course", "simply", "easily", "clearly", "standard simplification", etc. I would bet $50 that some condescending word like that appears more than 600 times, or on average at least once per page. I’ll leave that as "an exercise for the reader". Ahem. Provide some source code proof that this stuff works and then I’ll start feeling like I’m the dumb one for not having implemented it!

I’ll make a list of errors I found to give you a sense of the production quality in general.

  • p167 "…pre-cashing…"

  • p213 "…represents uncertainty due to uncertainty in the…"

  • p267 "…the type [of] sensor noise…"

  • p281 "…can easily be described [by] 105 or more variables."

  • p370 "The type map collected by the robot…" [type of map?]

  • p388 "…SEIF is an … algorithm…for which the time required is … logarithmic is data association search is involved."

  • p403 "Here mu is a vector of the same form and dimensionality as mu."

  • p411 "…sometimes the combines Markov blanket is insufficient…"

  • p414 "…but it [is] a result…"

  • p419 "Once two features in the map have [been] determined to be equivalent…"

  • p433 "…this techniques…"

  • p433 "…to attain efficient online…"

  • p460 "…advanced data structure[s]…"

  • p480 "…fact that [it] maintains…"

  • p487 "…running the risk of loosing orientation…"

  • p525 "…the vale function V2 with…"

  • p550 "xHb(x)"

  • p554 "…when b_ is a sufficient statistics of b…"

  • p592 "MCL localization" is redundant.

Really, that’s pretty good for such a massive tome (in English by German dudes, also Hut ab).

I’m glad I read this. It was definitely an experience and I feel more like grad students who have been hazed in this way, but if you really want to learn this stuff for practical applications, I’d just pay Sebastian for Term 2 of the Advanced SDCarND program and save yourself a lot of trouble. And get some working code instead of just a mental workout!


For older posts and RSS feed see the blog archives.
Chris X Edwards © 1999-2018