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.

Saturday, March 16, 2019

I'm not addicted to the Internet. I can give it up at any time. What? You mean it's down? Aaaaaaaaaah!

Ah, the sweet fast Internet is back at Chez Boca.

Late Thursday, the Internet here at Chez Boca went bonkers (that's a technical term). One second we were smoothly surfing the Intarwebs and then the next, we smacked against the concrete pylons of a pier (if I'm to keep with the surfting metaphore). The connection wasn't down, and it wasn't as if there was massive packet loss. It was just that each packet was taking, on average, about eight seconds to traverse the link.

Things would be fine for a few seconds, maybe enough to start loading a page but then—BAM! 10 seconds! 8 seconds! 11 seconds! 4 seconds! For the next few hours or so. Then then latency would drop to around 30ms for a minute or so, then the multisecond latencies would drive right back up.

And the packet loss was usually less than 2%.

It was weird and annoying.

When we called our ISP, we were first told that someone would be available to check on Tuesday, but when Bunny suggested to tech support to look for any cancellations, they were able to find an opening for today.

It turned out to be a bad DSL port.

In looking back over our nearly 30 hours sans Internet, it's amazing how dependent we've become on it just being there. No email. No Netflix. No quick Google searches when doing a crossword puzzle. No My­Face­Google­Linked­Space­Book­Plus­In.

Okay, that last one isn't bad at all.

But the rest … wow.

Thursday, March 14, 2019

The Repair Culture

I was using my computers when all of a sudden, I couldn't select anything with the mouse. My intial reaction was well, there goes the other PS/2-to-USB converter, but some subsequent experiments proved to me that wasn't the case—I could still move the mouse pointer, and the middle and right mouse buttons worked. It was just the left mouse button that no longer functioned.

