I’m a lost helicopter pilot

I’ve been having a joy developing in .NET 6.

I’m only half joking. Some of the capabilities in the ecosystem are simply wonderful… once you figure them out.

In the process, most of the reference documentation is absolutely useless.

Continue reading

Posted in Uncategorized | Tagged , , | Leave a comment

CommitStrip’s RSS Feed is Broken

Lately, I’ve been trying to get caught up and remain caught up with daily content: empty email inbox, no unread Slack messages, and now, all RSS feeds read. It’s the last of these that led me to a fascinating discovery.

Continue reading

Posted in Uncategorized | Tagged , | Leave a comment

Sweet Smelling Code

I found this list buried in my notes from long ago. I cleaned it up and updated it, but yeah, I still found wisdom in this advice from my former self.

Moreover, this advice is also to myself. I need to be reminded of these guidelines, as I sometimes disregard them and then need to go back and clean up things afterward.

Continue reading

Posted in Uncategorized | Tagged , | Leave a comment

The Weaknesses of Your Programming Language: a lament

One of the questions we have asked potential recruits at The Perl Shop is, “What do you feel are weaknesses with Perl?” I feel it’s high time that I give my own answer to that question.

Continue reading

Posted in Uncategorized | Tagged , , | Leave a comment

A Word Cookies Worksheet App

My girlfriend and I like to play a word-search game called Word Cookies!®, by BitMango. The game presents a collection of letters and an empty list of words of various lengths. It’s your job to assemble the available letters into dictionary words that fill in the blanks. On the screen, the words are ordered by length and then alphabetically, with one exception: the biggest word (usually that uses all the available letters) is displayed at top of the screen.

The game also has a Daily Puzzle, which adds an additional challenge: The game chooses a word randomly, and you need to guess that particular word, in that particular slot in the list, in order to get points. To solve these puzzles, it’s not enough just to guess any word in the puzzle. You need to guess the exact word the game has randomly chosen.

Continue reading

Posted in Uncategorized | Tagged , , , , | Leave a comment

Reimagining the Website

About 2 years ago, I revamped my hub site using Django. This was the first step (I had hoped) toward a unified architecture for all my websites. It didn’t turn out that way, but this project is still simmering on the back burner.

Most content management systems are designed as monoliths with turnkey features. This is a wonderful boon for authors who want to, for example, throw up a blog, as they have a low-overhead solution they can deploy and quickly start publishing with. But it presents problems if you want to customize them (anything outside of the turnkey modules and settings available) because you have to work around the existing features before you can implement your customizations. And it presents problems when managing multiple websites because now you have to manage multiple independent monoliths and often can’t even benefit from automation.

I was hoping that my play with Django would be the beginning of a new relationship that would allow me to address these problems. Unfortunately, I was unhappy with where Django left me (and my hub site has been growing stale since then). In the meantime, I got a new job, which completely dominated my life for the better part of two years. (That is the explanation for my extended absence.) Then I got laid off in a downturn of pandemic proportions—literally.

But my dream of a unified website architecture never died. And I’d like to lay out the business case (as it were) for this solution and the requirements it will need to meet. I’ll go further down the road in a later post and talk about architecture options.

Continue reading

Posted in Uncategorized | Tagged , | Leave a comment

The HubSpot Coding Challenge and Me

I sent a copy of my resume to HubSpot, and one of their talent acquisition people got me on the phone to talk. It sounded like a potentially good fit, and I was invited to take the HubSpot coding challenge.

Which I did.

Continue reading

Posted in Uncategorized | Tagged , , , , , | 5 Comments

Musings about Version Control (and other development tools)

Today, I had a conversation with a small company that doesn’t use version control.

It’s hard to remember what it was like before version control. I know I did get started in a world without it. When I started in embedded development, we didn’t have version control.

Before there was version control, I made versioned backups of my entire working directory.

Yikes. Dark ages.

Continue reading

Posted in Uncategorized | Tagged , , , | Leave a comment

Beware HackerRank

Online coding assessments are all the rage for certifying a software developer’s skills during the hiring process. Don’t get me wrong, this is a much better system than what we used to have. A decade ago, all we had were red-flag job ads, whiteboard coding, and buzzword bingo. Back then, oh what I would have done for a chance to develop some actual code—even on a toy problem—just to demonstrate my programming prowess. And these systems are absolutely an improvement. We’re on the right track.

The most well-known system is HackerRank’s, but there are several others as well. I’m picking on HackerRank in the title, but I’m actually commenting on all the online coding assessments (including HackerRank). They all work approximately the same: They usually involve a number of multiple-choice questions followed by a couple of programming challenges. In the programming challenges, you can generally choose from a list of programming languages, and your solutions will be judged against pre-written test cases, some of which you might not have access to.

These assessments are much better than what came before, but they still suffer from fundamental pitfalls that you ought to be aware of, whether you’re a job-seeker or a hiring manager. They’re saddled with the fallout from an educational system that teaches memorization and compliance (rather than innovation and initiative), and they probably don’t reflect what you want to be looking for in a software engineer.

Continue reading

Posted in Uncategorized | Tagged , , | 4 Comments

On Returning to Java from Perl

The last time I did any serious (or semi-serious) work in Java was in 2006. I used J2EE 5.0, which was the current version at the time, to demonstrate how we could migrate our enterprise web app package from spaghetti C++ to a more soundly architected framework in which most of the low-level work was done for us. I used Jetty as a servlet container for the demo because it was lightweight and easy to get going in a dev environment, although there were other options (most notably Tomcat). That was a long time ago and many versions away. I went into full-time LAMP work with Modern Perl and became a full-stack web developer.

My current circumstances have encouraged me to revisit Java. Firstly, I have some experience with it. I started by going through the Java practice challenges on HackerRank. I’m pleased with how easily it all comes back to me. I guess programming is like riding a bike. I’m using Java for all the online coding assessments as I look for work (except for the Perl positions). And I’m putting together a Java version of a TicTacToe app.

This has inspired some thoughts on the current Java ecosystem… and how it compares to the Modern Perl ecosystem.

Continue reading

Posted in Uncategorized | Tagged , | 2 Comments