Posts By :

richard

Terry Pratchett

terrypratchett

I just finished reading Terry Practhett’s book, ‘Going Postal’ for the 5th (7th?) time, the first time I have been able to pick up one of his books since his passing last year. It was harder than I thought it would be, but worth it. Always worth it.

I spent a lot of time last year working on research into morality, the basis of it, the outlines and sources of what we mean by right and wrong. Like many other fledgling philosophers, I thought for sure I had found an anchor for our moral beliefs, a generous splash of science and mathematics applied just so to ground our definitions of what it means to be a moral person.

Like many others, I found that there isn’t really a there, there. Our moral beliefs are based on some innate urges, things you learned as a kid from your parents, what the culture says, things you have been exposed to and an infinite web of conscious and unconscious influences. There’s nothing wrong about that, even if it does mean you have to do some hard work in the introspection and reflection department.

But I will say that after walking up the mountain and down the mountain and around the mountain of human morality, I have not found, in any medium or discipline, as clear a guide to morality as Terry Pratchett. I find myself thinking in aphorisms that he taught us, I compare myself to the characters that he brought to life. He is a fantastic writer, full of humor and wit, I would have no trouble at all finding millions of people around the world who would agree with me there.

He also had the most finely balanced sense of what it means to be human, and what it takes to be a good at it, that I have ever encountered.

I keep trying to convince my 15 year old son to read some of Terry’s books. I am thoroughly convinced that if I can get him to crack open my hard cover edition of say, ‘The Nation’, that he will have a good start on his path of personal development. I know that quite a lot of my parenting skills have been improved by thinking in Terry’s terms about the world and our place in it. I know that I could find no better guide to morality, goodness, and inner balance to share with him.

I still miss you, Terry Pratchett. The world is a poorer place without you in it to help us find our way.

20,000 Light Years Into Space

There is a simple game called 20,000 Light Years Into Space. It’s open source and easy to install on Linux with a few simple clicks on my desktop’s Mint distribution. Basically, you race to upgrade your city while keeping it supplied with enough steam to support its ever growing demands. Of course, sandstorms, alien ships, and earthquakes are constantly breaking pipes and it’s a constant struggle to keep growing and maintaining the network.

I don’t know why I am so hooked on this game. But I have noticed that I can listen to a book and still play it, the overlap between these two parts of my brain are minimal. This is one of the rare cases where multi-tasking really is possible.

This game is frustrating, the bad things that can go wrong are immensely destructive, the steam vents that need to be harvested are randomly placed at the beginning of each game, and the network elements don’t act exactly as you think they should. I spent quite a lot of time building ‘test’ networks on peaceful mode to see what configurations were most effective.

I’ve been playing this thing off and on for 6 months, a good time killer for when just sitting and listening to an audio book while blankly staring into space just feels weird. A nice thing to do with my hands and eyes. But I could never crack 3000 points. Hell, sometimes I couldn’t crack 2000.

Well, I did it. I finally made it over 3000

20000lyr

There’s no multi-player league for this game. There’s no place, that I can find, where players of this game congregate and share tips and strategies, no leader board. In the purest form, I have been competing against myself. And I cracked 3000. I don’t even know if this is a good thing. It FEELS good, but there’s no objective measuring stick, here.

Even without the leader board, I wanted to share my very small triumph. So, “Hurray!”

 

A Workplace Tragedy in 6 Panels

 

The uncertainty of looking for a job is maddening, a series of speed dates to try to find a company willing to take a chance on whether or not you will help them make money. This process can be a big hit on your self esteem and I remember my first few forays into the workplace, those first interviews with potential employers, very well. You never forget the first time you get told ‘No’.

But what I wanted to say to any first time job seekers out there is that the “date” has two sides. It’s important for the company to see how you will fit into their plans and structure, but it is JUST AS IMPORTANT for you to make sure that the company fits YOUR plans and goals.

