Menu Sidebar


Director of WordPress Platform Services at Alley Interactive. WordCamp Speaker. Core contributor.

Starting the New Year early: My December Resolutions

It’s never to soon to make a change, so why not today? I’m a bit early for the new year, but I’m not one for doing things on time anyway. In large part, I’ve already put some of these changes into motion, but many are only thoughts, yet to be acted on. Every item on this list has direct actionable items for me, I’ve left off items that are prevented from being acted upon due to factors outside of my control (Like moving for example. That’s pending on my fiance’s job opportunities after graduation).  Jumping right in:

My goals for the next year:

  • Be more active in the WordPress community
  • Contribute regularly to WooThemes projects
  • Become a Backbone.js rockstar
  • Normal sleep schedule and eating habits
  • Launch McNinja Comics

Be more active in the WordPress community

This goal started for me earlier this year and I put it into motion fairly quickly. There are a few things I could identify right away, the first was speaking at WordCamps. I hopped on WordCamp Central and looked at the upcoming WordCamps that I could possibly travel to. WordCamp Buffalo was reasonably close, an 8 hour train ride, and became the first WordCamp I’ve spoken at. Such an amazing experience, but I’ll leave that for another post. WordCamp Orlando and WordCamp Raleigh rounded out my speaking engagements for the year.

The next goal for being active in the community is blogging regularly, sharing insights, experiences, code and plugins. This is where I’m at now. At WooThemes we have a December challenge of writing regularly, here’s the first step in hopes it leads to a long lasting habit.

Finally, one of the most important things I want to do in being active in the community is contributing code to WordPress. I’m looking to get involved in accessibility aspects of WordPress, and possibly the Post Meta initiative which was started just last week by Eric Andrew Lewis.

Contribute regularly to WooThemes projects

At the moment I contribute mainly to the WooThemes slider plugin, WooSlider. We got version 2.0 released earlier this year, which was a fantastic experience for me. I have big dreams for this plugin over the next few months, which I hope to share as these dreams come closer to reality.

What’s next though? Well, we have a ton of themes, plugins and some secret projects. Over time I’ve made lists of things to optimize, update, make responsive, or add new features to. As time allows, I’ll be making pull requests. My actionable goal for this is one contribution/pull request per week to a non-WooSlider repository. The benefits of this are huge, as the more I contribute to our projects, the better I know them, which comes in quite handy when supporting those products.

Become a Backbone.js rockstar

Rockstar may be a bit lofty, but becoming proficient in backbone.js will make me happy. I see this as a big part of the future of WordPress, so getting my feet wet now will make things nice down the road. I’ve been taking the Backbone.js classes from Code School, which are fantastic. The obvious goal is to finish the courses. After this, I’m creating a handful of internal tutorials with code projects/examples on using Backbone.js in WordPress. Once the REST API gets into WP core, this is going to get exciting fast.

Normal sleep schedule an eating habits

This is an ongoing challenge, but was kicked off by speaking at WordCamps. I tend to be nocturnal, but these conferences forced me to swing my schedule around a bit and wake up when it was light out. I’ve stuck to this pretty well since and I’m on about week 3 or 4 of having a semi-normal sleep schedule.

I got a personal trainer a couple of months ago and with his help, my eating habits have gotten a bit better. Someday I hope to be able to touch my toes as well.

Launch McNinja Comics

I can be slightly obsessive, a few months ago I went to a comic shop with my father, I picked up Daredevil, which lit the fire. A few weeks later I found a killer deal on Craigslist and wound up with quite a few comics. Hit repeat on the Craigslist bit a few more time and I have…a lot of comics. I’m currently working on indexing the stock and getting everything set up in a WooCommerce based site. The plan is to have the minimum viable product up in the next week.


Thoughtfully getting involved in WordPress

Today I filled out a form to get involved with the WordPress Accessibility team. Here is that form:

Looking at the Make WordPress page there are many ways to get involved in WordPress, some more exciting than others in my opinion. The two Make blogs that I follow are Core and UI. This is where a lot of the flashy stuff happens, like MP6, THX38, JSON REST API, etc. Obviously this is where I’d go if I want to get involved because these are the kind of projects that are super exciting to me.

After presenting at 3 WordCamps in the last couple of months, my view started to change. I was presenting on sliders (that thing that’s now cool for everyone to love to hate). In those talks, I received awesome questions during the Q&A portions and the first time I heard them, I had no idea what the answer was, but that’s part of the awesomeness. If we never hear where the needs and shortfalls are in our software, we’ll never know they need to be addressed.

So what were those questions?

