Remembering

Glasgow Cathedral T 12

If you visit Europe, I strongly encourage you to visit churches, and stately homes, and to keep your eyes out for the plaques. For the battle flags, torn to tatters. For the endless procession of names, each kept in its own place of honor, in the corner of a room, or on a memorial outside the village church.

I don’t think that we who have not served can have any sense of how truly devastating war is, and I really don’t think we as Americans can understand how terrible World War I was for Europe. By looking around, though, we can kind of get a sense for things, if we really take the time to contextualize the memorials.

Memorials are local, in the UK, in a way that they are not in the US. Here, war cemeteries tend to be where we encounter war memorials, if we encounter them at all. I remember there’s one in Concord CA, but that I only remarked it after we’d returned – it was simply part of the background, before. I believe there’s one on the waterfront in Vallejo, as well. But these are different to Scottish memorials, in that they’re general memorials. “We remember the men of…” sort of thing, and that’s about it.

The memorials in Scotland were mostly very personal. “In memory of our glorious dead who fell in the great war 1914 – 1919,” followed by a list of 38 names. “Faithful unto death.”

Around Glasgow 503 HDR Cambusbarron 035 HDR
George’s Square, Glasgow
Cambusbarron Village Church

Some memorials are grand, meant to be the centerpiece, such as the one at the center of George’s Square, in Glasgow. Some stand forth to say, “our village gave dearly,” such as the one in front of the Cambusbarron village church; Cambusbarron was our home village for the last year we were in Scotland, so we got to walk past their monument any time we needed something from the village. Cambusbarron, at the height of its industrial vigor, housed a few thousand people and had a school capacity of 270. Cambusbarron volunteered 200 men to serve in World War 1, 38 of whom have names on the village memorial, as they (and a few others, unintentionally forgotten) never returned.

I don’t think I can really understand living with not only the sheer loss (1/5 of a whole generation of Cambusbarron died). I also don’t think I can possibly understand the trauma of having 1/5 of my generation absent forever, and the remainder of my generation would have seen them die. You see, quite a lot of villages joined up together, and were kept together, particularly in Scotland, where military service is a very … clan-centered activity. You join up with your mates, you join a particular regiment because that’s the regiment your village joins, and you go off to war. And then you spend the rest of your life walking past the ghosts of the dead every day on your way to the market.

Dunkeld Cathedral 68

Cambusbarron 002a

I remember my father becoming emotional about Veteran’s day, and not understanding why, not being able to conceive of why he – a true 1950’s man, for whom crying just didn’t happen – would be overwhelmed with sadness when the mood would hit him and he’d remember those lost in his own experience of war. From what I know, my father was not sent to Korea because he was in the Air National Guard (which wasn’t deployed). He was a pathologist in the Navy during the Vietnam war or shortly thereafter. But I don’t know why he cried, and it’s now too late to ask. Was it for classmates? There must have been lost classmates, considering my father attended Massanutten Military Academy. I simply do not know. And, of course, it’s not something he spoke of, at least not to me.

Veteran’s Day is not a day to celebrate America. It is not a day to celebrate America’s military might. It is not a day to beat the drums of war.

Veteran’s Day is a day to remember that war brings death, trauma, and generations of grief.

-D

Cheese Scones, Because…

One of the things we have left to us of our lives in Scotland is reading the Scottish papers. We still read the BBC News for Scotland, peruse The Herald, subscribe online to Bella Caladonia, and of course follow a number of Scots via social media. It’s always interesting to get a Scottish perspective on the world.

This week, however, the BBC reminded Scotland that it’s an English company, with a report most Scots saw as blatantly false. Scottish Twitter’s response to the various alarmist claims by English / Unionist media, about how the Scottish Nationalist Party is having a civil war, was swift. One would think the English would learn that the Scots will unite in the face of a common enemy…

So, of course D. had to go make cheese scones (properly pronounced with a short ŏ, as in BOND) in support of our dear friends currently suffering beneath the staggering peril of so much sarcasm in one place.

Cheese Scones 11

-D & T

“There Are More Important Concerns.”

