I work at my computer all day long. Between eight and fourteen hours on the average workday, I’m staring at a screen and typing on a keyboard. Until recently, this meant I didn’t get much exercise; I’d aspire to a bike ride on the weekends, but went most weeks with nothing more than a walk or two. This is compounded because I work from home — no trips to the water cooler and copy machine for me. If I wanted to, I could get by with about 100 steps of walking per day, between my bedroom, office, kitchen, and bathroom.

Then I started using a treadmill desk. The idea, originated by Mayo Clinic Researcher James Levine, is straightforward: instead of sitting at your desk, you work at a treadmill that’s equipped with a monitor, keyboard, and phone. Rather than sitting, you walk at a slow pace. Because the human body has evolved to walk long distances, a healthy person can comfortably walk several miles a day. After just a few days, I was consistently walking about 6 or 7 hours a day. It’s been about a month now, and I’ve used the treadmill desk every day I’ve worked from home.

I love it. And what’s really amazing it that I’m not just doing something healthy without taking time away from work. I’m working better because of the steady supply of exercise. My concentration is sharper and my energy level remains steady throughout the day. The exercise has made me a better hacker.

The magnitude of this result surprised me. I’m in decent shape; I wouldn’t mind losing a few pounds, but I eat well and my cholesterol and blood pressure are fine. On the other hand, I’m always looking for ways to be smarter or more energetic. Like many people whose work is intellectual, I suffer from lulls and funks, from afternoons of carb-induced catatonia to full days of hacker’s block. The exercise smooths over these funks. I still have some slow days, of course, but by defaulting to constant exercise, there’s a tremendous countervailing influence to the biochemical tides of mood.

How-to

If you think a treadmill desk might be good for you, it’s not hard to try it out. I started with a standing-desk prototype (pictured at right): tray tables piled with books to bring my laptop screen and an external mouse/keyboard to eye- and hand-level, respectively. A standing desk has most of the exercise benefit of a treadmill, with the caveat that standing still is far more stressful to your joints and muscles than slow walking. You can try this with stuff you already have; if you like the exercise but are limited to only a couple of hours of continuous standing before your knees start to ache, it’s time to take the dive and buy a treadmill.

1. Get a Treadmill

My current treadmill is a HealthRider SoftStrider I got for $100 via Craigslist. When I wear this thing out, I’ll consider buying a new treadmill in the $1000 range, but a cheap used treadmill is a great starting point and craigslist is a good way to find some locally. You can transport a foldable treadmill in the back of a van/wagon, or, as I did, in a car trunk with some bungee cords and careful driving. (They’re really heavy; you’ll need a friend to help you navigate any stairs.) Key features of a desk treadmill are:

  • Electronic. The force required to propel an un-powered treadmill will get in the way of your work. You need a conveyor belt under your feet. Give up on the dream of powering your computer with your footsteps.
  • Slow speeds. You’ll want to control your walking speed in, at most, 0.1mph increments between 0.7 and 1.5mph. You don’t need a treadmill designed for running, but a padded belt will make the walk more comfortable and gentler. If you’re over 180lbs, double-check the treadmill’s capacity. Although you’ll only be walking, the continuous usage could potentially wear down a weaker platform.
    • Update 1/27/2008: I would like to revoke my endorsement of padded belts. Foam doesn’t stay flexible forever and my belt has been gradually turning into dust. Most newer treadmills have a flat belt and cushioning under the deck, which is a better design.
  • Level arms. All treadmills have arms that the occupant is supposed to hold while walking. Your hands, however, will be on the keyboard, which will be on a shelf. The easiest way to build this shelf is to attach it to the treadmill’s arms. And if the arms are angled, you’ll need to compensate for that in the shelf. If they’re level, you can just slap a board across.
    • Update 1/27/2008: Actually, a level tray is not as good as one that’s inclined away from you. Ideally, you want to avoid bending your wrists, and you want to have your elbows open at 100 to 120 degrees. I’m still working on a design that achieves this; my temporary solution is a shim under the near end of my keyboard.
  • Quiet. Old, underpowered, or poorly cared-for treadmills may hum constantly; try to find one that doesn’t make much motor noise. The noise of your footsteps and the belt’s motion on the deck will always be present, and on a nice newer treadmill these should overshadow noise from the motor itself. (Added 1/27/2008.)
  • Console. Mounted on the treadmill will be an electronic console where you can set the speed. Sometimes these consoles include a reading tray and cup holder. You probably won’t want to use these for holding your monitor; vibrations in the treadmill will cause your monitor to shake and make it hard to read. So pick a console that is reasonably out of the way; you’ll need to at least build a shelf over it.

