Phorce Pro laptop bag

A couple of years ago I got over-excited about the possibility of Kickstarter, and I sponsored several hardware devices. What I discovered is that Kickstarting hardware devices is a great way to get a continual stream of excuses delivered to your mailbox, but not so great at getting actual hardware. But a few weeks ago one of the first ones I kickstarted finally delivered a product. It’s the Phorce Pro laptop bag.

The selling point of the bag was that it contains a battery back to keep your devices charged up as you travel. Inside the bag is this bar with three USB ports, and a special port that connects to a transformer and with a special cable that transformer supposedly charges your laptop (and it comes with adapters for a metric buttload of different laptops, although you have to order a MacBook Pro adapter from a third party). There are cable ports to run cables from the USB ports into the special pockets for your phone and tablet, although there doesn’t appear to be a cable port for the laptop pocket.

The pockets for the phone and tablet are inside the main pocket of the bag, and have separate horizontal and vertical zippers so you can access the device either way (although I suspect most people will use the top zipper not the side zipper). Each pocket also has a nice little label inside the pocket. The laptop pocket has an outside zipper, just one which wraps around the corner. It also has the nice little label. The outside zippers have big overlaps (is there a technical term for those?) so that when the zippers are closed you don’t actually see the zip part, only the tab. I guess is to keep casual precipitation out (like a light rain while running from the terminal to the taxi). There is another outside zipped pocket, and the main pocket has another zipper with an accordion panel to make it bigger.

The bag has straps and hidden velcroed pockets so you can transform it from briefcase to messenger bag to backpack. My other laptop bag is a Timbuk2, and it has the same ability, and like the Timbuk2, I suspect I’ll just leave it with the briefcase handles and messenger bag straps out and never use the backpack straps. The Phorce straps and hardware look robust and well made, as well as attractive.

Ok, after enthusing about how beautiful and well made this bag is, I should probably talk about the downsides:

  • The laptop charger on mine doesn’t work. Phorce say they’re sending me a replacement. It’s a new product, so I imagine it’s just teething problems.
  • They tell me that you can’t use the laptop charger while the bag is plugged into the wall. That’s too bad, because I was hoping I could leave the actual laptop charger at home and just use the bag.
  • The “Phorce Loss Prevention” feature that they talk about on their web site only works if you have the Phorce iOS app open. They don’t use proper iOS notifications or background app refresh so that it doesn’t tell you that it’s lost contact with the bag except when you are directly looking at the app. Since I think the time when you’re most likely to walk away from your bag is when you’re distracted by something else, it seems like a useless feature.

But none of those things are show stoppers to me. It’s an awesomely made and beautiful bag, and I can’t wait to use it on my next trip.

Update:
I used it on my recent trip, and it was awesome. I plugged my iPhone and iPad into the bag every night, and on the last day when I found myself without access to a plug for 6+ hours I kept everything topped up with the battery pack. And when I got home, I found that they’d sent me a new battery bar that did everything the original one did and the laptop charger worked. Can’t wait to try that out. And even better, they don’t want the other battery bar back.

How to send a selfie in 1993

I originally posted this on Quora and then it ended up on Forbes. On Quora, it’s gotten over 2,200 upvotes. As I said on Facebook the other day, if I’d known it was going to get this much attention, I would have written it better.

In 1989, I was working for GeoVision, a GIS company in Ottawa. It remains to this day one of the best places I’ve ever worked. At that time I was in charge of the bug fix team, which for most of the time was just me and three other people, but during pre-release times would baloon up to over 30 developers. After that particular crunch, my manager rewarded me by sending me to the Usenix conference in Baltimore.

One of the features at this conference on the “show floor” was a booth where they were taking pictures of every Usenix member for the “FaceSaver” project. They would give you a sheet of stickers with your picture and name and email address and a few other things. A lot of vendors on the floor had give-aways where you had to give your business card to enter, and some enterprising person not affiliated with Usenix was giving away pieces of card stock so you could use these stickers as your business card, and since I wanted one of these give-aways, I lined up for a picture. (I never won any of the give-aways, but I did get a t-shirt that said “VMSucks” on it in exchange for a resume.)

After the conference, I was able to retrieve a digital copy of this picture – Usenix had put it on their FTP server, and because GeoVision wasn’t on the Internet proper but accessed the network through UUCP at UUNet, so I had to access the file by sending email to a email to FTP gateway called “decwrl” and receiving the file back as one or more emails.

