This week in tech

So for several years now, I’ve had two cameras protecting the front and back of the house. It looks like I got the first one in February 2013. Both cameras were very similar even though they were from different companies – it looked like they’d licensed the firmware from the same source, but one got a much later build of the software. Either that, or being Chinese companies, they probably just ripped each other off.

But both of them had just about every feature I wanted in a camera. They had Pan/Tilt/Zoom, a simple web interface which worked on every browser on every OS I cared about, IR night mode, motion detection alarms that would send you email or ftp pictures to a server, and both wifi and wired ethernet. The one on the front wasn’t near a power source so rather than running power out there, I ran an ethernet cable and did Power Over Ethernet (PoE), but the one in the back was near power but not somewhere I could run ethernet, so it’s transmitting over wifi. Both had a few minor quirks, but for the most part they were exactly what I wanted – I keep a couple of windows open on my monitor showing both video streams and I have an app on my iPad that will do the same. It’s very handy when I’m working to see people coming to the front door because I can’t hear a door bell up in my office. Their biggest flaw was that they were pretty low-resolution (640×480). Unless it’s close up, it would be pretty hard to identify a face at 640×480.

So I’ve been looking for replacements that do everything these ones do, except do it in high def. And I’ve run into a shitload of problems. Evidently the “Server Push Mode” that made these things work on Linux browsers has gone out of fashion or something, because I haven’t found anybody who has it. Even if the screen shots on their downloadable manuals indicates they have it, they don’t. That option is not on the screens you see in the shipping product.

Another problem is that evidently I’ve become incapable of reading product descriptions in detail. I ordered a really nice D-Link camera that did a weird “920P” resolution (somewhere between 1080P and 720P), but which worked on Linux browser. The only problem with it, which I didn’t notice until I was installing it outside, is that it’s not advertised as an outdoor camera. I thought it was. It lasted several months but a rainstorm a few weeks ago seems to have finally killed it. Lesson 1: Check to make sure it’s weatherproof before ordering. I also ordered one that when it arrived it turned out it didn’t do Pan/Tilt/Zoom, even though NewEggs’ search function returned it when I’d specified that as one of the required options. Lesson #2: NewEggs’ search function is crap. I eventually got one from Foscam that was advertised as working with “any standard browser”. It turns out that to them, “any standard browser” means IE or Firefox on Windows 8 or below. Lesson #3: People who write product descriptions are a bunch of liars.

