Links for December 2023

Updated on Tuesday, December 5, 2023

3D Printing a Window Mount for a Google Nest Indoor Wired Gen 2 Camera

3D Printing a Window Mount for a Google Nest Indoor Wired Gen 2 Camera

Having sworn off Google Nest I just ended up with two more cameras. I didn't pay for them. Google has announced that the original DropCam units are no longer supported. Rather than just knife me in the kidneys like the rest of the smart home industry they provided free replacements.

I stick these in a window looking out. I learned this the hard way after a Nest Outdoor was immediately cut from its secure wiring and stolen. And then a second one. The police thought this was hilarious and whoever stole them is/are now enjoying worthless lumps of plastic. The DropCam was nicely designed to clip out of its mount and into whatever accessory grabbed your fancy. The Google Nest Cam Indoor Wired Gen 2 (snappy name) has a heavy and barely articulated base that makes it worthless for many applications. It also doesn't look like it will detach.

There doesn't seem to be any elegant solution here so I came up with a brutal one.

Step 1: Hacksaw. Just cut off that base as close to the camera as possible.

Step 2: A chute to introduce the camera to the window at a reasonable angle and block indoor reflections. This gets attached to the window with strong double sided tape.

Here's the OpenSCAD code for the window mount:

There is also an STL file on thingiverse.

One more horrible hack to confess to. My filament kept getting tangled while printing this. I have it on an under-counter spool and I think it's just too loose so the printer pulls out more slack than it needs and then gets in a mess. Seems like it should be a common problem but all the advice I could find was worthless. I wrapped the spool with kitchen towel until I created some friction but with enough give that the 3D printer could ingest the filament. There is probably a better answer with a more expensive spool that has some tension built in, but this was enough to get the part to print for me.

Add your comment...

Related Posts

You Might Also Like

(All Etc Posts)

