Posts By :


Thank you, Felix Geerinckx

I spent 2 hours trying to fix a tricky MySQL database issue today. A full partition, unable to dump and restore, symbolic links not working, aptitude trying to delete everything . . ..

Well, it was just stressful.

And then I was able to find a post from 2005 written by a man named Felix Geerinckx. It solved my problems and all is well in my world again. (the post in question:,52107,52111#msg-52111)

So OVERWHELMED WITH GRATITUDE, I tried to send this internet stranger a quick ‘thank you’ for this 12 year old post.

Can’t find him. He is, or was, a pretty steady contributor to the MySQL forums, but I cannot find any email addresses or public forums where I can send him a message. So I am doing it here.

Thank you, Felix Geerinckx. You have made my world a better place and I want you to know I appreciate it.


Trump-edy Trump Trump Trump

I have been seeing a lot of traffic in my social media about how Donald Trump is the new Hitler, a demagogue comes to power on a message of nationalism and racial purity. As a fan of history, I decided to compile a list of things to watch for if this is true, an objective list of actions that will be visible to everyone. If he keeps following the Hitler playbook, we can look forward to the following acts:

  1. Short term measures to boost the economy. Hitler did this by going into massive government spending on the military. Since the USA already HAS the largest military and budget, he will probably have to come up with some other public works to provide this boost. Expect massive infrastructure projects, they will be riddled with corruption, but that’s a good thing, from Trump’s perspective. Corrupt officials are *owned* officials and putting money into his own pockets and the pockets of his buddies will make them more loyal.
  2. Hitler’s generals tried to assassinate him, several times, because they understood what a monster he was. So, President Trump will need to get rid of or replace any military leaders who disagree with him or are not loyal enough. He has to solidify his power base and getting rid of the only power that could directly oppose him (who have sworn to uphold the constitution that he will shortly be tearing into little pieces) is high on his list.
  3. Hitler had to burn down his parliament to cut out that opposition to his power base. Trump has an advantage here because Congress is already ineffectual and he will get to appoint 1 to 3 Supreme Court Justices, these won’t even be a speed bump for him. As an act, President Trump will appoint ineffectual or personally loyal people to law enforcement positions.
  4. Be a rock star. Hitler was glowingly portrayed in news articles around the world before the start of WWII, there was a lot of support for him in the USA as well. Hitler hired amazing fashion designers (Hugo Boss) to create the uniforms of his SS, commissioned cool affordable cars (the Volkswagen), and staged huge public spectacles (Nazi rallies and the Olympic Games, not that these are synonymous). Trump is already all geared up for this, his rallies and performances are going to be huuuuuge. He just needs to keep 51% of the white, mostly poor, populace entertained, something he has proven very capable of doing. Expect a lot of spectacle and braggadocio.
  5. As a budding supreme leader, he needs to get a handle on the media and make those nay-sayers and critics shut up. The USA already has some experience here, they just need to reinstate some of the machinery put in place for the cold war like the House Un-American Activities Committee (HUAC) and rampant internal spying by the FBI against ‘enemies of the state’. [Newt Gingrich has already started the process on starting up the HUAC again.] Also, he needs to threaten journalists with lawsuits and prison for disagreeing with him. [also, already started]
  6. Ramp up the fear factor, people who are scared will give up their freedom for some extra (perceived) security. Hitler did it with the “international jewish conspiracy” and the communists. Trump will do it with Muslims and terrorism.
  7. He will need to be selective in who he targets. Trump will need to make sure he only targets minorities, he will focus on non-Christians that’s the only explanation for selecting someone like Mike Pence to be his VP. He will need to make sure that anything bad that happens gets pinned on one of those groups and make sure that they are portrayed as evil at every turn.
  8. Trump will surround himself with people who agree with him and are loyal to him, personally. He has promised to ‘drain the swamp’ of Washington, D.C. but any rational observer sees that his cabinet appointments are straight up alligators and water snakes. His selection criteria has nothing to do with ‘good for the country’ or ‘good at the job’, the only thing that matters to Trump is Personal Loyalty, you know, like a demagogue. If he stays true to form, Trump’s crimes will make the Teapot Dome scandal look like a stolen Snickers bar.

There are some differences, Trump isn’t using amphetamines and doesn’t have any military experience. I don’t think Trump actually HAS any significant goals, maybe he’s just trying to get to a point where he has his name on every school and park in America in great big gold-colored letters.

No, the real danger of Trump isn’t his ambitions, he doesn’t want to rule the world or create an empire that lasts a thousand years. The real danger of Trump is that he does not seem to realize that peace between nations is HARD WORK that requires diplomacy and constant effort. Anyone how has read Kagan (Kagan, Donald. (1995). On the Origins of War and the Preservation of Peace. New York: Doubleday. ISBN 0-385-42374-8.) knows that the ground state of relations between nations is war, peace is hard and I don’t think Trump knows how to do that. He will break long standing relationships, he will alienate allies, he will create an international power vacuum that others will step in to. His lack of experience and insight will destabilize the world, and he won’t care. (Or he might welcome the possibilities of wars, who knows? War can be good spectacle!)

The opposition to Trump has to get off of the sexism and racism angle, those don’t matter to his power base. They should have attacked his criminal behavior and incompetence. I think if the Democrats actually address THOSE parts of Trump’s administration, they will have a chance of deposing him during the next election cycle. Sexism and Racism will be there, yes. They will be bad, yes. They WILL NOT MATTER to his power base, corruption and criminality DO. They hated Hillary because they saw her as being corrupt and getting away with it. Trump didn’t say that Hillary was not qualified, he said that she was corrupt and a criminal. This was very much the pot calling the kettle black, but the Democrats didn’t make this clear to the electorate and lost.

Terry Pratchett


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


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: 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.







The Cheap API

Richard Still


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

Using Template::Toolkit


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;




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;
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 => ''
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);

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: (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.