The file after being re-assembled consists of a header with some useful information, and then a bunch of hex digits. I haven’t been able to find a full description of the format currently, but this is what it looks like:
FirstName: Paul
LastName: Tomblin
E-mail: geovision!pt
Telephone: 613-722-9518
Company: GeoVision
Address1: 1600 Carling Ave.
Address2:
CityStateZip: Ottawa, ONT/CANADA K1Z 8R7
Date: Jun 13 1989
PicData: 108 128 8
Image: 96 128 8

030305030304050503040304020302030304050B050B0B0B0A0A0B
0B0C0D0C0C0E0E0C0D11100E100D0D0D0E101114120C0601020308
0D130E1E5B6261593526320C181E1E1D1D1C1D1D1E202120211E1E
1E1C1D1C1C1C1C1D1E1D1E20212321232122212121232220202020

In order to view it or print it, I believe I used a program I’d found on the Usenet newsgroup comp.sources.unix. After decoding, it looked like:
pt

Note how small it is. Back then, 108×128 was actually a pretty good resolution – our screens were low resolution, and so were our printers.

Ok, so flash forward a few years. I was no longer working for GeoVision and now I accessed the network using a text-only VT220 terminal hooked up to a 2400 bps modem dialed into the National Capital Freenet. I’d met a woman on the Usenet newsgroup alt.folklore.urban and we’d been conversing a lot, first via email, but later when the stars aligned and the various machine dependencies worked out we’d use chat, ychat or ochat. But usually the various versions of chat wouldn’t talk to each other and so we’d have to take our chances on IRC, which was a pain in the ass because we’d make a channel to talk, but some jerkwad would see Vicki’s name and barge in to try to chat her up in barely passable English.

But things were progressing to the point where we needed to meet. But first Vicki wanted to see a picture of me. I didn’t have any pictures of myself, but I did have this file that I’d saved on my computer at home. I had to upload it to NCF, then I emailed it to her, and somehow she and her geeky friends at work figured out how to decode it. Since she worked at a university, they probably used Gopher to find the software to decode it. But again, they did it on their Ultrix host, and she didn’t have a graphical connection to Ultrix, so the first time she saw it was when it came off the printer. I’ve seen the printout, and it was full page, which is another indication of the change of resolution from those days until now, although it was probably blown up a bit. I warned her beforehand that in the years since the picture, there was less hair and more of everything else.

After seeing that I looked presentable, she did agree to meet me at a neutral location. And after a few other adventures, we’ve now been married for over 17 years.

And that, my children, is how you got a picture of yourself to another geek in another city in the early 1990s. These days, we FaceTime when we’re in different rooms in the same house.

Damn DMARC

So a couple of weeks or months ago, I noticed something odd with the mailing lists I run. People on Yahoo and AOL claimed that they were missing messages, and Gmail was stuffing mailing list messages from people on Yahoo or AOL into the Spam folder, even though I’d received literally hundreds of messages from those people on those mailing lists in the past.

After investigating, it turns out that both Yahoo and AOL had turned on an anti-spam feature called “DMARC”. Basically what it meant if a message came with a From line saying it was from either of those, but not coming from an approved mail sender, they were asking the rest of the net to treat it as spam. Gmail honored the DMARC request by putting it in the Spam folder, but Yahoo and AOL and some other ISPs were just bouncing the messages or throwing them away.

This DMARC was obviously a huge problem for mailing lists, because what they do is they accept an email from a person, and then send out the message to all the members of the mailing list, and most of them use the person’s email address in the From line of the mailing list message. This breaks under DMARC, because if my mailing list server recieved an email from joe.blow@yahoo and sends out a message to the mailing list members with a From: joe.blow@yahoo, then all those mail servers that implement DMARC are going to see that I’m not designated by yahoo as a valid sender of yahoo email, and they’re going to drop it.

The developers of the Mailman mailing list software were quick to offer some solutions. First they issued 2.1.16, which had a quick and dirty work-around, and then they rolled out 2.1.18, which had what I think is a much better solution. But my problem is that my mailing list server is pure Debian Stable, and I want to only install packages, not get into the hassle of installing things from source and then having to monitor if things are updated. So I waited for 2.1.18 to get backported to Debian Stable (which uses 2.1.15). I put in request tickets to get it backported. They never did. Instead, they made it a package in Debian Testing, which is less stable.

