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.

Wednesday, May 30, 2018

Why yes, programmers always wear mirror shades while programming—it's part of Programming 101

From my friend Brian Yoder on My­Face­Google­Linked­In­Space­Book­Plus is this cute video contrasting Hollywood programming and real-world programming.

Tuesday, May 29, 2018

Non-web protocols are dead! All Hail HTTPS!

So I came across this blog post about DNS over HTTPS and …

… yeah …

… I feel that this is it. The Internet has ossified. There are no new programs or protocols—it's either on the web, or it doesn't exist.

Last week it came down from On High™ that both “Project: Wolowizard” and “Project: Sippy-Cup” will be making REST calls, most likely over TLS, rather than the current method of DNS (on a private network).

Because … reasons.

The company we query for data has drunk the REST/HTTPS über alles Kool-Aid™ and we get to suffer. We now get to make expensive network queries during the establishment of a phone call. We've been told not to worry, some load testing will be done, but hey, it's all good. It'll be HTTP/1.1.

For now.

Maybe HTTP/2.0 (which is nothing more than TCP over TCP over TLS if Google has their way, and it appears they are). But definitely HTTP/1.1 for now.

Oh, and the data we'll get back is in JSON.

Of course it is.


Damn hipster developers! Get off my lawn!

Wednesday, April 04, 2018

A few days to change what amounts to about three lines of code

I spent a few days tracking down a tough bug in “Project: Sippy-Cup”. The bug wasn't in the happy path (explained here) but the “unhappy path” that happens when a timeout occurs [memo to self: check the blog before spending a few hours rewriting what you previously wrote].

We were able to reproduce the error rather quickly. What took the time was trying to isolate the root cause, and what I should have done [memo to self: reread my previous memo to self] was enable the statement logging I did a few years ago. Doing so allowed me to find the root rather quickly.

Each request is handled in a coroutine (think “very cheap thread”). The coroutine will acknowledge the incoming SIP message, extract the data we need from said message and send it to the “Business Logic Unit.” But because we have a limited amount of time to do that voodoo that we do (else we exceed our SLA and have to pay large amounts of money to The Monopolistic Phone Company), we will only wait for a limited period of time for the reply from the “Business Logic Unit.” In either case, we then send out a SIP message and wait for an acknowledgement that it was received.

The happy path—nothing times out and everybody is happy. The unhappy path is when the reply from the “Business Logic Unit” is late, and that late reply was somehow showing up as the “acknowledgement,” which my code didn't handle gracefully at all!

So normally the program does:

And the unhappy path was supposed to go like:

So really, not much difference. But in reality things were different:

The fix, as always, was easy—if a coroutine is scheduled to run, don't reschedule it. What's not so easy is finding the root cause.

Sunday, April 01, 2018

“You guys thought I was dead? Ha ha! April Fools!”

[This is the colorful Osterhase which brings forth a bounty of colorful eggs, not to be confused with the golden brown Hasenpfeffer, which is brought forth with onions and a marinade of wine and vinegar.]

At Chez Boca, the Easter Bunny is as colorful as the eggs.

Saturday, March 24, 2018

My Facebook Dossier—now you too can get yours

I came across this tweet:

Download your Facebook account .zip off their site, unzip it, then go to the HTML folder, open the contact_info.htm file. See records of who you've talked to on your cell?not with the app, just on your regular cellphone?and for how long.

Via Hacker News, Mat Johnson on Twitter

I'm curious. So let me download this .zip file from Facebook and see what they have on me (the link to download said file is on the “General Account Settings” page, shown as “Settings” from a pull-down menu masquerading as an upsidedown triangle in the upper right corner of a Facebook page). A few minutes later, Facebook notified that my .zip file was ready for download.

I'm happy to say that the contact_info.htm file is empty! Apparently, Facebook has a hard time obtaining such information from iPhone users (I only had the app installed for maybe a month years ago and ended up deleting it). Android users who have the Facebook app installed will probably be surprised to find what's there.

The timeline.htm file shows every post (but no comments!) I've made. My first entry reads “is trying to figure out the hype around MyFaceSpaceBook” from November 11th, 2008. And my first blog entry I posed was this one two days later. There are also copies of every picture I posted, along with any comments they received (nice). Interestingly, each picture also comes with additional information:

Since most cameras include such information in each picture (except for the upload IP address) it's not surprising to see Facebook using it. But as I know that most cameras include such information, I have always stripped it out before uploading the images (it doesn't matter where—whether to my own blog or to My­Face­Google­Linked­In­Space­Book­Plus) there's nothing there, except for the IP address.

