Multiple Featured Images on the WordPress Repository

In September of last year I spent some time building a small utility plugin that allows for the registration and use of arbitrary image pickers for any WordPress content type. Since then, the plugin has been sitting on Github because I’ve been too lazy to get it into the repository.

That changed today! I submitted a request for inclusion and just deployed MFI Reloaded to the WP.org repository. I’m hoping that more people will use the plugin now that it is in a place that more WordPress developers go to look for things. It is really handy for custom site builds, especially for image heavy sites.

Goals for 2014

I should have posted these at the beginning of the year but I didn’t even have time to think about them until last week. Here’s a list of things I’m trying to accomplish this year (in and around my business).

Gross a Large Amount of Money

It is always nice to have a number to shoot for so I picked a big round one that I know is achievable but I’ll need to push myself to hit. Between my contract work and other sources, I expect to reach this number, assuming my projects go smoother this year than last.

$200 per Month from Affiliate / Niche Site (by end of year)

BoostWP, a business that I recently launched with my former client and now partner Chris, provides high quality products for people using WordPress as a marketing tool. I figure it is probably a good idea to actually use the products I build so that I can become intimately familiar with the challenges that our customers will face.

What better way to do that than to dogfood the products I’m building and use them to their intended ends? I essentially know nothing about internet marketing so I’m hoping $200 per month isn’t a crazy goal. I guess we’ll see!

Generate 25% of Revenue from Product / Subscription Sales

Did I mention that BoostWP launched recently? I really believe in its potential and am setting the bar high in terms of calling it a success. By the end of the year I want to be generating at least a quarter of my income from non-hourly work (e.g. product or subscription sales) and I expect BoostWP to make that a possibility. There might be other products (keep reading this post for more info) but BoostWP is where it’s at.

Write 90 Blog Posts

Did you notice that I’ve been writing a lot more recently? I did 30 days of writing back in September of last year but since then I’ve written almost nothing on this blog. I’m aiming to change that for two reasons. One, I love writing (especially teaching through writing). It is a good release for me and allows me to express myself in a way that I normally don’t get to. Second, I want to continue to build a voice (as was my intention with the 30 days of writing mentioned previously).

I plan to publish 90 posts this year. I’m not sure what they’re going to be about or how long they’re going to be, but I’m hoping you’ll read at least some of them.

Write Another Book

I wrote a book in 2010 and I didn’t have the best experience. When I finished the book (with the help of a co-author), I was proud of the fact that a published piece bore my name, but I wasn’t proud of the contents. It was out of date as soon as it hit the market and I hated that. On top of all that, I made almost $0 from the book considering all the time I invested in it. It has been a good marketing tool for years, but it’s time to write another one.

This year I’m going to self-publish a book. I’ve been watching as a lot of people I follow and respect have released pieces covering topics that reflect their expertise. I firmly believe I can do the same. I’ll talk more about this in upcoming posts, but I’ve written an outline that I believe will lead to the proper amount of content and will deliver a large amount of value to both businesses and individuals.

These are my business goals for 2014. I’d love to hear yours if you’re willing to share in the comments or on your blog!

Simple Dribbble Shot Embed Plugin

I was sitting around today thinking about some parts of WordPress that I hadn’t got a chance to play with and I realized that I’d never touched the embedding framework built into core. Most people think of the embed framework in terms of the ability to immediately include oEmbed enabled resources into WordPress. oEmbed enabled resources include things like YouTube videos and Instagram media. If you’ve never taken a look at it, the oEmbed framework is neatly tucked into its own class which is really easy to read through.

Unfortunately, the resource I wanted to embed doesn’t conform to the oEmbed spec, so I was left with the manual method. Again, WordPress has a special class for dealing with these types of scenarios. Once I read through that class, I knew exactly how to do what I wanted.

I’m a big fan of the Dribbble API. It covers all of the main functionality of the website (at least in terms of data exposure) and is ridiculously clean in terms of resource representation. I thought it would be neat if a user could embed a Dribbble shot into a post or page (or any piece of content, really) just by copying and pasting the URL to that shot. I can think of several scenarios where this might be useful, including project profiles, discussions of WIP, or examination of design trends (colors, shapes, textures, etc.).