“Travel makes one modest – you see what a tiny place you occupy in the world” – Gustave Flaubert

Netherlands 2018 1071

Well, it was bound to happen. The first text message a week ago was just a little crack in the wall, as some eager beaver just had to tell D of exciting news from the office… and now today D has had to take a teleconference so that he can give his two cents on some whatever vendor tool for blah, blah, blah. The seal is broken, and the wall is crumbling. T is tallying the number of times D’s work mates have no boundaries and interrupt his well-earned and desperately needed vacation. She imagines kicking them smartly in the shins for each infraction.

(D worries when she gets on this topic, because he knows T, despite appearances to the contrary, is still somewhat feral and might actually tell them she’s imagined kicking them… while shifting her weight to one foot… But, we digress.)

Netherlands 2018 1034

Now that the vultures are circling and we can see the end of our trip just a few days down the pike, T has put on her junior sociologist’s hat and continued to process some of the things we’ve observed throughout our travels in this intriguing country (and from living in Scotland).

Twenty days in a country doesn’t exactly give scope for a deep dive into its society, but because we’ve lived abroad before, it’s easier to have a basis for comparison. Now, we’re fond of our home state and the benefits it has given us – and we love air conditioning, garbage disposals, public libraries and window screens — all things Europe commonly does not have. — BUT sometimes, American attitudes and ways of looking at things leave something to be desired.

Netherlands 2018 187

The interesting differences in attitude we’ve observed between countries is this idea of being The Best. The Netherlands is an amazing, brilliant country… and they don’t go on about it. In Scandinavia, there are national social mores about humility and modesty. The “best” is something perhaps children strive for; while adults, in contrast, just seem content to get on with things. Maybe it’s just that lately the national conversation has become steeped in empty superlatives – “greatest” “most” “best” – maybe it just seems like this blabbing about how awesome we are is new, but it’s not, really. To a certain extent, there’s always been an attitude of competitive striving – that “pursuit of happiness” which came from an adolescent nation determined to prove to a parental kingdom that it wasn’t just some rebellious kid going off on their own. We never intended to come crawling back to Mama England, and that bullheaded stubbornness has informed a lot of the flavor of our country. Ironically, those with the most privilege in this nation still struggle to recognize it because there’s a sense of deserving more, which causes so many a deep unhappiness — even as indigenous, Black, and people of color still haven’t yet achieved equality — but that’s clearly a topic for another blog post.

Netherlands 2018 163“Traveling is a brutality. It forces you to trust strangers and to lose sight of all that familiar comfort of home and friends. You are constantly off balance. Nothing is yours except the essential things — air, sleep, dreams, the sea, the sky — all things tending towards the eternal or what we imagine of it.” – Cesare Pavese

In contrast, in the Netherlands, there’s less an attitude of competition here than there is of normalcy. There is a phrase here about “just do the normal,” thus the word that crops up a lot in conversation is “typical Dutch x,” or “typical Dutch Y.” People believe that they are basically all about the same, and that “normal” is basically weird enough, and there’s no need to be seriously eccentric or try to stand out from the crowd… which flows right into another Netherlands phrase we’ve heard often on this trip, when the conversation has turned to deeper matters in terms of industry, religion, and politics: “There are more important concerns.”

Netherlands 2018 266

There are bigger stories; more important fish to fry. DB’s mother said it frequently, when speaking of religions reacting to gendering (churches are sluggish about inclusivity), or issues surrounding healthcare (she’s a physician). SC’s neighbor said it in passing when speaking of how the children in her daughter’s elementary school interacted. In almost every situation where our societal inclination would be to harp on a point or insist on clarification, explanation, or agreement, the reaction we’ve observed is for people to sit back and remark that there are more important things to worry about. Normal, after all, is weird enough.

This idea is kind of fascinating.

Netherlands 2018 698

