Switching

Currently, my daily desktop is a big Linux tower. It has two video cards (GT 430 and GT 620) driving three monitors, a 28″ 4K (Acer B286HK) and 2 21″ 1080p Dells. I also have a MacBook Pro (MBP) which is almost as powerful as the Linux tower (same i7 processor, same 16Gb of RAM, bigger SSD).

Some of the weirdness-es of Linux are driving me up the wall, and I’m thinking of switching to using the MBP as my daily machine. I’ve verified that the MBP will drive the 4K monitor through a mini-DisplayPort cable (which plugs into one of the Thunderbolt ports) while driving one of the 21″ Dells through HDMI. I could drop the Linux box down to one of the 21″ Dells (and maybe also a ViewSonic 21″ monitor which is just gathering dust in the corner) and still be able to use it.

There are only a couple of reasons I haven’t done it yet:

  1. I need another keyboard and mouse for the Linux box. I had a junk-box clearing out a year or two ago and I don’t have any spare keyboards or mice right now.
  2. I’d have to move a bunch of hardware around to make room for everything the way I want it, and if it doesn’t work out, I’d have to move it all back.
  3. Every time I needed to take my MBP on work trips, I’d have to disconnect a forest of cables (MiniDP, Ethernet, USB Hub, USB external drive[1], HDMI) and reconnect it all when I got home.
  4. Last time I tried hooking up the 4K to the MBP, every time the display went to sleep it regathered all the windows into the top left corner like it forgot the display was bigger than the built-in and moved them to where they would be on the built-in. I *think* I found a solution for that, but I don’t recall.

If this works out, I will be getting rid of the biggest annoyances of Linux (like the fact that Chrome will play videos on one screen but not on another, or that Youtube will support 4K display in the “default” Flash player but will only support 720p in HTML5) but on the other hand I’ll be losing the biggest advantages of Linux – like “focus follows mouse” (I’m not sure most people would consider it an advantage, but I love it). So I’m not sure if this is 100% going to make me happy, but it’s something I want to at least try.

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.