2. Build Some Stuff

Once you’ve got the treadmill, you’ll need to build two shelves: one for the keyboard/mouse, and another for your monitor and other equipment. The easiest way to do the keyboard tray is by attaching it to the treadmill’s handles, if they’re level. For mine, I have a wooden board that is laid across the handles, with segments of 2×4 on the sides in order to raise the shelf’s height. You’ll want to have the keyboard positioned so you can rest your hands on it with your elbows at an angle around 100 degrees. Since your body will be moving, you might also want a trackball instead of a normal mouse; being able to rest part of your hand on the shelf will stabilize your finger movements, and without that stabilization precise mouse movements will be difficult. I attached the keyboard shelf to the treadmill’s handles using industrial-strength velcro. This provides a solid attachment but allows me to lift the tray off of the treadmill so that I can fold the treadmill up, clearing space in my office for the fold-out guest bed.

The monitor shelf is different. You definitely want to avoid resting the monitor on your treadmill in any way, or vibrations from walking will shake your screen. Measure the height you’ll want in order to hold the screen’s center a level 2 feet in front of your eyes while standing on the treadmill. My shelf is at about 60″ from the ground (I’m 6′2″). My shelf has two legs (cut from 2×4s) and is held together with shelf braces; the materials and wood cutting cost around $25 total from Home Depot. A simpler design would be to build the shelf like a three-legged stool, with equal-length legs at the front left, front right, and rear center of the shelf. You might also be able to use a pre-made modular shelf, although it could be hard to find one that can straddle a treadmill.

3. Set Up Your Computer

You probably don’t want to force yourself to use the treadmill whenever you need the computer. A desk is useful if you get tired, or if you need to do actual paperwork — writing steadily is almost impossible on the treadmill. So I maintain my old desk, with its own monitor, keyboard, and mouse. These are connected to the same computer — the treadmill’s peripherals are connected via USB. While on the treadmill, I rotate the desk monitor and use it as a secondary screen — I leave work chat running there so I can see if anyone mentions my name, but drag the window over to the treadmill monitor for any intensive reading.

4. Brag About It

The treadmill desk is a great story for coworkers and friends. If you’ve read this far, then you’re exactly the kind of person I’d love to tell it to. In any social setting, the treadmill gives you an excuse to stand up, extend your arms, and walk around like a zombie while talking about what a geek you are. Lots of people find the idea appealing and will ask interesting questions.

The wikipedia Treadmill Desk page has more information. And, in case you’re wondering — this article was written entirely while walking.

Last year my boss at Renesys, Jim Cowie, came to me with a new and crazy idea: building a chat system that leads you to relevant discussions based on the sites you visit. You can check out our latest efforts at babbledog.com.

How does a successful internet data analysis company turn its eyes to a novel consumer webapp? In the words of one friend, “that’s different. I mean, that’s really ass different.” Well, based on Jim’s initial idea, I did a couple of simple prototypes, and it kinda snowballed. It started taking more of my time, and then more and more of other people’s time, and before we knew it the little skunkworks project grew up. We’ve recently opened it to the public (without much hoopla). We’re still working hard to churn out new features and improvements around the clock, and if you’re reading this blog, we’d really appreciate your input.

If you’re at all curious, give the software a shot. It’s a browser extension (for IE or Firefox) and you can get started at babbledog.net/download or just check out some active discussions like election2008 or geeks in boston. If something goes wrong or you get stuck, email, IM, or call me at +1 857-928-3028 and I’ll help you skate around the cracks in the beta.

If you’re a hacker, consider working with us. We’re growing and seeking engineers who can wrangle:

  • web apps in Python and Perl,
  • advanced Javascript/Ajax magic,
  • analysis of large, rapidly growing data sets.

(See? If you call them “hackers” and “engineers” it sounds edgy but still grown-up. How can y’all even comtemplate working elsewhere?)