We thought we understood about people kind of having a live-and-let-live attitude from living in the UK, but honestly, Scots are rather opinionated and are quite free with their opinions. (Just get into a cab once and have the driver tell you that you’re wasting his time and could have walked where you needed to go. THAT’s always fun when you’re lost.) We’re told that the Dutch are, too, but rather than air that opinion in an insistent way, apparently once they get to know you, they’ll simply put it out there and go on. If there’s disagreement, the opposing opinion is just put out there, and people go on. It’s not as if people don’t argue – but there has just seemed to be less of a competition for who has the last word. It’s interesting.

Maybe it’s that we’re still guests in all of the places we’ve been, and they’re just listening to us go on. Maybe they’re all secretly laughing at us. Who knows? Maybe there really are more important concerns, and they’re away getting on with them. And, so we will, too.

“Perhaps travel cannot prevent bigotry, but by demonstrating that all peoples cry, laugh, eat, worry, and die, it can introduce the idea that if we try and understand each other, we may even become friends.” – Maya Angelou

Netherlands 2018 730

Knowing When NOT to Work Hard

Last night I dreamed that I was called upon to give a lecture and I was unprepared. Apparently, though, I have some lectures that I give often enough that I’m able to pull one up on the fly, and my dreaming mind knows that I can always give the standard one I give to junior developers at some point: Be Intelligently Lazy.

Twenty-three years ago, I was working a full-time job doing data entry for a payroll processing company. This involved opening mailed-in timecards, “coding” them (sorting them into piles, basically), and entering their data into a Peoplesoft payroll system, with data entry done on Windows 3.1. After a couple months of doing this, I realized that I was typing the same thing over and over (each district manager had a markup rate, a name, a zip code, a phone number … and the fields probably went right in that order, actually), and it was incredibly boring and stupid, particularly when there was Windows Macro Recorder.

I set about assigning the 12 function keys to my 12 area managers’ information, typing in the information and tabbing through the entry fields as quickly as I could. When I was done and I’d written down which manager was on which key, I could type in the person’s name and their hours worked and then press F5, say, to key in the rest and press “submit” to send the timecard into the database.

My manager noticed this (well, I was probably excited and told her about it) and asked me to do the same thing for the other entry clerks in the group. A few days after completing that, the database administrator came to visit us, to ask what on earth we were doing, because the data used to trickle in all day long and now only came in before lunch (yes: I had cut the data entry time from 8 hours down to 3, for the entire group). When my manager told him what I had done, that was the end of my days as a data entry clerk: I was assigned to work in IT, working on macros in Excel or something.

So, yes: I became a programmer because I was intelligently lazy. That is part of what makes a good programmer: knowing when something can be automated. To be a truly effective programmer, though, takes a whole lot more experience in figuring out automation and figuring out when to automate and – more importantly – when not to automate. This is actually the real point of the lecture.

Your average junior to mid-level programmer will spend a ton of time automating things which could be done via brute-force. This is the classic trap of spending more time building automation than it would have taken to do it by hand. Building the skills to be able to estimate this takes a whole career, honestly. Knowing that you need to do this, though, is something that you can give to one another: simply print out the comic below and show people how to read it.

For example, I read this chart and know that every time I visit someone with multiple monitors, I need to tell them how to use the Window+Shift+Arrow shortcut. Why? Because your average person with multiple monitors will generally spend about 5 seconds 1) restoring an application window, 2) dragging it over to the other monitor, 3) maximizing the window … and they’ll do that at least 5 times per day. When you read those values into the comic above (5/day on the top axis, 5 seconds on the left axis) you get 12 hours spent in that activity over 5 years. In other words: every person I teach this trick will save 12 hours of labor over 5 years. That starts to be some real savings for the whole company, it takes me nearly no time at all, and it makes people really happy to learn as well!

This can also be useful for deciding whether to do projects, and help in deciding the importance of those projects (for example, if one person in your organization spends a day a month doing something that could be automated, that’s 8 weeks of savings over 5 years if you can automate it). That’s a whole other discussion, though it’s the same skill: so, maybe learn that skill, because making those kinds of decisions are important in moving into decision-making roles.

