Not to be anal but (any number of dogs...)

Updated on Monday, February 15, 2021

Not to be anal but (any number of dogs...)

Google is going to start ranking pages based on facts. I'm game. This MUNI sign has always bothered me.

The highest capacity vehicle in the MUNI fleet has to be a two-car light rail vehicle. Capacity 436 people. The average weight of a person is 185 pounds. So we're looking at 80,660 pounds per rush hour train.

The lightest dog is a 1.4 pound Chihuahua named Ducky.

So at the absolute outside with no other passengers the limit is 57,614 dogs. I'm going to have to make some stickers...

Capture DropCam (Nest Cam) frames to Google Drive

Updated on Sunday, February 9, 2020

Capture DropCam frames to Google Drive

Updated June 17, 2019: This is now broken for Nest/DropCam devices. It will still work for anything that has a web accessible image URL. Clint points out in the comments below that you can fix up the URL for Nest cams but it looks like you need to be logged into nest.com so it doesn't work from Apps Script. Google is also retiring Works with Nest because they're "...reimagining how technology and services can deliver simple and helpful experiences in your home..." which apparently translates to only working with Google Assistant. I'll update this post if I figure out a work around.

Here's an easy way to capture frames from a DropCam to Google Drive. This only works if you have a public feed for your DropCam.

Go to the public page for your DropCam (Settings -> Public -> Short URL Link) and then view source for that page. Near the top you can find the still image URL for your DropCam:

<meta property="og:image" content="https://nexusapi.dropcam.com/get_image?uuid=12345&height=200" />

In Google Drive create a new Apps Script (If you don't already have Apps Script you can find it via Connect more apps...). Paste in the following code:

Replace the uuid parameter in the URL with the uuid from the still image URL for your DropCam. Note that the height parameter in the script has been changed to 1280 to get the largest possible image. A timestamp is being used to add a random cache busting parameter to the still image URL and is also used as the filename for the image.

The script will save the images to a folder called DCFrames - either create this folder in your drive or change this parameter to the desired folder.

Run the script and check that it's working. If everything looks good go to Resources -> Current project's triggers in the Apps Script editor. You can now set up a timer to save a frame as frequently as every minute (which I'm using to collect frames to make a daily time lapse movie). You can also ask Apps Script to send you an email when the script fails.

Updated 2015-07-01: DropCam is now Nest Cam - assuming that Nest keep the API going everything should keep working as above for both types of camera.

Leaving Chrome

Updated on Wednesday, February 22, 2017

Leaving Chrome

My Chromebook was stolen over the weekend. The good news is that I didn't lose anything given the cloud only nature of the device. The bad news was that I didn't really want to get a new one.

I loved the cost and the boot speed and being able to do nearly everything I needed to with a browser-in-a-box.

But the nearly was a deal breaker. I sometimes need to VPN and the Chromebook wouldn't. It just wasn't compatible with our flavor of VPN and I didn't want to buy another Chromebook on the off chance that Google would eventually fix this. I also have to use Skype (I'd rather not) and this isn't really possible on the Chromebook either. Imo.im was good while it lasted. IM+ is horrible.

I've abandoned the Chrome dream and picked up a Surface Pro 3.

(Read the full Chromebook adventure: Part 1: Going Chrome, Part 2: Staying Chrome? and Part 3: Leaving Chrome)

Google PageSpeed Insights hates Google Analytics

Updated on Wednesday, February 22, 2017

Google PageSpeed Insights hates Google Analytics

I so want to get to 100% on Google PageSpeed Insights but I'm getting dinged for loading Google Analytics!

Tedious Feed Update

Updated on Wednesday, February 22, 2017

Tedious Feed Update

If you subscribe to I Thought He Came With You via RSS please switch to this new feed and delete the old one.

Longer version... this blog has used FeedBurner for ever but I managed to get locked out a couple of years ago. I upgraded to Google Apps for Domains and part of the process was transitioning various services over to a temporary account and then back to the new one. Most of them made it over but FeedBurner got orphaned somehow.

I've emailed, left forum posts etc but no luck. Google doesn't really do customer service so despite actually paying them I seem to be out of luck. Also, Google hates RSS so FeedBurner probably isn't the right long term tool even if I could get back into my account.

I've been meaning to do something about this for a while but as it was working it wasn't a top priority. This changed when my blog got hacked a couple of times in a row - I'm not sure if it was the software (I'd been using BlogEngine.net) or my hosting provider but it's painful to fix and I decided I needed a change. I Thought I Came From You is now running on a home grown platform. It should be more stable, faster (some quick benchmarking suggests twice as fast so far) and not get hacked quite so often.