So that’s what I built. All told, it took me about twenty minutes to find the hooks I needed in WordPress and build the very small plugin that provided the functionality I desired. The plugin includes some basic caching so that the Dribbble API isn’t hit every time content is viewed. You can see the finished Dribbble Shot Embed plugin on GitHub.

If you’re interested in me developing this idea further, I’d love to hear from you. Alternatively, let me know if you use this as a starting point to develop your own WordPress embed system plugin. I think it is a good base and should be easy to build upon.

Blogging for Beginners

In 2006 I moved to Louisville to intern at General Electric’s appliance division. I didn’t like it that much and I was really lonely and bored most of the time. To combat this, I started a blog named Abandon Nest that was all about living on your own for the first time. I found a long lost backup of the site a few days ago and am still sorting through all the content, trying to figure out what to do with it.

For me, that blog was the start of my career as a web developer. It ran on WordPress 2.0.4 and I wanted to modify it so I bought a book about PHP and taught myself how to do things with it. I thought it was so interesting that I decided to switch majors when I got back to school, going from Mechanical Engineering to Computer Science.

But that’s not what this is about. The second thing that blog got me to do was interact with other people around me. In fact, I was so confident after blogging for all of three months, that I decided that I’d go give a presentation at the library about blogging for beginners. I found that presentation and thought I’d share it.

To me, it is amazing how relevant almost everything I presented on 8 years ago is. Some of the tools have changed and some businesses have failed, but the main messages are all the same as the ones you’d hear about blogging today.

So, if you’re interested, I’d like you to take a look at Blogging for Beginners and let me know what you think. I think that I need to follow some of the advice proffered by my 2006 self, but that’s just me.

Multiple Rich Editors in the Plugin Repository

The WordPress plugin that I built last week has been added to the official repository.

I’m fairly happy with this plugin. It solves a small problem in a way that makes sense. It is well documented (for the most part) and should prove useful to other developers. It serves a need that I know exists (because someone asked a question) and shouldn’t need to change much in the future.

If you decide to use Multiple Rich Editors, please let me know. I’m interested in the various uses that people come up with.

Using Computers to Create

I am enamored by the state of technology in 2014. I look around and see the computing power that permeates society and it blows me away. It seems like everyone has a smartphone or tablet that they can use to message someone on the other side of the planet, watch an awesome video of a baby and dachshunds, or just chill out and read their subreddit of choice. It is easier to communicate with others and consume content than ever before.

What I really love about all this computing power, though, is the freedom it gives for everyone to create. The democratization of powerful technology in the developed world has made it possible for almost everyone to be a photographer, videographer, or writer. We can share our creations and get feedback from our peers in no time at all.

When I look back to my childhood, some of my fondest memories are creating things on my computer and sharing them with the world. One instance in particular really stands out to me.

In middle school and early high school I was obsessed with a game called Empire Earth. This was the first game I ever played online and I would sneak up to our family computer to play it late at night with friends.

Eventually, I noticed that there was a scenario editor option in the menu and clicked on it. After that, my entire worldview about what you could do with a computer changed. I spent hours and hours building scenarios and teaching myself the tips and tricks of the editor. In a way, this was my first real introduction to programming (even though I didn’t think of it as such).

Eventually, I released my scenarios for Empire Earth and got some really positive feedback (the web was a much more positive place in 2002-2003). I eventually lost interest in favor of being a football player, but those experiences continue to stick with me. In fact, I still have the scenarios that I created:

Going forward, I hope to continue to create and I invite all content consumers to use the technology at their fingertips to put their mark on the world. Write, draw, photograph, record, or whatever else you can think of and share it with the world. Be a creator, not just a consumer, and you’ll feel more fulfilled. And maybe, just maybe, 10 years from now you’ll look back with pride at what you created and the paths it led you down.

Recent Open Source Work