(Published to the Fediverse as: 3D Printing a Window Mount for a Google Nest Indoor Wired Gen 2 Camera #etc #3dprint #google #nest #thingiverse How to 3D print a reflection blocking window mount for a Google Nest Cam (Gen 2) )

Links for December 2022

Updated on Saturday, December 31, 2022

HBR on the Wrong Patent Reform

Patent Reform

The Harvard Business Review has a curious article this week by Paul R. Michel: Big Tech Has a Patent Violation Problem. The thrust of it is that we should not reform patent law to make it easier to invalidate patents because:

"If they succeed in weakening America’s intellectual property system, it could be devastating for thousands of small, innovative startups — with disastrous consequences for the economy as a whole."

Sounds bad, and attacking big tech is a great way to make you look like a populist. But as a small, innovative startup founder and worker I know that this is exactly the wrong way round. Google etc can easily afford to fend off patent litigation and deal with the consequences when a lawsuit occasionally breaks the wrong way. A fine after all is just a price. It's the startups that can't afford to fight off an infringement lawsuit, or pay to file a patent for every other line of code on the off chance that it could become a weapon one day.

So who is Paul R. Michel? HBR says:

"Paul R. Michel (Ret.) served on the United States Court of Appeals for the Federal Circuit from 1988 to his retirement in 2010, and as its chief judge from 2004 to 2010."

But fails to disclose that he's currently listed as a member of the Intellectual Property Owners Education Foundation and:

"Judge Michel also consults for law firms and their clients in intellectual property litigations, conducting moot courts, mock trials, case evaluations, editing briefs, advising on strategy and providing mediation and arbitration services."

Which doesn't mean that he shouldn't express his opinion in HBR but does color that opinion a little in my view. If nothing else the current system is an all you can eat buffet for IP lawyers.

HBR: please feel free to run this as a counter-argument, the best way to fix the patent system is to stop examining them altogether as I proposed nearly twelve years ago.

Add your comment...

Related Posts

You Might Also Like

(All Politics Posts)

(Published to the Fediverse as: HBR on the Wrong Patent Reform #politics #patents #google Paul R. Michel in the Harvard Business Review proposes maintaining the status quo on Patents. My suggestion is a little more radical... )

BBC My Sounds, hiding podcasts behind a 'Beware of the Leopard' sign.

Updated on Friday, June 10, 2022

BBC My Sounds, hiding podcasts behind a 'Beware of the Leopard' sign.

I just want to listen to Friday Night Comedy on Radio 4.

It used to be the case that this was safely subscribed in my podcast app (I use Podkicker Pro) and so each new episode would download to my feed when released.

The BBC has decided to fix the problem of me getting the program I want to listen to automatically and conveniently. If I want my comedy I have to install My Sounds. When Spotify tried this with Science Vs I just stopped listening. I have plenty of other science podcasts but The Now Show and the News Quiz are irreplaceable. So maybe I could cope with one walled garden.

My Sounds says it will notify you when new episodes are available. It does not.

My Sounds has a My Sounds tab which lists Latest programs. I'm writing this on April 2 and the most recent episode of Friday Night Comedy is from March 25.

BBC My Sounds, hiding podcasts behind a 'Beware of the Leopard' sign.

Only if I go into Subscribed, and then the program page for Friday Night Comedy does it finally admit that there is an episode from April 1.

BBC My Sounds, hiding podcasts behind a 'Beware of the Leopard' sign.

So I'm forced to install an app that not only fails to notify me of new episodes of subscribed programs but actively hides them in the basement behind a beware of the leopard sign. BBC, maybe get the app working before forcing me into it? I would rather pay to subscribe to an RSS feed than deal with My Sounds.

I'd take the time to leave a one star review, but in its infinite wisdom Google doesn't allow paying customers to leave app reviews.

Updated 2022-05-06 11:32:

BBC My Sounds, hiding podcasts behind a 'Beware of the Leopard' sign.

Having been forced into the excreable BBC My Sounds at least it supports downloading an episode to listen to on the plane right?

Updated 2022-05-06 11:33:

BBC My Sounds, hiding podcasts behind a 'Beware of the Leopard' sign.

Does it fuck. BBC, please fix this and then try asking nicely?

Add your comment...

Related Posts

You Might Also Like

(All Marketing Posts)

(Published to the Fediverse as: BBC My Sounds, hiding podcasts behind a 'Beware of the Leopard' sign. #marketing #bbc #radio4 #google #podcast BBC My Sounds fails to send notifications, fails to have new episodes on the Latest My Sounds Page and is therefore the worst podcasting app ever. Thanks for forcing us to use it BBC. )

Using the Todoist API to set a due date on the Alexa integration to-do list (with Apps Script)

Updated on Tuesday, December 6, 2022

Todoist Alexa Fix

I love almost everything about Todoist. It's rich enough to scratch all my productivity itches while also being basic enough that I don't spend time gardening my tasks. Also, their Android app is just gorgeous, the exact opposite of Google's ascetic descent into identical lists of black in Material Design.

The one problem is the Alexa integration. You can add tasks to your shopping list or your to do list. The shopping list works great for me. I check it once a week when I do my grocery shopping and everyone knows to just tell Alexa when they need something. The to-do list is a disaster. These go to a separate to-do list project without a due date and I will never ever find them there. Anything else I add will end up in the Inbox with a due date of today so I'm forced to classify and if necessary reschedule it. Which is exactly what I want.

When I say 'Alexa, add x to my to-do list' I want that task to be visible. This integration design flaw could lead to at least one child growing up in an unfamiliar part of town without parents, or worse.

I emailed Todoist and they politely declined to change the way the integration works. After a brief period of steaming I've rolled up my sleeves and fixed it with their API. Which doesn't use OAuth so now I love them even more.

The script is below. Create a new Apps Script project in Google Drive (New and then choose More to find this) and copy in the code. You can get the API token from the bottom of the Integrations section in Todoist settings. Then just click the clock in the Apps Script project and schedule checkForAlexaTasksWithNoDate() to run as often as you need. The script will check the Alexa To-do List project and if anything is in there without a due date it will set it to today to force you to deal with it.

Updated 2022-12-06 21:27:

Todoist have updated their API to v2 (migration guide). There are no breaking changes for this code and so I got it working again by changing v1 to v2 in the API calls. The code above has also been changed to update dates in multiple projects, this is because I started checking for tasks with no due date in the Inbox project as well as Alexa tasks. You can delete the Inbox call if you don't want this behavior (and add additional projects if needed as well).

Add your comment...

More Google Apps Script Projects

(All Code Posts)

(Published to the Fediverse as: Using the Todoist API to set a due date on the Alexa integration to-do list (with Apps Script) #code #appsscript #google #drive #todoist #productivity Script to fix an annoyance with the Todoist Alexa integration where tasks are added without a due date leading them to be overlooked. Requires Google Drive and Todoist. )

Monitor page index status with Google Sheets, Apps Script and the Google Search Console API

Updated on Friday, February 9, 2024

GSC Monitor

Overview

Google just released URL inspection as part of the Search Console API. I check for issues periodically in Search Console but it would be great to just get an email when an issue crops up. The Apps Script project below does just that by monitoring URLs from your sitemap for changes and sending an email whenever anything is detected. The Search Console API has a limit of 2,000 calls per day and Apps Script also imposes a time limit on scripts. The approach I take below assigns a random day of the week to each URL to limit the number checked on each run. Depending on the size of your site you may want to remove this check (or go the other way if you have a large number of URLs to monitor). Follow the steps below to get your own monitoring spreadsheet up and running.

Google Sheet

Create a new spreadsheet in Google Drive and call it anything you want. Rename an empty sheet to 'gsc', this sheet will store the index data. You don't need to make any other changes to this sheet.

Choose Apps Script from the Extensions menu. This will open up the script editor for your spreadsheet. I find that sometimes the editor opens with the wrong account if you're signed into more than one. If that applies to you, check quickly to make sure the right account is selected. With Code.gs selected copy and paste the script below replacing the default function:

There are a few configuration variables to enter at the top. AlertEmail is the email address to notify when index status changes are detected. SitemapUrl is the full URL of your sitemap. The current implementation does not support sitemap index files, this needs to be a regular sitemap containing URLs. SearchConsoleProperty should be the URL of the site to monitor, or sc-domain: followed by the domain for domain properties (for this site sc-domain:ithoughthecamewithyou.com).

Click Project Settings (the cog in the left hand menu of the script editor) and copy the Script ID. Make a note of this for later.

API Console

Next we need to configure the Search Console API in the Google Cloud Platform Console.

  1. Create  a new project (click the drop down to the right of 'Google Cloud Platform Console' and then New Project). Pick any name you like. 
  2. Once the project is created, find APIs and Services in the left hand menu and choose Library.
  3. Search for Search Console, click on the Search Console API and then click Enable. 
  4. A new screen will load, click Credentials in the left hand menu. 
  5. Click Configure Consent Screen and choose the internal type.
  6. Fill in the required fields - application name and contact emails. 
  7. Add the ./auth/webmasters.readonly scope for readonly access to Search Console data.
  8. Once the consent screen is complete click Credentials in the left hand menu again.
  9. Click Create Credentials at the top and choose OAuth Client ID. 
  10. Choose Web Application.
  11. Add https://script.google.com/macros/d/{SCRIPTID}/usercallback to authorized redirect URLs, replacing {SCRIPTID} including the brackets with the Apps Script ID you noted above. 
  12. Make a note of the Project ID.

Complete the Apps Script

Return to the Apps Script project and find the settings page. Set the GCP project to the project ID you noted above. Also on this page check the Show "appsscript.json" manifest file in editor option.

Go to the code editor and open appsscript.json. Add the following line:

"oauthScopes": ["https://www.googleapis.com/auth/script.external_request", "https://www.googleapis.com/auth/webmasters.readonly", "https://www.googleapis.com/auth/spreadsheets.currentonly", "https://www.googleapis.com/auth/script.send_mail"],

Make sure the script is saved and close the script editor window. Reload the spreadsheet. Once the reload completes you should have a Search Console menu at the top of the spreadsheet. Choose Update Data from the Search Console menu. This will run for a few minutes and then populate the 'gsc' sheet with your URL data. See UrlInspectionResult in the API documentation for more information about the meaning of each field. You should also get a lengthy email with a notification for each URL that was inspected. This will continue for the first week and then you'll only get updates for interesting status changes.

Scheduling

Now the project is working, open the script editor again (Apps Script from the Extensions menu) and open Triggers (the clock icon in the left hand menu). Click Add Trigger at the very bottom right of the window. Select runUpdate as the function to run. Change event source to time-driven, and then select day timer and an hour to run the script. Lastly click Save. Your Google Search Console monitor will now run every day, and if the index status of a page changes you'll get an email about it within a week. The spreadsheet will also come in handy for other analysis and reporting.

Troubleshooting

You might need to tweak the script if you start hitting limits. The URL inspection API currently has a 2,000 call / day quota. Apps Script will only run for around 7 mins on a free account and 20 mins if you have Google Workspace. If either of these limits apply you could modify the 'checkDay' logic to use day of the month (or year, or ...) to reduce the number of URLs inspected on each run. If you need to do this remember to update the Check Day column on the 'gsc' sheet as well.

The script assumes that the URLs you want to monitor are in your sitemap. If this is not the case you can add URLs to the sheet directly. As long as they are part of the configured property you will still get results. If you use this method you might want to comment out the updatePagesFromSitemap() call in runUpdate() to save time.

If anything else goes wrong please leave a comment below and I'll do my best to help you.

Updated 2022-02-08 17:40:

Monitor page index status with Google Sheets, Apps Script and the Google Search Console API

After a couple of days I have a full dump of my sitemap from the page index status API. I wrote this script for the alerting possibilities but couldn't resist some analytics once the dataset was complete.

The chart above shows sessions vs days since the last Google Crawl. Pretty stark - Google keeps a close eye on the pages it sends traffic to and not so much on the others.

I set lastmod honestly and there is good news here. I could only find two cases where Google had not crawled the page since the last modified date. So when the sitemap says a page has changed the odds are good that it will get another crack at the index. The two exceptions are unusual posts that are updated hourly and weekly respectively and both have been crawled recently.

The breakdown of index status matches Google Search Console pretty well but I have a handful of pages that are 'Indexed, not submitted in sitemap', even though they are in the sitemap and no such status is shown on Search Console. I don't know if this is a glitch in the index status API or something to do with how the pages were discovered. Some light searching suggests that this message is usually what you would expect it to be.

Lastly, updating the sheet for my site is more bound by script execution time than the API limits. I changed it to run every hour and instead of partitioning by day of week I used a random hour of the day which means I check every URL at least once every 24 hours.

Updated 2022-04-24 10:50:

I just updated the code and post above. I've had occasional issues where updating the sheet failed which caused the next run to go back to the beginning with no saved index status. To reduce the chance of this happening I've added some retry logic and also improved the speed of the sheet load and save functions. I also had a comment on the code that suggested an easier way to handle OAuth and have incorporated this in the new version.

Add your comment...

More Google Apps Script Projects

(All Code Posts)

(Published to the Fediverse as: Monitor page index status with Google Sheets, Apps Script and the Google Search Console API #code #searchconsole #appsscript #google #sheets #drive #seo How to use Apps Script in Google Sheets to automatically monitor index status in Google Search Console and get an email alert if anything changes. )

Doing news right with Feedly and Google News

Read all about it

Get rid of social

I want to be well informed and, to the greatest extent possible, free from any kind of filter bubble. Hard to do that on Facebook. So the first step is to delete Facebook and Twitter. Now you have some time to design your news consumption.

Feedly

To me the very best part of the web is RSS feeds so I can quickly skim through hundreds of sites with a consistent interface and no ads. I used to do this with Google Reader but since that was killed I've found Feedly to be an awesome tool and I happily pay for the Pro version. The Android app is great. The web version sometimes gets lost in the list but is fast to use with keyboard shortcuts for cruising through your list. I keep Feedly stocked with news sites, hobbies, work related niche publications and everything I know I want to keep an eye on. The only gap is those unknown unknowns.

Google News

Google News is my current fix for finding the stories and context that I don't get through RSS.

What works

As a learning system Google News pretty quickly figures out what you're interested in. It's not perfect so you have to spend some time training it. Once in a while it will decide you need every word written about Ina Garten, but you can easily tell it that it's wrong. A more subtle tip is to often click sources that you violently disagree with. Google News has some tendency to surface different angles but it definitely helps to signal that you are open to uncomfortable takes on a story. This is a powerful filter bubble burster.

Feed mechanics

Having escaped most social media (I still have LinkedIn which is the cockroach of platforms) I really hate the feed based approach that Google takes with News. I understand it but I hate it. Probably the worst usability crime is that it will often refresh without being asked. I'll be halfway down the list, spot an interesting article, get distracted, and then when I switch back I see that tempting story for a fraction of a second before the whole feed reloads. Often that story is then nowhere to be found. There is a feature to save for later, but I try to avoid this because future me isn't likely to have time either and it adds the burden of yet another to-do list to keep track of.

Don't make me read it twice

Related to the feed is the tendency to show me the same story again, and again, and again. Other than ignoring a topic or publication there is no mechanism to just dismiss a story. I know that the algorithm has worked really really hard to find it but I don't need to see it every day for a week or more. It's OK, in fact desirable, to be done with the news. As with the feed I know that it's someone's job at Google to work on engagement and my time is an externality to their optimization algorithm. It's a big irritation all the same.

Podcasts

Lastly for me I also get a lot of context from podcasts. I use Podkicker Pro on Android (also worth paying for). We live in peak podcast times and I don't have enough time to listen to everything that I want to.

Add your comment...

Related Posts

You Might Also Like

(All Etc Posts)

(Published to the Fediverse as: Doing news right with Feedly and Google News #etc #news #google #feedly #facebook How to use Feedly, Google News and Podcasts to develop intentional news consumption after kicking the social media habit. )

Leaving the Nest

Updated on Saturday, May 15, 2021

NOPE

I migrated from Nest to Google Home today to save a few bucks and while eventually inevitable it was a really dumb move.

The first thing is that it doesn't work with your Google Workspace / G Suite account because of course it doesn't. So you need an unpaid Google account to move to. Luckily I already have one from that time that G Suite didn't support Google Fi. Interestingly while Google Home won't work with your paid account it has no problem reaching over to grab credit card information from it.

The next thing is goodbye Works with Nest, hello Works with Hey Google. So there goes my IFTTT integration. Because I can't use my main Google account it's kind of useless to me that this might work with Google Assistant. There is still Alexa integration though so I can play my Nest stream on the Echo Show once a year or so as a connected home party trick.

Having not read the changed terms of service I downloaded the Google Home app which a few minutes in I've take to calling Google Nope.

Nest Protect is not supported! This is my favorite smart home device just because when the battery runs out it can tell you which one to change. It's worth almost any amount of money to not spend several hours figuring out where in the house the omnidirectional smoke detector chirp is coming from. But for some reason Google Home doesn't integrate with Google Nest Protect so you need to keep the Nest app as well. Understandable, they only have several tens of thousands of engineers.

So they nailed the camera experience at least, right? Nope. In Nest there are about a hundred settings to play with. In Google Home you can change the name of the camera. In Nest you can scroll through all of your recorded history. In Google Home, despite specifically paying for the plan with 10 days of history you can't. It has a pre-Alpha feel to it. Good for a 'hey, we got the skeleton of an app thrown together' kind of internal demo but it feels like they probably should have added the things you've paid for before shipping it to anyone, let alone bribing them to go through a feature shredding 'migration' process.

My smart home ambitions are not that great. I had a nice little setup that switched some lights on and off around dawn and dusk, but Philips end-of-lifed the bridge and I'm not about to buy a new one. I had some fun making dropcam timelapses but Google broke the public cam URL. And thank goodness I didn't get the alarm system.

Lesson (eventually) learned. The only new smart home devices I'll install are the ones that I build myself.

Add your comment...

Related Posts

You Might Also Like

(All Etc Posts)

(Published to the Fediverse as: Leaving the Nest #etc #google #nest #philips The pain of migrating from Nest to Google Home which is not fully baked and does not support Workspace accounts. )

Android 11 Gripes

Updated on Thursday, August 26, 2021

11

You have to make allowances for the fact that many people are working from home (where maybe it's harder to test code and you certainly can't do hallway usability testing). Things also improved somewhat with the October patch. But Android 11 was a Windows ME level disaster. Google says that they dropped the desserts to make Android 'more accessible to a global audience' but I think it's probably because they know that new updates are no longer sweet.

Multi-tasking is completely broken. In pandemic mode I'm on video calls all day, and dodging the 2-3 video calls that are usually going on elsewhere in my house. Being able to have Teams and notes running at the same time is pretty important right now and with 11 it's not possible.

Other than conference calls and Kindle the other main use I have for my phone is podcasts. Android 11 improved the media controls by moving them to the quick settings area of the notification shade, providing easy switching between playback devices and allowing you to swipe through recent playback apps. All good, except that none of it works. The controls are there but do nothing so I have to run the app to pause. Also, there is a weird ghost of a previous media playback that shows up and then disappears when pulling down the notification shade. And as for dismissing previous sessions that seems to require a reboot.

Multi-tasking and media were fixed in the most recent patch, but there is also some new notification system to separate out conversations. In practice this seems to mean I get multiple groups of Gmail and Teams notifications instead of a single cluster per app. This isn't what I want, gives me more work to do and so far I haven't found a way to turn it off. Notifications have steadily improved over the last few major Android releases so it's upsetting to see them becoming worse.

This is all on a Pixel 4XL which you would assume would get some level of testing love. It used to be that the main advantage of a Pixel was getting new versions of Android quickly. With 11 I'm for the first time wishing I was waiting a few months while the kinks were worked out.

Add your comment...

Related Posts

You Might Also Like

(All Etc Posts)

(Published to the Fediverse as: Android 11 Gripes #etc #google #android I'm not a fan of Android 11 notifications, media controls or multi-tasking. )