So I did some googling and discovered something called “apt pinning” that would allow me to install some Debian Testing packages on my Debian Stable system. I tried it, and it wanted to drag in a new version of python, which wanted to drag in a new version of libc, and so on. That’s just stupid – the minimum required python for 2.1.18 is exactly the same as the minimum required python for 2.1.15. Whoever set up the .deb was a little over zealous in the requirements section.

I did not particularly want to drag in unstable versions of the very core libraries of a Linux system for no reason, so my next possibility was to install it from source. That was more complicated than it should have been, but relatively painless. First I tried following the instructions that Bill Bradford pointed me at. Unfortunately, immediately it told me that “Distutils is not available or is incomplete for /usr/bin/python” and “be sure to install the -devel package”. Well, unfortunately there isn’t a “python-devel” package. I looked at the script that configure was using to determine what it was looking for, and the problem was a missing Python.h in /usr/include/python2.7/. A bit of searching, and I discovered that this was installed by a package called “python2.7-dev” – so close, but so far from the “python-devel” I had been searching for. After that, I discovered I had to install the “make” program (like I said, this was a pure server system and I hadn’t been building software on it before) and I did my “make install”. Mail seemed to flow, but I couldn’t access the web interface. Bill suggested running the “check_perms -f”, which found and fixed 26 permissions problems, but still things weren’t working. I compared the perms on a few directories between this installation and my last backup, and discovered that neither the installation program nor check_perms had noticed that the cgi-scripts in the /usr/lib/cgi-bin/mailman directory were setgid “root” instead of setgid “list”. I fixed that, and everything started to work.

Now I wanted to test whether the new “dmarc_moderation_action” setting that 2.1.18 provided would actually fix the problem. So I changed the setting on one of my mailing lists, and emailed a guy on yahoo who was on the mailing list to see if he could test it for me. Unfortunately he wasn’t around, so the next morning I bit the bullet and created a yahoo mail account and added it to that list. I tried a post by this user to the list, and it did the right thing (changed the From address to the list address, but used the Yahoo’s person name part in the person name part), and testing that gmail didn’t stuff it in the Spam folder. I made sure it doesn’t do that with non-DMARC addresses like gmail. And then I made that setting change to all my lists.

Finger crossed, and hope that there aren’t too many more updates I have to apply before a 2.1.18 or later Mailman shows up in Debian Stable.

A tale of three GPS/Heart Rate devices

As a kayak racer and a geek, I’m obsessed with numbers, data, tracking stuff. So of course when I’m paddling, I want a device that tells me my speed, time, distance, heart rate, and that will lead me through interval workouts, showing me distance/time remaining in the current segment, how many segments remaining. It also needs to be waterproof and hold a charge for a while.

When I first got a device, I followed the advice of many of my teammates and bought a Garmin Forerunner 301. It was an excellent device for the job – it did every one of my requirements I listed above, and more. Unlike just about every other device on the market it wasn’t a tiny little watch and it had the biggest display of any of them, which is important for kayaking because when you’re paddling you want the device mounted on the front of the cockpit or on your foot strap in a surf ski. It had 3 or 4 pre-configured screens and one customizable one, and when I decided I wanted even more data than I could fit on the customizable screen, I could set it to switch between the screens every few seconds. It was so perfect that when the first one stopped being able to upload to the computer, I decided that in spite of the fact they discontinued it, rather than spending $75 to have Garmin refurbish it, I’d pay $100 to buy one of their clearance ones.

There was only one flaw in the 301 – there was a shitty little rubber gasket that covered the USB port, and it was damn near impossible to get it back on. which meant that after a couple of days in the salt water in Tarifa, the USB port corroded and I couldn’t charge it any more.

So I decided at that point to buy a new Forerunner 310XT. It wasn’t quite as big a display as the 301, but it transferred via wireless and there wasn’t a rust-prone hole in the body. The 310XT has all the features I liked about the 301, but with a few nice extras – you can configure how many screens you have, how many fields on each, and what is in each field. I’ve currently got it configured with 3 screens, with three fields on each. The bottom two always show speed and distance, and the top varies between time, heart rate and lap time (and I’m thinking of getting rid of the lap time screen). One slight downside is that when I’m doing an interval workout, at the end of the interval it doesn’t give as much info on your last interval as the 301. When you finish a distance interval, the 301 tells you your time for that distance, but the 310XT doesn’t.