I recently did some work on two open source plugins that I’d like to talk a little bit about. They’re very different, both in function and purpose, and I think that disparity gives a good glimpse into the variety of work I do in my professional life.

WP ConvertKit

If you haven’t heard of Nathan Barry by now, you should probably click on his name and go read a little bit about him. Nathan seems to really have it together, starting and growing a product business based on the concept that teaching sells. I spent a few days last year reading through his blog and bought one of his books, Authority, because I thought it was a great product.

Anyways, Nathan runs a SaaS called ConvertKit. It’s an interesting product because it recommends and guides you through a particular workflow that Nathan believes (and has somewhat proven) helps you sell digital products. I saw that there was an existing WordPress plugin for the service, but it was lacking in a few ways. Implementation details aside, I felt like there was a better solution and more “WordPress”-y way to solve the problems the plugin presented. Also, I felt like I learned so much from Nathan’s blog, it would probably be a good thing to give a little back. I took the opportunity to write a new plugin for ConvertKit, put the code on GitHub, and emailed Nathan about it.

A few months later (he’s a busy guy, so I didn’t mind) I got an email asking if the plugin I wrote could be the canonical plugin for ConvertKit and wondering if I’d add a few features. I added them and finalized the plugin a few weeks ago. I’ve heard from Nathan that it has worked pretty well so I’m happy about that. It is always nice to know that people are using the things you built.

Anyways, the final version of the plugin lives here and you can go grab it if you want to either take a look at the code or use ConvertKit and want to integrate it more easily into your WordPress site.

Multiple Rich Editors

Erik Ford, who seems to inspire open source work and blog posts on my part, posted a question on Twitter regarding the best way to add multiple editors to a custom post type:

I hate the thought of bundling or requiring a third-party plugin with your theme, especially if it includes a lot of functionality that you probably don’t need. Advanced Custom Fields is a great plugin for a lot of people, but if you’re just looking to add some WYSIWYG editors, there’s no reason to use it. I told Erik I’d look into it and get him some sample code.

The next day I worked up about 25 lines of code that you could throw into a file and you’d add an editor and save its contents for a custom post type. It was short and sweet, but it didn’t really fit with the style that I tend to build things in. Taking a cue from a previous plugin that I developed and blogged about here, I decided to make use of the theme support API that WordPress provides to allow quick and easy implementation of multiple content editors on any registered post type.

The result was a plugin I call Multiple Rich Editors. It allows a developer to specify and multiple editors per post type that should appear on the edit screen. It handles saving the data for each editor and provides template tags and guidance for outputting the information the user has entered. On top of all that, it is simple enough that Erik can drop it into his theme and save the effort of building something himself.

There are a lot of different use cases for a plugin like this. Perhaps a content type requires different sections of rich content (intro, body, conclusion, perhaps?) or you have a complex layout where a user of your theme needs a fine-grained level of control over what appears where. Regardless, if you stumble upon this and end up using the plugin I’d love to hear what you like and what you don’t and how I can make it better.

Review: Appillionaires by Chris Stevens

I recently finished reading Appillionaires by Chris Stevens. I picked the book up at the library while browsing and I’m glad I did.

From the title, I was a little worried that the book was going to veer straight into “guru” territory. In my mind, Appillionaires evokes a strong emotional reaction that aligns with the perception that a lot of people have of developers in the mobile device age. I was concerned that the book was going to minimize the effort that the top mobile developers put into their successful products and make it seem like anyone can strike it rich on the app store.

My initial impressions couldn’t have been more wrong. This is one book that really can’t be judged by its cover.

Appillionaires starts by telling the story of the Apple app store, and software in general. It explains the democratization of software sales and goes into detail about how Apple acts as publisher for small independent developers, allowing them to reach the widest possible audience. If you’re familiar with the app store as a sales platform, you can probably skip the opening chapter and not miss anything.

I was a little surprised that there wasn’t a larger discussion surrounding the 30% cut that Apple takes on all app sales. The book stresses the $99 fee that registered developers are required to pay to submit and distribute their apps but only covers the publishing fee (which is essentially what that cut is) very briefly. Honestly, I think this publishing fee is an important part of the equation for those looking to make money on the app store and would have liked to see some more commentary about it.

