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.

Tuesday, November 07, 2000

A hellish workplace

A programmer's work environment should be a supremely comfortable place to sit, look at information on a screen, and type. At ArsDigita we accomplish this via providing Aeron chairs, the keyboard of the programmer's choice, and at least two monitors. In the summer, the place should air-conditioned [sic] 24 hours per day, 7 days per week. In the winter, the office should be heated and humidified (often neglected). The air should be cleaned year-round with high-efficiency mechanical filters and electronic cleaners so that allergy sufferers are not discouraged from working.

If you see one of your best people walking out the door at 6:00 pm, try to think why you haven't challenged that person with an interesting project. If you see one of your average programmers walking out the door at 6:00 pm, recognize that this person is not developing into a good programmer. An average programmer's productivity will never be significant in a group of good programmers. If you care about profits, you must either come up with a new training program for the person or figure out the best way to terminate his or her employment with your organization.

ArsDigita Systems Journal:  Managing Software Engineers

I'm not sure if the working environment described here is heaven or hell or some unholy mixture of the two.

Wednesday, November 07, 2001

A Walk in the Park

It was such a beautiful day today that Spring and I walked over to a nearby park to have a look around. Veteran's Park, oddly enough dedicated to U.S. Veterans of all wars, is at the west end of a shopping center about a block west of us. Neatly mowed grass and a few token trees surround seven flag poles, one with the U.S. flag and the remaining six for the various armed forces. There are also a few benches there to relax on.

Given that there were no signs saying DO NOT WALK ON THE GRASS we did just that. And also given that there were no signs saying DO NOT CLIMB ON THE TREES Spring did just that. She climbed one of the banyan trees along the edge of the park. They're easy trees to climb, given their sprawling nature and dozens of small trunks they throw down as they grow (I've heard a story of one such banyan tree covering nine acres). I decided to remain safely on the ground least I have an attack of vertigo.

Walking back, we passed a playground where the kids (all kindergarten age) started asking Spring questions about her hair. I attempted to take a picture, but Spring stopped me.

“Don't you know it's not safe to take their picture?” she asked.

“What? It's not like I'm stealing their soul or anything,” I said.

“It's not that—it's just that parents get very upset if you take pictures of their kids. You could be arrested.”

“For taking a picture of some kids?”

“Yes. Parents get very defensive about their kids.” I rolled my eyes as we kept walking.