Unfortunately when it arrived it had two major faults:

  • If was really inconsistent about the wireless transfer – it would usually require me to re-pair the device every time I did a transfer. It didn’t help that just about the time I got it Garmin was recommending people switch from the “ANT+ Agent” to “Garmin Express”, and Garmin Express on the Mac was completely broken.
  • The heart rate monitoring was not reliable. I would put it on, and it wouldn’t show my heart rate until 5 or 6 minutes into my workout.

Garmin eventually responded to my complaints on their support site, on twitter and on this blog by sending me a refurb Forerunner 910XT to replace my 310XT. A 910XT is basically a 310XT but with some extra features for swimmers and cyclists, so the changes didn’t really affect me. But it did start transferring data to my computer reliably, so that was a nice thing.

But the problems with the heart rate continued. I tried using electrolyte gel to try to fix the “won’t start working until 5 minutes into the workout”, and that mostly worked. Except when I used gel, I’d discover that some minutes into the workout, usually an hour or more, it would start flaking out. My heart rate would flash and come back, but for the rest of the workout it would just start ticking down, lower and lower numbers every minute no matter what I was doing. I’d find myself in the middle of a flat-out 1000m “hard piece” in an interval workout and it would be showing my heart rate as 37bpm. I couldn’t reach 37bpm in a coma. Other people on the team had told me they used the electrolyte gel during cold weather because they weren’t producing enough sweat, and I’d never had a problem with the 301, so I was hoping to stop using the gel during the warmer weather, but without it I was getting the “no reading for 5 minutes” *and* getting the “ticking down after an hour” problems.

Again, I contacted Garmin through every method available to me, and the first response I got was just “oh, you’re wearing it wrong”. So I tried everything they suggested (wearing it to one side or the other, above the ribs, below the ribs, on my back), and one thing they didn’t suggest (I shaved my chest hair in a strip where I wear the heart rate strap), but to no avail.

At this point I was getting nervous, because I have my first race of the season this weekend and it looked like I wasn’t going to have a reliable heart rate reading during it. Desperate times call for desperate measures, so I ordered a Polar RC3 GPS.

The Polar RC3 arrived and right out of the box, it started reading my heart rate immediately, with no hesitation and no wait for me to start sweating. But unfortunately I soon discovered it had some severe drawbacks compared to the Garmin. The screens are not configurable at all. There doesn’t seem to be any way to make it cycle between the screens – that’s probably not a problem for runners and cyclists because they have more use of their hands, but that’s almost unforgivable for kayaking. I couldn’t find any way to set up an interval workout the way I wanted to set it up – there seemed to be a mode where it would set up some training according to their recommendations, but not to your coach’s recommendations. The weirdest bit of inflexibility is the color – they sell two different wristband colors. In all the pictures, you see the black wristband pictured with dark letters on a light background, and the orange wristband pictured with light(ish) letters on a dark background, but I thought that was just a stylistic choice. I picked the orange wristband because I figured higher visibility is better for finding it if you lose it. But it turns out that you can’t actually switch it from light on dark to dark on light – the color combination is set in the factory according to the wristband. You can bet it’s just one configuration option in the factory settings, so why they didn’t expose it to the users is just bizarre. Oh, and it also turns out it’s only rated IP5 instead of IP7 so you’re not supposed to immerse it.

So I wasn’t thrilled with the Polar. But since I was determined to have my heart rate for this upcoming race, I thought I was stuck with it. But then my step-daughter Stevie forwarded me an article where a guy who writes reviews of fitness equipment discovered that using a Polar strap (just the fabric and rubber part) with a Garmin transmitter (the part that clips onto the strap) solves a bunch of people’s problems with Garmin heart rates. And so I tried it and my Forerunner started registering my heart rate immediately. I went out and did an hour long workout, and it kept registering my heart rate with no cutouts and no ticking down. Nice!

So I’m going to pass the Polar onto somebody who runs, keeping the strap for myself. Garmin eventually said they were going to send me a new strap, and it’s supposed to arrive today or tomorrow, but I’m thinking I might go with the Polar strap for the race because I’m not planning any more long workouts between now and the race and I don’t want to risk having the same problems.

Spoke too soon.

Update on this post about my Garmin Forerunner:

I just tried it again, and the god damned thing did the same things as before – it took almost exactly 5 minutes into a workout to start showing my heart rate. After the workout, I waited until I had recovered and turned off the GPS and turned it back on, and again, it says “HR Monitor Detected” but no heart rate showing even after twenty minutes. I tried changing the battery in the heart rate monitor strap, no change. Dammit. Time to try some electrolyte gel, I guess.