The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Monday, April 01, 2019

The Rings of Silence

So a friend of mine saw the iPhone bug report and sent me a silent ring tone. I installed it and went through the laborious process of giving everyone in my contact list a custom ring tone, then set the default ring tone to the silent ring tone.

We shall see how well it works.

Wednesday, April 03, 2019

My social has been suspended

Of course just when I default to a silent ring tone, Verizon is offering services to block robocalling, which might explain why the number of robocalls I've received the past few days has dropped dramatically. That doesn't mean I'm going to stop using the silent ring tone.

So an unknown caller calls me, only this one leaves me voice mail. Usually when that happens, it's because it's someone I know calling from an unknown number or the car dealership telling me my car is ready or something along those lines.

I listen to the message: “—number we have gotten an order to suspend your social at very right moment becaue we have found many suspicious activities on your social before we go ahead and suspend your number kindly call us back on our number … which is … 325 … 399 ‥ 0630. I repeat it's … 325 … 399 … 0630. Thank you and good-bye,” followed by 10 seconds of silence.


Just wow.

My social will be suspended. I guess that explains why I no longer have Google+.

Thursday, April 04, 2019

It's just one of those days

[Oh, so that's what a “vet” is.  Sigh.]

Driving to work to day was horrible! No matter what road I took, it was always a parking lot. The picture above of that dog? Yeah, that's how I was feeling, waiting for traffic to move.


Monday, April 08, 2019

Notes on an overheard conversation about the possibility of the Return of the Demonic Creature, or The Alien Invasion

“Come quick! I just saw something entering the neighbor's house.”

“A burgler?”

“No, something. Nothing human. Come on!”

“Okay! Okay! I'm coming. Where?”

“See where I'm shining the light?”

“Yes. It looks like a screen is falling out.”

“Yeah! That's where I saw and heard movement when I was taking out the garbage. Some … thing … scrambling to get in.”

“Might be a squirrel.”

“It could be the start of an alien invasion!”

“Really? It's a squirrel, or maybe an opossum.”

“Or, you know, the return of the Demonic Creature that invaded Bill's Room!”

“Now you're being silly.”

“Don't say I didn't warn you.”

Why the web went bad

My recent post about "why gopher needs crypto" received a very well-considered response over at The Boston Diaries. The author (do I call you "the conman"?) …

The conman suggests that creating a new protocol is to risk that we "start falling into HTTP territory". This is of course a very real risk, but I also very strongly believe that it is perfectly avoidable if we are sufficiently determined from day one to avoid it. To this end, I hope to think and write (and read, if anybody wants to join in!) more in the future not just about the shortcomings of gopher but very explicitly about what is right and what is wrong about HTTP and HTML. It's vitally important to identify precisely what features of the web stack facilitated the current state of affairs if we want to avoid the same thing happening again.

More on gopher and crypto

In my opinion, the point where HTTP and HTML “went off the rails” into the current trainwreck of the modern web happened when browsers gained the ability to run code within the browser, turning the browser from a content delivery platform and into an application delivery platform (althought that transformation didn't happen overnight). And no, it wasn't the fault of Netscape and their introduction of Javascript that brought about the current apocalypse of bloated webpages and constant surveillance. Nope, the fault lies directly at the feet of Sun Microsystems (whose zombie corpse is following the command of Oracle but I digress) and the introduction of Java in early 1996. Javascript was Netscape's reaction to Java.

But while the blame definitely lies with Sun, that's not to say it wouldn't have happened. If Sun didn't do it, it would have most certainly been Microsoft, or even possibly Netscape (my money would have been on Microsoft though—they had already added support to run VisualBasic in their office suite and adding such to the browser would have been a natural progression for them). I think that whatever protocol was popular at the time, HTTP or Gopher, would have turned from a content delivery platform to an application delivery platform because that's the way the industry was headed (it's just that HTTP won out because of embedded cat pictures but again I digress).

In fact, the very nature of wanting to “improve Gopher” is what drove HTTP into its current incarnation in the first place and one must fight hard against the second system effect.

Saturday, April 13, 2019

Notes on an overheard conversation about emptying the dishwasher

“I see you were right about putting the platter back in its place.”

“I was?”

“Yes. Last time I showed you where it goes, you said, ‘We'll see if I remember next time.’”


“So I guess your head isn't filled with useless trivia then.”

“No, my head is only filled with useless trivia.”

“Ha! Just like my head is only filled with song lyrics.”

Monday, April 15, 2019

I like the whole “computers-in-wood” asthetic

Love Hultèn (or Hultén—it's spelled both ways on that page) made a series of life sized computers based off the old Lego computer bricks (link via Jason Kottke) and I must admit, they are very cool!

But then I checked out Love's other projects and the The Golden Apple—wow! A Mac Mini housed in a custom walnet case based off the original Macintosh 128K case is just beautiful (although to be truthful, I could do without the gold keys on the keyboard but that's me). The Pet De Lux is no slouch either.

One of these days, I'll get a computer into a wood case. One of these days …

Thursday, April 18, 2019

“Help! I'm still trapped in a Chinese fortune cookie factory!”

Bunny and I are having dinner at a Chinese restaurant. The check is delivered and we crack open our fortune cookies. Mine is something generic, but Bunny's cookie says, as God is my witness:

[“Pick another fortune cookie?”  I guess that's a great way of increasing sales.]

Unfortunately, there was no other fortune cookie to pick from. Go figure.

Monday, April 22, 2019

“Can you tell me how to get? How to get to Westeros?”

I have a few friends that are into “The Game of Thrones” (and if not the TV series, then at least the book series). For them, I have two videos: the first is “Game of Chairs,” a Sesame Street parody of the TV show. The second video is … well … a meeting between Cersei and Tyrion that is interrupted by an unexpected guest. To say more would be to spoil it.

Tuesday, April 23, 2019

The feeling when your new task is already done

“The ‘Project: Heimdall’ team now want all the numbers,” said TS1, my fellow cow-orker.

“Really?” I asked. “They can finally deal with international phone numbers?”

“Apparently yes. So ‘Project: Sippy-Cup’ needs to open the flood gates and let all the numbers through. But make it configurable.”


So I dive into the code for “Project: Sippy-Cup” and … what's this? The code is already in place. From last year. When it was clear that “Project: Heimdall” could not, in fact, handle all the numbers! I remember it was annoying having to send all NANP numbers (those that are 10 digits, like “501-555-1212”), even the malformed, invalid NANP numbers (like “501-511-1212”), while making sure I didn't pass along valid, international numbers that also happened to be 10 digits long (like “501-555-1212”). Now that the “Project: Heimdall” team has to deal with the crap we get … well … good luck. We're all counting on you.

Dealing with phone numbers

Project: Wolowizard only supports NANP numbers, but since those numbers come via The Protocol Stack From Hell clearly marked as NANP, it's easy to determine there if a number is NANP or not. It's not quite as simple in “Project: Sippy-Cup” since SIP is … a bit loose with the data formatting.

There, the numbers are formatted as a tel: URI (or a sip: URI but the differences are minor). If the number is “global,” it's easy to determine a NANP number because it will be marked with a “+1” (“1” being the country code for North America). So, tel:+1-501-555-1212 is most definitely a NANP number, while tel:+501-555-1212 is not.

Things get a bit more muddy when we receive a so-called “local” number. RFC-3966 clearly states that a “local” tel: URI MUST (as defined in RFC-2119) contain a phone-context attribute—except when it doesn't (I swear—the RFC contradicts itself on that point; tel:8005551212 is valid, even though it's a “local” number and missing a phone-context attribute because it's a “national freephone number”). So tel:555-1212;phone-context=+1501 is NANP, while tel:555-1212;phone-context=+501 is not (look closely at the two—one has a country code of “1” while the other has a country code of “501”). It's worse though, because while tel:555-1212;phone-context=+1501 is NANP, you cannot use the phone-context attribute to reconstruct a global number (the RFC contains the following example: tel:863-1234;phone-context=+1-914-555—um … yeah).

To further complicate things, the phone-context attribute does not have to contain digits—it can be a domain name. So tel:555-1212; is a valid number. Is it NANP? International? Who knows?

So what does “Project: Sippy-Cup” do? If it receives a “local” number with a “+1” country code in the phone-context attribute, it's marked as NANP; any other country code is it marked as non-NANP. If the phone-context attribute contains a domain name, it is treated as a NANP number (based on what I saw in production). And if there's a missing phone-context attribute for a “local” number, “Project: Sippy-Cup” treats it as a NANP number if it has at least 10 digits.

Now, why do I care about this? Because we want to avoid doing an expensive database query for non-NANP and invalid NANP numbers, but “Project: Heimdall” wants all the numbers for tracking potentially fraudulent calls.

Wednesday, April 24, 2019

Just one of life's smaller mysteries

Some fellow cow-orkers and I were returning from lunch to work and as we rounded the corner to The Ft. Lauderdale Office of The Corporation, we found the entire front of the building swarming with fire and rescue vehicles. Thirteen in all.

There were no police, so it wasn't an office shooting (thankfully!). No crowd of people were huddled outside the building, so there didn't appear to be an evacuation. No smoke, so there apparently was no fire. But something happened that required thirteen responding units.

[You can easily make out four firetrucks, one of which was in the process of transforming to a giant robot.] [Another four, although one is hidden somewhat by the trees.  There are more, but you can't see the trucks for the trees.]

We were able to park and enter the building. From what little we heard, there was an “incident” on the 6th floor, but what it was, and how many were involved, was unknown.

Just one of life's smaller mysteries.

Obligatory Picture

[It's the most wonderful time of the year!]

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site:, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2019 by Sean Conner. All Rights Reserved.