The other thing I tell junior developers in this talk is usually to get over the idea that there’s a perfect tool for things; the perfect tool is the one that gets the job done, and it may be that it’s clunky and kludgy but that doesn’t matter. I give the example here of how I use Excel to load data (I use Excel formulas to build SQL strings), or how I use Excel formulas to write C# code (I wrote some VBA code behind Excel & wrote some SQL code to feed data into Excel, which I’ve used to generate literally hundreds of thousands of lines of repetitive C# code), or how I use Excel formulas to write repetitive HTML (like, oh, a bunch of emails with different names & hyperlinks to their downloads). Even more importantly is the example of figuring out when to brute-force something (“Only 200 photos to crop? We’ll just use a photo editor rather than programming it. 40,000 photos to crop? Let’s write some Python and use CV2 to find the faces for us, so we can crop automatically.”)

There are plenty of examples to give, and plenty of tools that I use on a regular basis… but it basically comes down to using the same old set of tools because I know how to use them and because I’m efficient in using them. Yes, it would likely be faster for me to learn how to use RegEx … that is, if I knew RegEx way better than I do, I could be even more efficient than I am in Excel … but we come back to that chart and decide that it wouldn’t save me more than it would cost me. Likewise, if it’s only a few things & they can be hammered out using something simple, just spend the 20 minutes doing that rather than wasting more than that on building a tool for it.

Applying this kind of thinking to your own coding practice and knowledge acquisition is when you reach mastery: when you can look at a tool or language, determine how long it would take to master, determine how much time it would save you in the tasks you regularly perform, and decide whether or not to invest in learning it. That calculation is something which truly proficient programmers make on an intuitive basis, and which contributes to them sticking to the same things that have worked previously. If you’re conscious and intentional about it, though, it will lead you to some better decisions than, “oh, this is showing up on Hacker News, I should learn it!” That’s not to say that you shouldn’t learn new things (I’m dabbling in Python and convolutional neural networks these days), but that you should be aware that there’s a trade-off and it’s perfectly logical to decide not to learn the cool new tool / language.

So. That’s my usual talk on how to be intelligently lazy.

-D

Reappearances, Disappearances

Occasionally we’ll go through our blog links and check on all of the people we’ve maybe not heard from in awhile. Some of them have disappeared in favor of The Face Hook (sorry you’ve succumbed, Ms. Nancy), some have simply dropped out and don’t have any presence any longer (we miss you Chef Paz). Some have returned to blogging, though (Haalo is back, after a 4 year hiatus!), and others have started taking pictures again.

Portland 010

Welcome back, to those returning, and we hope those who have left will stop by to tell us where they’ve gone.

-D & T

New Website Hosting

For all of you out there who read this in a feed reader, apologies if you’ve just seen a whole bunch of our posts reappear: we’ve changed our hosting provider and gotten a new URL ( hobbitsabroad.com ). For everybody else, you’ll likely not notice any change, as all of the content that was hosted on Sonic is now hosted on LaughingSquid, at the new URL (well – you’ll notice that the site loads a million times faster than the old one, which is why we switched).

Mull D 72

Enjoy these boats, for your troubles.

-D

Technology Hiring Practices and Diversity

Stirling 311

I would like to talk about hiring practices in the technology field, in particular as those have an impact upon who does and does not get hired to work in technology. This is important because the tech industry talks a lot about limiting racism and sexism in their hiring processes (they’re ignoring age bias for the moment), but then the tech industry also talks about systems designed for interviewing candidates which are designed to result in high rates of false negatives. By “false negatives” they mean that more good candidates will be told that they don’t meet the needs or the requirements of the position – that they will err on the side of not hiring.

There’s fairly solid mathematical reasoning for why hiring this way does not make sense (read the extensive and geeky discussion on Hacker News). So, we have to ask, Why maintain this type of a hiring process if it results in poor organizational outcomes? And, if they’re maintaining this in the face of poor outcomes, we must further ask, What outcomes does this system actually have and are those outcomes the real reason for maintaining this type of a system?

Portland 142