We’re also looking for:

  • a web UI designer to lead us through the design puzzles of a novel, fast-developing app;
  • a director of marketing to help us build and market an app that people will want to try; and
  • a director of user experience to grow the world’s Total Volume of Love for Babbledog (TVLB) by working with both the user community and the development team.

Renesys is based in Manchester, NH but many of us (including me) work from home all around the country. If you’re interested in any of these opportunities, let me know by emailing shimon@rura.org, or IMing shimonrura on AIM, Yahoo! Messenger, or Google Talk. Or even better, find me as shimon in babbledog.

See you there!


* As you may note, if you are compulsively detail-oriented, I of course haven’t stopped blogging. But I have been less social in recent months as my workload has been much higher. I do love the day job, though, and if you’re the kind of person who actually looked for and read this note and are now trying to deconstruct my title in order to understand its full implications, and wondering whether I really meant to put “my day job” in the place of “the bomb”, and is “the bomb” ominous like the movie or proud like some Jerry Springer guest with 7 lovers, well… stop worrying and email me.

Subfloptimal (n): pertaining to a point so insignificant, that the time lost in debate outweighs the potential benefit/cost of any outcome in consideration.

Suppose you’re about to drive to a concert with some friends. Friend A suggests a shortcut. Friend B suggests a different shortcut. Letting friends A and B argue about their shortcuts for five minutes is subfloptimal, because while one shortcut may indeed be better than the other, the time spent arguing is going to slow you down more than just choosing a path and going.

This comes up a lot in software projects. Someone will suggest we rename all our floobs and, instead, call them zorts. You might think “hey, there are good reasons we called them floobs” but if you can tolerate “zorts” without worrying much, the distinction is subfloptimal. It’s easier to just make the change than to argue about it, as long as you’re not one of those people who finds it offensive to call something a zort.

In which case you can go zort yourself.

I bought my car used, and never gave any thought to its keyless entry system until my only remote stopped working, and I couldn’t seem to program the car to accept a new Toyota remote. It turns out my remote — a DEI 476T — wasn’t some sort of universal replacement transmitter, but implied that an aftermarket alarm system was installed. And under my dash I easily found a Directed Electronics Inc. Sidewinder 3000ESP. Not connected to a siren, mind you, and too easily disconnected to qualify as a security system. But an acceptable keyless entry system, with the bonus of qualifying me for an insurance discount.

(When I first bought the car I took it to a local tire shop for the insurance inspection, and after getting only confused responses from me about the security system, the mechanic took one look at my key fob and put me down for the discount. I thought he was being too generous until this week. Now I’m just amused I qualify for it with an alarm system that might blink the lights a lot in an emergency.)

Anyway, because this alarm system was so half-assedly installed in my car, I had a heck of a time programming this new remote for it. I’m writing this blog post to share my lessons with other people who might be googling for help.

Getting the remote. The Sidewinder is one of a large line of security systems and other car electronics manufactured by Directed Electronics. Many of their systems use the same remote transmitters, and DEI remotes come in two flavors, which I’ll call annoying and reasonable. The annoying remotes use a combined lock/unlock button, which means you press the same button when approaching the car in a parking lot as you do when leaving it in your driveway. The reasonable remotes have separate lock and unlock buttons, like just about every other keyless fob on earth. (The only advantage I can see in the annoying remotes is for people with multiple cars — you could program a single four-button remote to operate up to 4 cars.) My previous remote was a DEI RPN (remote party number) 476T — of the reasonable line. Apparently this remote is old enough that their store doesn’t even sell it anymore, but I found one at RadToys Central.

Programming. As you can find on many websites, all DEI alarm systems are programmed for new transceivers in the same basic way: open a door, turn your ignition to ON, press the valet button a number of times to select the function to program, and then, while holding the valet button, press the transceiver buttons you want to use. This is all confirmed with a nice series of chirps and flashes of the status LED.

That’s a nice straightforward process, if your alarm is set up properly. I had no siren, no LED, no valet button, and a disconnected door trigger wire. So I had to hack a few things together:

To convince the alarm I had opened the door, I had to connect the door trigger wire (the VIOLET wire, strangely described as NO FUNCTION in the wiring guide imprinted on the alarm unit) to +12V power. I used an unbent paperclip wrapped in electrical tape to connect violet to red in the big plastic multi-connector at the top of the alarm unit; please be careful if you decide to attempt something similar.

In place of the valet switch, I connected a “reset” button harvested from an old computer case. If you don’t have a spare button, you can probably get away with connecting and disconnecting a jumper, or if you have excellent motor skills, tapping the valet pins with a screwdriver head.

I connected an LED as well, but that didn’t help with anything. A siren would have been nice, so I could hear the confirming chirps.

Anyway, the final programming sequence was this:

  1. Open a door. In other words, bridge VIOLET to RED using insulated wire (tape-covered paperclip).
  2. Turn key to the run position. Luckily the yellow wire was actually connected!
  3. Choose function. Much easier with a button than with a screwdriver, but possible either way.
    • On the Sidewinder 3000ESP, one valet button press lets you program a remote for the annoying single-button behavior. This was stupid-looking and confusing on my remote, which has four buttons, including actual separate lock and unlock buttons. To set the standard four-button program on my Sidewinder 3000ESP, I had to press the button seven times. (That took a while to figure out.)
  4. Transmit. After pressing seven times, hold the valet button and transmit from your remote. I just used the LOCK button, but if you’re setting the standard four-button program you might be able to use any button.
  5. Release. Let go of the valet “button”, disconnect the fake door-open trigger, grab your keys and exit the car. Test your remote. It should work!

One more thing: In addition to the big connector on top of the alarm unit, and the well-labeled connections on the side for the LED, valet button, and lock/unlock, there is an unlabeled connector at the bottom of the unit. Plugged into this I found a two-foot-long wire connected to… nothing. So I disconnected it. Later, I noticed that my transmitter only worked when I was within about 8 feet of the car. Turns out it was the antenna. :)

Good luck!

I sing in a Georgian music choir called Nateli, and we have a performance coming up next Sunday. It’s a 30-40 minute set of songs performed in small (3-6 singer) ensembles. The performance space is rumored to have excellent acoustics for our music and I’m rather looking forward to this concert. If you’re in the area, check it out.

Night Prayer, 30 minutes of chant, prayers and meditation
Sunday, February 11th at 8:30 PM

Episcopal Parish of the Messiah
1900 Commonwealth Ave
Auburndale (Newton) MA
617.312.8328
map

Dec. 13, 2006, SAN FRANCISCO, CA — An unexpected outage at social news site Reddit today is having unintended consequences. At tech companies around the world, morning productivity has surged as geeks habituated to a morning of reddit-inspired web browsing find themselves utterly undistracted, with nothing to do but their jobs.

At Renesys, a company that delivers Internet Intelligence data for competitive intelligence, a hush has fallen over the virtual office. Normally, an IRC (chat) session used by employees echoes reddit, as individuals arrive for work and– choosing the instant reward of procrastination over advancing their personal and corporate success– call out links to wacky videos, stories of technical feats, and pictures of a VW Beetle with a jet engine. Without the fodder of reddit, however, this gang of introverts is compelled to speak mostly of their work.

And how little there is to say. “There’s a big list of links on the bug tracker front page,” said programmer Don Weiden. “I guess I’ll middle-click all the interesting ones so they open in tabs… heh, here’s a good one: clicking ‘Cancel’ causes a core dump. Oh shit, I programmed that. Excuse me for an hour.”

Asked if a competitor news site such as Slashdot or Digg could supplant reddit today, reactions were mixed. “I can’t wait 10 to 14 seconds for a page to load,” said Renesys COO Todd Underwood about Digg, which has a reputation of suffering poor performance due to its popularity. “I’d rather spend 90 seconds bitching about it in IRC.” For software developer BJ Premore, however, the downtime is scarcely an issue. “In all honestly, I check reddit every day or two, and hadn’t noticed the outage yet,” he wrote. BJ is regarded as one of Renesys’ most efficient workers.

EMPLOYEES SHARE THEIR LOSS

United by the disappointment of repeated, unsuccessful reload attempts, workers attempted to cope with their loss by analyzing it. “Look at the dns right now,” typed Underwood. “There are not even any NS records for the reddit.com zone on the servers pointed to by the authoritative .com servers. It’s going to be a long day.”