After I returned that one, I got a similar camera from Ipcam Central. Once again, their downloadable manual showed a “Server Push Mode” that was not present in the actual product. Once again, their promise of “Supports Mac OS X” turned out to be a lie – they claim that they will have an application that will be available in a few weeks or months, but I’m not holding my breath. But I decided that since all the cameras seem to have the same problems no matter the vendor, I was going to do my damnedest to see if I could make it work. With with a lot of help from their tech support I’ve got it pretty workable. First they recommended I download some Linux software to do ONVIF – the software is called OpenCVR and it didn’t work for shit. But then they told me the secret undocumented rtsp stream names, and so now I’ve got a VLC window displaying the lower resolution version of the video and audio feed on my monitor (vlc rtsp://admin:password@backcam/12). I tried the high resolution version and it froze up after a while. Not sure if that was due to network problems or what. I’ve also set up a job on my Linux box that uses VLC to continuously grab 10 minute movies into files (vlc rtsp://admin:password@backcam/11 --sout=file/ts:/backup_2/backcam/backcam-$(date +"%Y%m%d%H%M%S").mpg -I dummy --stop-time=600 vlc://quit). I figure that breaking it up into 10 minute chunks will help restart it if it freezes up, and also it will be easier to provide files to the police if it sees anything.

The web interface doesn’t display the actual video (except on Windows), but it does allow me to control the pan/tilt/zoom features and do much of the setup. The only thing it wouldn’t allow me to set up is the motion detection, because it wants visual “zones”, and it won’t display those except on Windows. Fortunately I have a Windows laptop that I hardly ever use that I was able to drag out and dust off to do that one piece of setup. It didn’t work at first because Edge, the new browser in Windows 10 doesn’t support plugins, and it didn’t work at second even after switching back to IE11. Eventually tech support figured out that I needed to tell IE to run in the dreaded “Compatibility mode”. Once I did that I was able to set up the motion detection, and this morning I got emailed a series of pictures of me letting the dogs out for their morning pee. I also got pictures of a few points in the night where nothing happened, but that’s par for the course with these things – even the old cameras sometimes go nuts when it’s raining or snowing and send me hundreds of these emails in a night. As well, each of these motion alarms saved a nice little short movie to the on-board storage of the camera.

Oh yeah, remember how I said that every camera vendor lies? Well, another sort-of lie these guys tell on their web page is they describe the on-board storage as “an SD card”. Except when you ask tech support, there is no way to get to this SD card to remove it or replace it with something bigger. If you can’t replace it, then while calling it “an SD card” might be technically correct, it doesn’t matter to the end user how you implemented the on-board storage. You might as well have called it magnetic core memory for all the good it does me.

But the upshot of all this is that I’ve managed to cobble up a system that works for me. I’ve ordered some PoE adapters, and when it comes I’m going to move this camera to the front door position, and order another one for the back door.

Update: So I moved the camera to the front door, and about 3 hours later the camera started slowly going out of focus, and the focus buttons on the interface don’t work. Tech support remoted in and said “we can make it focus”, so I said “well, if you can make it focus, how about putting it back in focus and leave it like that?”, and then they admitted that they hadn’t made it focus. Fuck.

Update 2: I got the second camera, and replaced the first camera with the second camera, and got it set up nicely. Then I took the first camera and set it up for the WiFi so I can put it in the back yard, and noticed it is now completely in focus. So I guess when I power cycled it last time and did a factory reset, I didn’t leave it off long enough. Fingers cross that it stays that way.

Foscam FI9828W – Don’t buy this POS

I’ve had a security camera on the front door for a couple of years now, and as well as giving a bit of piece of mind at night, it’s also really handy during the day to watch out for delivery people. It was so successful, I decided I wanted another camera to watch the back door and the garage. That was motivated at least in part by the number of garage break-ins we’ve had in our neighborhood and the fact that at least one neighbor was able to give the police some nice pictures of the perp from his security camera.

Unfortunately the company that made the front camera (Airsight) had stopped selling them (it appears they’re back now), so I bought a Wancam camera. It had all the same features as the Airsight (Pan/Tilt/Zoom, controllable through any standard web browser, weather proof, infrared for night vision, motion detection, email, ftp, etc). I liked it at first, and the interface seemed very familiar but after a few weeks I noticed a problem – it needed rebooting at least four or five times a week. And since the power plug is in the garage, it often didn’t get rebooted for a few days, especially in winter. So it’s now sitting in my junk box.

I then bought another camera – I decided this time to get an HD, at least 720P. The camera I’m using up front has only one flaw major flaw – I wish it was better resolution. This one is a D-Link DCS-52222L. Unfortunately, because NewEgg.com’s search function sucks balls, I didn’t noticed that while I specified I wanted an outdoor camera, most of the ones the search returned, including this one, are indoor cameras. It turned out to be damn near perfect, except I’m sure any day now it’s going to succumb to the weather. Also I haven’t figured out how to get the motion detection working – I told it to email me snapshots but instead if emails me a text file.

In preparation for the inevitable, I bought another camera. This one, the Foscam FI9828W, advertised that it was “920p” (which is a non-existent resolution standard, but obviously somewhere between 720P and 1080P) and all the other stuff I wanted, like pan/tilt/zoom, weather proof, and most importantly, “viewable over the internet using standard browsers”.

Well, it turns out that that last one was a complete 100% lie. It only works on Internet Explorer and Firefox on Windows (and on Windows 10, it doesn’t work on the standard browser Edge, and you have to find the “Open in Internet Explorer” menu item) and supposedly on Macintosh. You have to install plugins to make it work, which means it won’t work on Edge and Chrome because they don’t accept plugins, and it won’t work on Linux because they don’t make plugins for it. Now on Linux I can display the actual video using vlc with a rtsp url, but I can’t control the camera. Also I’ve discovered that if I leave it up and running for a few hours, it’s likely to freeze up and then I have to re-open the stream in vlc. The only light at the end of this tunnel is I can view and control the camera with an iOS app. Not as good as just having a browser window open like I do with the Airsight and D-Link (and formerly the Wancam) cameras. Another thing that changes is that with the other three cameras, there was a simple “curl” command I could do to grab a snapshot from the camera. I had that running on my Raspberry Pi to grab snapshots every second and store them in case I needed to review. However, I did find a work-around using “aconv” – avconv -i rtsp://userid:password@192.168.1.16:88/videoMain -r 1 -vsync 1 -qscale 1 -frames 86400 -f image2 backcam%09d.jpg – unfortunately it’s too processor intensive and can’t run on the Raspberry Pi, so I have to run it on my desktop. Or I could have the camera take snapshots at regular intervals and FTP them to the Raspberry Pi. So I guess with these two work-arounds I have a functioning camera, although I’m not happy with it.

And if the blatant lie about “woks on standard browsers” wasn’t enough reason to hate them, here’s some other reasons:

  • The setup for daylight savings time is broken – if you enable daylight savings time, you have to choose the offset, but if you choose 60 minutes it changes the time by two hours, so you have to set it to 30 minutes to get it to offset by an hour.
  • I set up two video streams, with the “sub” stream being lower resolution one, but if you open the “sub” stream using rtsp in vlc, it actually still shows a full resolution stream. The secondary stream works on the D-Link
  • When you set up email, it asks for the sender and one or more recipients. But for some odd reason, it sends a copy of the email to the sender as well. So for the other cameras, I can use the camera name as the sender, but I can’t for this one because it has to be an existing email address.
  • When you set up ftp, you have to give an FTP url like ftp://192.168.1.4/uploads but if you give the trailing slash (like you would expect to do when you’re specifying a directory) it fails with a message that says the login credentials are wrong.
  • If you put the IR LEDs on “Automatic” mode, it doesn’t work. The IR stays off, and consequently the captured images are all black and the motion detection doesn’t work. If you want to see in the dark, you have to manually set it to “Night Mode” and remember to set it back off in the day.

So obviously whoever wrote the user interface was a moron.

New video workflow?

I just discovered that Garmin VIRB Edit is available for non-VIRB video. I’ve been looking for a way to overlay data from my GPS onto the video and this might do the trick. I would like to see the same stuff on the movie that I’m looking at during the race, like speed, heart rate, distance and time. I downloaded it last night and did some playing around. It’s pretty rough edged – it’s even worse than iMovie in terms of getting into states that I have no idea how to get out of.

The biggest rough edge is that it won’t touch videos that have a name that ends with .mov, but if you rename them to .mp4 they load just fine. The second biggest is that if your camera breaks a recording session up into a bunch of different files, it will only apply the GPS data to one of them. So what I did last night was I

  1. Appended all my movie clips into one big one in Quicktime
  2. Exported that big one.
  3. Renamed it from big.mov to big.mp4
  4. Imported that into VIRB Edit
  5. Exported my GPS data from Garmin Connect as a .GPX file
  6. Imported that into VIRB Edit
  7. Tried to sync the video file and the GPX data
  8. Exported that file from VIRB Edit
  9. Imported that file into iMovie and started editing

Unfortunately when I looked at it in iMovie, I realized the GPX data wasn’t synced exactly right. So I went back to VIRB Edit, and found that when I tried to fix the sync it instead just lost its mind and decided that I was going 0 mph with 0 heart beats for the entire movie. So I don’t know what to do about that except maybe throw the whole thing away and start again.

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.