RSS Atom Add a new post titled:

Normal people are there first.

What am I talking about? In the aftermath of every emergency, such as today's murderer-driver attack in Toronto, there is a parade of politicians on TV. Right after the condolences comes the obligatory and effusive praise of the police / ambulance / fire services that came on scene. In the last decade or so, the phrase "first responder" seems to have been invented as a term of honour for these people. And yes, they can do important, difficult, occasionally dangerous or terrible work.

But the term "first responder" is a lie. When tragedy strikes in a populous location, normal people are there first. They were already there. Within seconds of an accident or incident, ordinary citizens get involved. Whether it's someone doing first aid or driving to a hospital, getting in a car and chasing down a suspect, engaging an armed attacker with counter-fire with their own firearm, dragging someone out of a burning car, or just starting to direct traffic ... within seconds, normal people will engage. First.

Some time later, hopefully quickly, the heralded government professionals will arrive and take charge of the emergency. That does not make them "first responders". They are simply the first of that small minority of the population known as "government" whom we are forced to employ. But other than in a prison, they are not everywhere, cannot be everywhere, and this is a good thing.

Therefore, you, the normal person reading this, should prepare yourself for an eventuality where YOU are the real first responder. Learn first aid. Learn self defence. Learn to always monitor your surroundings in Jeff Cooper's "condition yellow". Learn anything you can, so that you can be self-sufficient. Sure, you may not get much recognition from the media and government, but they don't matter anyway. A resilient populace is many times more powerful.

Posted Mon 23 Apr 2018 11:04:02 PM EDT

I spent my evening with a few families of friends new and old. Among the topics: the sorts of gifted education offered for their children in the public school systems in our areas (plural). It was not what one might expect: more academic, more rigorous, more advanced, but rather more loose, un-academic, personal project-oriented. It is not where I would send a kid to teach him or her more deeply - it is where I might send a smart kid to have a more fun time.

Thinking about it now though, a darker hypothesis popped up its ugly head. What if you were an education theoretician of the "social justice" mold, for whom educational inequality is a problem to solve? You would not be fond of special programming for gifted students; after all their high achievements exacerbate the "gap" you hate. What if under the guise of gifted education, you could instead subtly undermine them by directing emphasis not on academic stuff but other sorts of work? Could you perhaps do it to such an extent that the kids' academics actually end up lagging by the time they finish your school?

As long as you dress up the program with lots of pretty buzzwords, and emphasizing how different these gifted programs are, maybe the school superintendents / ministers, through to the low level teachers and parents wouldn't realize the implications. What if the earliest signs of trouble would be when/if the students apply to universities and start struggling -- by that time well out of one's jurisdiction/accountability?

Wouldn't that be a horrible cruelty?

Posted Mon 12 Feb 2018 12:18:36 AM EST

A brief public service announcement to internet experimenters. If your machine thinks it has a global IPv6 address, it had better work - it better be able to send & receive traffic at that address.

