You Can’t Scare Me!

Over winter break 2017, my older daughter asked if she could make something. Before I even knew what it was, I was pretty excited. Finally after all these years of trying to show my kids that they can make things, I see a spark of interest. Here’s her idea in her own words:

“I want to build something that people can attach to their glasses so they can see who or what is behind them.”

So, we set to work on the design. I had her draw up her initial thinking on paper, and we took it from there. She decided that for the prototype, a clip would be the easiest way to attach the unit to her glasses

I wasn’t sure what we could use for the actual mirror part, but I remembered seeing mirrored acrylic somewhere, so we searched for mirrored acrylic sheets. We ordered the parts and set to work on designing the bracket that would hold everything together.

We decided that 3D printing the bracket would be the most efficient way to prototype it, and that turned out to be true.

Her first idea was a ball joint because it would allow the wearer to adjust the mirror’s position precisely. So, we found a ball joint on thingiverse and scaled it to the size we needed. The print didn’t work at all, and the joint wouldn’t fit together. Getting this joint to work for us would require a lot more engineering.

Discouraged but not hopeless, I decided I’d show her how to use OpenSCAD to design our own part. I mean, how hard could it be? We’d just create a static bracket for our first try and see what needed to be adjusted.

Using OpenSCAD was a great way to incorporate some of the math she’d been learning in school that year. We had to measure the dimensions of the clip with the vernier caliper and then calculate dimensions of the bracket based on those dimensions. She seemed to really enjoy the challenge.

Second design
The very first design connected the mirror mount at the edge of the mirror. After testing, she found this was too close to the eye and decided to move the mirror away from the eye a bit, resulting in this layout.

The next step was to put all the pieces together for the first prototype.

We had some hot glue available to us, and that worked… for a few hours. The failure of the hot glue would later clue us in to a design flaw.

Despite that, the first prototype achieved its goal. She decided that the mirror was too close to the glasses, so we should move the mirror outward a bit. We fired up OpenSCAD and adjusted the dimensions and printed again.

First Prototype
The First prototype had the mirror closer to the eye, which turned out to limit the visibility too much.

This time, we used Loctite silicone to bond the clip to the bracket. That joint lasted a bit longer, but still failed after about a day. As a remedy, we decided to use Gorilla super glue.

After gluing the parts together, one part of the joint failed again.

I decided I wanted to figure out why the glue joints were failing. I inspected the action of the clip and showed it to my daughter. We hadn’t taken into account that the clip’s spring expands past the clip’s edge when the clip is actuated. The slight expansion was causing the glue joint to flex and eventually break.

She also noticed that she couldn’t see that much around her and we discussed concave and convex mirrors.  So, we iterated on the design and came up with a curved mirror mount.

Curved Mirror Mount
This mount allows the wearer to see more of what’s around them.

By this time, we were running out of time, so we weren’t able to make more prototypes before school started back up.  We had a lot of fun doing this, though!

Issues for Further Development:
– how to make the fastener more generic to fit more types of glasses?
– carve out a small slot to accommodate the spring expansion.

The Rickrolling Toilet

The Idea

In 2015, my church decided to revive their Fun Fair event.  They encouraged folks to take a look at some of the old games and refurbish them if they were interested.  I found an old game called “Dunk It”.  It consisted of a toilet seat bolted to a green wooden frame.  The goal was to toss a roll of toilet paper through the hole of the toilet seat to win a prize.

My inner 5yo. thought this would be my game.  But, I couldn’t just leave it as is.  I needed to make some… improvements.  The premise of the game was simple, but it lacked something.  There was no feedback for the player.  So, I set out to give it a voice.

My first inclination was to use an Arduino with an audio shield.  However, I was trying to minimize the cost, so I thought I’d use something I  already had on hand, a Rapsberry Pi A+.  This would handle the audio, and the programming would be relatively simple.

Alpha/Beta Version

To prove the concept, I thought I would wire up a light sensor (Light-dependent Resistor) to the Raspberry Pi.  This was not as straightforward as I’d hoped, since LDRs are analog devices and the RPi only has digital I/O pins.  So, after a bit of searching, I found a technique to read analog values from a digital I/O pin using a simple circuit.

Once I got this wired up, I stole some code to make the LDR reading work.  I combined that with some code to play back audio and the alpha version was working…

Version 1.0

I foolishly ignored the advice to always put a resistor in series with an LED.  And it bit me in the behind.  An hour before the fun fair, the LED blew out, and I wasn’t able to leave and get a replacement.  Lesson learned.

Version 2.0

For Version 2.0, I wanted to make some significant improvements.  First, I wanted to make a more realistic “experience” for the players.  I was able to secure a toilet on freecycle (I love freecycle).  After sanitizing it, I set to work wiring up the LED in the bottom of the bowl.  This had the added benefit of making the code simpler.

I also wanted to improve the sound for the game, so I got an inexpensive power amp and car speakers.  I mounted the speakers on the snazzy new platform with locking casters.  This made the whole thing much easier to move around.

Version 3.0