So, before you polish your shoes and make sure the suit still fits, you want to have a few questions ready to go for your potential employer, you have to know what YOU are looking for in this new potential relationship:

  1. Let’s look into a crystal ball and imagine that you are seeing a successful version of you 2 or 5 years in the future. What kind of job does this future-you have? What kind of environment are they working in? If you have absolutely no clue about this, you might benefit from taking an online test like the one here: http://octogramtest.com to give you some hints. You need to find out if your potential new workplace will help you reach that goal.
  2. Workplace relationships are going to be taking up the majority of your waking hours for most of the rest of your life. You are going to be on your best behavior in the interview and so are your potential employers. The interview is the time and place for candid honesty, you are going to be spending a lot of time with these folks, do you like them? Are any red flags being raised? Listen to your intuition, if you are getting a bad ‘vibe’, pay attention to it.
  3. Here is a list of 14 career values:
    • Autonomy
    • Variety
    • Creativity
    • Entrepreneurship
    • Prestige
    • Competition
    • Personal Growth
    • Management, being a boss
    • Job Security
    • Being an Expert
    • Service and Commitment
    • Collegiality
    • Relationship with Management
    • Lifestyle, work personal life balance
      Print these out, cut them into little strips, and then order them from most important to least important. Try to find out if the job will give you the things at the top of your list and not give you the things at the bottom. Your order will change as you age and your personal circumstances change, but you should have this list in your mind during the interview. If the new job isn’t supplying what you need and value, you are going to be hating that job within a year.
  4. Try to get a sense of the culture of the company. You can get at this by asking questions like, “What kinds of behavior are rewarded at this company?” “How are decisions made here?” “How are promotions handled?” There’s a model for this called the “Competing Values Framework” and here is a graphic of what that looks like: quadranttypes_1-300x215
    A bad culture fit will be EXTREMELY FRUSTRATING for you because the things you think are important will be ignored and the things you think are bad will be rewarded. Very demotivating, so think about the kind of culture you want to work in before going to that interview.

Good luck on that inteview/date, I hope you find a good place to be :)

Presentation: Template::Toolkit as a cheap API

I’m just going to copy and paste my slides from this Lightning Talk delivered at the 2016 Dutch Perl Workshop. Lightning talks have a maximum of 5 minutes, and I wanted to do something light and fun. These talks are usually at the end of the day and having something that I could deliver with some energy and humor really helped.
The point of this presentation is that Perl allows you to do things that just work, even if you are ‘cheating’ to make it work. In this instance, I turned a template rendering system into an API interface to reuse some methods from a different script. This is not stable or good practice, a point I emphasized, but it WAS clever and I thought sharing it would be fun.

 

 

 

 

 

Template::Toolkit

The Cheap API

Richard Still

https://oakbox.com

Situation:

Mature” application – a rat’s nest of legacy code written by a deranged madman**

Using Template::Toolkit

No TIME

Need some of those functions in another application (script or JS)

3 years ago **

Using Template::Toolkit, you are already putting everything into a single data structure before sending it to be rendered:

$templater->process($template, $TTvars, \$output, binmode=>’:utf8′)

or $self->Probe(\@include_path, $templater->error);

Instead of sending to TT, redirect the output to JSON

if( $sending_to_api ){

use CGI;

my $q = new CGI;

use JSON;

my $utf8_encoded_json_text = encode_json $TTvars;

print $q->header(‘application/json’);

print $utf8_encoded_json_text;

exit;

}

 

Re-Use for free!

1) “Yes, I know that refactoring the original code into modules is more stable and would yield better code.”

2) “Yes, I know that ‘No Time’ is not a good excuse.”

3) “Yes, other formats for export are available, JSON just gives me the option of using this content in an AJAX interface.”

Experienced Software Developer

Sometimes a company changes direction, sometimes you work yourself out of a job, sometimes you leave a job for reasons totally unrelated to the job, but no matter what the cause, it’s a hard reality that sometimes, you have to look for a new job.

How do I present myself in this market? I regularly sit down with clients and talk about their wants and needs. I participate in planning meetings. I do technical support when something goes wrong. I became a subject matter expert in something I knew nothing about (psychometric testing) to understand the best way to help other people do their jobs better. I taught myself statistics, reviewed legal regulations from different countries, created educational videos, translated complex concepts into working code and translated hundreds of pages of text into English from Dutch. I acted as the first contact for English-speaking customers, did trainings, wrote ads . . . how do I write a resume that doesn’t read like “War and Peace”? Which job title covers all of that?

In my heart, I think of myself as a Software Architect, solving problems both for my company and for our clients. I’m a wizard creating magic black boxes that just work and do what you expect them to do, quickly and reliably, on all platforms, without a lot of fuss. All of the other stuff I do is, to my mind, just supporting my coding addiction. “Software Architect” doesn’t cover all of those other things and “Coding Junky” just seems like a bad title to put on my resume.

After working on a product for 14 years, thinking about it, tinkering with it, sweating bullets over it and cheering it on, I am starting to look around and see what the job market is like. The biggest thing on my resume is the language I program in, Perl. I love Perl, I love the community, I love the flexibility and the fact that every year there are new tools being added to my set of possible solutions. But Perl is not the language du jour, it might still be the duct tape of the internet, but when was the last time you thought duct tape was interesting or exciting?

