Book reviews for March 2016
The Girl on the Train by Paula Hawkins
2/5
I found it hard to care for anyone in this book. Pedestrian mystery.
2/5
I found it hard to care for anyone in this book. Pedestrian mystery.
A mosaic timelapse looking over the Pacific from West Portal, San Francisco (a simultaneous timelapse of 225 days from mid 2015 to early 2016).
This is the second in a series of videos made from frames I captured from a Nest cam using Google Apps Script. Music from JukeDeck.
(Published to the Fediverse as: West Portal Mosaic Timelapse #timelapse #westportal #mosaic #video Mosaic timelapse made from 225 days of footage from West Portal, San Francisco looking out over the Pacific. )
I've been feeding webcam images into the Google Cloud Vision API for a few weeks now so I thought I'd take a look at what it thinks it can see. The image above shows every label returned from the API with my confidence going from the bottom to the top and Google's confidence going from left to right (so the top right hand corner contains labels that we both agree on).
Google is super-confident that it has seen a location. Can't really argue with it there.
It's more confident that it has seen an ice hotel than a sunrise (and it has seen a lot of sunrises at this point). Maybe I need to explore the Outer Sunset more.
Google is 60.96% confident that it has seen a ballistic missile submarine. I suppose that's plausible, I do have an ocean view but it's rather far away and unless there was an emergency blow that didn't make the news I'm going to have to call bullshit on that one. It's 72.66% confident that an Aston Martin DB9 went past which is pretty specific. Possibly a helicopter slung delivery?
Maybe I'm sending basically the same image in too many times and the poor system is going quietly mad and throwing out increasingly desperate guesses. Probably I've just learned that I should use 80%+ as my confidence threshold before triggering an email...
(Published to the Fediverse as: Google Cloud Vision Sightings #etc #google #vision Things that Google Cloud Vision claims to have seen from my San Francisco web cam (including an ice hotel and a ballistic missile submarine), )
It's the start of Spring, unless you're equatorially challenged in which case welcome to Autumn.
Rendered in Catfood Earth (Windows, Android).
(Published to the Fediverse as: Vernal Equinox 2016 #code #earth #equinox #spring #autumn #vernal The exact moment of Vernal Equinox 2016 as rendered in Catfood Earth. )
Need help with a Catfood Software product? Please leave a comment below.
(Published to the Fediverse as: Catfood Software Support #code #software #support #earth #webcamsaver #pdfscan #fortune #weather #mail #nosleep #camsaver #ftp #cookies The fastest way to get support for Catfood Software is to leave a comment on this post. Includes Catfood Earth and WebCamSaver. )
I've struggled for a while with Chromecast. The idea is great. I love using my phone rather than a remote. I like the idea of being able to cast any screen or browser tab in principle (in practice I think I've only done this once). I like the nice curated background pictures and that I could get round to using my own photos one day.
But here is how it works in practice. Fire up app. Select Chromecast icon and watch it go through the motions of connecting. Nothing streams. Reboot Chromecast, phone and router. Hard reset Chromecast and configure from scratch again. Reboot everything some more. Disconnect house from grid for ten minutes and switch off gas mains as well to be on the safe side. Finally, streaming! Repeat.
It's miserable. With both a Chromecast and a Chromecast 2 (which I really hoped might fix the problem). I've been through two different routers and I've tried a bunch of different settings but nothing seems to make the thing work. I even renamed the device to remove spaces.
For a while I considered buying an OnHub. Maybe Google's router would work with Chromecast? But it can't be bothered with Ethernet ports for some reason and so I'd need a new switch and then I'd probably need another power port and how important is John Oliver right now anyway (very)?
As much as I want Chromecast to work I've binned the wretched thing and bought an Amazon Fire TV Stick. Same basic principle but with apps on the device rather than your phone and a remote control.
I'd rather not have another remote, but it works instantly and without risking an aneurysm. It's also available with voice control which lets you both search for programs and trigger Alexa (my typical morning is asking Alexa for a flash briefing and then sobbing quietly when a daughter yells 'Alexa, stop... Alexa, play Gangnam Style').
My only gripe so far is that the voice search doesn't search inside non-Amazon apps (Netflix, HBO, etc).
(Published to the Fediverse as: Chromecast won't connect to wifi - finally found the fix #etc #amazon #google #firetv #chromecast After trying hard to make Chromecast work with my WiFi the only fix that works is moving to Amazon Fire (which manages to Just Work). )
I'm over social media - the Facebook page for this blog is a hopeless way to reach people and I removed the slow horrible sharing widgets a while ago. But I have this nagging suspicion that RSS is a super-niche activity for techno-libertarians harking back to the good old days of the Internet with open protocols and wall-free gardens and isn't entirely up to snuff either. So I'm going to experiment for a monthly email list for people who vaguely follow the blog or use Catfood Software products but don't quite manage to come back here every day to check for updates. Sign up here.
Why? Excellent question. The rules for blogs are to pick a narrow topic of interest, know your audience and do keyword research and drop SEO honeypot bombs to draw that audience in. I did that for Catfood Software but this isn't that kind of blog. It's a random collection of my hobbies and interests. So if you're not sure read through the Featured section in the side bar to get a preview.
I write a lot of code so what you'll get for sure is updates from Catfood Software and other occasional side projects. When I struggle with the process or discover something I write about that as well - these posts are more interesting to other developers and less exciting if you just want your desktop wallpaper (or Android phone) to look awesome. I love to make videos that don't have me in as well, mainly complicated time-lapses so you'll find a lot of those too. Also hikes in and around the San Francisco Bay Area. Occasionally politics.
If that works for you and you're not an RSS type then please join and let me know how I'm doing.
California may end tyrannical daylight savings
Yes, I'd vote for this. Please do it.
4/5
Very good, I was rather hoping Howey was a one hit wonder but now I see that I'm going to have to read the whole cannon.
4/5
Finally the #2 Hole has been translated. It's a good one. Sad because it's saying goodbye all over again.
4/5
Starts with a black guy called Me in the Supreme Court for slavery and gets progressively more weird and funny from there. Excellent.
5/5
Stonking collection of perfect short stories. After I finished each one I was gutted that it wasn't turned into a whole book.
Nest (previously DropCam) can email you when it detects activity but that gets boring quickly. How about an email only when it sees something totally new?
The script below downloads a frame from a web cam and then calls the Google Cloud Vision API to label features. It keeps a record of everything that has previously been seen and only sends an email when a new feature is detected. You could easily tweak this to email on a specific feature (i.e. every time your dog is spotted), or to count the number of times a feature appears. I'm using a Nest cam but any security camera that has a publicly visible image download URL will work.
There is a bit of setup to get this working. Create a new Apps Script project in Google Drive and paste the code above in. You'll need to provide you own values for the three variables at the top.
OAuthCreds is the contents of the JSON format private key file for a Google Developer Console project. Go to the console, create a new project and enable the Cloud Vision API. You'll also need to enable billing (more on this below) - a trial account will work fine for this. Once the API is enabled create a service account under Credentials and download the JSON file. Just paste the contents of this into the script.
That's the hard part over. Now enter the URL of the image to monitor (see this post for instructions on finding this for a Nest / DropCam device) as MonitorImageUrl and your email address for SendEmailTo.
One last thing - follow the instructions here to reference the OAuth2 for Apps Script library.
Once this is all done run the script (the main() function) and authorize it. You should get an email with a picture attached and a list of the labels detected together with a confidence score from 0 to 1. If this doesn't happen check the logs (under the View menu).
You can now schedule the script to run repeatedly (Resources -> Current project's triggers). You get up to 1,000 units a month for free so once an hour should be safe. If you need more frequent updates check the Cloud Vision pricing guide for details.
After a few runs you should only get an email when something new is detected. If you're seeing too many wild guesses then add a filter on the score to exclude low confidence features.
Enjoy, and leave a comment if you have problems (or modify this in interesting ways).
(Published to the Fediverse as: Get an email when your security camera sees something new (Apps Script + Cloud Vision) #code #drive #google #dropcam #nest #appsscript #vision How to use Apps Script and the Google Cloud Vision API to monitor a webcam and send email when it spots something new )
Download a Sharepoint File with GraphServiceClient (Microsoft Graph API)
Accessing Printer Press ESC to cancel
Export Google Fit Daily Steps, Weight and Distance to a Google Sheet
International Date Line Longitude, Latitude Coordinates
Monitor page index status with Google Sheets, Apps Script and the Google Search Console API
Sending email via GMail in C#/.NET using SmtpClient
Scanning from the ADF using WIA in C#
Enable GZIP compression for Amazon S3 hosted website in CloudFront
Is it safe to open securedoc.html (Cisco Registered Envelope)?