Target: “Right on the money” (circa 1989)

We never shopped at Target because it was too expensive.

How To Automatically Select Random Google Wear Android Watch Faces

Say you’re an aficionado of novelty like I am, but you also don’t like being overwhelmed by the paradox of choice when it comes to the myriad Google Wear watch faces. I have a huge array of Android watch faces installed, and I would like to have a way to randomly select a new watch face every day. To automatically select a random Google Wear Android watch face, you just need to have the Tasker app installed on your primary Android device with the AutoInput plugin also installed.

Once those prerequisites are met, you can create a task in Tasker called “Switch Watchface” and populate it with the following code:

A1: Array Push [ Variable Array:%watchfaces Position:9999 Value:/*ENTER THE NAME OF THE WATCH FACE HERE*/ Fill Spaces:Off ]
A2: Array Push [ Variable Array:%watchfaces Position:9999 Value:/*USE AS MANY 'ARRAY PUSH' LINES AS YOU HAVE WATCH FACES YOU WANT TO SELECT FROM*/ Fill Spaces:Off ]
A3: Variable Set [ Name:%count To:%watchfaces(#) Recurse Variables:Off Do Maths:Off Append:Off Max Rounding Digits:0 ]
A4: Variable Randomize [ Name:%random Min:1 Max:%count ]
A5: Variable Set [ Name:%watchface To:%watchfaces(%random) Recurse Variables:Off Do Maths:Off Append:Off Max Rounding Digits:0 ]
A6: Popup [ Title: Text:Switching watch face to %watchface Background Image: Layout:Popup Timeout (Seconds):1 Show Over Keyguard:On ]
A7: Launch App [ Package/App Name:Android Wear Data: Exclude From Recent Apps:Off Always Start New Copy:On ]
A8: Wait [ MS:0 Seconds:1 Minutes:0 Hours:0 Days:0 ]
A9: AutoInput Action [ Configuration:Type: Text
Value: More
Action : Click Timeout (Seconds):23 ]
A10: Wait [ MS:0 Seconds:1 Minutes:0 Hours:0 Days:0 ]
<check if on screen>
A11: AutoInput UI Query [ Configuration:Variables: faces() Timeout (Seconds):20 ]
A12: If [ %faces(#?%watchface) eq 0 ]
A13: Flash [ Text:Didn't find %watchface. Scrolling... Long:Off ]
A14: AutoInput Action [ Configuration:Type: Id
Value: com.google.android.wearable.app:id/watch_face_inner_frame
Action : Scroll Forward Timeout (Seconds):20 ]
A15: Wait [ MS:0 Seconds:1 Minutes:0 Hours:0 Days:0 ]
A16: Goto [ Type:Action Label Number:1 Label:check if on screen ]
A17: Else
A18: Flash [ Text:Found %watchface. Switching to it! Long:Off ]
A19: End If
A20: AutoInput Action [ Configuration:Type: Text
Value: %watchface
Action : Click Timeout (Seconds):20 ]
A21: Wait [ MS:0 Seconds:1 Minutes:0 Hours:0 Days:0 ]
A22: AutoInput Action [ Configuration:Type: Text
Value: Set on watch
Action : Click
Is Tasker Action: false
Check Screen State: false Timeout (Seconds):1 Continue Task After Error:On ]
A23: Wait [ MS:0 Seconds:1 Minutes:0 Hours:0 Days:0 ]
A24: Go Home [ Page:0 ]

What this task does is it creates an array populated by the names of each watch face to be selected from. Then it creates a variable %count whose value is the number of items in the array. Then it creates a %random variable with a value of a randomized number between 1 and the value of %count.  With as the random number selected, it assigns the %watchface variable the name of whichever watch face is located at that position in the array.

With a %watchface defined, Tasker launches the Android Wear app, looks for the word “More” on the screen, taps it to bring up the list of watch faces, looks for the name of the watch face (it’s important that the %watchfaces array is populated by exact matches, otherwise Tasker will not find them!), taps the menu icon for the watch face, then taps “Set on watch”, setting the watch face.

If Tasker doesn’t find the name of the watch face, it will automatically scroll, looking for the name of the face.

Once the watch face has been set, Tasker will exit the app back to the home screen. The whole process takes about 5 seconds or so, depending on how many times Tasker has to scroll.

For your convenience, I have saved this task as an XML file that can be directly imported into Tasker. You can download that file here.

Texas Instruments Computer Fun: “Class of 2001” (circa 1988)

Ah, those halcyon days when there was so much promise and optimism for the millennial generation!

Actually, I have opinions about the term “millennial” and how it applies to the Class of 2001. It’s weird for me.

Ultra Tide: “Soccer” (circa 1992)

Before “soccer mom” was a pejorative, there were the detergent commercials.

How To Solve Rubik’s Cube Every Time

As a child of the 1980s, I’ve been fascinated by the apparent complexity of Rubik’s Cube–the world-famous puzzle toy designed by Hungarian architect Emö Rubik–but I could never solve one past peeling the stickers and placing them in the correct position (a trick my uncle taught me that could be used to “mess with the Cube nerds”). I’ve had a newer model sitting around for a few years, and as one of my “COVID Side Projects”, I finally learned the proper way to solve the Cube.

Get the Original Rubik’s Cube on Amazon.com

The Algorithms:

Building the yellow cross:

If you have no yellow edge pieces on the top face, then F U R U’ R’ F’

If you have a line of yellow pieces through the center, then reorient the entire cube so that the line is vertical to your perspective and F U R U’ R’ F’

If you have two yellow edge pieces making an “L” shape, then turn the top layer until the edge pieces are in the 12:00 and 9:00 positions and F U R U’ R’ F’

Solving the yellow face:

If there are 0 or 2 yellow corners showing, then R U R’ U R U2 R’

If there is 1 yellow corner showing (“the goldfish”), then turn the top layer until the yellow corner piece is in the lower left of the face (the “goldfish” will be diving to the left) and R U R’ U R U2 R’

Set up the top layer:

If there are no matching corner pieces on any faces of the top layer, then L’ U R U’ L U R’ R U R’ U R U2 R’

If there is a set of matching corner pieces on a face, then reorient the cube so that face is on the left and L’ U R U’ L U R’ R U R’ U R U2 R’

Continue until there are matching corner pieces on all 4 faces

Solve the top layer:

F2 U’ R’ L F2 L’ R U’ F2

Continue until the top layer is solved, then rotate the top layer to solve faces as necessary.

How To Add A Speaker To A Raspberry Pi

For Project Rankin to come alive, I needed it to have some level of audio, but I didn’t want to plug some USB solution in or even use the on-board mini jack if I could help it, so I figured out a quick hack to get sound from the Raspberry Pi A+ out to a simple speaker.

Watch the complete Project Rankin

Music by Anders Enger Jensen

Ladies and Gentlemen, The Very First Website

It went live 30 years ago today, and it’s still up on its original server.

screen-shot-2016-10-08-at-10-30-59-pmThank you, Tim!

For more information on the original website and the early World Wide Web, check out CERN’s website!

Tillman & Associates: “You Don’t Have To Settle For Less” (circa 1992)

That jingle, though!

Time Life Music: “Tonight’s The Night” (circa 1989)

Could you get any less subtle with a compilation of love songs called “Tonight’s The Night”?

Tom Jumper Chevrolet (Atlanta): “Safe Until July” (circa 1992)

After the 1991 “Cinderella Season” for the Atlanta Braves, every local business suddenly caught Braves Baseball Fever and tried to tie them in to promotions in every conceivable way.

Adventitious Geekery and other distractions created or curated by Matthew "Atari" Eargle