I believe that this type of a system is designed to allow the bias (“culture”) of the organization to perpetuate. I believe that these hiring practices are designed to systemically discriminate, while pretending to be based upon merit. [side note: People are quite attached to the idea of meritocracy even in the face of proof that meritocracy actually results in worse outcomes for the organization (here’s a paper which proves that random promotions yield better organizational outcomes than merit-based promotions).]

When you design a system which yields false negatives, what you actually accomplish is to normalize the practice of making hiring decisions based upon gut feel and bias rather than upon objective criteria such as whether the applicant is really interested in the position or whether the applicant can do the job. That’s a big statement to make, but I think it’s proved out by the psychology.

Tversky, Amos - Preference, Belief, and Similarity, ch. 24

We can evaluate this in terms of prospect theory and the framing effect, which pretty much describes the landscape of this decision. The framing effect plays a role here because the decision makers approach the interview having been told that it is better to mistakenly pass up a good candidate than it is to mistakenly hire a bad candidate. This framing puts the decision maker into the mindset of loss / risk aversion, which tends to be vastly more conservative than does a mindset of possible gains. When evaluating problems in a risk-averse or uncertain mindset, people attempt to reduce that risk or uncertainty however possible. In this mindset, hiring someone of the same general profile as oneself provides an immediate reduction in risk, so basically guarantees that candidates who are different (diverse) will be excluded.

This is not limited to the tech industry, by any means – I’m certain that these same problems are pervasive in other hiring systems. In tech, though, the big players have all made noises about diversity, and yet have maintained a system of hiring which continues to yield the same problematic hiring decisions. The tech industry is supposed to be the best and brightest – they certainly tell us that they are – yet it cannot seem to figure out how to hire women or blacks or Hispanics (or people aged over 35). This tells me that the noises made by tech are basic cover for not really wanting to solve the problem.

Tech companies are happy being pretty much white (and a few Asian) dudes and do not want to change. Tech companies want to mouth the right words about diversity, to maybe hire diversity officers, but they do not really have any interest in being diverse. They have designed hiring systems which are systematically discriminatory, but subtly so, which is problematic because it is the systemic problems which are hardest to fight.

Finnieston Quay 72

I’m sure some of my reasoning in here isn’t as thorough as it could be. I don’t think that my reasoning is wrong, though – I think that the hiring systems of big tech companies essentially guarantee a lack of diversity, and that the companies are either uniformly ignorant of this or are happy for it to remain this way. Before you think that they’re ignorant of this, think about where psychology graduates go if they don’t become professors (hint: big technology companies, which is why everything tech is designed to be addictive).

Don’t Open Things!

Dear Everybody: don’t open things you weren’t expecting to receive. This includes links to google docs and not just attachments. Why? There’s a particularly nasty type of attack going around that tries to pretend it’s someone you know sending you something via email. If you weren’t expecting something from that person, why don’t you pick up the phone and ask them if they sent it?

Vacaville 205

If it’s as suspicious as the picture above, double-check before you click. Thank you.

-D

Public Service Announcement

This Public Service Announcement brought to you by incompetent web developers. Please note that putting a little sign that says “this site is secure” does not make that site secure.

insecure

When I click on the little informational icon to the left of the URL, I can plainly see that the site is NOT secured. Thus, anything entered on the page can be intercepted between my web browser and the server that’s supposed to be collecting the information. And when I try to go to an https:// version of the site, I get told exactly why the site isn’t secure:

insecure

That’s right: the site might have been secure, except that the certificates that the web developer tried to use to secure it were not registered to the website, but to some other website. Security doesn’t work that way, folks.

The PSA portion of this post, now: everybody should know to click that little icon, to the left of the URL, any time a website is asking you for information that you wouldn’t want to broadcast to every criminal in the world. And if you get told anything that seems like the site isn’t right, you should leave.

Personally, I contacted the site owner and told them to slap their web developer (literally: I told them that their web developer needs a sharp slap, for trying to play this off as secure when it’s not). In doing so I told them my name and email, but hey, that’s publicly available, so no harm. Other than that, though? Not giving them any of my information, and certainly not giving them my credit card number!

Be careful out there, folks. Just because the website looks slick doesn’t make it trustworthy.

-D