After the overview, the book features several highly successful developers, one developer/team per chapter, and describes the apps they produced, what led them to build the app, and the effect the app’s success has had on their lives. Also covered in each chapter is some background on the developers and information about their past experience and future plans.

I love reading success stories, so I really enjoyed the content contained in these chapters. I liked learning about the people behind some of the most popular iOS apps and the effect their success has had on them and their family. That being said, every chapter basically boiled down to three points:

  • You should have prior skill in management or development before trying to make apps
  • You need to really have a passion about what you’re working on because building a hit app is more like playing a slightly stacked lottery than anything else
  • You are going to work really hard on something to make sure it is awesome, and even then you might not have the success you were hoping for

I don’t think these are bad points to make. Anyone recommending hard work as a method for success is perfectly OK in my book. Still, it left me wanting more. I feel like there must be other stories to be told. The book concentrated on small teams who build (almost exclusively) games. Are there developers who are living off of other types of apps? Are there non-developers having success with outsourcing their ideas (reliably)? I would have liked to read those stories.

After the success stories, the book briefly covered the gold rush mentality that has started to affect the app store ecosystem. Huge venture capital investments, trust fund kids who want to build apps, people pitching developers ideas at parties, huge publishers (EA, Activision, etc) entering the market, and downward price pressure based on consumer expectation – each of these things got a small section. I didn’t find this latter content as valuable as the rest of the book because I don’t think there are a lot of lessons to be learned.

I really liked Appillionaires and would recommend it if you’re looking for some inspiration. I didn’t really learn anything new, but I enjoyed reading the success stories the book contains. I wish there were more varied examples of successful developers, but what is there is pretty great. That being said, I didn’t find the beginning or end of the book very valuable – there just wasn’t a lot of insight or noteworthy content.

Affirmation

Take a look at the following picture:

These are my personal affirmations.

These are my personal affirmations.

That sign hangs above my desk and is one of the first things I see every morning when I sit down to work. I don’t always need it, but I’m glad I have it there when I do.

What you see on the sign are affirmations. They are reminders to myself for when I start to lose confidence in my abilities or am just having an unproductive day. When those times arrive (and if you’re freelancing they almost certainly will) it is hard to think of reasons to value myself and my work. That’s why I wrote them down ahead of time.

When I read the sign to myself and force myself to smile for at least 15 seconds, something magical happens. My confidence is restored, my productivity increases, and I can’t help but want to live up to what I have on my wall.

I had always been skeptical of the power of positive thinking. I thought it was just another hokey piece of self-help bullshit. I was wrong. Being positive and forcing myself to smile works.

I encourage everyone who reads this to try something similar. Write down some good things about yourself and put them where they’ll be in easy reach when you need them. Use them and see how your mood improves and the positive effect affirmations have on your mental well-being.

30 Days of Writing – Following Up

September comes to a close today and, with it, my 30 days of writing experiment ends. I think now is as good a time as any to take a look back and see how my experiment unfolded.

How Much Did I Write?

In the last 30 days I’ve published 23 posts on this site. Prior to that, I’d published 5 total starting in February of this year. I also published 4 posts on my wife and my family site. Including this retrospective post, I’ll have published 28 posts in 30 days (a little under 1 per day) which is close to my goal.

Some of the posts were longer than others, but I think everything I published is useful in some way to a potential visitor. I don’t know exactly how many words I wrote in the last month because the variance in word count between posts was so high. I had some posts as short as 300 words and some as long as 2,500 words.

What Did I Write About?

Sticking with my original idea for this experiment, most of my posts were business / freelance related. I did write a few technical posts, but the ratio of business to technical posts was almost 4:1.

I found myself writing about my experiences and how I handle different situations more than anything else. I wrote in the first person most of the time while trying to relay a general lesson from what I’ve learned in the past. I’m not sure if I’m comfortable with this style of writing, but I like it better than attempting to address a general “you” when publishing content.