“I’m shaking a little,” added Premore.

Though reddit continues to be inaccessible as noon approaches, workers are
confident a solution will be found. “In the worst case, it wouldn’t take long to program a brand new reddit,” said Weiden. “I mean, I’ve been dying for an excuse to learn Erlang.”


Renesys is a real company where this blog’s author works. Most– but not all– of the employees quoted here are real, too.

Maybe this would be a good project for DevHouse Boston.

You have a cell phone. But you’re visiting family and don’t have an alarm clock with you. Why not schedule your wake-up calls via the phone?

Or suppose you remember you’ve got to start preparing lunch at 12:45. Why not have an automated reminder service call you?

This is just about the simplest possible VoiceXML service, but it’s still not done well on the web. The closest thing I’ve found is ifbyphone.com, which has basically the right services and business model but an interface that’s about 50% more cumbersome than it needs to be. They’ve taken the approach of offering as many options as possible, and thus it takes a while to find the free 10-day trial. When you call their number to schedule a reminder you have to wait through the greeting, say “wake up calls” (probably more than once), and then choose the day (say “Tuesday” or dial 1, say “Wednesday” or dial 2, etc… you can’t just say “today” or “tomorrow”) and enter or say the time. Then it asks you for your time zone, even though you entered a time zone during website registration. And finally it requires you to choose the phone number, since it’s soooo likely you’ll want to schedule a reminder call to a phone other than the one you’re using.

It should go like this:

IVR: Hello Shimon. Thank you for cal…
me: wake up calls
IVR: When should we call you?
me: today at twelve forty five
IVR: We’ll call you on Tuesday, November 21st at 12:45pm Eastern Standard Time. Hang up now to finish, or say “timezone” or “start over” to make changes. You can also say “note” to add a voice note, or “recurring” to make this a recurring reminder.
me: <click>

Blending prompts together, and allowing revision rather than requiring confirmation, reduces interaction time in half. Blend this with a simple web interface and you’ve got a self-contained, obvious product that I’d wager people wouldn’t mind paying $5/mo for.

Why not just use your cell phone’s built-in alarm or calendar? I think this would be significantly faster to use, and it would have a consistent interface across different phones. But maybe that’s not enough to make this an idea worth pursuing. I’m not sure.

Read the book in PDF format

When I took Physics AP in high school, I made a study guide. As we moved through the syllabus, I’d read a book chapter and review my notes from class, and add to my study guide before each test. At the end of the class, I had a 115-page document that was quite helpful in preparing for the AP exam.

The book is very terse and features lots of equations but only two diagrams. It focuses on presenting and logically connecting the most salient concepts and equations in the Physics AP C coursework, but isn’t intended to be a primary textbook. It also contains some weak jokes; I apologize for any bad writing by 17-year-old self.

I intended from the start to publish the book online, under a Free license. But in the 7 years since I took the exam, it I’ve never gotten around to it. Until now.

Presenting Physics AP in Review:

The book could probably use some tidying up or, if it’s close to useful, a new maintainer who still has an interest in AP Physics. I hope it’s useful to someone!

In a conversation with the Count, I learned a new word:

habernasher (n): one who is in the habit of eating men’s clothing.

Don’t ask. But feel free to suggest your own new made up words!

Over on Reddit, there’s been lots of buzz about Erlang recently. Yet Joel Spolsky didn’t even mention it in a post today about languages for enterprise web apps. This must be because it’s so thoroughly proven, respected, and well-established that you should use it for everything.

After all, I think there are some Swedish phone companies using it for some phone-related apps. And phone-related apps involve zillions of messages per second, so it will definitely be scalable.

Plus I saw this chart where YAWS is red and Apache is green and blue, and red does way better than green and blue. I’m not sure how the test methodology relates to anything you’d actually see in real life, but at least there is quantified evidence that erlang does better than apache at something.

See, the important thing is that you know it’s trustworthy because they made the critical parts so memorable, rather than concentrating on the complex and confusing methodology. After all, what indicates enterprise-readiness better than the existence of an executive summary?

P.S. Someone told me 37signals is developing their next webapp in Erlang. Pass it on!

« Previous PageNext Page »