Tweepy Code Sample: Auth & Iterating Through Following Users

Here’s a short code example using Tweepy to pull a list of following users (users that you follow). consumer_key, consumer_secret, access_token and access_token_secret are necessary tokens for authenticating into Twitter.

auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)

api = tweepy.API(auth)

for friend in tweepy.Cursor(api.friends).items(3):
    # Extract friend (following) Twitter screen name and user id
    friend_screen_name = friend.screen_name
    friend_id = friend.id_str
    print("Friend screen name & ID: %s - %s" % (friend_screen_name, friend_id))

Google Easter Egg: Do A Barrel Roll

In computing, an Easter Egg is a hidden trick that an application or web site can do. There are a lot of famous easter eggs buried in various programs, and Google is no exception.

If you have a reasonably modern web browser, search Google for do a barrel roll. The Google screen itself should rotate through 360 degrees in imitation of a barrel roll. Here are some example screenshots of the rotation:

do a barrel roll
Part of the barrel roll.
Part of the barrel roll.
The barrel roll almost completed.
The barrel roll almost completed.

If you want to see the barrel roll recorded on video, try this YouTube video:
https://www.youtube.com/watch?v=ksJ8uy09KkA .

The do a barrel roll phrase was popularized by 4chan, but originated from Star Fox 64, where a major character repeats that phrase to encourage dodging from enemy fire. See Know Your Meme for an explanation or this YouTube video for gameplay footage:
https://www.youtube.com/watch?v=wIkJvY96i8w .

Finding The Latitude & Longitude (GPS Location) Of A Spot Using Google Maps

If you need to find the GPS coordinates of a certain location, Google Maps makes it easy. First, find the location you want on Google Maps. I’ll use Epcot, Disney World as an example:

Epcot, Disney World
Google Maps view of Epcot
Google Maps view of Epcot.

Zoom in on the location you want, then right click and select the “What’s here?” option:

Using the what's here? option in Google Maps.
Using the what’s here? option in Google Maps.

A small gray pointer will appear on the map (I’ve marked it out with an orange arrow in the screenshot below). The GPS coordinates (lat, long) will appear in the little box at the bottom:

The location marker (see orange arrow) and the GPS coordinates will appear in the small bottom box.
The location marker (see orange arrow) and the GPS coordinates will appear in the small bottom box.

As you can see, the small box reads: Orlando / Florida 32836 / 28.375250, -81.549385 . The lat/long coordinates are in the bottom row: 28.375250, -81.549385.

The small box with the GPS coordinates.
The small box with the GPS coordinates.

YouTube Shortcuts

Youtube has so many shortcuts, it’s easy to forget about them. So there’s an easy way to quickly look up all of the available keyboard shortcuts. First, go to a YouTube page (I love Disney’s YouTube channel):

https://www.youtube.com/disney
Disney's YouTube page

From there, hold down the [Shift] and [?] keys. The following screens should pop up:

Youtube shortcuts, screen 1
Youtube shortcuts, screen 2

Make sure you read through these keyboard commands, they make it easy to quickly review a YouTube video for information – especially instructional videos!

YouTube – Search Found Nothing

As I’ve said before, I love collecting samples of error pages, especially when companies take the extra time to personalize or make the error funny.

Perhaps this isn’t an error per se, but I love the image YouTube pops up when its search function can’t find anything relevant to the query:

no results found on youtube search. image shows a twisted telescope.

Google Search Operator: The Number Range

Suppose you need to find a web page containing a number, but you don’t know the exact number. Enter the Number Range operator. The number range operator looks like this: #..#.

For example, if I wanted to search for content from the Google I/O conventions between Google I/O 2016 and Google I/O 2018, I could search for the following:

google io 2016..2018
Search for Google IO 2016..2018

As you can see from the videos top bar, I found content from Google IO 2018 (the keynote), and Google IO 2017 (Introduction to Kotlin).

The number range operator works for prices as well. Suppose I wanted to buy a laptop, but my budget is only $550 to $700. Let’s try to find a laptop using Google search:

laptop $550..$700
laptop $550..$700

As you can see from Google’s bolded text, I found multiple laptops within my price range of $550 to $700.

Using Google Protobuf Timestamp In PHP

This is more of a documentary post because I haven’t seen documentation on Google’s Timestamp class anywhere.

Google’s libraries – in particular, the GCP libraries for datastore/tasks/etc – use the Google/Protobuf/Timestamp class to represent time. Timestamp is a simple wrapper around the number of seconds since UNIX epoch, in the UTC timezone. For example here is how to create a Timestamp reflecting the current date and time, plus 2 minutes into the future (120 seconds):

use Google\Protobuf\Timestamp;

    $future_time_seconds = time() + 120;
    $future_timestamp = new Timestamp();
    $future_timestamp->setSeconds($future_time_seconds);
    $future_timestamp->setNanos(0);

There are equivalent classes and functions for Python/Java/Go/other languages that Google Cloud supports.

Using the Timestamp class – especially setting up future dates – is necessary for configuring my favorite Google Cloud service: Cloud Tasks. A Cloud Task can accept a future date to run at, thereby giving you a way to queue up and delay execution of an activity. For example, see the below screenshot: I’ve created 3 tasks 20 seconds ago, yet they’re set for a future execution 3 minutes 45 seconds from now:

Google SEO Change: Rel=prev/next No Longer Works

Yesterday, the Google Webmasters Twitter account mentioned that the rel=prev/next tag is no longer used by the Google index spider:

The rel=prev/next attributes were used to indicate paginated content to Google – for example, long forum threads broken up into multiple pages, slideshow-style articles, and so forth.

Search Engine Journal has a longer article about this here: https://www.searchenginejournal.com/google-stopped-supporting-relprev-next-in-search-indexing-years-ago/299689/

Google used to have a help page explaining the use of the attribute – it was located at https://support.google.com/webmasters/answer/1663744?hl=en , but is now deleted. You can see an older copy here:

The former help page discussing rel=prev/next. Click to expand.

This change doesn’t surprise me – it’s been clear for years now that Google is increasingly using ML/AI to “read” web pages and infer relationships between pages, instead of going by what the page says about itself. The information that it extracts can then be used to power knowledge panels on Google search pages.

Furthermore, I wouldn’t be surprised if Google finds pagination relationships to be less important than other signals. For example: if there’s a long forum thread discussing some controversial issue, every page of the forum thread is not equally important; perhaps Google wants to focus on only those pages with important information, or those that get linked to the most frequently.

Activating Basic HTML Mode For Gmail

Sometimes the full Gmail experience is too much for an older laptop or mobile device. Instead of trying to load the new Gmail, you can force the basic HTML version of Gmail to load by going to mail.google.com/?ui=html .

If you’re already signed in, you might see the below screen. If you’re signed out, you’ll need to sign in using the standard login screen.

Google confirming you want to use HTML mail.

After this, you’ll see a much stripped down version of Gmail:

I have way too much email in my inbox!