Month: September 2018

Red Herrings

To everyone discussing whether a 17 year old kid who sexually assaults someone at a party (whilst high/drunk/whatever) should have said event preclude them from [promotions, government service, appointment to the Supreme Court] … that’s a red herring. The question is if someone who lies to Congress under oath (possibly repeatedly) should be confirmed to the Court. And that would be a resounding NO regardless of the individual’s politics.

There’s a big difference between elusive “I do not recall X” testimony where you’re not denying the action itself but rather recollection of said action and “I did not do X”. When someone pretty convincingly testifies that you did do X. Be X receiving stolen e-mails or sexually assaulting a woman … well, there are *lots* of things I’ve done but do not recall (although I’m not sure what kind of life you lead when stolen e-mails to advance judicial nominations are so every day that they simply slip your mind). But outright denying it happened?!?

History Without Context

There’s a challenge in teaching history to young people — whilst it is not good to proceed through life ignorant of what has come before you, there are facets of history that are simply incomprehensible to a five year old kid. Explaining why some people are afraid of the police, describing the point of the military … it is a snarl of sociological and political facts, individual experiences … there’s a good and a bad side, but it is difficult to understand points of view without the entire history that created that point of view (a bit like coupling Zinn’s People’s History with Johnson’s History of the American People and calling that a balanced history lesson). I used to advocate for the inclusion of fictional works in University history classes — while the story itself may not be true, fictional works provide a picture into the reality of the time. History provides a context for books, and books provide a context for history. Arthur Miller was not randomly enamored with the Salem witch hunts.

Sadly, Anya’s teacher has begun down the path of history without context. Today (why not yesterday!?!) she taught the kids that “bad people” crashed planes into buildings in DC and NYC, as well as PA. Which left me to try explaining that it’s not like half a dozen people woke up one morning and thought it might be a lark to try flying an aeroplane … only to find it wasn’t as easy as it looks on TV. It was an organized group executing a plan. It was also a group organized partially because of terrible things done across the globe. A cause can be just without justifying any action taken in support of the cause. The validity of a cause doesn’t make the action right any more than “he hit me first” makes slugging your brother right.

A lot of nation-states, countries, and people have done a lot of terrible things to one another in the name of just causes … the events of which the teacher spoke is an egregious example.

New Process Police

As an operational support group, we did not have a software development methodology. Doesn’t mean we didn’t develop software — one of the great things within operational support is the ability to automate day-to-day tasks to reduce workload. Why have someone check for application patches when a process can watch an RSS feed or file repository and notify us when there’s an update. Why have someone clickity-click provisioning users into groups when the user can make a web request, the group owner can approve the request, and an automated process can add the user into the group? The end result of our automation programming is, well, quite a bit of software.

And with a small number of people, informal application development worked. Wasn’t ideal, but it worked. If you want to write in Java while I use C# … not ideal, but the alternative is that one of us needs to learn a new programming language. Problem is the next guy we hired uses VBS, the next guy uses PowerShell … and I’ll use perl for simpler processes. Then someone starts tweaking my code and buggers it up … and we’ve got to figure out what happened and roll back based on some tape backup.

To get our internal software development processes organized, I developed a process. And ran a training session so everyone was familiar with both the process and the tools. Some of us have used the process well — don’t edit production code, clone the repo locally, make a branch for your edits, test it and have another group member sign off on the changes, merge your branch back into master, test more, then pull the code into production. The majority, it seems, have not followed the process at all. Changes are made to the code running in production, not incorporated into the Git repo. Six months after the new development process went in place, half of our code has improperly made changes!

To an extent, I consider this a management problem … if the department doesn’t want software development to be a free-for-all, then the department managers need to ensure their staff follows the process. If the department wants everyone to do their own thing — then get rid of the process and declare our methodology as “do whatever you want”. The challenge for managers, though, is that they don’t know that someone has edited code in production and failed to commit their changes into the repo. If only there were some way to watch for improperly edited code and alert us promptly.

Other scripts I’ve found to perform a similar function attempt to parse ‘git status’ to identify all sorts of issues — but that doesn’t address the specific problem that I’ve got. To facilitate identifying offenders, I wrote a quick Python script that searches a directory tree for git repositories and alerts us when changes have not been staged for commit. If you’ve staged the changes for commit, that won’t be identified. But the particular problem we encounter frequently … there are alerts for that.

Microsoft Teams: E-mail Notifications

Click on your initials / picture in the upper right-hand corner of the screen and select “Settings”

Within the Settings pane, select “Notifications”

Change the “Followed Channels” notification to “Banner and email”; change the frequency to “As soon as possible”. Changes are saved as you make them. Use the “X” to close the Settings pane.

To receive e-mail notifications for a channel, follow it. Click the three dots to the right of the channel name.

And click “Follow this channel”. If you click the three dots again, you can elect to “Unfollow this channel” and cease receiving e-mail notifications for posts to the channel.

You have to do this for each channel – if someone spins up a new channel, you won’t see notifications for those posts. I’ve been posting to the “General” thread whenever I break a discussion out into a new thread. This ensures anyone who wants e-mail notifications for the main thread at least knows there is a new thread that they may wish to follow.

** Microsoft’s algorithm for delivering e-mail notifications is a little … unique. Like most of these types of apps, an attempt is made to not deliver notifications for messages you’ve already seen. At last test, Microsoft used a 90-minute timer (not quite my definition of “ASAP”). If you have Teams open in a minimized web browser, if the notification went to your mobile client, if the notification went to your desktop client, if there were solar flares with peak flux over 10^(-5) W/m^2 … an e-mail notification is not sent. Point being, don’t rely on the e-mail notifications.