Tom McFarlin

Software Engineering in Web Development, Backend Services, and More

Page 179 of 433

Praise in Public, Reprimand in Private

“Praise in public, reprimand in private” is a phrase that I heard years ago (and I can’t remember who I actually heard say it first), but it was one of those things that stuck with me.

When you hear phrases like that, I think we often consider things like parenting, leadership, managing a team, or something similar. But do you ever think about it in terms of blogging, tweeting, or what we share online?

For anyone who works online the majority of the day and is engaged in some form of social media, I think we’re used to seeing people both praise and critique others be it via tweets, blog comments, and so on.

And sure, there’s something to be said for “calling people out” for whatever reason, but I think there’s something to be said for also handling some of that stuff privately.

Continue reading

Sharing GPL Code and Its Ethics

“Sharing GPL Code” sounds like such a loaded title because the topic is forever hot. But hang with me because the purpose of this post has nothing to do with actually arguing for or against the GPL or code around it.

I know the simple answer is that all GPL code, by very nature of its license, it’s available for sharing, but there’s another aspect that plays into this I want to discuss.

Sharing GPL Code

Sharing GPL Code can be more about collaborating on code, right?

 

And that’s this:

What is the ethics of sharing the code for a project that you’ve built for someone else even if it maintains the GPL?

For the most part, I think it’s fine. But when you’re running a business and you’re building solutions for clients, there’s a little more to it.

At least, that’s my experience.

Continue reading

Detecting Copy and Paste in JavaScript

Detecting copy and paste in JavaScript is not something that’s new to web development. How you do it may vary, though, depending on the set of tools you’re using.

Cut and Paste in JavaScript

Cut and paste, not cut and tape. And not like this.

Given I focus primarily on WordPress, the majority of the JavaScript I write uses jQuery. And though there are a number of ways you can go about doing this (which I’ll talk about later), some of them are deprecated (though they still work).

Anyway, so I was specifically looking for a way to handle the case where a user pastes content into a field using keyboard shortcuts.

Continue reading

The Right Hook To Initialize WordPress Plugins

When I first started working on WordPress plugin development, I used to obsess over the right hook to initialize WordPress plugins. That is, I thought there was one hook that would sit above all other hooks and prevent me from needing to go looking through the Codex or other source code to find the right one.

But that’s not the case.

To be clear, this isn’t to say that there aren’t some strategies and some hooks that work better than others in many, many cases, but there are times where whatever you’re used to using isn’t going to work. This depends on how you’re structuring your plugin, and I’ll talk more about that in a moment, but there’s isn’t one hook to rule them all when you want to initialize your WordPress plugins.

Initialize WordPress Plugins

By now, you likely know the whole deal about the one ring, right?

Instead, you’ve got to find the one that suits your needs best for the functionality you’re introducing.

Continue reading

Running Nginx on OS X for WordPress Development

Running Nginx on OS X is becoming a more attractive alternative to running some of the standard stacks that developers use to set up their environments.

That is, I think many of us are used to running something like this following:

  • Apache
  • MySQL
  • PHP
  • WordPress

That works because the majority of our hosts have these configurations, and it’s a good practice to have our development environment mirror our staging and production environments.

But Nginx is becoming a popular alternative to Apache and other web servers, so we need to update our local machines accordingly.Getting it set up on OS X takes a little more work.

Getting it set up on OS X takes a little work.

Continue reading

« Older posts Newer posts »

© 2026 Tom McFarlin

Theme by Anders NorenUp ↑