Because there will be some daemon (I'm looking at you, bind9 in Fedora 27), that will prefer it exclusively, even over a fully functional IPv4 interface address. And it when it tries to collect anything like, say, DNSSEC keys, this will fail with a timeout. That'll lead to unverificable DNS records, which lead to a SERVFAIL on many inquiries and/or very slow service. What fun!

So, if you dabbled in one of the Hurricane Electric IPv6 trials, and might have left a network-scripts/ifcfg-FOO file around, or an interface tagged with that address - keep it online, or clean it completely out.

Posted Mon 22 Jan 2018 11:38:02 AM EST Tags:

It was a decade ago, give or take another, when it started. The fight. The loss. The covert combat for food in our family.

I struck first. My lovely wife and I were mid-snack in our house one day. I ate a banana. She ate a banana. I ate another banana. She started eating another banana, then stopped a moment to say something. I was not listening. As if driven by reflex, my body computed that the male-to-female distance was ideal. I bent forward, right over, smoothly toward her.... Hey, get your mind out of the gutter - I was aimed at hand holding the peeled fruit. Less than three syllables into her speech, my mouth was on a trajectory that perfectly enclosed her second banana. I stole a bite. A big bite, like half. All before she or I even consciously realized what happened. I straightened up. It took her a few seconds to figure it out, then ... "HEEEYYYY!!!".

My smug smile upon recalling the raid could not be chiseled away for several years.

What I did not realize is that she was plotting revenge.

It was a dish served cold. She didn't even do it herself: she subcontracted to son number one. He's almost 13 now, growing like mad and eating even madder. The wife has somehow hypnotized him into believing that taking food from me is not only forgivable, it is also proper. At least I assume she has done it, because he's so good at it and she laughs every time. Slices of ham, the occasional berry, whatever .... if it's on my plate and if Eric can reach over quietly, he does. Sometimes I get a "please" afterwards (?!). Rarer still is a "thank you". Alas, fatherhood.

Round #3 went to me. Just the other day, I deliberately stole freshly cut smoked cheese off of son number two's sandwich. Yup, he had it all set up, all ready to eat, but I distracted him. "Look out the window - there's a bird!" ... or some such manipulative lie, well-aware of Stuart's fascination with nature. Even though the boy is quite astute, he trusted me that time. And yes, I stole one cube. Then, with another distracting line, another, and then another. I was starting to feel guilty, but not guilty enough to stop. But by now, Juimiin was laughing her head off -- which tipped Stuart off about the crime in progress. "HEEEEYYYYY!"

He took it out on me later by stealing my stuffed Scouting plush wolf.

The punchline to this sorry saga occurred today at lunch. For the first time, criminal went head-to-head against criminal. I was neither: it was boy #2 vs wife #1, both pecking at a piece of chinese bakery bun. Like two pretend-starving seagulls, they poked at it with chopsticks. They ripped with hands. They bit into the piece -- then pulled it from each other's sweaty-tooth madman hands. This was all over one little delicious coconut bun. It went on for a few minutes, with crumbs all over the place, and both parties having a great time.

What they didn't realize was that I was studying their tactics the whole time. I realize I can beat them both. I have a plan for the remaining buns in the house. Kind reader, say a prayer for this once and again dominant food pirate, for the aftermath is unpredictable. If you don't hear from me in a few more days, send a rescue party. And a bag of buns.

Posted Thu 05 Oct 2017 11:17:47 PM EDT Tags:

You've probably heard of Zeno's Paradox - the famous one about Achilles and the tortoise. It's a 2000+ year old puzzle about the nature of infinity. An equivalent formulation is roughly this:

  • Imagine someone running from point A to Z. At some time t, the person will be half way between A and Z, let's call it B.
  • The person will run from point B to Z. After time t/2, the person will be half way between B and Z, let's call it C.
  • The person will run from point C to Z. After time t/4, the person will be half way between C and Z, let's call it D.
  • One can continue this pattern of subdivision infinitely.
  • Therefore, the person will never reach Z.

It's hard to believe that this little puzzle was taken too seriously by those clever Greeks. Formally modeling it in math is easy - arithmetic of infinite convergent series is taught in high schools, so it's clear that at time 2t, the runner will reach Z. But the infinity is bothersome enough that even 2000 years later we take the problem seriously. Some even bring up silly stuff like quantum mechanics and uncertainty principles to try to work around it.

But I came across another way to approach the problem - to sever the Gordian Knot, so to speak. That is to recognize an implication of the basic fact that argumentation about a situation is not the same thing as the situation itself.

In this case, the argumentation can indeed go on infinitely, as one talks about shorter and shorter distances & time intervals. But the error in logic is the last step of the list above. The "therefore" doesn't hold, because the only thing that's infinite is all this argumentation. The situation is quite simple and evolves independently of how a goofy observer might want to talk about it - or to imagine breaking it up.

In other words, just because someone chooses a degenerate, infinite, useless way to talk about a situation, the situation itself can be perfectly finite, reasonable, intuitive. There is no paradox.

In other words, the map (argumentation) is not the same thing as the territory (subject of the argument).

Posted Thu 17 Aug 2017 06:01:58 PM EDT Tags:

A brief update on proof of parental success: while on a nearby trail during the family's morning warmup ride, we saw a green/brown toad. It was hopping comfortably across the path. Why? To get to the other side, of course.

Without missing a beat, Stuart yelled out "PEPE!".

My work here is done.

Posted Wed 28 Jun 2017 10:15:59 AM EDT Tags:

Public Service Announcement:

I've found that, in 90% of the cases I've seen the Dunning-Kruger effect mentioned as a way to put down a debating partner, the speaker considers her own cognitive ability beyond the ken of her target, mistaken in much the same way as the target supposedly misoverestimates his own. I hereby christen this phenomenon, a relative of simple "projection", as the Meta-Dunning-Krueger Effect. © ® ™ &c.

See also. See also.

Posted Tue 27 Jun 2017 05:10:51 PM EDT

It was chemistry day at our homeschool yesterday with this awesome kit, and Frank making dinner day today. No particular relationship except for cedar vinegar. It was needed in both, and used in only one.

Why? 10-year-old Stuart explained:

It may be contaminated with copper sulfate. That's poisonous, you know.

I rolled my eyes and went digging for non-cedar vinegar. The wife overheard the discussion and comforted me:

At least there's no brain in the fridge.

This time.

Yup, just another day at the household.

Posted Thu 15 Jun 2017 10:17:36 PM EDT Tags:

Imagine you are someone who has played with performance co-pilot and its web applications. You've grown beyond the default dashboards, and want something more.

You've come to the right place: the Custom Metrics Web Emporium!

step 0: log the metrics

Let's presume you already have basic PCP up and running on a Fedora/RHEL-like system. If you need a non-default PMDA, you may need to:

# yum install pcp-pmda-FOOBAR
# cd /var/lib/pcp/pmdas/FOOBAR
# ./Install < /dev/null

If the PMDA is self-configuring, that's enough to fetch live data from it. If you also want the data archived, which you do, you may need to edit the appropriate pmlogger configuration. You could run pmlogconf against a config.pmlogger file you're already using, or edit it, assuming you know where to find it. If you're avant-garde enough to let pmmgr run your logging, and you want it to simply work for your whole network dammit,

# cd /var/lib/pcp/config/pmlogconf
# cat > MY_FAIR_METRICS.conf
probe FOOBAR.ONE exists ? include : exclude
# /sbin/service pmmgr restart

The FOOBAR.ONE metric is any metric you know is contained in the PMDA, if it's working correctly; the other FOOBAR.* ones are metrics or whole hierarchy prefixes of metrics that you want future pmloggers to archive. You can confirm that any new archives get the FOOBAR metrics stored in them via pmdumplog /var/log/pcp/.../archive*.meta, or by looking at the pmlogger.log files.

If you agree that this is rather too many steps, consider adding your voice to this enhancement request.

step 2: find the metrics in graphite

Once your fancy new metrics start being logged to a file, it's time to check them out on the web. You'll need to run a pmwebd server and have its pcp-webapps package(s) installed, so that its web page http://localhost:44323/ pops up.

Then comes finding the metrics. Since there are approximately one gazillion of them, and possibly stored over one mazillion separate pcp archive files, pmwebd needs a notation to identify the one(s) of interest. It does this via the graphite webapi subset it implements. The gist of it is that metrics get named something like archive.met.ric, where the first component identifies the archive file or host name, the middle components identify the pcp metric names, and the optional last component identifies the instance within that metric.

It's harder to explain than to show, so go and hit the graphite top level link.

Hit the little plus sign beside the "Graphite" folder, wait for the first level (archive-file/host-name) of the metric hierarchy to be populated. Find the most recent archive for your host, and keep clickin on the little pluses until you get to a real live FOOBAR metric.

If you click on the "Graph Data" button in the little composer/graph subwindow, you will see the full graphite name for your FOOBAR metric. Note it down. The you will probably want to replace the first component with one with a wildcard such as *HOSTNAME*, in order to let pmwebd search for all archives for the same host. You may want to replace the last component with * too, if it's a metric with an instance domain, in order to draw all instances.

If you click on the graph image itself, and get your web browser to spit out its URL, you will see something like


If you play around with the time interval buttons at the top of the subwindow, extra fields will appear in the URL querystring:


to specify the time interval. In this example, these are UNIX-style epoch-seconds, but other syntaxes such as -2day for "two days ago" or now for now, or HH:MM_YYYYMMDD for, well, it's obvious. All times/dates are interpreted in UTC.

Other parameters are available to specify rendering parameters like colors, to add or subtract a legend, add other metrics. Experiment with the graphite compose window's interactive options to see their behaviour.

step 3: construct dashboard

OK, now that you have a URL for an image, you can keep it, pass it around. But that's not good enough, is it? Otherwise you wouldn't still be reading this.

But you are. So let's get to making a dashboard. There are at least two basic approaches: roll-your-own HTML, or grafana. In the roll-your-own HTML case, you already have everything you need: make an HTML file with a set of IMG tags, with each SRC pointing to one of the above graphite image URLs. Format it as you like, publish it, done!

Grafana is another way. This is another webapp we bundle with pcp, and it is oriented toward building sets of related graphs. Normal grafana includes a dashboard storage/management server, which pcp's version doesn't, so we have to work a little harder. See this blog post for details about how the grafana dashboards may be constructed as explicit JSON files, or synthesized on the fly from a URL that includes metric/host names as querystring elements. Just use the compound graphite metric names you found for your FOOBAR metrics. Add any others of interest. Use wildcards liberally.

step 4: profit!

(warning - results not guaranteed)

Posted Thu 15 Jun 2017 06:08:26 PM EDT Tags:

The title is a military term, relating to shaping the physical and metal environment of conflict, before actual fighting breaks out. Getting supplies ready, men trained is only one part -- propaganda toward your opponent is also key. After all, if you can make him lose faith, he will lose faster.

Bonus points to those who recognize this recent news photo without googling. But I'm not here to talk about terror today. My interest was piqued by the boys returning form a coin show, with the Royal Canadian Mint's Canada 150 collection in hand. What could such patriotic paraphernalia possibly have to do with future battle?

Well, I made the mistake of looking closer at the coin designs. Not fewer than six of the twelve coins feature distinctly native style/theme art. So what? Well, not much, except if you recall that the more outspoken natives consider colonization of North America by whites about as horrible a catastrophe as the Palestinians consider Nakba. They describe themselves as a distinct society - at least as much as Quebec. Some of them describe themselves as non-Canadian. So ... why on earth would native art be on the very coins that commemorate the founding of their "oppressor" nation?

Another bit of the puzzle is the recent constant harping on "cultural appropriation" in various organs of the government. The CBC is getting up to article number 59,000 on the topic and the main "protected class" there is the indigenous. "Thou shalt not make native style art." Oh, it's more than just the CBC. Government-funded universities - and elementary schools - teaching how much we owe to ancient indigenous culture & knowledge, when it is in practice quite small. Come on, name a native invention or idea that we rely on in our daily lives. Name a few more. (No, working as a tenured native studies prof doesn't count.)

Another piece is the regular news, again from government organs, about how natives are in dire straits. No clean water. Huge gap in quality of life. Annual flooding. Many missing & murdered women (what about men?!). All of which require $, ever more $, but no strings attached please! Don't judge, don't ask for an accounting, don't tell them how/where to live, just feel bad and pay. There were times when we'd hear about these things mostly around federal budget time. Now it's year-round.

My spidey-senses are tingling. We are to believe both that natives are as Canadian as anyone else - and at the same time a separate nation; that they are strong - and yet require constant rescue. This is deliberately induced confusion, with a sublayer of guilt. I think the Canadian governments are preparing the mental battlespace - that is us, voters/taxpayers - for a massive round of reparations.

Posted Sun 11 Jun 2017 11:41:34 AM EDT Tags:

This blog is powered by ikiwiki.