We walked behind the the shopping center where we saw some very oddly marked parking spots. One was marked “SEMOSUMMER RESRYEO” and another one was similarly marked (although I don't recall exactly what it said as the picture turned out fuzzy.

We also stopped by to check the mail box and ran into our roommate Rob who was leaving for fighter training (in swords). We ended up checking the mail right there in the middle of the parking lot.


“Let's do Fawn!”

To celebrate our anniversary Spring and I headed over to the Melting Pot for dinner. It's a nice cozy restaurant and since Spring had never had fondue (“You've never had fondue?” “No dear, I haven't.”) I figured it was the place to go for a special dinner.

But as I remarked to Spring while we were there dipping various food items into cheese or hot oil (depending upon the course we were on), you would think the prices wouldn't be so high, seeing how the customer does all the cooking. And Spring remarked that their insurance rates must be insane seeing how there is hot oil on every table and if the customer doesn't cook the food long enough they stand a chance of food poisoning.

But overall we both very much enjoyed the meal.

Thursday, November 07, 2002

The '92 Vice-Presidential Debate was more interesting than this

Spring and I were invited to “War at the Shore III: Battle Operating System—Windows .Net Server vs. Linux” presented by the Gold Coast .Net Users Group. In one corner was Ivar Hyngstrom, Senior Technology Specialist II, Systems Architecture, Messaging and Storage for Microsoft, representing the (obvious) Microsoft .Net server side. In the other corner was Von Walter, Senior Consultant, IBM Global Services from Orlando representing the Linux side. The fight theme was quite strong in the debate; they even had a woman (Gina) walking about the conference room with a placard numbering the rounds.

Round 1—General capabilities

IBM won the coin toss and declined to go first. In the first of two major embarassing moments, Microsoft had hit the wrong button the their laptop and we had to wait several minutes for him to recover. My impression of the first round is that Microsoft is slowly re-inventing Unix within their operating system. .Net server is a bit more scriptable than previous versions of Microsoft Windows and now includes remote administration! Woo hoo! (Of course, that could be due to Microsoft wanting to put Citrix out of business)

Also learned a new acronym: SAN: System Area Network.

And how is that different from Local Area Network?

I was impressed that Microsoft has added a versioning file system to .Net server. The presenter deleted his Power Point presentation and was able to restore from two previous versions. Granted, this isn't new: DEC had this in VMS years ago, so no real innovation there (“but of course Microsoft invented ‘Shadow Copies’”).

IBM? I'm sorry, I fell asleep during his presentation.

It was that bad.

Round 2—Security

IBM goes first. Highlight of IBM's presentation: a distinction between hackers and crackers. Low point: mentioning the r-commands (like rsh, rcp, rlogin etc.). No one in their bloody minds uses those commands anymore. I never used them when I first started using UNIX back in 1990! Sheesh!

Spring mentioned that Microsoft was using buzz words during their presentations, while IBM was just saying how it worked.

But Microsoft was more polished in its presentation, even if it was empty of real content.

Highlight of Microsoft's presentation: “Relative Attack Surfaces” said with a straight face. Amazing.

He also said that .Net server was secure by

Again, with a straight face.

Amazing.

At the end of this round I got to ask a question: What's the time between an exploit that is found and the time the vendor (Microsoft, any particular Linux distribution) will get a patch out? I knew the answer (Microsoft, if they even acknowledge the exploit, will have a patch out maybe a week or two. Linux: hours). I was quite disappointed in the answers. Microsoft hemmed and hawed and never did give a definite answer. IBM didn't quite know how to answer the question and gave a weak answer, more of a guess, of a week turn around time for RedHat.

Round 3—Scalability and Failover

Microsoft goes first. He tried to create a cluster, but the software crashed on him. He seemed to be running .Net server under VMWare but I'm not sure if it was .Net server that crashed, VMWare that crashed, or he just closed the wrong window. In any case, the presentation failed over to IBM.

This was one of the better rounds for IBM. Or I was less familiar with the material. He mentioned IBM's Blue Gene which is a computer with 65,536 CPUs and some 16 terabytes of RAM (which is 16×240 or 17,592,186,044,416 bytes—a typical book takes up about a megabyte, or 1,048,576 bytes, this thing could hold 16,777,216 books in memory!). And he also mentioned Google, which is now up to 15,000 machines, have indexed some 3 billion pages and handles around 150,000,000 search queries (a day? A month? my notes are a bit illegible at this point).

Round 4—System Administration

Dull dull dull dull dull. IBM just read off the slides and Microsoft was still trying to get the clustering to work from the previous round.

Round 5—Is there a point?

Microsoft finally finished setting up the cluster software (from Round 3) only to shut down the wrong server. I must have fallen asleep at this point since I have no notes at all of what IBM talked about.

End of this debacle

This was thankfully the last round of a rather pointless debate—the Microsoft guy kept claiming to be too technical to answer any questions about pricing or licensing or anything (although he did say he didn't like subscription model of RedHat tech support—this from Microsoft? Who is trying to force a subscription model on software?) and apparently the IBM guy was here in an “unofficial” capacity and did not know Linux all that well (he lost the TCO argument to Microsoft! How sad is that?).

Monday, November 07, 2005

“We know better than you … ”

I think I figured out the problem with MRTG and the missing log files.

You see, when I installed the operating system, one of the optional packages to install was MRTG. So I decided to install it. But unbeknownst to me (and totally unconfigured mind you) as part of the installation, it was already added to cron but not as part of the file you get when you run crontab -e (because you know, just by the act of installing the software you must want to use it immediately, even if it isn't fully configured yet, right?).

So every five minutes, two copies of the software were being run.

So no wonder the log files were getting munged.

Grrrrr.

You'd think that after ten years of Unix administration I'd get the hang of things, but nooooooo! I guess I still expect to have to configure packages and add them manually to cron if I want them.

Tuesday, November 07, 2006

Network slow? It might not be the network …

For the past two months or so I've been fighting a problem on one of our DNS resolvers—the server is still up, and from what I can tell, DNS is still up and running (it's one reason why I got monnet working oddly enough) but the system load shoots up and consequently it gets slower and slower to respond.

At first I thought it was slowing down due to logging every little lame server out there, so I dropped the logging down to only severe errors, and that didn't help one bit.

I've been having to go in and restart named every other day or so. I'm relunctant to set that up as a cron job, as that only masks the issue; it doesn't solve it.

Meanwhile, one of our clients has been experiencing some network “issues” since we reworked their network (to be fair, they were having issues before we reworked their network, hence our reworking their network) and even more puzzling, we haven't seen anything abnormal from our monitoring their network (although some close scrutiny did reveal that the wireless shot there is still a bit flaky, even though we re-aimed the shot—now we've set the routing to prefer the T-1 over the wireless).

We then received email about possible DNS issues, and they're using our DNS resolvers.

Hmmmm.

A non-responding DNS could be mistaken for a slow network, or a network that appears to have outtages (as the DNS queries take time to time out). Our problematic resolver could be causing them to have problems.

In describing the issue with Wlofie, it came to light that the problematic server only has 32M of RAM.

Oh.

On a rather busy network.

The other resolver, the one not having an issue, has 128M of RAM.

I think I found the problem here (and honestly, it never occured to me to check memory on the box—sigh).

Wednesday, November 07, 2007

Named

Since Smirk helped to fund the development of the greylist daemon he had a hand in naming the actual product, and we decided upon X-Grey. The site will be up in a few days, and then it will be officially released to the public.

Woot.

Saturday, November 07, 2009

Aaaaaaaaaaaaaaaaaah!

Last Sunday I sent an important email to fred@example.com (obviously not the real address). I didn't hear anything back and on Wednesday, sent a follow-up message. I still didn't hear anything back.

I then checked my logs, and found the following (formatted for easy viewing):

mail.log:Nov 1 18:31:09 brevard postfix/smtp[32387]: D9024170C57C:
	to=<fred@example.com>, 
	relay=aspmx.l.google.com[209.85.221.90],
	delay=1, 
	status=sent

	…

mail.log:Nov 4 20:24:19 brevard postfix/smtp[13490]: 6FE3E1AA92E9:
	to=<fred@example.com>, 
	relay=aspmx.l.google.com[209.85.221.67],
	delay=1, 
	status=sent

Oh no … it's Gmail.

We've had issues at The Company with Gmail. Specifically, Gmail seems intent upon classifying all email sent from The Company as spam. And seeing how my website is being hosted by The Company, my guess is Gmail is classifying my emails as spam as well.

I sent a test message to my Gmail account and sure enough, it ended up in the spam folder, with no way of telling why it was sent there, or a way to tell Gmail that I'm not a spammer.

Head, meet desk.

Ow.

Saturday, November 07, 2015

Bookless libraries, a Latinless Catholic Church and other unbelievable things

Bunny and I were at a restaurant, playing this on-line trivia game when we got the question:

In Texas, there exists a public library that has no books.

Now, I realize this is Texas they're talking about, but really? Surely Texas can't be that backwards, can it?

SAN ANTONIO (AP) — Texas has seen the future of the public library, and it looks a lot like an Apple Store: Rows of glossy iMacs beckon. iPads mounted on a tangerine-colored bar invite readers. And hundreds of other tablets stand ready for checkout to anyone with a borrowing card.

Even the librarians imitate Apple's dress code, wearing matching shirts and that standard-bearer of geek-chic, the hoodie. But this $2.3 million library might be most notable for what it does not have — any actual books.

That makes Bexar County's BiblioTech the nation's only bookless public library, a distinction that has attracted scores of digital bookworms, plus emissaries from as far away as Hong Kong who want to learn about the idea and possibly take it home.

Texas library offers glimpse of bookless future

Oh … well. Um. Okay.

And then the next question came up:

The official language of the Vatican is Latin.

This is a trick question, right? I mean … the Vatican! They invented Latin! This is true, right?

Q: What is the official language of Vatical City?

A: The official language of the Vatican City state is Italian, with Latin and French as secondary languages. Vatican City is a walled enclave within the city of Rome. Its area of 110 acres makes it the smallest independent state in the world.

What is the official language of Vatican City?

What the … ?

Okay, fine! I need to learn a bit more about the Vatican. Next thing you'll tell me, Microsoft is going open source or something silly like that …

Tuesday, November 07, 2017

The Shadow Sean Conners

I've had a Gmail account for nearly a decade now, although I never use it. I think I got one back in the day to see for myself the hype around this new email service from Google. I obtained the account early enough to snag the address sean.conner@gmail.com (but don't send anything there—it might be months before I get to it).