There's a list of all the people I've “friended,” along with a list of requests I've sent that haven't been accepted. I see that Bobby Cannavale has yet to accept my “friend“ request I sent on November 28th, 2008 (come on Bobby! We were in a play together in high school! You remember that, don't you?). There's also a list of “friends” I've declined to accept (Sorry Ken Lee, but you left me hanging! No way I'm going to “friend” you now).

The scariest information I've found was in the ads.htm file:

Advertisers with your contact info

Thank you for informing me that Viking Ocean Cruises have my contact information, but why did I not get a cut of the action here, Facebook? You certainly earned some money selling that information to Inrego AB, but I too, would like some of that filthy, filthy lucre. Oh wait … you aren't letting me use Facebook without charge out of the goodness of your heart—I'm “paying” for Facebook with information about me. Okay, I get it. I'm the product being sold.

There's a bunch more information but it's stuff I have given to Facebook so it's not terribly surprising.

So that's what Facebook is willing to tell me about what they have on me. I'm sure they have way more on me that I'm not privy to, like what sites they have tracked me visiting, what I'm worth to them, and what they think I like and dislike, what my political affilation is, and if I'm one of the 50 million users whose information was ultimately sold to the Trump campaign, or if I'm one of the 180 million users whose information was ultimately sold to the Obama campaigns.

I'm not holding my breath on getting that information.

Friday, March 23, 2018

Москва в Бока-Ратоне

Bunny and I are sitting on the patio of Biergarten Boca Raton, listening to the live musicians as they finish playing “Starway to Heaven” and segue into “Knocking on Heaven's Door” when I spot a nearby restaurant called “Mantana.” A weird name, “Mantana.” I have to look it up and see what type of restaurant it is—

 (561) 757-3504 Проложить маршрут

MANTANA Gastro Lounge

Кафе (Boca Raton)

Откроется завтра в 8:00

Вызвать (561) 757-3504


—and it's Russian!

Or rather, in Russian. I'm not surprised at a Russian restaurant; we have restaurants from all over down here in Lower Sheol. And it might (maybe) be fun to try it, as I'm not terribly familiar with Russian cuisine outside of borscht and stroganoff (is that even Russian? I don't know).

But the text—Russian text!

I can't even find a link to the menu to see what's on it.

I could call, and while I can use Google translate to ask “Какую пищу вы обслуживаете?” I'm not sure I could pronounce it!

Monday, March 19, 2018

This won't help, but it provided just a tab bit of enjoyment


The spam. It does not stop.

I received a followup message from both “Jesse” and “Jen”, and now this:

Mon, 19 Mar 2018 12:32:51 +0000

Hi there,

I came across your site while looking for resources for our next blog and I knew I had to reach out immediately, kudos on a fantastic blog. My name is Michelle, and I'm reaching out on behalf a online gambling company. This month, we're looking to secure sponsorship placements with five prominent blogs and your site jumped straight to the top of our list. Please let me know if this is something you're interested in discussing further.

Kind regards,

If I'm going to receive this crap, I might as well have fun. I replied to both “Jesse” and “Jen” with the reply I was tempted to reply with (let's see how they handle that) and to “Michelle” I replied thusly:

Sean Conner <>
Mon, 19 Mar 2018 19:16:45 -0400

It was thus said that the Great Michelle Barlow once stated:

Hi there,

I came across your site while looking for resources for our next blog and I knew I had to reach out immediately, kudos on a fantastic blog. My name is Michelle, and I'm reaching out on behalf a online gambling company. This month, we're looking to secure sponsorship placements with five prominent blogs and your site jumped straight to the top of our list. Please let me know if this is something you're interested in discussing further.

Thank you so much for the flashbacks I'm now experiencing. I live in Florida, and back in 2004, I was working with a gentleman who ran marketing for a gambling web site in Costa Rica. Between Hurricane Frances and Hurricane Ivan our site (as well as my private server which had no relation to the gambling marketing sites) was hacked and completely wiped out by the Russian Mob as part of an extortion racket.

I … I thought I was over it … but …

For background, yes, I was hacked between hurricanes (as part of an inside job). I can't say for certain if it was the Russian Mob, but hey, it makes it a bit more exciting.

Obligatory Picture

[“Only the highest fidelity images are used for identification purposes!”

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-2018 by Sean Conner. All Rights Reserved.