ps: I blacked out the name of the website, because this isn’t about them. I suppose it also serves to protect the incompetent, but hey, I’ve already sent them a nasty note, so there’s no need for public shaming.

Old Code Lives On

Stirling 307Occasionally I remember how old I am. Thinking about how I got into computer programming, I usually tell the story about how I was working doing data entry and got tired of the repetitive nature of the job, so automated a piece of it and ended up drawing the attention of the IT department as a result. (I still keep in contact with that guy, 20 years later.) Thinking about it, though, I realized that my start was a lot earlier than that. I realized this when reading an article on The Law of Accelerating Returns. Something in there struck me as being … well, wrong.

The movie Back to the Future came out in 1985, and “the past” took place in 1955. In the movie, when Michael J. Fox went back to 1955, he was caught off-guard by the newness of TVs, the prices of soda, the lack of love for shrill electric guitar, and the variation in slang. It was a different world, yes—but if the movie were made today and the past took place in 1985, the movie could have had much more fun with much bigger differences. The character would be in a time before personal computers, internet, or cell phones—today’s Marty McFly, a teenager born in the late 90s, would be much more out of place in 1985 than the movie’s Marty McFly was in 1955.

Now, I don’t know about you, but my first DOS-based computer resembled something like the PC3 “LunchBox” Portable Computer, and came to me in something like 1984. Of course, somewhere around the same time we were playing with the Commodore Vic-20 (came out in 1981), Commodore 64 (1982), and the Commodore 128 (1985). So, no, going back to 1985 wouldn’t be all that shocking. Yes, it’d be annoying to have to use a card catalog in order to find something, rather than asking teh interwebs. It’d also be strange not to have call waiting, or cell phones, but I can’t say that it’d be particularly troublesome overall. Nor can I really say the world was all that much different.

Stirling 308I got to thinking about how long I’ve been writing software (this time) because I’d been asked to pull together some screenshots and instructions for a database application I built back in 1998. This application is still running, 18 years later, and still the “system of record” for the company. This and a couple other systems I’ve written are still ticking over in some form or another (this one’s running on a virtual machine just to keep it alive, because nobody can get the software any more, and nobody really knows how to replace it – I had to install an older development tool just to convert it to what it would have been in 2003’s format so that I could convert it to the current format and have a look through things.).

In any event, I think it’s important to point out that yes, the rate of technological change is ever-increasing. On the other hand, there are these bedrock systems which keep on running that nobody is willing to replace because they aren’t broken – they still do their job just fine, and there really is no need to change them. (Have a look at this PCWorld article, for instance.) In parallel with these systems, old code keeps on ticking over, and continues to work (e.g., just about the entire Banking sector of the UK runs on COBOL, or the VA Hospital’s Electronic Medical Records system is .NET wrapped around Java wrapped around Delphi wrapped around a file-based storage system – so, your medical record is just a text file somewhere, when all’s said and done). Other, operating-system type foundations have also not shifted – there really are only 2 operating systems in use today, *NIX and Windows NT – and those have been around for decades – everything added to them is just window-dressing.

It’s only the surface of things which has really shifted – the core remains as it was 20 or even 40 years ago. Yes, computers are much faster. Yes, computers are way smaller, and in seemingly everything. But I just don’t see the level of technological change being all that huge even now, nor do I think it’s changing as rapidly as Kurzweil thinks. Or, rather, I don’t think that the entire ecosystem changes as rapidly as all that – it’s that the outliers are arriving faster, but their adoption depends upon their incorporation into the devices and technologies we already use, which is necessarily slowed by our very humanity.

Dolomites D 300So. Take the time to look back at all the computing you’ve done, and realize how much things haven’t changed, despite the new names and different packages. Ignore the window-dressing and really think about the technology and you may be surprised at how, really, things haven’t changed. Sure, if they implanted teh interwebs into your head you’d be hugely changed – and, yes, they’re working on that somewhere – but do we really see it happening in our lifetimes? I really don’t think so, because I really think that the rate of change is not solely governed by tech, but by the economics of the matter, and by our ability to incorporate that change.

-D