There were some posts in the past 30 days that I am really proud to have written. I think they provide a lot of value to other or I got a lot of personal satisfaction out of sharing the information. Here’s my top five:

  1. My Freelance Story – I love sharing my experiences and I think my story shows that anyone, even those with limited experience, can be successful with a little bit of hard work and luck
  2. Path to Freelance Success: Part 1 and Part 2 – When I presented this to the team I was working with in Sayulita, I knew I’d eventually want to share it with others and I’m glad I finally did
  3. Easy Freelance Financials – It took me a while to figure out how to approach money and my freelance business and I think this post (along with the accompanying Excel Workbook) will help people who are struggling like I was
  4. How to Write a Bug Report – I feel like this post is one that I can put in front of my clients (and others can use as a reference) in order to improve my relationships and business practices
  5. Building the Multiple Featured Images Plugin – I think this is some of the best technical writing I’ve ever done as I took a small enough problem that I could walk through it step by step without skipping much

There were some posts that I wasn’t happy with as I felt I could have gone a lot deeper and provided a bit more guidance. Of the posts I wrote in the last 30 days, I feel like Google AdWords for Freelancers is the one that could have been improved the most by diving deeper into the subject. Perhaps I’ll follow up in the future with some real life examples and a video walkthrough.

Did I Accomplish What I Wanted?

As a reminder, there were three main reasons I did this experiment:

  1. Develop a public voice
  2. Teach others from my experiences
  3. Build a public profile

I feel pretty strongly that I made big strides forward with numbers 1 and 2. I feel more comfortable writing and publishing now than I did before the experiment. I feel like I have a more coherent writing style and have started to develop a public writing voice.

On the second point, I know I helped at least one person because he said so. I can’t really express how grateful I was for that comment because it really buoyed my spirits as I was nearing the end of the experiment.

I’m not sure if I improved my public profile as much as I could have. I didn’t really promote my posts beyond tweeting them to my followers and posting them on Facebook. My social networks are relatively small (especially for someone in tech) so the exposure my content got was pretty minimal. At this point, I’m OK with that and have ideas about how to improve in the future.

What Did I Learn?

Most importantly, I learned that I can still write. I was worried that my prose would be incoherent and schizophrenic because I spend so much time communicating in chunks with my clients rather than writing long form text. That wasn’t the case and I was relieved.

I also found that writing every day is hard, especially when you’re trying to teach or be insightful in some way. There’s multiple steps to the process. First, I have to have a good idea for something to write about and the knowledge to share a meaningful lesson. Then, I write an outline for the post. At this point, I evaluate whether the topic was something I could do justice to in one day. If I can, I move forward on the post. If not, I take a step back and think of something else. Finally, I write, read, edit, read, edit, read, and (finally) publish the post.

I spent a lot more time writing than I expected to. I thought I’d be spending 30-45 minutes on each post. While that was true for a lot of them, some posts took as long as 3-4 hours. I found it hard to gauge which posts would take that much time. Sometimes I’d be in the flow and write a long post with minimal effort and sometimes I’d have to fight to say what I knew I wanted to say.

Finally, I learned that I love writing and teaching and helping people even more than I thought I did. Every day when I published a post, I felt accomplished and really felt like I had done something meaningful. It is and will continue to be a great way to raise my spirits.

What Now?

I’ll still be posting on this blog. My goal for the rest of the year is to write 2 meaningful posts per week on this site. I will most likely be publishing on Tuesday and Friday.

In addition, I’ve started working on an outline and promotional materials for an ebook I’m going to be writing on a subject I’m an expert in. Most of my writing time will be focused on the ebook for the next couple of months as I work to bring my joy of teaching to another arena (and hopefully make a little money doing so).

Finally, I’m going to look for other things that I can commit to spending 30 days doing. I’ve found that the consistent practice, especially on days where I didn’t think I’d have time, has made me a better writer. I’m sure there are a lot of other things I can apply this model to and I’ll be working to discover what’s next.

If you’re interested in producing content and establishing a writing voice, I urge you to take on this challenge yourself. As always, I’m happy to answer any questions in the comments and I always love feedback and criticism.