But the weird thing is that I constantly get email meant for other Sean Conners. I checked today and …

And all this just in the past week!

What I find amazing and uncomprehensible is … do these other Sean Conners not know their own email address? Do they just assume sean.conner@gmail.com will somehow, magically, get to them? Do they not care? Do other people sending the email just assume that sean.conner@gmail.com will get to the Sean Conner they know?

What's going on?

I do respond to some of these (the ones that don't appear to be spam at least), informing the sender that they have the wrong Sean Conner, but rarely do I ever get a message back.

It's bizarre.


Love is … a freaking wall of text

And so I implemented my idea in about all of an hour. The code itself is pretty straightforward:

require "org.conman.math".randomseed()

local fixcase = Cs(
                    (R"az" / function(c) return c:upper() end + P(1))
                    * P(1)^0
                  )

local function lookup(term)
  local list
  
  if dict[term] then
    list = dict[term]
  else
    local l = fixcase:match(term)
    if dict[l] then
      list = dict[l]
    else
      return term
    end
  end
  
  return list[math.random(#list)]
end

local word   = R("''","--","AZ","az")^1
local term   = word / lookup
             + P(1)
local corpus = Cs(term^1)

local count  = Cf(
                   Cc(0) * (word * Cc(1) + P(1) * Cc(0))^1,
                   function(acc,count)
                     return acc + count
                   end
                 )
                 
local text = "Love"
local num
local loop = 0

repeat
  loop = loop + 1
  text = corpus:match(text)
  num  = count:match(text)
until num >= 50000

print(string.format([[

                                 Love is ...

                            A Definitional Novel
                        in %d expansions and %d words
                        
                        
]],loop,num))

print(wrap(text))

The first line initializes the random number generator, then an LPeg expression to uppercase the leading character of a word (that's how most of the terms in the dictionary I used appear). Then we have a function that returns either a random defintion of a given term, or if no definition exists, the term itself. Next is the definition of a “word” with the expression word—one or more letters, dashes or apostrophes. The next expression, term, either finds a “word” and does the definition lookup via lookup() or just whatever non-word text it finds (punctuation marks mostly). The expression corpus will run term multiple times, replacing the input with the translated output (this is a “substitution capture as it's called in LPeg).

The count expression just counts words—it's a folding capture which accumulates a single result. In this case, we start with 0 (Cc(0)), then for each “word” in the input it returns a 1; otherwise a 0 (word * Cc(1) + P(1) * Cc(0)), which is added to our accumulator using the given anonymous function.

Then it's a matter of starting with “Love” and running this a few times until we get over 50,000 words.

What I didn't expect (but should have) is the “Wall Of Text” that is generated:

To denote having as a possession or an appendage; as, the firmament with its stars; a bride with a large fortune. One of whom inquires can be made as to the integrity, capacity, and the like, of another. Apposition; connection; antithesis; opposition; as, they engaged hand to hand. a That which terminates, circumscribes, restrains, or confines; the bound, border, or edge; the utmost extent; as, the limit of a walk, of a town, of a country; the limits of human knowledge or endeavor. Denoting nearness or distance, either in space or time; from; as, within a league of the town; within an hour of the appointed time. The period at which any definite event occurred, or person lived; age; period; era; as, the Spanish Armada was destroyed in the time of Queen Elizabeth; – often in the plural; as, ancient times; modern times.; as, With privilege or possession; – used to denote a holding, possession, or seisin; as, in by descent; in by purchase; in of the seisin of her husband. an A measure of distance traveled.; As a substance for any noun of the neuter gender; as, here is the book, take it home. happened One who is in office; – the opposite of out. See Thee. A wooden block shaped like the human foot, on which boots and shoes are formed. A division of the Roman people formed according to their property, for the purpose of voting for civil officers.; To inclose; to take in; to harvest. all Of or belonging to me; – used always attributively; as, my body; my book; – mine is used in the predicate; as, the book is mine. See Mine. The potential principle, or force, by which the organs of animals and plants are started and continued in the performance of their several and cooperative functions; the vital force, whether regarded as physical or spiritual‥ A Freely; licentiously. Yellow or gold color, – represented in drawing or engraving by small dots. Worthy of consideration; requiring to be observed, borne in mind, or attended to. A numeral; a word or character denoting a number; as, to put a number on a door‥ phrases, and To denote a connection of friendship, support, alliance, assistance, countenance, etc.; hence, on the side of. That which refers to something; a specific direction of the attention; as, a reference in a text-book. Extent; limit; degree of comprehension; inclusion as far as; as, they met us to the number of three hundred. a The space or thing defined by limits. Denoting the agent, or person by whom, or thing by which, anything is, or is done; by. To measure, as in music or harmony.; as, With reference to circumstances or conditions; as, he is in difficulties; she stood in a blaze of light. an Fixed or appointed time; conjuncture; a particular time or occasion; as, the hour of greatest peril; the man for the hour.; As a substitute for such general terms as, the state of affairs, the condition of things, and the like; as, how is it with the sick man? happened With reference to circumstances or conditions; as, he is in difficulties; she stood in a blaze of light. A word placed before nouns to limit or individualize their meaning. A wooden block shaped like the human foot, on which boots and shoes are formed. A division of the Roman people formed according to their property, for the purpose of voting for civil officers.; The specific signification of in is situation or place with respect to surrounding, environment, encompassment, etc. It is used with verbs signifying being, resting, or moving within limits, or within circumstances or conditions of any kind conceived of as limiting, confining, or investing, either wholly or in part. In its different applications, it approaches some of the meanings of, and sometimes is interchangeable with, within, into, on, at, of, and among. all Of or belonging to me; – used always attributively; as, my body; my book; – mine is used in the predicate; as, the book is mine. See Mine. Figuratively: The potential or animating principle, also, the period of duration, of anything that is conceived of as resembling a natural organism in structure or functions; as, the life of a state, a machine, or a book; authority is the life of government‥ (usually Relating to, or containing, more than one; designating two or more; as, a plural word.) an acquaintance Ere; before; sooner than. acquaintances Originally, an interrogative pronoun, later, a relative pronoun also; – used always substantively, and either as singular or plural. See the Note under What, pron., 1. As interrogative …

Love is …

and so on for another 12,856 lines.

A literal “Wall Of Text.”

It also overshot the 50,000 words by 120,007 words. Yes, there are a total of 170,007 words (minus the title) in this “novel.” And what was totally surprising to me is the number of times through the expansion loop—only four.

From “Love” to “To denote having as a possession or an appendage; as, the firmament …” in four steps.

I found the “ending” to be somewhat amusing:

… Denoting identity or equivalence; – used with a name or appellation, and equivalent to the relation of apposition; as, the continent of America; the city of Rome; the Island of Cuba. To work, as raw or partly wrought materials, into suitable forms for use; as, to manufacture wool, cotton, silk, or iron… adventures.

Love is …

Apparantly, love contains tourist hotspots, industrial production and adventures. Who knew?

Saturday, November 07, 2020

Uncle Ed

I found out today that my Uncle Ed died.

On the one hand, the news is sad, but I am also relieved since he was suffering with a neurological disease for years.

Growing up, my Dad's parents (after my own parents divorced) would take me in for the summer in Royal Oak, Michigan (for the geographically impared, Royal Oak is just outside Detroit). Ed married my Dad's sister Jan, and they lived just a block and a half away from my grandparents house. What really stood out about their house was the six car garage Ed built (I recall him building it) to store the cars he spent his time restoring. There was also the two story play house he built for his kids.

Not only handy, he also had an incredible sense of humor and at times probably could have used some adult supervision himself, especially around fireworks.

Ah, the fireworks. He would trade glasses (he was an optician and was part owner of a glasses shop) for a ridiculous amount of fireworks every year. There was the time when a Roman candle fell over and started shooting at the garage, Ed kicked it and it started shooting at the neighbor's house. Then there was the time we went into the park behind his house and several fireworks ended up landing near the school on the other side of the park, and the ones that didn't hit the school nearly hit 12 Mile Rd.

Good times.

He was also my first real introduction to computers. One year I visited, he would occasionally take me into his office and let me play games on the Apple ][ he used for the business (oh, and sometimes I would have to clean the glasses before they were delivered to customers). I recall us both being affected by the ending of the classical text adventure game “Planetfall.” And at his house, he had an ever increasing number of gaming systems, starting with the Bally Professional Arcade system back in 1979.

It's no wonder that his own kids are involved with carpentry and information technology.

So here's to Uncle Ed. And much love to Aunt Jan, and my cousins Seth, Levi and Mallory.


The death of Kirk Cameron was greatly overexaggerated

Bunny is in the other room watching TV. I'm trying hard not to pay attention to the noise when I hear the unmistakable voice of Raymond Burr mention the murder of Kirk Cameron, and I'm like What?

No, I heard correctly—Kirk Cameron was murdered.

Only it was Kirk Cameron, fictional character for the Perry Mason episode “The Case of the Illicit Illusion” and not Kirk Cameron, former child actor of “Growing Pains” and promoter of the crocoduck.

For just a split second, I thought 2020 just got a bit weirder …

Sunday, November 07, 2021

Extreme white squirrels, Brevard edition

Bunny says I was a bit squirrelly today—I'm not sure what she's talking about.

[A picture of me as a white squirrel] Methinks I've spent too much time in Brevard as it appears I'm going native. Great! Now I have to watch out for Captain Willard coming up the French Broad River.

Obligatory Picture

[Self-portrait with my new glasses]

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

Obligatory AI Disclaimer

No AI was used in the making of this site, unless otherwise noted.

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

https://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-2025 by Sean Conner. All Rights Reserved.