I have a Logitech Trackman Marble from the 90s (it's not the same as what is being sold today as the Trackman Marble), and it's the second such unit I've used. The first one wore out and I had to go to Ebay to find a replacement a few years ago, I liked it that much. The thought that I would have to go through that trouble yet again filled me with dread.

In the meantime, I couldn't effectively use my computers. As Bunny and I were scambling to find a replacement mouse at Chez Boca, I decided to crack open the Trackman and see what might be the issue. It was easy enough to open, remove four screws and the innards were exposed. My initial thought was that the left mouse button (which gets the most use) had worn out. It was, but not in the way I expected. There's a portion of the button you press that activates the switch below it. It's a small vertical piece of plastic that pushes down on the horizontally oriented switch. And in that small vertical piece a groove had formed over the years of use.

After discussing the problem with Bunny, the solution we came up with was to use a small amount of Elmer's Glue (applied with a toothpick) to fill in the groove that had formed.

I want to report that the solution worked wonderfully! The Elmer's Glue hardened enough to make the left button work and if it ever wears out, I know how to fix it.


“Is there a way to convert this integer to an integer?”

I would like to write an Apache client to have a specific layout for requests to a secure site, making a static website, not locally, that may look like a assembly loader. This is my first attempt at using SSL. It's a bit simple to do with a few steps, asking the user to decide whether I should use "Google App Engine" or "Google Apps", and then have them send a sort of hash in the request to that domain. However, I still want my site to be public so I can just open it in Google App Engine.

The reason is that my client does not want to do a simple submit / form put into my app, since that 'd be possible with the Google App Engine. The reason I want to use the Google App Engine is that it works as expected. However, neither of the examples I found for handling the request from the parent page (which I am guessing are compatible with the Apache re - server - side tomcat) work as discussed in the link at How to open an IE include in a new application in Python? and all, and the one i've tried. Is there any way I can help my client AJAX to connect to my Python app?

Via Hacker News, Configure Google App Engine to redirect to localhost

This is not a real question, no one actually asked for this. This question (and every question on the site) is a computer generated word salad that almost, but not quite, makes sense. You know, like a few questions actually asked by real people at Reddit or Stack Overflow who don't quite grasp the whole concept of programming, or English, or both.

And the creator of the page is a bit worried about this site being indexed by Google. It's a valid concern that this site will pollute search results, given that the corpus used to generate the questions are questions on other sites like Reddit and Stack Overflow. There were also some comments about autogenerating answers but given the questions are maddenly close to comprehension, the lack of answers might be a good thing.

But this does give me an idea for National Novel Generation Month 2019 …


A recreation of a scene at an office

The breakroom of the Ft. Lauderdale Office of the Corporation. On the counter are several boxes clearly labled “Krispy Kreme.” Sean walks in.

Sean

Dum de dum.

He stops dead in his tracks as he spots the Krispy Kremes.

Um …

Booming Voice

We don't see the person speaking, but it's a booming, Brian Blessed like, voice. As a side note, perhaps we can get Brian Blessed to play this part. Anyway, booming voice, unseen person.

Make a SAVE vs. Krispy Kreme!

Sean

Reaches into his pocked and pulls out a twenty-sided die. He shakes it in his fist and then rolls it on the counter. His eyes goes wide. CUT to die rolling on the counter.

D20

ZOOM to CLOSE-UP of the die on the counter. You can clearly make out the “1” on the top face of the die.

Sean

Nooooooooooooo!

Sean then dives into the Krispy Kreme boxes …

Nom nom nom nom nom …

Tuesday, March 05, 2019

The Quick and Dirty B-Movie Plot Generator, now in Gopherama!

As long as I was making The Electric King James Bible available via Gopher, I thought I might as well adapt The Quick and Dirty B-Movie Plot Generator to Gopher as well. It pretty much works the same as the web version. Just reload the page for different plots and when you find one you like, you can just bookmark it.


The Electric King James Bible Remake

It's been a long time since I last mentioned The Electric King James Bible, an experiment I did back in late 1999 in URL addressing a portion of a document (which influenced the structure of my blog). The code hasn't changed much since 1999 (there was a bug fix around 2010 it seems), and thus, it has sat there, chugging along with little attention to the greater world.

Until the past month when I've had email discussions with two different people about The Electric King James Bible. Both people were interested in the addressing scheme, which I think is still unique on the Internet. How many sites will let you link directly to a portion of the Bible and get Noah's Ark or Samson and Delilah? It can also handle some pretty bad misspellings (levitakus 19:19 anyone?). One of the respondents mentioned it would be nice if The Electric King James Bible was available via Gopher.

Well, yeah, I do have a gopher site, so it wasn't all that difficult to present a similar interface (in fact, it uses the same data files as the web version). So of course now you can get your Noah's Ark story and Samson and Delilah story from gopherspace. And any other Bible story you care to, just as long as you know where in the Bible it resides.


“We the willing”

I'm was still trying to process that the process of our process is to process the process to ensure the process has processed the process when I came across this rather insightful comment about the FizzBuzz Enterprise Edition:

A combination of wasteful architecture astronomy and legitimate need to divvy up absolutely mammoth line-of-business applications among teams with hundreds of members operating for years with wildly varying skill levels, often on different subsystems from different physical locations, with billions of dollars on the line. You can't let the least senior programmer in the Melbourne office bring down the bank if he screws up with something, so instead you make it virtually impossible for him to touch anything than the single DAO which he is assigned to, and you can conclusively prove that changing that only affects the operation of the one report for the admin screen of a tier 3 analyst in the risk management group for trans-Pacific shipping insurance policies sold to US customers.

The tradeoff is, historically, that you're going to have to hire a team of seven developers, three business analysts, and a project manager to do what is, honestly speaking, two decent engineers worth of work if they were working in e.g. Rails. This is a worthwhile tradeoff for many enterprises, as they care about risk much, much, much more than the salary bill.

(I spent several years in the Big Freaking Enterprise Java Web Applications salt mines. These days I generally work in Rails, and vastly prefer it for aesthetic and productivity reasons, but I'm at least intellectually capable of appreciating the advantages that the Java stack is sold as bringing to users. You can certainly ship enterprise apps in Rails, too, but "the enterprise" has a process which works for shipping Java apps and applying the same development methodology to e.g. a Rails app would result in a highly effective gatling gun for shooting oneself in the foot.)

A comment on HackerNews about FizzBuzz Enterprise Edition

And how having attended several scrum meetings (at the behest of our Corporate Overlords) for “Project: Gibbons” (a slimmed down and simplified version of “Project: Lumbergh”) I can see how this “enterprise development” is shaking out—it's a form of Conway's Law: “[O]rganizations which design systems … are constrained to produce designs which are copies of the communication structures of these organizations.” It's gone from what should be a simple one week project (because all it's doing is looking up a name based upon a phone number and that's it) into a multi-month project mired in internal bureaucratic overhead. I'm not going to go into details, but just note that yes, Dilbert is a documentary.

Thursday, February 28, 2019

In most cases, the $100 chip will blow to save a 1¢ fuse, but occasionally, the 1¢ fuse will do its job

Well, that's a fine kettle of fish, I thought as I powered up my main computer and it reported it couldn't find the hard drive. First the keyboard, and now the hard drive. I resisted the urge to say, “What else could possibly go wrong?”

Late last night we had a power outage. I did the usual “shut down all the computers, then shut down the UPSes. Fortunately, it only lasted some ten minutes and the power came back up. I powered up the UPSes, then I started with my main computer. It got to the point where I could log in, only the keyboard didn't work.

That's odd, I thought. I then powered up my other computer, the Mac mini. Both computers use the same keyboard in a convoluted setup involving a KVM and Synergy that works for me. The keyboard worked fine on the Mac mini, so it wasn't the keyboard that was bad.

But both computers lack a PS/2 port, so I have to run the keyboard cables through a PS/2-to-USB converter (one per system). Logging into my main machine from the Mac and scanning the USB subsystem showed nothing connected, which lead me to believe said USB system on my main machine was dead. But oddly, there was nothing in the boot messages that said the USB couldn't be initialized or was otherwise bad. I then thought perhaps some dust had gotten in the way? I mean, the system was dusty.

I took the machine outside and let loose with some canned air. Back inside, hook everything back up and Well, that's a fine kettle of fish …

At this point, I did not panic, but instead applied Conner's Three Rules to Worrying:

  1. Can I do anything about the issue I'm worried about now? If so, do the thing and stop worrying.
  2. Can I do anything about the issue later? If so, wait until later and see rule 1.
  3. Can I do anything about the issue at all? If not, no use worrying about it as there's nothing you can do about it.

I figured rule 2 applied, and waited until later.


Later came, and I decided to take a methodical approach to the problem. I unhooked the computer, opened the case and made sure all the cables were firmly in place. Perhaps letting loose with the canned air knocked a cable loose and in fact, that was the issue—the power cable to the CD-ROM had been knocked loose, and that's probably the hard drive the computer was complaining about. Everything else seemed firmly in place.

As an aisde, I do want to mention the case I have for my main computer is one of the nicest cases I've seen. It's easy to get into without any tools, wire/cable management is super clean, and nothing is hard to get at or remove. It's a beautiful case.

Anyway, I hook everything back up, and lo'! It booted up, But alas, the keyboard was still borked.

I still didn't panic. The computer works. I don't have to get a new harddrive and the mess that entails. I can still work without a keyboard. At the very least, I can see if I have a USB PC card in my collection (I gave it a 10% chance of having one in storage) and if not, I could always order one.

But then something said try the PS/2-to-USB converter on the Mac on my main system. And lo'—it worked! It was the PS/2-to-USB converter on my main system that for some reason fried—it wasn't the USB subsystem at all! And that's a much easier problem to work around.

Wednesday, February 20, 2019

How to measure 5/6 cup of oil, part II

I just received an email from D. J. about a fifteen year old post which mentioned bad math books and tagentially about measuring oil. It was unusual in that D. J. not only read the post (and enjoyed it) but also mentioned an alternative way of measuring 5/6 cup of oil using a simpler method than the insane one I came up with at the time. D. J.'s method is to meausre out 4/3 cups and then removing ½ cup. I guess D. J. is better at fractions than I am.

Monday, February 04, 2019

Portrait of a picture of a migrant mother

So I started watching “Masterpiece: The Making of Migrant Mother” and right off, I'm annoyed that the creator, Evan Puschak, is using a vertical orientation for the video, as if he filmed it with a smart phone. But after a few minutes I stopped noticing the odd aspect ratio as I was engrossed in the top of the video. By the end, it was clear that the vertical aspect ratio was a design choice, to reflect the subject matter, an iconic portrait from the Great Depression.

He filmed a video about Dorothea Lange's portrait “Migrant Mother” in portait mode! Yes, it's jarring to see video in portait mode instead of the normal landscape mode, but ultimately, I think it works.

It was also interesting to note just how much manipulation went into that photo. It wasn't just a quick shot of a mother with three kids, but artfully staged as government propaganda to promote one of President Roosevelt's social programs during the Great Depression. Jason Kottke goes into some depth about the subject of the photo, Florence Owens Thompson.

Thursday, January 24, 2019

The various principles of management

Today was much nicer than yesterday. As I did actual work, you know, the work that I was hired to perform—to generate software that we charge our customers to use, I reached the que sera sera state with my “self-review” and have decided to let it go (I can only hope that the Corporate Overlords of the Corporation will finally accept it and not kick it back down for another wasted day of make-busy work).

But The Process has me thinking. There's the Peter Principle, which states that people are promoted to their level of incompetence, and the Dilbert Principle, which states that incompetent people are promoted to management to limit the damage they can do. And then there's the Gervais Principle, which is a lot harder to summarize but at first glance (of over 30,000 words) appears to explain management machinations, but I suspect I'm going to have to read the thing several times before I understand the actual principle, especially given the terms used to describe three groups of people—sociopaths, clueless, and losers—are loaded with negative connotations (after an initial reading, I would personally use the terms realists, idealists and cynics).

In the mean time, as far as I'm concerned, The Process is over, and I shall not talk about it again.

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: http://boston.conman.org/, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

http://boston.conman.org/2000/08/01

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.