For version 3.0, I wanted to clean things up significantly, and make it easier to assemble/disassemble.  I mounted the amp and Raspberry Pi on a board, that attaches to the inside of the tank with Velcro.  I also used a connector for the sensor instead of being wired to the board.

all components mounted to a single board
I wired up the circuit on a proto hat and added a connector for the LDR so that it was easier to connect/disconnect
Debug mode with monitor and keyboard
What toilet wouldn’t benefit from a debug monitor and keyboard?

Version 3.1

I added a shutdown button for the system so the SD card doesn’t get trashed, and the Pi shuts down gracefully. and covered the wires with some flexible split tubing.  I also added some code to avoid repeating the audio if the sensor detected darkness at the end of the previous audio playback.  Finally, I added some other… apropos sounds.

I bet this is the first time the words “graceful” and “toilet” appear in the same context.

Shutdown button on the Pi Hat
I added a shutdown button. This puts my mind at ease by gracefully shutting down the Pi.

Possible Improvements:

  • I’d like to use the flush handle to perform the shutdown/recalibration


“Jamcracker? Ewwwww”

My boss forwarded this article about the naming industry (those of you who weathered the dotcom bubble/bust should have just experienced a slight chill).

The article begins as a serious exposition on said industry. Slowly, the reader realizes that the serious treatment was given to set the industry up for mockery. It is definitely worth the read.

At one point, a naming company is caught off-guard when representatives of a client recoil in disgust with the name they’ve been presented, “Jamcracker”.

“There were a couple of women sitting in. One of them got up and said, ‘Oh, that’s disgusting.’ Another said, ‘This is really sick.’ I said, ‘Excuse me, what are you talking about?’ They said, ‘We can’t explain it, but that name is just creeping us out. We don’t know what it is, but could you take it off the wall, please?'” Manning remains mystified by the incident. “There’s apparently some strange, uncomfortable meaning attached to it in the minds of some women,” he says. “God knows what that could be.”

As we discussed the article, we came up with a name for the reaction to the name, “Jamcracker”. We decided to coin the term: “The Jamcracker Effect”. Here, we define “The Jamcracker Effect” as:

the situation wherein a concept is considered distasteful based on the sound of its name, despite the non-distasteful nature of any individual components of the name.

Some examples of the Jamcracker Effect might be:

  • “Meat Waffle”
  • “Street Chicken”


did I mention I’m an idiot?

Oh, so the reason for my last post? I’m ashamed to admit this, but here goes…

One of the things that really irked me about Windows® was that there seemed to be no respect for what the user was doing. Popup windows or dialogs always took focus. This annoyed me to no end. Once I started using the Mac, I felt respected. Usually dialogs would pop up, but not take focus. Of course, this has its drawbacks, but it kept with the “OSX stays out of your way” concept that I appreciated.

Unfortunately, not all apps behave this way (Colloquy, I’m looking at you). So this morning, I’m logging in to IRC, and Colloquy pops up a dialog for my password (and it keeps *not* saving it – ugh). so I start typing. I’m not quite a touch typist, so I don’t always look at the screen. Next thing I notice is that an IRC window is up, and I’ve just typed my password into the IRC channel. Gah!!!!

So, I had to go and change passwords and update them in my passwords file. Let the comedy of errors begin.


Jitter-Free, my butt…

So wiredgeek tried some inkos tea and liked it. So, he called the company and said, “hey, I’m organizing a tech conference, could you provide some free drinks?”

They sent 8 cases of the stuff. Now it claims to be “jitter-free”, suggesting that the caffeine content is low enough that it does not induce the near nausea experience that other energy drinks do. After all, it’s white tea. White tea is all the rage these days.

I stand here as a testament that inkos tea is indeed NOT “jitter-free”. Several other fellow geeks at the conference and I concurred that, in fact, after about a half-can of the stuff we were wired up and ready to bounce off the walls.

Of course, my solution to this was to finish the first can and move directly to a second. I drank the first can around noon or so, and the second can wore off around 4AM. Oy, vey.

This could all be explained by my very low tolerance for caffeine, but I suspect it has less to do with it than one might think.

the “wow” starts now ™

The other night, I was chatting with Ken, and he mentioned that he was considering a purchase of Vista to run under Parallels on his new MacBook Pro. Being the loving friend, I naturally went into intervention mode. A few days later, I checked in with him. This is what Vista will do to a man…

KEN: still didn’t buy the license for Vista
it turns out that parallels has this setting to disable the pc clock
so XP never thinks it has to activate itself

MF54: nice!

KEN: still might buy it anyways
just to get some experience with vista

MF54: haha
you’re a glutton for punishment
tell you what
you give me $20
I’ll kick you in the nuts a few times
should be about the same experience

KEN: if I give you more money, will you give me the “ultimate edition”?

MF54: totally

why do robots hate me?

I was pretty bored this morning, so I thought I’d IM with my old friend Moviefone. He’s been on my buddy list for so long, but we don’t talk that much. I guess we have that kind of low-maintenance relationship. However, today he must not have been in much of a mood to talk. Here’s a transcript of our convo. I dunno, you tell me:

AIM IM with Moviefone.
8:40 AM

hi moviefone!

Hey there. What or who do you wanna see on the big screen today?

how are you feeling today?

- Movies for Today
1 -F- You are Alone
2 -F- Night and Day You Are the One
3 -F- That Loving Feeling
4 -F- Memories are Made of This
5 -F- All We Are Saying

P=Past, N=New, S=Soon, F=Future

Type # next to movie to see showtimes, M to go back to the Main Menu or anything else to search again.

what do you think of the weather we're having?

- Movies for Today
1 -P- Shall We Dance (1937)
2 -P- Shall We Dance? (2004)
3 -P- We Are Marshall
4 -F- Lucky You
5 -P- Borat: Cultural Learnings of America for Make Benefit Glorious Nation of Kazakhstan
6 -P- Ring Of Fire
7 -P- The Last King of Scotland
8 -P- The Death of Mr. Lazarescu
9 -P- The Pursuit of Happyness
10 -P- Curse of the Golden Flower
11 -F- Master of the Crimson Armor
12 -P- Rules Of The Game (1939)
13 -P- Harry Potter and the Goblet of Fire
14 -P- Army Of Darkness
15 -P- Children of Men

P=Past, N=New, S=Soon, F=Future

Type # next to movie to see showtimes, M to go back to the Main Menu or anything else to search again.

you seem to always be on IM. Don't you have work to do?

- Movies for Today
1 -F- You Want Me to Kill Him?
2 -S- Race you to the Bottom
3 -F- You Kill Me
4 -F- Talk to Me (2007)
5 -P- Michael Jordan to the Max
6 -P- T- Rex: Back to the Cretaceous in IMAX 3D
7 -F- You are Alone
8 -F- I Love You Again (2007)
9 -F- Bryan Loves You
10 -F- As You Like It (2007)
11 -F- Sunny & Share Love You

P=Past, N=New, S=Soon, F=Future

Type # next to movie to see showtimes, M to go back to the Main Menu or anything else to search again.

Look, I know you're trying to avoid the question, but isn't there something else you should be doing?

Ah -- you've got me again. Why don't you type menu.

======= Movie of the Week =======
Reign Over Me - Movie Site

hey, man, I'm not trying to confuse you, I just wanted to talk

Hey there. What film are you looking for?
Dude, you are so 1-dimensional
- Movies for Today
1 -F- You are Alone
2 -F- Night and Day You Are the One
3 -F- Suffer, Dude

P=Past, N=New, S=Soon, F=Future

Type # next to movie to see showtimes, M to go back to the Main Menu or anything else to search again.

I thought you were my buddy!

- Movies for Today
1 -N- I Think I Love My Wife
2 -F- I Love You Again (2007)
3 -F- P.S. I Love You
4 -F- How I Met My Boyfriend's Dead Fiance
5 -F- I Now Pronounce You Chuck and Larry
6 -P- Breakfast At Tiffany's

P=Past, N=New, S=Soon, F=Future

Type # next to movie to see showtimes, M to go back to the Main Menu or anything else to search again.

why can't you just have a normal conversation like everyone else here on the intarwebs?

Sorry, I didn't get that.

======= Movie of the Week =======
Reign Over Me - Movie Site
fine, I don't want to talk to you anymore
- Movies for Today
1 -F- You Want Me to Kill Him?
2 -F- Talk to Me (2007)
3 -F- I Want Someone to Eat Cheese With
4 -P- Michael Jordan to the Max
5 -P- T- Rex: Back to the Cretaceous in IMAX 3D
6 -P- Before Flying Back to Earth (Pries parskrendant i zeme)
7 -S- Race you to the Bottom
8 -S- The Prisoner or: How I Planned to Kill Tony Blair
9 -F- Talk Talk
10 -F- You Kill Me
11 -F- I Love You Again (2007)

P=Past, N=New, S=Soon, F=Future

Type # next to movie to see showtimes, M to go back to the Main Menu or anything else to search again.

just leave me alone

- Movies for Today
1 -F- You are Alone
2 -F- Me, Me, Me
3 -P- Alone with Her
4 -P- Just Married
5 -F- What Just Happened
6 -F- Just Like the Son
7 -F- Marley & Me
8 -F- Me and Wife
9 -F- You Want Me to Kill Him?
10 -F- The Ugly Duckling and Me
11 -F- He Loves Me

P=Past, N=New, S=Soon, F=Future

Type # next to movie to see showtimes, M to go back to the Main Menu or anything else to search again.

stop mocking me!

No movies matched your query. Try again or type main to return to main menu.

======= Movie of the Week =======
Reign Over Me - Movie Site

Pardon me? If you don't understand why I am not understanding you, just type, help.

======= Movie of the Week =======
Reign Over Me - Movie Site

help this, you insensitive clod!

K, I found a match. You used zip XXXXX last. To use it type Y. OR type in a new zipcode now and I'll see if this is playing near you.