Are the sliders I mention in my presentation Section 508 compliant? Do they work well with screen readers? To the first question, I didn’t know what Section 508 was, so that’s a no. I don’t know how well they work with screen readers as I’ve never tested anything on one, let alone sliders.

Why is this important? Education and government sites need to be accessible so that those who may have any kind of sensory limitations can still consume the content. Just as those who are hearing impared are going to find a video without captions somewhat useless, sliders can pose similar issues to software designed to interpret the content of a website for those with visual limitations.

This brings me back to contributing to WordPress. How can I justify spending my time on a really cool new feature, whether it be in WordPress core or in the WooSlider plugin that I work on, when there are whole portions of the population being alienated from enjoying the experience I’m trying to deliver to them? Personally, I can’t. The goal of WordPress is to democratize publishing. In the projects that I’m a part of, if I know a portion of the audience is being excluded because of how a piece of software currently works, that doesn’t feel like democracy to me. It feels like I should be working on a solution for that. The Accessibility team is part of the solution, and they’re working hard to make WordPress accessible to all. If I can learn from the team, and contribute any of my own findings and solutions back to what they’re tackling, then that feels like the best win/time ratio I can possibly achieve.

If you’re keen to get involved more with WordPress, I encourage you to give back to the community, check out the Make WordPress page and find something that tickles your fancy.

If Java was a Woman…

It’s about 2:30AM and I’m cleaning out my Mac of useless files and making some optimizations for speed as it’s been quite sluggish lately (time for SSD by the way). I came across a note I made back when I was in college regarding Java and well, I’ll just paste it wholesale…

Today I was teaching a lab for an Analysis of Algorithms class and we got into a discussion on if Java was a woman.

Some of the comments (made by women as well as men):

-If java was a woman I would never date her

-Java gives lots of cryptic error messages that don’t mean much

-Spend forever looking for one problem

-Constantly nagging you, but never tells you what is wrong

-90% of your time spent ‘debugging’

Some of my initial thoughts on this, as it’s been years and I don’t even remember this:

-Hehe, that’s pretty funny

-I hate Java

-We had a healthy number of female Computer Science students. I don’t know what the numbers look like nation wide, but hey, maybe we’ll be seeing a large number of women entering the tech space soon.

Save the World with Bioinformatics

Before anything, let Steve Yegge tell you why this is important. Start at 5:50 if you’re impatient.

This may be a bold statement, but I believe this video will be the call to arms for the Computer Scientists, Programmers, Developers, Hackers of our generation to make the choice to make a difference. This is when we decide  to solve real world problems instead of first world problems.

I got excited when I heard this talk, but had no idea where to start. My background is in Computer Science, not Biology. Most of the articles, books, etc. that I’ve seen assume you know where to start. This is my attempt to create Step 1 and document my course of action and resources in the hopes that they will make your jump a bit easier.

Getting started in Bioinformatics from the US National Library of Medicine National Institutes of Health is a quick-to-read and useful article, it also includes names and links to a couple of projects.


We have some learning to do, and there are some great free online options. I’m using MIT OpenCourseWare. Take a look and see what appeals to you, courses from other schools are available here as well. Below are the classes I plan on taking. View the syllabus tab on the left side of each course page to see what books the course uses, or if it has pre-requisites you might want to look at as well.

Introduction to Biology (why not?)

Molecular Biology

Introduction to Computational Molecular Biology (seems similar to the next class)

Foundations of Computational and Systems Biology

Computational Biology: Genomes, Networks, Evolution (might be a bit advanced)

Protein Biochemistry and Evolutionary Biology are also suggested on the Getting Started page. The bottom of that page has a Volunteering section along with a link to open source projects.


Bioinformatics for Dummies

Start reading and never stop. After reading the first chapter of this book, you’ll have a basic understanding of the underlying principles. In chapter 2, this book introduces you to some tools and online resources while explaining how to use them. Since it does a great job with that, I’ll refrain from listing them all here.

I previously purchased Bioinformatics for Python and at this point I haven’t find those types of books to be helpful. Right now, building the foundation and having an understanding of the basics is more important and will make these types of books actually meaningful when you get to them.


Pick your favorite language and grab the software for it on I’ll be using biopython

This looked appealing to me: Bioclipse and download

EMBOSS – The European Molecular Biology Open Software Suite

Q&A Sites

Once you dive in, you will have some questions. Chances are someone else has as well. Stack exchange is fantastic, you’ll find this to be a great resource while working through the classes and while working on more Bioinformatics-related problems. StackOverflow can help when dealing specifically with some of the software you will be using.


