Speaking of switching

A few days ago, I got our long awaited new internet service from Greenlight Networks. This is fiber to the home, and I got the top tier, which advertises 1000Mbps down and 100Mbps up. I’m not getting quite that advertised speed, but what I am getting is pretty amazing.

This is on my very busy home network, no attempt to shut down anything using the net heavily to increase the speed. At other times I’ve seen downloads over 450Mbps and uploads closer to 80Mbps.

I worked hard to get this network in our neighborhood, talking it up to anybody I could (and emphasizing that “fast internet speeds will help your resale value” with people who don’t care about fast internet speeds for themselves) and distributing flyers. One day I put flyers on every since door on Windemere Road.

The connection so far seems a little “bursty” – sometimes it will take a few seconds to make a connection, but once it’s connected everything is fast as hell. I was a little disappointed that my favorite 4K YouTube video didn’t play without interruption until I installed a plugin to get more buffer before it started playing. I think that’s a symptom of the burstiness – the extra buffer gets me over the few seconds of slowness before the fast bit starts up again.

Also, because the upload speed is go good, I’m moving some of the web sites I was hosting for free off my colo box back to my home. At the time I made that decision, I thought “hey, I’m paying $80/month for that colo box, that will almost completely offset the cost of GreenLight right there”. But as I was moving stuff, I looked through my bill paying software and couldn’t find any record of my paying for the colo box since last November. And then I checked my email archive, and discovered that several months after the colo facility got bought by Earthlink IT (yeah, I was surprised that Earthlink still exists too) they cancelled the automatic Paypal payment, and when I emailed their support email address to find out why, they bounced my mail because my email address wasn’t in their ticketing system as a valid customer. I guess I was going to wait for them to start billing me, and they never did. So now I’m wondering how I can get that computer back from their colo facility, and if I’m going to be hit with a bill for a year of service if I do so. The thing is, I’m pretty sure I’ve visited the facility to reboot my box when it’s frozen up at least once since the transition to Earthlink started, but I’m not sure if that was before or after they stopped billing me. The box probably has a resale value around half of what I owe them, but on the other hand, I did get the services they haven’t billed me for. Sigh. I should probably do the right thing and contact them to get my billing up to date and the account properly closed out. I anticipate massive headaches.

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.