Thursday, August 20, 2026
Notatoy
Bunny received a flyer in the postal mail claiming she could win “$15,000 Cash or Choose Your Cruise—Spain, Italy, Greece, and More!” There were just three simple steps to claim the prize:
- Pull the tab of the attached VIN Gauge Combination Box™ and your 5-digit number will light up.
- Scratch off the circle below. If the two numbers match, you are one of our GRAND PRIZE WINNERS.
- Immediately call the phone number below to find out which of the five prizes you won (see the prize list below).
First off, I'm assuming that VIN stands for “Very Important Number” and not “Vulvar Intraepithelial Neoplasia.” Second, why is it a “VIN Gauge Combination Box™?” What does “gauge” have to do with it? It's not referncing a distance, quantity, capacity or dimention, just a number.
But whatever. The prizes themselves are nothing to write about, being a bit vague with “worldwide destinations” (Kandongjang-ni, North Korea is a “worldwide destination”) and “getaway in major U.S. cities” (Scranton, Pennsylvania is a “major U.S. city”), but the VIN Gauge Combination Box™? That is fascinating!
The VIN Gauge Combination Box™ is a 2″×1″×¼″ (50mm×25mm×6mm for the U.S. Imperial impaired) plastic box with the text “Combination Box™” painted on. Just below the text is what looks like a LCD screen. There's a small plastic tab sticking out the side, with the text “PULL TAB TO ACTIVATE” printed on it. Pulling the tab lights the LCD screen with a five digit number lit up. The tab was just keeping the battery from making contact with the circuitry.
Now, looking at the LCD screen it seems a bit off. The numbers aren't aligned with the edge, the left side is slightly higher than the right, and the center number is a bit brighter than the rest, with the light kind of dimming the further from the center of the display you get. Looking closer, it doesn't even look like an LCD screen. It's more of an LED screen, black background with green LEDs, but the screen itself looks weird.
I push the tab back in to turn it off, and … wait a second! The battery is disconnected as the light turned off, but I can still see the number!
It's just green printed text on a black background. The battery is just there to power a backlight! The “tab” itself is long enough to not only block the battery, but to cover the “LED display” itself. Taking it apart, it's just eight pieces:
- the plastic strip making up the “tab” which breaks the circuit;
- the top half of the box;
- on the underside of the top half, a metal piece to bridge—
- an LR41 button battery (the thing is tiny!) and
- a second LR41 button battery;
- a green LED;
- a plastic piece with the green text “63371” (my “number”) on a black background.
- the bottom half of the box;
And that's it. It's so cheap they didn't even bother removing the flashing from the plastic mold. I would not be surprised of everyone that received this in the mail got the same number as I did.
The most amusing bit though, is the injected text on the back of the device: “THIS DIGIAL ELECTRONIC DEVICE IS NOTATOY.” It lists the patent number (a patent number! Someone patented this thing?) And of course, it was made in China.
So the “VIN Gauge Combination Box™ is, in fact, a notatoy. How about that?
Monday, August 17, 2026
Yet more noise on emails from other Sean Conners on the Intarwebs
It appears that someone is wrong on the Internet, and if Hacker News is anything to go by, that person is me! Or rather, it might Justin Prime who wrote that Stack Exchange post about Gmail's possibly buggy support for periods in the local part of an email address.
But one thing not brought up in the Hacker News thread is that Gmail supports custom domains.
So if some other Sean Conner were to have Gmail support email for example.org,
then I would expect seanconner@example.org
(our hypothetical Sean Conner who is not me)
to be distinct from seanconner@gmail.com
(which is me).
And now I have to wonder if this might be a cause for some of the issues being reported?
Google is a Leviathan system with millions of moving parts where a slight mishap
(like a timeout or some lost packets on a database lookup or even a bug on a system not yet updated)
causes email being delivered to seanconner@example.org to end up being delivered to seanconner@gmail.com.
I'm just trying to figure out what is more likely via Occam's razor, that a large, distributed system like Google has the occational hiccup, or a surprisingly large number of people forget their email addresses, especially given how important email addresses are for account recovery, password resets, and the like? I mean, it could be both. I'm just wondering what causes the larger number of incidents now that I'm seeing I not alone in all this.
Saturday, August 15, 2026
Did I inadvertently unlock someone else's car doors?
I went out to get Bunny and myself some lunch, and as I was leaving, I used my fob to pop open the trunk to store the food for the trip home and I noticed that a car near my own honked briefly and flash its headlights. Odd, I thought. I then used my fob to unlock the car, and again, the nearby car honked briefly and flashed its headlights. I then used my fob to lock my car, but this time, the nearby car sat silent. I unlocked my car again, and again, the nearby car honked and flashed its lights.
I know that fobs have a decent range on them but I always thought the data sent was unique per fob. Maybe not? And then there's the fact that fobs can help criminals steal cars! That's more surprising.
Tuesday, August 11, 2026
Gmail might partially be to blame for me receiving emails from other Sean Conners
I was reading the Lobsters thread about the article “A researcher bought noreply.net. Companies started sending him secrets” when I left a comment about my own struggles with receiving emails for other Sean Conners. That started a thread that swamped the comment section about other people who had similar stories, so it's nice to know that I'm not alone. Also, here's one of my favorite comments in that thread (for reasons that should be apparent):
I was about to say, "I know a guy with a whole blog series about that." But then I looked, and you were him.
Lobsters comment from Jason McBrayer
Heh.
But the thread as a whole left me with the idea that there's still a lot of people out there that barely understand email and aren't even sure what their own email even is. Sad.
I did get an email about my comment from Keong Lim, claiming it was mostly Google's fault for the confusion and linked to this fairly damning answer at Stack Exchange:
It is a lesson in human nature that so many experts simply recite Google's pat answer on this as if an assertion were identical to empirical reality. I am one of the early account holders with the
firstname.lastname@gmail.comaccounts. About three years ago, I began receiving email directed tofirstnamelastname@gmail.com. By triangulating the information I was able to glean from their dry cleaners, car dealer, etc. I was finally able to contact these people (about 3,000 miles from me, BTW). The DO have the same account as me, minus the period. We were able to determine that only a portion of email "leaks" across accounts. Unfortunately, the fact that I had my account 10 years before they had theirs did not convince them to leave the account to me. Thus, I live with the occasional notice from the bank, school, etc. Because of this, I no longer use Gmail for anything important or confidential.The most disturbing thing to me is Google's insistence that they could not have made a programming mistake when they clearly did. These folks are arrogant in their faux humility.
Why does Google not consider dot in usernames of Gmail addresses?
The “pat answer” is that Google is that it's cutting down on possible confusion over who receives firstname.lastname@gmail.com and
firstnamelastname@gmail.com,
but it seems that the “pat answer” is a somewhat later change to Gmail to ignore periods in the local part
(the part before the “@”)
of the email address.
I think Gmail is leaning heavily upon this portion of “RFC-5321: Simple Mail Transfer Protocol” to justify this:
2.3.11. Mailbox and Address
As used in this specification, an "address" is a character string that identifies a user to whom mail will be sent or a location into which mail will be deposited. … Consequently, and due to a long history of problems when intermediate hosts have attempted to optimize transport by modifying them, the local-part MUST be interpreted and assigned semantics only by the host specified in the domain part of the address.
(emphasis added)
I know I signed up early enough to Gmail to get sean.conner@gmail.com and at that time,
seanconner@gmail.com might have been considered a different email address.
After the change,
it appears that Gmail might get confused sometimes and mess up some legacy addresses at times.
While reading all that, I did go down a small rabbit hole with what characters are actually allowed in an email address. It's unclear if anything but ASCII is allowed, but there are surprisingly little in ASCII that isn't allowed. Out of the 95 defined graphic characacters (which I'm including the space character), the following are not allowed:
| character | name |
|---|---|
| Space | |
| " | Quotation Mark |
| ( | Left Parenthesis |
| ) | Right Parenthesis |
| , | Comma |
| : | Colon |
| ; | Semicolon |
| < | Less-than Sign |
| > | Greater-than sign |
| @ | Commercial At |
| [ | Left Square Bracket |
| \ | Reversed Solidus |
| ] | Right Square Bracket |
Technically, they could be used in an email address if they're escaped, but it's discouraged heavily.
Discussions about this entry
- Gmail might partially be to blame for receiving emails from other Sean Conners | Hacker News
- Gmail might partially be to blame for receiving emails from other Sean Conners - ZeroBytes
- Gmail might partially be to blame for receiving emails from other Sean Conners - Lemmy: Bestiverse
Saturday, August 08, 2026
Mowing Da Lawn, part II
As I was mowing the lawn today at Chez Boca, cursing myself for letting it go a few weeks, I was reminded that it wasn't as bad as that one time at Casa New Jersey. I'm thankful for that.
Thursday, August 06, 2026
What is even taste when it comes to programming?
[This is me reposting a comment I left on Lobsters about “Taste Is All That's Left,” a post about vibecoding. I think my comments works well enough on its own here as a post. —Sean]
As I read this, I was reminded of two quotes. The first is about the taste gap from Ira Glass:
Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still killer. And your taste is why your work disappoints you. A lot of people never get past this phase, they quit. Most people I know who do interesting, creative work went through years of this. We know our work doesn’t have this special thing that we want it to have. We all go through this. And if you are just starting out or you are still in this phase, you gotta know its normal and the most important thing you can do is do a lot of work. Put yourself on a deadline so that every week you will finish one story. It is only by going through a volume of work that you will close that gap, and your work will be as good as your ambitions. And I took longer to figure out how to do this than anyone I’ve ever met. It’s gonna take awhile. It’s normal to take awhile. You’ve just gotta fight your way through.
The second is from The Ze Frank Show:
For a very long time, taste and artistic training have been things that only a small number of people have been able to develop. Only a few people could afford to participate in the production of many types of media. Raw materials like pigments were expensive; same with tools like printing presses; even as late as 1963 it cost Charles Peignot over $600,000 to create and cut a single font family.
The small number of people who had access to these tools and resources created rules about what was good taste or bad taste. These designers started giving each other awards and the rules they followed became even more specific. All sorts of stuff about grids and sizes and color combinations — lots of stuff that the consumers of this media never consciously noticed. Over the last 20 years, however, the cost of tools related to the authorship of media has plummeted. For very little money, anyone can create and distribute things like newsletters, or videos, or bad-ass tunes about "ugly."
Suddenly consumers are learning the language of these authorship tools. The fact that tons of people know names of fonts like Helvetica is weird! And when people start learning something new, they perceive the world around them differently. If you start learning how to play the guitar, suddenly the guitar stands out in all the music you listen to. For example, throughout most of the history of movies, the audience didn't really understand what a craft editing was. Now, as more and more people have access to things like iMovie, they begin to understand the manipulative power of editing. Watching reality TV almost becomes like a game as you try to second-guess how the editor is trying to manipulate you.
As people start learning and experimenting with these languages authorship, they don't necessarily follow the rules of good taste. This scares the shit out of designers.
the show with zefrank - 2006-07-14
I'm not sure what I make of all this.
Unary operators and the Shunting Yard algorithm
I use the Shunting Yard algorithm to handle precedence when parsing expressions in my assembler. It's great because not only is it simple to implement, but it simplifies the code in a hand-written recursive descent parser. The BNF is effectively:
; BNF per RFC-5234
expr = factor *(op factor)
op = '*' ; just the basic ops for now
/ '/' ; adding more is just adding
/ '+' ; them to this definition
/ '-'
factor = literal
/ var
/ '(' expr ')'
literal = DIGIT+
var = (ALPHA / '_') (ALPHA / DIGIT / '_')*
When expressing this BNF via a recursive descent parser,
the function handling expr is where the Shunting Yard algorithm is used,
providing precedence handling.
In my implementation,
the function handling op returns the precedence and associativity from a table:
static struct optable const cops[] =
{
[OP_EXP] = { OP_EXP , AS_RIGHT , 1000 } ,
[OP_MUL] = { OP_MUL , AS_LEFT , 900 } ,
[OP_DIV] = { OP_DIV , AS_LEFT , 900 } ,
[OP_MOD] = { OP_MOD , AS_LEFT , 900 } ,
[OP_ADD] = { OP_ADD , AS_LEFT , 800 } ,
[OP_SUB] = { OP_SUB , AS_LEFT , 800 } ,
[OP_SHL] = { OP_SHL , AS_LEFT , 700 } ,
[OP_SHR] = { OP_SHR , AS_LEFT , 700 } ,
[OP_BAND] = { OP_BAND , AS_LEFT , 600 } ,
[OP_BEOR] = { OP_BEOR , AS_LEFT , 500 } ,
[OP_BOR] = { OP_BOR , AS_LEFT , 400 } ,
[OP_WORD] = { OP_WORD , AS_LEFT , 350 } ,
[OP_NE] = { OP_NE , AS_LEFT , 300 } ,
[OP_LT] = { OP_LT , AS_LEFT , 300 } ,
[OP_LE] = { OP_LE , AS_LEFT , 300 } ,
[OP_EQ] = { OP_EQ , AS_LEFT , 300 } ,
[OP_GE] = { OP_GE , AS_LEFT , 300 } ,
[OP_GT] = { OP_GT , AS_LEFT , 300 } ,
[OP_LAND] = { OP_LAND , AS_LEFT , 200 } ,
[OP_LOR] = { OP_LOR , AS_LEFT , 100 } ,
};
Adding a new operator is pretty easy.
I was able to add the :: operator
(OP_WORD)
and slot it in
(the expression a :: b is the same as a * 256 + b and is used extensively in my 6809 ANS Forth implementation).
The downside,
the Shunting Yard algorithm doesn't handle unary operators very well.
From what research I've done and a proof-of-concept I did,
it can be done.
Unary operators need to be right associative,
but that's the easy part.
It gets ugly with parsing—how to determine if “-” is a subtraction binary operator or a unary negation operator,
and where to place that code,
and it has to go somewhere.
I got it working.
but it involved smearing the Shunting Yard algorithm into the op and factor functions in my case.
And honesty,
I don't think it's worth it just to get -3**2 to return -9 versus 9.
Wednesday, August 05, 2026
Notes on an overheard conversation coming from the Family Room
“The TV remote isn't working again!”
“You need to really smash that select button.”
“I am! See?”
“Hmmm. Let me try … oh. There you go.”
“The remote hates me!”
“It seems so.”
The surprising email to “Sean Conner” that wasn't meant for me
I received yet another email for Sean Conner but this time, it wasn't at Gmail!
It was surprising because it was sent from my friend Lorie who currently lives in Pennsylvania, about the new Area Director for Toastmasters, which is funny, because I do not live in Pennsylvania, nor have I been involved with Toastmasters since the 5th grade (ages 9–10 for non-US people). I wrote her back about this, and I received the following back:
Oh my word, I was trying to send to a different Toastmaster that was Sean Conner - and the email got confused - so sorry!
My God! The Internet is full of Sean Conners it seems!
Alarm clocks
Chris Siebenmann uses iPhone as an alarm clock, and his reasons are largely why I too, I keep my old iPhone (which is no longer supported by the Oligarchic Cell Phone Company) as an alarm clock (and why I don't have a new iPhone that is supported is a complicated story I'd rather not get into for my own sanity).
And I use the iPhone for all the reasons that Chris does. But one aspect that Chris doesn't mention is the ability to change the alarm sound to prevent myself from being conditioned to ignore the alarm. I have two stories about an old alarm clock (of the type that you plug into the wall) that illustrate my being conditioned to an alarm.
Both of these happened in the mid-90s when I had been using the same alarm clock for maybe a decade at that point. The first was a dream. I was at work when my boss approached me. “Baah baah baah baah baah baah,” he said. Nothing I said deterred him from his speech impediment. “Baah baah baah baah baah baah.” He just would not shut up. It took a while for me to realize that my alarm clock was going off, and that I had incorporated the sound into my dream. “Baah baah baah baah baah baah,” indeed.
For the second, I must explain that I had placed my alarm clock out of arms reach. In fact, I had placed it across the room, meaning that when I realized the alarm was going off, I would be forced to get out of bed to shut it off. But as I found out, that wasn't enougn.
There was one time when the alarm went off, “baah baah baah baah baah baah,” I would roll out of bed, take the two steps to cross the room, slap the “snooze” button, two steps back, roll back into bed. “Baah baah baah baah baah baah.” Roll out of bed, two steps, slap, two steps, back to sleep.
For three hours!
At which point, the alarm clock said “enough of this silliness,” and shut the alarm off itself. I am not proud to have learned this.
So yes, I still use the iPhone for an alarm clock, as when (and I think it's a matter of when) I become conditioned to the current alarm sound, I can change it.
But that still leaves one question—why does “snooze” only last for nine minutes? The most plausible answer is one popular model did it that way. So there you go.