RSS: YouTube Channel Feeds

I’ve remarked before about how I love Newsblur as a replacement for Google Reader. But Newsblur can also watch for new YouTube videos via YouTube RSS feeds!

RSS support is not always clearly advertised on YouTube, but it’s simple to access. In NewsBlur, right click a folder and select Add A Site To This Folder:

Newsblur screenshot: add a new site to this folder.

Then just insert the YouTube channel URL, and NewsBlur should load the newest YouTube videos!

Add a New Site option in NewsBlur

This is a quick and easy way for me to monitor a lot of YouTube channels at once.

NewsBlur: Iterating Through A Folder’s RSS Feed

After Google Reader was shut down, I moved to NewsBlur to follow my RSS feeds. The great thing about NewsBlur is that you can add RSS feeds to a folder and Newsblur will merge all the stories under that folder into a single RSS feed.

Under NewsBlur, you’ll want to pull the folder RSS feed from the settings option:

NewsBlur settings option - the folder RSS URL is at the bottom.

The following Python code can pull the feed and iterate through it to find article information. At the bottom of this code example, each child represents a possible article, and sub_child represents a property on the article: the URL, the title, etc. I use a variant of this code to help identify important news stories.

import requests
import xml.etree.ElementTree as ET
import logging
import datetime, pytz
import json
import urllib.parse

#tears through the newsblur folder xml searching for <entry> items
def parse_newsblur_xml():
    r = requests.get('NEWSBLUR_FOLDER_RSS')
    if r.status_code != 200:
        print("ERROR: Unable to retrieve address ")
        return "error"
    xml = r.text
    xml_root = ET.fromstring(xml)
    #we search for <entry> tags because each entry tag stores a single article from a RSS feed
    for child in xml_root:
        if not child.tag.endswith("entry"):
            continue
        #if we are down here, the tag is an entry tag and we need to parse out info
        #Grind through the children of the <entry> tag
        for sub_child in child:
            if sub_child.tag.endswith("category"): #article categories
                #call sub_child.get('term') to get categories of this article
            elif sub_child.tag.endswith("title"): #article title
                #call sub_child.text to get article title
            elif sub_child.tag.endswith("summary"): #article summary
                #call sub_child.text to get article summary
            elif sub_child.tag.endswith("link"):
                #call sub_child.get('href') to get article URL

Time Magazine: Google Maps Memory Lane

Quite a few articles are making the rounds this weekend about people finding their deceased loved ones on Google Maps. Here’s one from Time Magazine: Viral Story Is Leading People Down the Sweetest Google Maps Memory Lane. Similar stories are available on CNN and Buzzfeed.

I love these types of articles – finding unexpected uses of technology to connect closer with family and friends. What I think really sells this application of Google Maps is that these are pictures of people in the middle of their everyday lives – they’re not posed, or idealized.

Cloud Build Error – User does not have permission to access app (or it may not exist): The caller does not have permission

Whenever I provision a new Google Cloud project, I always get bitten by this error. I keep forgetting to set up IAM rules to allow Cloud Build access to App Engine.

Screenshot of failed Cloud Build run. Cloud Build does not have permission to access my App Engine instance.
Screenshot of failed Cloud Build run. Cloud Build does not have permission to access my App Engine instance.
Operation completed over 1 objects/8.6 KiB.
BUILD
Already have image (with digest): gcr.io/cloud-builders/gcloud
ERROR: (gcloud.app.deploy) User [[email protected]] does not have permission to access app [APP_ID_REDACTED] (or it may not exist): The caller does not have permission
ERROR
ERROR: build step 0 "gcr.io/cloud-builders/gcloud" failed: exit status 1

To fix this, go into Settings under Cloud Build and enable access to App Engine, and any other cloud service you use in conjunction with Cloud Build. Then wait a moment for the settings to take effect and rerun the build.

Setting up Cloud Build to connect to App Engine.
Setting up Cloud Build to connect to App Engine.

Americans Rank A Google Internship Over A Harvard Degree

I saw this article from Forbes: Americans Rank A Google Internship Over A Harvard Degree and thought it was worth highlighting.

It’s important to do well in school, and having a high undergraduate GPA helps immensely if one decides to go on to graduate school, get a MBA, etc. But an internship or two on a resume helps dramatically in getting that first job – they count as experience, which means you can immediately apply for those jobs that ask for 1 – 3 years of experience. Internships also give you something to talk about during interviews – how you handled difficult situations, how you handle meetings, and all those personality-style questions.

IMO the biggest value of an internship is to understand the corporate environment: learn how to dress, how to interact with colleagues and superiors, and to be able to compare yourself talent-wise and see where you need improvement.

If you’re a Chicago area undergrad looking for an internship, I strongly recommend applying to CME Group and Chase – they pay and treat their interns very well.

SEO Best Practices – Marking Missing Pages With 404

I saw this tweet today that deserved to be highlighted:

Tweet from Google Webmasters Twitter account: Return a 404 code for any pages that are removed.

In short: if you remove a web page, make sure your server is returning 404 to correctly indicate that the page is removed and the URL is invalid.

I see a lot of sites that – for invalid URLs – return a 200 status then an error message in the body of the response. That only serves to confuse crawlers (and there are more crawlers on the web than Google’s).

Google News Weekly Letter For Dec 29 – Jan 4

Happy New Year 2020! Wishing all of you a prosperous year filled with happiness and joy! Let’s jump right into fray:

Year End: With the end of 2019 comes all the articles summarizing 2019 and guessing at what’s in store for the new year. I loved this infographic showing the popularity of influencers based on their Google searches. Forbes has a list of the top 2019 Google searches and trends, while The Register compares the progress of each cloud company (AWS, GCP, Azure) against each other. Finally, TechCrunch lets us know that “Disney Plus” was the most searched term in 2019.

Taxes: Nobody likes them, but Google has to pay them. The city of Mountain View, CA is now charging an employee head tax, Google is expected to pay $3.3 million a year. Google is ending use of the famous “Double Dutch/Irish sandwich” tax scheme to reduce their tax bill. A bonus for US taxpayers: the IRS is barring TurboTax and H&R Block from hiding their free tax filing options from a Google search.

Products: Google is famous for shutting down products, so here comes PC World with their take on products unlikely to survive the next decade. The Motley Fool believes that Microsoft does 3 things better than Google. Speaking of competition, ProtonMail has released an encrypted calendar service: available today for ProtonMail paid users, and then available to everyone once it exits beta this year. Keep your eyes on this one: a calendar makes users more “sticky” (spending more time on a service) and could be the opening of ProtonMail building out more productivity services to compete with Google.

Search: Former NYC Mayor Michael Bloomberg has spent $15 million just on Google ads on his run for the presidency. If you love data as much as I do, check out Google’s transparency report which details Bloomberg’s ads, their targeting, and various other metrics. For SEO folks, a useful note comes out of Search Engine Journal: heading tags (H1, H2, etc) are used by the Google spider to understand the topic of the paragraphs below the headers but are not themselves ranking factors.

Losing Visits & Revenue During A Domain Name Change

A fascinating article popped up yesterday which underlines the importance of SEO and domain names: From BetaKit – Looka lays off 80% of staff as failed rebrand from Logojoy cuts revenue in half. Read the article – it’s a concise story about how Logojoy rebranded and moved to a different domain name; due to a series of errors, the company lost 80% of its organic traffic. In other words: because of a name/domain change Google and other search engines lowered or removed LogoJoy from their search results.

The typical wisdom when moving domain names is that a site will lose 20-30% of visits coming from search engines for 5 – 7 months after the move. However LogoJoy made two major errors which helped to drastically decrease the visitors they saw:

  1. During the rebrand from LogoJoy to Looka, the company also added more services; initially they were only creating logos, but they also added additional services such as business card designs, social media support, etc. Adding services is great, but doing so simultaneously to a rename only serves to dilute the value of a site in the eyes of a search engine.
  2. The name LogoJoy quickly summarizes what the site is about: it’s a place to get logos and possibly other services related to branding. In short: it’s a great, easily-memorable name that also helps SEO since it includes the word “logo”. The new name “Looka” is ambiguous: you can easily imagine multiple different companies in many sectors having that name. In addition, “Looka” doesn’t help SEO: it’s not immediately connectable to branding, logo, social media, etc.

    It wouldn’t surprise me if at least 10-15% of the traffic loss was due to the unclear new name: losing “logo” from the site name and not replacing it with a similar word strongly linked with branding (for example: media, brand, public relations, etc).

These issues could have been fixed by multiple ways, some of them pricy, some of them not so much.

The most obvious solution is not to rebrand. LogoJoy could have kept their logo-generating business at logojoy.com, then spun up another site ( BrandJoy.com? MediaJoy? ) to host their additional sales of business cards, social media assistance, etc. Once both sites were established and running for at least 6 months, then they could have been merged under the Looka brand.

A pricy-but-possible solution for LogoJoy would be – considering they had millions of dollars from venture capital funding – to simply buy their way out of the problem. LogoJoy could have bought up Google, FB and Twitter advertising for keywords relating to branding: logo, social media, how to brand my site, etc. Although this would be a very expensive move: easily at least several million dollars if not more.

The easiest solution would be to keep the LogoJoy name and sell the additional services they wanted to offer (business cards, social media) under the LogoJoy name as well.

Bottom Line Summary: Be very careful when moving domain names. When moving domain names keep the focus on the domain change. Make sure to appropriately 301 (Moved Permanently) the old site to point to pages on the new site. But most importantly, keep the focus on the move. Don’t dilute the value of your site by trying to enter new areas. If you can afford it, buy ads on Google for keywords relating to your site – the ads can do double duty by (1) referring users to you new site and (2) informing users about the name change.

Android/iOS Wallpapers

This wallpaper is a stylized painting of the fireworks at Disney World, Epcot.
A sample of the mobile wallpapers available at Disney.

Here’s a fun link if you like trying out new wallpapers for your phone: Disney-themed wallpapers for desktops/laptops/mobile resolutions/. And another page full of wallpapers here. There’s quite a lot of wallpapers in these links, enough to have a new wallpaper every month!

I love changing out my phone’s wallpapers periodically – it makes the phone seem fresher and newer. It’s also a great ice-breaker in meetings: something random to talk about while meeting new people.

Google Wins Europe “Right To Be Forgotten” Case

A notable article from the BBC: Google wins landmark right to be forgotten case.

Excerpted from the BBC:

In 2015, CNIL [French privacy regulator] ordered the firm to globally remove search result listings to pages containing damaging or false information about a person. But it [Google] resisted censoring search results for people in other parts of the world. And the firm challenged a 100,000 euro fine that CNIL had tried to impose.

In short, this ruling means that any European right to be forgotten requests are limited to search results from EU users; US and other countries’ search results won’t be affected.