WordPress’ announcement of the dashboard redesign inspired me to overhaul the way icons are done in SuperCPT (note: this addition will come in version 0.2, but you can use it now by cloning it from GitHub). After doing so, I realized I could easily parse the icon piece out as its own plugin! Enter Post Type Icons.
Post Type Icons is a radically simple plugin that gives you 361 wonderful icons courtesy of Font Awesome. The icons are font-based, so they’re vector in nature and look amazing no matter your screen’s DPI. Now your custom post types can have custom icons that look just like the core icons in every state (previously, it was difficult to get the hover/active state working quite right). This will be in the WordPress Plugin Repository as soon as it’s approved!
Netflix introduced some brilliant easter eggs for Arrested Development fans in preparation of Season 4. Here’s what I’ve found:
- Homeless Dad
- Love, Indubitably
- Blue handprints on searches that involve the word “blue”
- Bananas instead of stars on Arrested Development rating in instant queue (props to Scott Nellé for pointing this one out)
- Les Cousins Dangereux
- Girls with Low Self Esteem
- Girls with Low Self Esteem: Newport Beach
- Families with Low Self Esteem
- Franklin Comes Alive
- World’s Worst Drivers
- Caged Wisdom
- El Amor Prohibido
- Mock Trial with J. Reinhold
- Ready, Aim, … Marry Me!
This is an impressive list, nice work Netflix! I probably enjoyed seeing El Amor Prohibido the most, they reached deep for that one. I know I watch too much AD, and as a result, here is a list of titles I was greedily disappointed were absent:
- New Warden
- The Ocean Walker
- Mr. Bananagrabber
- Use Your Allusion
- A Thoroughly Polite Dustup
- Boys Will Be Boys: Boyfights 2
- A Boyfights Cookout
- Backseat Boyfights: The Trip To Uncle Jack’s 70th
- Los Mas Buscados de Mexico
I recently launched a new plugin on the WordPress plugin repository: SuperCPT. SuperCPT is a WordPress Plugin to help developers build insanely easy and attractive custom post types, custom post meta boxes and fields, and custom taxonomies. Install it from the WordPress.org Plugin Repository.
Thanks to everyone who attended my talk at WordCamp Providence! Here is a screencast which mirrors my presentation as well as some notes and links:
LAMP Stack on CentOS for WordPress:
yum install httpd httpd-devel
yum install mysql mysql-server mysql-devel
> UPDATE mysql.user SET Password=PASSWORD('################') WHERE user='root';
> CREATE DATABASE wordcamp;
> GRANT ALL PRIVILEGES ON wordcamp.* TO wcuser@"localhost" IDENTIFIED BY '##########';
> FLUSH PRIVILEGES;
yum install php php-mysql php-common php-gd php-mbstring php-devel php-xml
yum install git mod_ssl
/sbin/chkconfig httpd on
/sbin/chkconfig mysqld on
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Install WordPress in the current directory:
curl http://wordpress.org/latest.tar.gz | tar -xz && mv wordpress/* . && rm -rf wordpress
Useful Links (mentioned in the screencast or presentation):
I put together a ref-based deployment script to accompany this talk. Check it out on GitHub.
My dog Boomer, a 4-year-old Australian Shepherd, has a funny parlor trick: he sings happy birthday. One day, when we were singing it for someone’s birthday, he just started singing along. It’s the darnedest thing, and he only does it with Happy Birthday. Pretty quirky. Anyway, here he is singing to one of my best friends for his 30th birthday.
Photo credit: Wikipedia
At Union Street Media, we have a support ticketing system that uses ticket IDs of the form ABC-123456. That gives a total range of 17,576,000,000 possible ticket values, roughly (I’m sure they removed some dirty words from the three-letter combo). Today, we had a ticket ID collision (where a new ticket has the same ID as an old one) and I thought, “wow, what are the odds of that happening?” Well, it struck a chord in me so I decided I’d figure out exactly what the odds were!
Essentially, this is the birthday problem on a much bigger scale. We have about 26,000 tickets in our system. Here’s the math:
The result? At 26,000 tickets, there’s about 2% chance of a collision. Those odds may be low, but they are considerably higher than I was expecting!
The take-away here is that as a software developer, you need to know that you can’t depend on variability to prevent collision. Kayako should have been checking to see if a ticket ID exists in the database before assigning it to a new ticket*. I’m sure there are people using their software who have many more tickets in their system than we do. At 157,000 tickets, there’s a greater chance of having a collision than not having a collision.
*To be fair, we’re using an old version of Kayako’s software. I would expect that they’ve since fixed this bug.
Update: Here’s a great article about the birthday paradox in the NY Times
“Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.”
– John F Woods
via IAmA 74-time Jeopardy! champion, Ken Jennings. I will not be answering in the form of a question. : IAmA.