Digital Signage

My current employer recently gave me the task of helping to set up a digital sign network across our warehouses. I’ve had some prior signage experience from Maryville University using FourWinds Interactive. While there, I wanted to check out the Concerto Digital Signage Project and never had the chance. Our setup is much smaller than Maryville, but Concerto seems to work great! FourWinds was all Windows-based, and Concerto is actually a Linux distro built to connect to a web-based sign servers (also Linux-based…Debian, I believe). When you fire up one of the signage computers it boots up a Chromium browser and wants you to point the computer to your digital sign server’s URL. After supplying that, it will give you a token to enter on the server and voila! You’re new sign is in business.

Anyway, it’s a pretty neat project and if you need to check one out, I’d recommend trying out Concerto.

Gone Fishing

Had fun fishing in the lake near my house today. I met up with a couple of neighbors and caught an 8″ bass. I know, not much to brag about, but we had fun in the kayaks. This picture was actually in the creek north of the lake. We went up probably a half a mile and made our way back eventually.

Syncing Atom Packages and Themes Across Multiple Devices

As a web developer, I’m always on the search for better tools. I’ve been watching Atom (the text editor from GitHub) closely and recently have starting checking it out again. Atom has tons of packages (plugins) and themes available. One of the hard things between home and work is trying to keep those packages synced between my devices. Fortunately, there’s an easy way to do so.

  1. Setup a Git repository on a public Git hosting site (bitbucket or github). I prefer bitbucket, because you can make free, private repositories. I called my repository atom-user-packages.
  2. Go into your user directory on your computer and find the .atom directory. You have to open Atom for this to be generated if this is your first time using Atom.
  3. Go into the packages folder and initialize a new Git repository.
  4. Follow along with the directions for mapping up your remote repository (on bitbucket or github).
  5. Commit your changes and push to the remote repository.
  6. Now go to your other devices and delete the packages directory and replace it with your Git repository…also naming the new directory packages.
  7. Profit!

Cool, What’s the Catch?

atom_git_errorThe only downside I’ve seen with doing this, is I receive an error every time I open a new Atom window. It’s complaining about the “.git package” inside of the packages directory. Not a deal breaker for me for the benefit you gain doing this. You can dismiss this message and go on with your lives.

Happy Coding!


WordPress Options Class with JSON Support

A while back I had an article title: WordPress Options Class, which was my way of accessing and storing options in WordPress for some of the plugins that I create. After using WordPress for some time now it’s become apparent that storing options in a serialized array in the database is not the best way to do things. I’ve updated my options class to now save the options going forward as JSON. My hope is that other developers will start to do the same.

Why Do It This Way?

At my previous job, there were several times I had to go into some other plugin’s database tables and update a serialized string because some value on our end changed and there was no way to update it through the UI. Using JSON, makes those sorts of changes much easier.


Using this will allow your options to still be stored as a serialized array, but the next time you save them using this class, the serialized array will be changed to JSON.

The Code

Add Custom Scripts to Your PowerShell Profile

I’ve recently started doing some work with Windows PowerShell. One problem I wanted to solve was placing my scripts in source control and having them in a non-standard folder. Below is a bit of code you can put in your Microsoft.PowerShell_profile.ps1 file to look for all .ps1 files in a given directory. Just be sure to change the folder in the code below to your PowerShell code folder and all will be good.

Moving On

Well, my time at Maryville University is coming to an end. Friday will be my last day and I’ll be starting back with my previous employer EPC, Inc. on Monday! I’ll be a Senior Application Developer over there and working again with my twin brother, Alan. It’s an exciting and nerve-wracking time! Not so much WordPress work anymore, although, I’m sure I’ll still do some on the side. It’ll be back to C# for me now!

March WordPress St. Louis Developers Meetup

This month, I presented on the WordPress database and discussed the tables, how to use the wpdb class and how to create your own custom tables. You can view the presentation here:

Other Things Mentioned

  • I mentioned that everyone interested should try taking the WordPress quiz from Code Poet.
  • People want a re-poll for the best Monday of the month
  • Next month’s topic will be Enterprise Deployment and Setup (a round table discussion about our experiences)
  • An interesting idea that I hadn’t though of was instead of storing serialized data in the database, store it as JSON instead. I’m going to do some research on this.

February WordPress St. Louis Developers Meetup Notes

The second every St. Louis WordPress developers meetup has come to a conclusion. Here are some notes that I took during the meetup.

Security Best Practices Discussion


  • Don’t use admin as your default username
  • Change the default table prefix to something unique
  • Consider moving your wp-config.php outside of your website root folder
  • In code, check user permissions before running actions or even displaying the page
  • Sanitize database inputs

Security Plugins to Check Out

Other Security-related Discussion

I can see this turning into a total flame war, but choosing another cms because it isn’t used as much for added security. For example, choosing Drupal over WordPress since WordPress is targeted for attacks more because it is more widely used. Again, I’m not trying to start a flame war, just adding this to the list since someone mentioned it. Side note: this is totally how I feel about the Windows vs. Mac debate for security. Windows has more vulnerabilities because there are more people to harm by looking for vulnerabilities on Windows. You can affect a larger percentage of people by going with the big dog.

Group Project

We talked last month about possibly working on a group project together for the hell of it. Some ideas were thrown out for plugins:

  • Forums
  • Wiki
  • Project management system
  • Picking up an abandoned plugin
  • Writing blog content about WordPress development

March Meetup Topic

WordPress Database/Table Management Best Practices

Here is a list of the things I would like to see Paul and myself cover:

  • Dive into the WordPress tables and see what they actually hold
  • Talk about some of the functions available in $wpdb
  • Talk about integrating with the posts table
  • How to create your own database tables for your plugins.