Biology StackExchange I’m following the tags for bioinformaticsmolecular-biologyhuman-genome and computational-biology

Biopython questions on StackOverflow

Good Luck!

This a great presentation introducing the field as well as a brief history on where the field has come and where it’s going. Daniel Reda – An Introduction to Biotechnology and Bioinformatics

I hope this helps to steer you in the right direction. Please share any resources you find in the comments and feel free to get in touch. It’s easy to feel a bit lost in the beginning, but it gets better when there are more computer geeks around.

A rose by any other name would smell as sweet

Surprisingly, I’m frequently asked what new sites should be named, more specifically, I’m asked what the domain name should be.It’s not really my specialty or anything, but since I build websites, I should know how to name them.

I think there’s a need for a whole new industry, people to name websites. Maybe they can work under SEO specialists. I must say though, it doesn’t matter.

Yes, there are the obvious things you can say, and I say them only so someone doesn’t say them to me:

– Pick something memorable

– Pick a name that contains the keywords you want to rank for

– Try to get something short

– Don’t use hyphens, and don’t pick a stupid name where you need to put a hyphen in your domain, like the evil hyphen site.

…and on and on.

But this leaves the asker of the question at square one, because you didn’t actually give them a suggestion on what to name it.

Try these name generators:


Switchplane Business Name Generator (my favorite)



Pick something you can live with. Try to keep it relevant so that if you change something, you don’t need a new name. Most of all: Just pick something so I can build your site. If you hate the name tomorrow, get a new one.

A rose by any other name would smell as sweet.

Android App: Building Casino Kingdom

This semester I am doing a directed study in in mobile development on the Android platform. The main objective is to go through the complete development cycle and release an app into the Android Market by the conclusion of the class. Five other students are in this study with me, though all of us have taken pretty diverse paths as far as our individual apps go. Even so, it’s nice having a few people to bounce ideas off of during the process.

After researching the Market, I settled on creating a casino application. While there are many apps for individual casino games, I found only one that offered the full casino experience in a single application. This app is also only offered as a paid application. My model for this app is to release a free (ad supported) version for handsets, and a paid version for tablets running Android 3.0 Honeycomb. Yes, Honeycomb has a minimal market share, but it will only grow, and it’s a perfect time to get in on the ground floor while competition is at a minimum in the space. The tablet version will offer enhanced UI’s for all of the games offered on the handset version, as well as additional games that would benefit from larger screen real estate such as Craps.

What is my minimum viable product? To be a casino application, I need to create a casino game. Once the first game is finished, I can potentially release the game, have others test it and collect feedback. By being modular, I can continue to add games over time and offer a more complete casino experience. What should I start with? Slots. Slots generate the most revenue for casinos, so naturally that means they are highly popular and people spend a large amount of time playing them. A slot machine seems easy enough. Three wheels, some pretty pictures and score keeping. How will I build it? Well, android offers a gallery view to horizontally scroll images. I can just turn it vertically and automate the spinning, right? Wrong. Gallery view cannot be made to scroll vertically. After searching StackOverflow and Google Code, I came across Android-wheel. This was perfect for my application! It drastically cut down on development time; I thought I would spend the next 2 days developing a custom vertical wheel. Next was to build in the win logic and betting. This was all pretty straight forward.

home screen of casino kingdom slot machine of casino kingdom

I then built a trophy system in order to keep record of major achievements in the game. Each game will have a couple of trophies that can be won for various outcomes. The slot machine has a couple of trophies that are awarded for hitting certain jackpots. There are also game-wide trophies that can be awarded for things such as reaching certain chip counts. The trophy room can be accessed through the main screen of the game to view all trophies.

The next step will be creating a wheel-of-fortune style bonus game for the slot machine. I can then use the code for the wheel to create a Roulette wheel and begin developing the Roulette game. Additionally, I will be working on a 5-reel poker slot machine, building off of the existing slot machine code.

Tweet Urls Plugin

This plugin is for Buddypress installations. It will create tweet buttons on each post in an activity stream. The plugin uses YOURLS url shortener to create links using your own custom Url shortener service.

See ChristConnect for a live example. It uses its own custom service, Note Aug 19 2012: is broken, links no longer work, will re-build the example soon.

Currently, this plugin offers shortening with a YOURLS shortener. Future versions will allow other common shorteners such as, Tinyurl, etc. The plugin has been tested up to WordPress 3.1 and BuddyPress 1.2.8

Current version 0.1

View plugin on

Download the Tweet Urls plugin

Newer Posts

Tom Harrigan

Director of WordPress Platform Services at Alley Interactive

Follow @TomHarrigan

Subscribe to Blog via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.