The problem is that job listings mention specific technologies and buzz words while I have been focusing on solving problems as efficiently as possible. At various times in the last 14 years, I’ve:

  • written a ton of Javascript
  • hacked PHP code
  • tinkered with NodeJS
  • played around with statistical libraries
  • submitted bug reports and pushed the development of some core Perl modules
  • used three different bug tracking platforms and 2 different version control systems
  • taught myself to make whiteboard videos
  • taught myself audio editing
  • written marketing text
  • learned about SEO
  • learned enough SOAP and XML to be dangerous
  • wrestled with PDF generation
  • agonized over gettext translations

… and so many other things that I have, frankly, blocked them out. But “Really Good Problem Solver” doesn’t bring up any hits on job search sites, either. I will continue to try various titles and industries in these searches, I will just have to hope that my definition of “Experienced Software Developer” means the same thing to me that it does to a hiring manager.

 

Facebook::OpenGraph – logging in to a Perl application

Getting a Perl application to talk to the Facebook API was not an enjoyable experience, mostly due to my lack of experience with Facebook’s terminology and a basic understanding of how OAuth works.

Ignorance never stops me! So when I wanted to allow visitors to log in to my Perl application via Facebook, I just started hacking away until I got everything working. I am scheduled to give a talk about this at the 2016 Dutch Perl Workshop, you can download the Presentation PDF.

My notes:

Install the Furl::HTTP and Facebook::OpenGraph modules.

Register the your application with Facebook to get your App ID and App Secret.

I broke this process up into two scripts, a ‘login’ script that acts as a landing page for incoming visitors and the application itself. The login script is going to catch the incoming request and immediately forward the visitor to the Facebook authorization page with a callback pointed at the program (index.cgi).

use Furl::HTTP;
use Facebook::OpenGraph; 
use strict;
use CGI;
my $q = new CGI;
   $q->autoEscape(0);
   $q->charset('utf8');
my $fb = Facebook::OpenGraph->new(+{
      version => 'v2.5'
    , app_id => '1234567890123456' 
    , secret => '2b6928c1283475f434a54bf45371'
    , ua => Furl::HTTP->new(capture_request => 1)
    , json => JSON->new->utf8
    , redirect_uri => 'http://applicationwebsite.com/app/index.cgi'
    });
 
my $auth_url = $fb->auth_uri(+{
       display => 'page' 
     , response_type => 'code'
     , scope => [qw/email/]
    });
print "Content-type: text/html\n\n";
print $q->redirect($auth_url);
exit;

This script takes an incoming visitor and generates an authorization URL for Facebook and then redirects the visitor directly to that Authorization URL. The ‘scope’ of my app is only asking for basic user information, no special permissions are being requested. If I wanted other, more esoteric, user information I would need to ask for specific approval to access that information.

You can see how to decode the information that gets sent to the callback URL, refer to the contents of the Presentation PDF.

 

Burnout is affecting younger people

A recent study by the Dutch organization TNO showed that 15% of workers are suffering from burnout symptoms. In the Netherlands, alone, that’s more than a million people.

I was not surprised by that finding, the vast majority of people who take the Octogram test are looking for ways to get out from under the crushing weight of their “Career”. They can see that work doesn’t *have* to suck, everyone has at least a few friends who actually like their job, so they know it’s possible to have a better career.

The surprising part of the study highlighted the age distribution of the respondents. Burnout isn’t just a risk for people in the middle of their careers, they were showing a relatively high level of problems for younger people in the 25 to 35 year old range.

Traditionally, people were to focused on spending their younger years trying to get ahead in their career without really thinking about whether or not they were in the right kind of career. That’s changing because millennials are looking for meaning and purpose in their work right out of the gate. I have been seeing some negative commentary and stereotyping about this in HR and Management discussion boards. It’s easy to minimize someone’s complaint by calling them ‘whiners’ or some such.

But the millenials are not just complaining that work is ‘too hard’, they are complaining when their work has no meaning. Everyone comes to that realization at some time during their career, they want to have work that is fulfilling and worth something. Millenials just seem to be figuring this out earlier than my own Generation X. We just rebelled without knowing what we were complaining about, Millenials just seem to be ahead of the curve.

Damn whipper-snappers!

The TNO study results are summarized here:
http://www.monitorarbeid.tno.nl/nieuws/asscher-praat-met-collegas-over-werkstress (Dutch)

You are a closed book

Experimental research (by Vazire, Newton, Yudowsky, Gilovich, Medvec and Savitsky to name just a few) has shown that you overestimate how much other people know about you, how much attention they pay to you, how much they can tell about what is going on in your head.