So switch to http://ithoughthecamewithyou.com/syndication.axd for updates (I can't recommend Feedly highly enough) and delete the old feed. If you have any problems leave a comment below or send me an email.

Staying Chrome?

Updated on Thursday, November 12, 2015

Staying Chrome?

I've been using my Samsung Chromebook at work for around ten months now. It's not my main computer but it's a meeting survival powerhouse for email, instant messaging and note taking. The battery lasts approximately forever, it boots immediately and the decent keyboard and trackpad are just miles ahead of fumbling around on a tablet.

There are two problems for me with the Chrome universe. One will probably get fixed, one could be a deal breaker.

The first issue is VPN support. Apparently we use some sort of old, fiddly Cisco VPN that ChromeOS simply won't talk to. I filed Issue 261241 in the Chromium bug tracker and hopefully it will get fixed soon. If you're struggling with the same thing please star the bug report.

I can work around the VPN problem by using LogMeIn or Chrome Remote Desktop. But I can't live long without Skype. Actually I'd be perfectly happy to never use Skype again but my company runs on about fifty thousand Skype chats. I used Imo.IM for a while but they were forced to drop Skype support. Right now I'm using IM+ which as far as I'm aware is the only working Skype option for a Chromebook (please tell me if I'm wrong) but it's buggy and can't restore a connection between sessions. I either need to find a way to kill Skype at work or wait for (or write) a better web-only client.

Probably worth sticking it out, Gartner reports a 8.6% fall in PC sales but predicts Chromebooks growing to over 12 million units by 2016.

(Read the full Chromebook adventure: Part 1: Going Chrome, Part 2: Staying Chrome? and Part 3: Leaving Chrome)

(Image by he4rtofcourage, CC).

Google Spreadsheets API and Column Names

Updated on Sunday, May 2, 2021

Google Spreadsheets API and Column Names

I had a play with the Google Spreadsheets API recently to feed in some data from a C# application. The getting started guide is great and I was authenticated and adding dummy data in no time. But as soon as I started to work with real data I got:

"The remote server returned an error: (400) Bad Request."

And digging deeper into the response:

"We're sorry, a server error occurred. Please wait a bit and try reloading your spreadsheet."

The original sample code still worked so it didn't seem like any sort of temporary glitch as the message suggests. After much hair torn it turns out I was getting this error because I had used the literal column names from my spreadsheet. The API expects them to be lower case with spaces removed. If not columns match you get the unhelpful error above, if at least one column matches you get a successful insert with some missing data.

Error messages are one of the hardest parts of an API to get right. If you're not very detailed then what seems obvious to you can leave your developers stumped.

Hope this helps someone else...

Finally Gmail

Updated on Thursday, November 12, 2015

Gmail is taking the compose window out of the corner of your window.

Previously

Google Maps Ate My Battery

Updated on Friday, May 22, 2020

Google Maps Battery Usage

I've been slowly becoming aware that Google Maps is eating up a lot of the power on my phone (an HTC One X with Android 4.1). Yesterday as my battery was near death I saw it was up to 25% of total usage on a day when I hadn't even run the app. Something had to give. I'd already turned off Google Latitude a few months ago so the culprit had to be whatever secret-squirrel location sniffing the phone does behind my back.

Android Location Options

Android has about a million different incomprehensible weasily location options. At least in 4.1, I've seen some evidence that 4.2 is a bit better. The bargain with 'Google's location service' seems to be that if you don't send your data to them they won't send it to you. At least I think so, the description changes when you check or uncheck the option. I've had this off for today and my battery has a lot more juice. It means that Google Now doesn't work, but so far that doesn't seem to be a loss. It might hurt other apps as well, but so far I care more about not having a dead phone at the end of the day.

Chiroopractoor

Updated on Thursday, November 12, 2015

Chiroopractoor

Google's use crime of a new compose window is going to become compulsory soon.

I suspect this is because it will soon be revealed that Google is rolling out a chain of high street Chiropractic facilities to treat the crick in everyone's neck from composing email in the bottom right hand corner of one's screen.

Either that or it's a bid for mobile dominance by forcing PC users to work in mobile screen sized portions of their screen until you just give up and use your phone.