9 Essential WordPress Modules

One does not simply appear in search engine results

When I made the move to WordPress a few weeks ago I had a lot to learn, both in terms of functionality that WordPress had to offer, as well as modules that I could install and which of those modules actually worked well!

So I’m going to spend this post sharing what modules I found the most useful so that anyone else who is getting into WordPress can have an easier time getting started.

Open Graph

Even if you don’t use Facebook or Twitter, chances are that your visitors do and they share your content on those sites. So this module is probably the most important module of the entire list, because it adds the appropriate meta tags to ensure that when your content is shared on either service, it is rendered correctly.

Furthermore, the Open Graph module allows you to set a default image and override it with other an image from the post itself or one uploaded separately:

Again, I cannot stress it enough–if you want your content to look presentable on social media sites, you need to use this module. Otherwise, you are passing up a huge opportunity.

Continue reading “9 Essential WordPress Modules”

Fixing Image Sizes on WordPress Attachment Pages

One of the neat things about WordPress is that when you upload an image and then include that image in a blog post, you can decide where that image links to. The image can link to nothing at all, the raw image, or an “attachment page” which contains that image and a caption.

That said, something that has caused me grief for out of the box WordPress builds has been the image on the media page being really small. Take for example, this picture of a freeloading cheetah. When I upload the picture, the attachment page looks like this:

Just look at that. A tiny image and a bunch of the page being completely unused. Disgraceful. Surely we can do better!

As it turns out, tweaking a single line of code can be used to change the size of all images on media pages.

Continue reading “Fixing Image Sizes on WordPress Attachment Pages”

Using Splunk on Hotel Internet

Splunk> Finding your faults, just like Mom.

In a previous post, I wrote about using Splunk to monitor network health. While useful for home and office use, there’s another valuable use for this app, and that’s when traveling.

In my case, over my Christmas vacation, I checked into a Mom and Pop hotel, or rather a motel! It was about 24 rooms all in a row, occupying a single floor. Since they were on a budget, their Internet offering consisted of what appeared to be 5 or 6 Linksys routers set up every few rooms. You’d simply connect to the closest access point and have Internet.

But there was a problem: determining which access point was closest to me! The signal strength indicator on my computer showed several of them were 3/3 bars so that wasn’t much help. I tried connecting to the first one, but had virtually no Internet connectivity.

That’s when I fired up Splunk:

docker run --name splunk-network-health-check \
   -p 8000:8000 \
   -v $(pwd)/splunk-data:/opt/splunk/var/lib/splunk/defaultdb \
   -e "TARGETS=192.168.1.1 google.com 8.8.8.8 1.1.1.1" \
   dmuth1/splunk-network-health-check

In the above example, I added in the TARGETS environment variable, and was sure to include 192.168.1.1, which was the IP for each router (they were all the same). Then I set Splunk “real-time mode” and periodically checked that tab as I was working. This is what I saw:

Testing 3 separate hotel Access Points with Splunk
Continue reading “Using Splunk on Hotel Internet”

Introducing: Splunk Lab!

Splunk> Australian for grep.

In a previous post, I wrote about using Splunk to monitor network health and connectivity. While building that project, I thought it would be nice if I could build a more generic application which could be used to perform ad hoc data analysis on pre-existing data without having to go through a complicated process each time I wanted to do some analytics.

So I built Splunk Lab! It is a Dockerized version of Splunk which, when started, will automatically ingest entire directories of logs. Furthermore, if started with the proper configuration, any dashboards or field extractions which are created will persist after the container is terminated, which means they can be used again in the future.

A typical use case for me has been to run this on my webserver to go through my logs on a particularly busy day and see what hosts or pages are generating the most traffic. I’ve also used this when a spambot starts hitting my website for invalid URLs.

So let’s just jump right in with an example:

docker run -p 8000:8000 \
   -v $(pwd)/data:/data \
   -v /var/logs/nginx/:/logs \
   -v $(pwd)/app:/app \
   -e SPLUNK_PASSWORD=password \
   dmuth1/splunk-lab

This will download the container, start it up, and mount the appropriate directories. The containerized version of Splunk looks recursively for logs in /logs/, stores its data in /data/, and stores dashboards that are created in /app/. (Note that if you try to use “password” as your password, the container will refuse to start for safety reasons!)

First things first, let’s verify our data was loaded and do some field extractions!

Continue reading “Introducing: Splunk Lab!”