They don’t know what is going on in your head.

But that’s okay, because neither do you.

You overestimate your own abilities in areas were you know too little. You underestimate your expertise in areas where you are an expert (Dunning-Kruger effect). You are chock-a-block with bias and false impressions and errors in perception.

That is what the Talent Profile is good at doing. It uses a powerful psychometric instrument that slips past your own cognitive blocks to figure out what really makes you tick. It gives you a solid book of instructions on how to drive your own career. It tells you how to keep yourself interested and focused at work. It tells you where the pitfalls are and points out how to get around them.

 

Mind Expansion 101

There are two places I go when I am looking for a mind expansion fix. For me, it’s just depressing to sit and stare without something in my mind to turn over and think about. I am a pretty creative person, so my subconscious usually has no problem keeping me occupied. But every now and then, there’s no ‘there’ there. I need some more thinking fuel and I wanted to share two of these with you, because I like you.

The first is a web site with plenty of thought-provoking articles on ethics, science, philosophy and critical thinking. It is a blog put together by the Foundational Research Institute and has a group of engaging bloggers that do a great job of breaking down concepts and putting them together again in a thoughtful and interesting way:

http://crucialconsiderations.org/

The second place is a podcast and a blog and a couple of books by Daniel McRaney, so I can get my fix in lots of different formats if I don’t happen to be sitting in front of a computer. Daniel takes the latest information and let’s you know, in no uncertain terms, how you are fooling yourself and that you are not so smart:

http://youarenotsosmart.com/

I might update this in the future with some of my other go-to links, but these will keep you occupied for DAYS of thinking and contemplation. The kind of thinking that makes you feel good and mentally stronger and healthier. Go get some!

HCM needs HUMANS
Putting Humans in HCM

Human Capital Management is a catch-all term for anything touching on moving, hiring, promoting or dealing with all those messy humans that populate so many companies. On the technology side, there seems to be a definite drift toward reducing humans, who are infinitely complex and entirely unique, into a set of numbers and checkboxes.

  • Was the correct paperwork completed?
  • Are we in compliance?
  • Did the right person get the right pay raise at the right time?

All of these are important questions, I don’t dispute that for a minute. But in the vast majority of the technology offerings I see in the market, and in more than a few of the HCM consultancy companies, the focus is very much on high level, strategic, considerations and not very much on the people in the organization. The focus is on “which direction the organization needs to move”  without spending time learning if the people that need to implement these plans are on board or capable of moving in that direction.

Without a deep understanding of the people in an organization, these strategies are severely handicapped before they even begin. This would be the same as trying to drive a race car without knowing that it tends to drift to the left at low speeds and third gear is missing. You need to know the people in your organization, your grand strategic plan will not, cannot, succeed without this information.

So here are some steps you can take to put Humans back in Human Capital Management.

1. Learn to talk about people

As with any complex discipline, you need to have a vocabulary for talking about your subject matter. The easiest models I have seen is the Competing Values Framework, but almost any model is better than no model at all (except the MBTI, don’t even get me started). See the article I wrote on how to select a good personality test: 8 simple rules for choosing a Personality Test.

You need to have a model to give you a vocabulary. You need the vocabulary to talk about these issues in your strategy and  communicate this to all levels of the organization (management, operations, HR, etc). A cornerstone of strategy is making sure everyone knows what the strategy is.

2. Consider Culture

Organizational culture might feel like an indefinite, ephemeral construct, but it is very real. Ignoring it will very definitely bite you on the butt. The culture of your company is how people are promoted, how managers deal with employees, the relationships between employees and the organization, the actions that are encouraged, the behaviors that are discouraged, etc. Culture is a web that touches and connects every part of your organization together. You need to know what the culture of your organization is before you make strategic plans.

Again, I gotta recommend the Competing Values Framework for this. Here is an article that talks about the OCAI model, I highly recommend that you read that. Luckily, the model is well known and you can find lots of providers in the marketplace.

3. Think about Values

You can hire people that will do the work and get them all moving in the correct direction and implementing your strategic vision. This is a recipe for success and is the bare minimum that HCM should be doing.

Here is what will take your organization to the next level: passion. Passion (the term of art right now is “engagement”, but I prefer “passion”) happens when the values of employees match up with the values of the organization. Our vocabulary for talking about value is the Schein model of Career Anchors. I made a video about this:

 

And there you have it. Three not-so-simple, but very important steps for putting Humans back into Human Capital Management. Your comments and feedback are welcome!