Quantcast
Channel: Justin Tadlock
Viewing all 153 articles
Browse latest View live

Misconceptions about the Hybrid Core framework

$
0
0

Yesterday, WPMU DEV published an article on WordPress theme frameworks, calling it the ultimate guide to choosing one. I was happy to find that my own Hybrid Core Framework was listed among some great projects. It even garnered some nice scores in the rankings (overall score of 4/5 stars).

It’s always nice to see that others appreciate and recognize your hard work. It’s also tough to do full and thorough reviews with comparisons. This post isn’t about knocking the work that Rachel McCollin (the author) put into the post. I know it’s hard to get everything right.

However, there were a number of errors that I wanted to correct about Hybrid Core and frameworks in general. Because I can’t comment on the article without a social network login or signing up for their site, I decided to write an article myself. My hope is that this will be beneficial to anyone looking to use Hybrid Core in the future.

What is a theme framework?

This is my gripe with not just this particular article but many that I see around the Web. As defined in the WPMU DEV article, frameworks are:

Frameworks are designed to work as parent themes, which means that when using one to build a site, you’d normally use a child theme.

Well, this is not exactly correct. It’s actually the third (in a list of three) definition of frameworks on the official WordPress Codex page on theme frameworks.

Hybrid Core doesn’t fit into this category at all. It’s under the first definition of theme framework:

A “drop-in” code library that is used to facilitate development of a Theme.

The WPMU DEV article seems to disagree with this definition. Its article goes on to say that this isn’t a framework yet added Hybrid Core, a drop-in framework, to its list (see the section on “Code Libraries”).

Hybrid Core was designed specifically to drop into any theme. It also facilitates the use of child themes. However, it is not a theme in and of itself. If you’re interested in finding out more on this particular subject, I recommend reading my article on frameworks.

It’s “Hybrid Core”

While we often use the term “Hybrid” to refer to the framework at my site in general discussion, its name is actually “Hybrid Core”. That’s just a little pet-peeve of mine.

Dashboard vs. Admin

The article mentions “dashboard” many times. However, the correct term for what was written is “admin”. The dashboard is but one screen in the entire WordPress admin.

This is an important distinction. Any theme, plugin, or framework can have dashboard options and/or other options and so on throughout the admin. Generally speaking, most WordPress themes and theme frameworks shouldn’t have anything in the dashboard. It usually doesn’t make sense to do so. Most of the time, such things would be plugin territory.

Mostly, I want to clear up the terms “dashboard” and “admin” because I’ll be writing about those below.

Library of child themes

In the “good” column for Hybrid Core, the author listed “Growing library of free child themes (33 at time of writing)” as a positive for the framework. It’s great that I got some positive points there, but it’s also completely incorrect. There is no such thing as a child theme for Hybrid Core. It’s not a theme. Therefore, it cannot have child themes.

Theme Hybrid (my site) does have a number of [parent] themes built with the Hybrid Core framework. Some of those themes also have children. However, there are many more themes out there in the wild built with Hybrid Core on such sites as DevPress, ThemeForest, WordPress.org Themes, and many others.

Limited admin options

The article describes Hybrid Core as having “Limited dashboard [sic] options”. I suppose that could be true, depending on how you look at it. Out of the box, with no features enabled, it has zero admin options.

However, Hybrid Core is a modular framework. Only the options enabled by the theme developer will be used. Depending on which options are available, there are a number of admin options that may be used by the eventual theme user. Some of these options are theme layouts (global and per-post), per-post templates, and per-post stylesheets. If you’re a theme author, those three options almost open up limitless possibilities for building themes, particularly when you have sites with dynamic designs that change depending on what page you’re on.

It’s also worth noting that Hybrid Core has a wrapper for the WordPress Settings API. This is so developers can more quickly add theme options if they wish to do so. I do discourage this though and try to push theme authors into building things with WordPress’ built-in customizer. Hybrid Core also has some extra developer-friendly classes for working with the customizer.

Large number of template files and includes

One of the other cons listed in the article is “Large number of template files and includes – can take time to get to grips with”. While there are a number of includes, there are absolutely no template files in Hybrid Core.

Zero. None. Zilch.

Again, Hybrid Core is not a theme. It does not have template files. I’m also not sure why this was listed as a negative for Hybrid Core. It actually has far fewer files than some of the other frameworks.

For non-coders

Hybrid Core was given 3/5 stars in the rating “for non-coders”. That is extremely generous. I would’ve given it 0/5 stars, and I’m the framework author.

Hybrid Core in the hands of a non-coder is not such a good idea. It’s a framework. By that very definition, it is meant for programmers, not users. There’d be no reason ever for a user to be messing around with it.

Like I mentioned earlier, there are many themes built with Hybrid Core. Those themes are built for non-coders. The framework? Not so much.

</rant>

I was mostly just having a little fun and trying to clear up a few things at the same time. Many of these things are common errors found in many articles on the subject, so it does get a little frustrating at times when I’m reading through them.

Thanks to Rachel for listing Hybrid Core in her article and giving it high marks.

The post Misconceptions about the Hybrid Core framework appeared first on Justin Tadlock.


The most awesomesauce WordPress theme business

$
0
0

I know what you’re thinking. OMG, not another long, boring list of “influential” people made by a theme author, wagging it while patting some buddies on the back.

I’m not going to do that. Those lists are not unique, having little more to offer that the guy who wrote the same post last week.

Really. I wouldn’t try to deceive you.

This post is about theme businesses that are awesomesauce. And, I’m going to narrow it down to a list of one.

So, what is this single theme business that is more awesomesauce than all the other theme businesses?

Theme Hybrid

Screenshot of ThemeHybrid.com themes page

What makes Theme Hybrid such a badass theme business?

Because I said so. Boom!

Really, it’s because we have a vibrant community of users and developers, standards-based philosophy, focus on education, and cool shit. Theme Hybrid also happens to be one of the oldest- and longest-running theme businesses around. Also, there’s plugins and themes; both are 100% $free to download.

The post The most awesomesauce WordPress theme business appeared first on Justin Tadlock.

Developer in a toy shop

$
0
0

I’m always excited when WordPress adds a new feature. The first thing I do is try to extend it in some way to do something even more awesome. It doesn’t even matter if I have a particular need for the feature. I’m like a kid in a toy shop, playing around with all the new stuff. I’ve always assumed other devs were the same way, but it has been made clear to me that’s not always the case.

The post Developer in a toy shop appeared first on Justin Tadlock.

The theme review team’s content creation discussion

$
0
0

The WordPress.org theme review team (TRT) has been in the WP news a lot lately, right?

Despite various tall tales, urban legends, personal attacks, and flavorful language being bandied about, we’re all a group of regular ol’, standard-built humans trying to make sure WordPress users have really awesome stuff. Some of us have different model numbers and come with our own set of flaws, but that’s OK. We all have the same goal in mind.

Unfortunately, there’s been a lot of misinformation and even some disinformation going around. I’m not going to beat dead horses. However, I do want to attempt to explain what’s happening with the current “content creation” situation. Maybe I can clear up some things before comment sections on certain blog posts start claiming we formed a secret organization to assassinate JFK.

What is content creation?

This is something I’ve written about before, such as in my Why custom post types belong in plugins post. In that post, I go on to list a few items that we don’t allow in themes hosted on the WordPress.org theme repository.

Here’s a list of things not allowed:

  • Custom post types.
  • Custom taxonomies.
  • Non-presentational post metadata.
  • Database tables.
  • Shortcodes.
  • Custom comment types.

These are what we call the clear-cut cases. In fact, the automated checker won’t even allow themes to be submitted if it has some of those. These are not the things that we’re discussing. What we’re actually discussing are some gray areas, which I’ll get to in a moment.

Why are you “cracking down” on this now?

We’re actually not cracking down on anything. This is not a witch hunt or anything of that nature. We’re neither hunting down popular themes with upsell versions nor plotting world domination. None of us have the time for that sort of thing anyway.

When we spot issues, we attempt to correct those issues and work with theme authors to bring their themes into compliance. We deal with these things on a case-by-case basis because each issue is unique and needs a specific path forward.

When we have confusion, we attempt to discuss and clarify items so that there’s no confusion, or at least less confusion. The guidelines are a bit of a living document, one that must be refreshed from time to time with the blood of developers and reviewers.

That’s what this whole content creation discussion is about. The content creation guideline isn’t being consistently applied by reviewers. Therefore, in the next team meeting we are going to deal with this inconsistency.

The gray areas

Where the team of 100+ humans have been inconsistent is in dealing with gray areas. This inconsistency isn’t fair to theme authors because different reviewers are applying a particular guideline in wildly different ways. It makes sense that we bring some clarity to the situation.

To help understand the discussion a bit more, I’ll leave you with some examples of the types of things we’ll be clarifying. This won’t be an exhaustive list of examples. It’s merely a list to help explain what all this stuff is about.

Example #1: Footer text

Imagine a theme had an editable <textarea> in the theme options to allow you to alter what’s shown in the footer. Is it content? Can it be better handled by something like a text widget?

Personally, I believe this one is pretty easy to figure out. It’s a theme-specific setting that theme users won’t care about when they switch to a different theme in the future. I consider this part of basic theme setup and would say it does not fall under content creation.

Example #2: Portfolio projects

Now, imagine a theme that allows you to create portfolio projects via theme options (or widgets). Remember, we don’t allow a portfolio project post type and consider such a thing plugin territory (one of those clear-cut cases). This isn’t technically a post type. Otherwise, it would’ve never made it past the automatic scan prior to submission. It’s a theme option, but it does the job of a post type.

First, the wp_options table really isn’t meant for this sort of long-form content. Also, in this case, users may want their portfolio projects around when they switch to a different theme. This seems to be a case of a custom post type disguised as a theme option.

Example #3: Profile widget

A profile widget might allow a user to upload an image and write a paragraph or two about themselves. There is a far better method of coding this to auto-pull in a user’s biographical info and avatar, saving them from having to copy/paste info many will have already provided.

However, because the “content” is generally so small, I really don’t care much whether themes are adding widgets like this. I just think there are better ways of coding it that are more portable across themes.

Example #4: Front page content sections

Imagine a theme that allowed you to configure your entire front page. Imagine if you could configure each section with newly-written content or maybe just certain sections.

When does a theme jump over into WordPress core and plugin domain? Where’s the line? Are a few text box sections OK? Is having to write an entire front page’s content via theme options the best way forward? What effect does this have on users?

This is at the heart of the discussion (i.e., not a current decision).

The post The theme review team’s content creation discussion appeared first on Justin Tadlock.

I’m open source too

Vision for the theme directory: Part 1

$
0
0

I’ve now been involved in some form or another with the theme review team at WordPress.org since late 2010. Some of that has been as an author, reviewer, and administrator. I’ve been a part of every aspect of the process. I’ve been frustrated as a theme author. I’ve been worried by code quality as a reviewer. I’ve spent numerous hours thinking about solutions as an admin.

I joined the team because I wanted to improve the process so that both other theme authors and I could get our themes out there without a lot of fuss.

What I found was that over the years, there are really a lot of people doing some sneaky things. There are a lot of security issues. And, many authors include code or assets that are not compatible with the GPL.

When you see that, you get in the mindset of assuming everything’s bad. Starting from that assumption is not always a good thing. Guilty until proven innocent. My vision of the theme directory is to come from a more optimistic viewpoint.

The ideas presented in this post are by no means all my own. They’ve been shaped and reshaped by users, theme authors, and reviewers over the years.

“That” feeling

There’s this slightly euphoric feeling when you first finish a theme. You’ve done the work and finally decided it’s time to share your work with the world. If you’re a theme or plugin author, you know what I’m talking about.

There’s a ticking clock on this feeling. If you’re not able to share your project within that window, you lose that small bit of joy of sharing your theme.

The theme review process has been killing that feeling for theme authors. When you wait for months for your theme to go live, all you’re left with is a meh feeling. There’s no more excitement about your theme. You’ve most likely already moved on to another project.

Meh

For first-time theme authors, this is even worse. Some of us have been there and done that, but for the new theme author, the process can be a huge stumbling block to someone who might become the Picasso of the theme world one day.

The theme review process

Over the past couple of years, it’s been painfully obvious that the manual review system (in its current state) simply cannot keep up with the high volume of themes.

As a reviewer, I know that many theme authors are not educated enough in a few areas:

  • Basic security, particularly with output escaping.
  • Licensing and understanding what’s compatible with the GPL.
  • Core WP functions or features that already exist.

The question has been about finding a balance. Security and licensing are definite blockers. I think everyone can agree that themes should be secure and that anything promoted on WordPress.org needs to be GPL or compatible. But, the other stuff is not so clear cut.

Should theme reviews require that theme authors use the core-bundled jQuery script? I know many plugin authors who certainly think so.

Should theme reviews require that the core WP the_content() is used in favor of some custom function to show post content? Again, it’d break numerous plugins if it didn’t.

Should reviews check that theme options actually work? I’m sure there are users who appreciate it.

That’s where a whole boatload of time is going. A lot of people are in favor of scaling back theme reviews to security and licensing. Then, allow users to up-/down-vote themes using the .ORG ratings system. It makes sense in many ways.

Long term, it may be the only way to make the process work without a fulltime, paid staff handling theme reviews.

I’m absolutely certain that this will break more plugins. I’m absolutely certain that it’ll increase .ORG support forum posts. But, if users truly use the ratings system, it could correct itself to some degree.

We can also continue building on the Theme Check plugin to block unwanted code. If we open the floodgates, it could have the benefit of us building the best code sniffs in existence.

Right now, it takes at least an hour to do a full check of some of the more basic themes. It can take several hours to check a poorly-coded theme. That’s not a good use of volunteer time. That time would be better spent improving the theme directory in other concrete ways.

Where do we go from here?

As a user, I appreciate that themes are checked for my benefit. However, I know how to give 1-star ratings.

As a theme author, I want to open things up. Check only security and licensing.

As a plugin author, I weep at the thought of all the themes that will break my plugins while relishing in the freedom that some theme authors have never known.

As a reviewer, I’m tired. We have too many reviewers who get burnt out trying to keep up with the load.

My official recommendation is for the WordPress.org theme review team is the following:

  • Only manually check security, licensing, and any other egregious issues.
  • Keep building on the guidelines because theme authors really need those.
  • Continue to iterate on the new Theme Check to catch the stuff we don’t want.
  • Give users the freedom to rate themes as good or bad.

Relying on Theme Check

We’re programmers. We write code.

It doesn’t make sense that we’re manually checking for code issues when there are tools available to automatically handle most of the load.

In order for us to make sure that themes are secure, it means making the “escaping” check an error-level notice. Basically, this means that anything Theme Check notes as an escaping issue will automatically block a theme from being submitted.

Previously, I was in favor of leaving this as a warning and manually verifying something as an issue. That puts work on the reviewer. Making it an error-level notice will put the responsibility back with the theme author, where it rightly belongs.

Even if we have false-positives, it means that theme authors will be forced to rethink how they write their code, which is mostly a good thing.

Building the guidelines

We should not do away with the guidelines. These should be the official recommendations of the team. They should also help us mold Theme Check so that it continues improving to catch the bad.

The guidelines should also be the basis for the entire handbook. The handbook should be filled with code examples of best practices.

Primarily, security and licensing guidelines should be front and center. Reviewers should manually check those. The rest are there for theme authors to follow on their own and for the team to build into Theme Check.

Side note: There’s also a scenario where theme authors might request a full “guideline review” to get a seal of approval or some sort of badge for their themes if we wanted to go that route.

Featured themes

Currently, featured themes on the WordPress theme directory are randomly chosen. This was done to make things fair. This is in large part due to some gaming of the system in the past.

I’m in favor of the admins and/or moderators of the theme directory making the decision about what themes appear in the featured themes list. This would be a curated list of themes that we think represent the best of the WordPress theme world.

No, this is not fair to everyone. I’m not arguing for fairness. I’m arguing for some of the brightest developers and designers in the WP community to hand-pick awesome themes that they notice coming through the system.

Right now, too many great themes get lost because they can’t get noticed. A big part of the team’s job should be making sure users can find these diamonds in the rough.

Trusting users to rate themes

Most of this comes down to users making liberal use of the ratings system. When they come across a theme breaking their plugins, they need to give bad ratings. When they come across a theme that works perfectly, they need to give a good rating.

The theme review team has spent much of its time protecting users from a lot of bad code and practices. But, we have to put a little responsibility into users’ hands too. In my experience, users are pretty quick to let you know about problems.

So, let’s give them the chance to do it.

If things will be bad, why do it?

I’ve outright stated that if the review team only checks for security and licensing issues, themes will absolutely break plugins. There’ll be many things that simply don’t work as they should.

Why in the world would I want that?

Because for every X number of bad themes, we’ll have a truly amazing theme that we might not get otherwise. If that’s 1 in every 100, it’s worth it to me.

I want us to open the process up and see what people can come up with.

Steps to achieve the vision

First, we need a solid Theme Check plugin that can find more security issues. That’s primarily a matter of getting the new sniffs finished.

Second, we need to complete the guidelines rewrite project. Even though reviewers wouldn’t manually check all of these, the guidelines should still be a guide to coding quality themes.

Then, it’s just a matter of pulling the trigger. Pick a date and make the switch to only reviewing the absolute essentials.

I’m ready. I know most theme authors would jump for joy at such a drastic change. Now, it’s just a matter of whether the team goes for it or can build upon this vision.

Thoughts on releasing 7 plugin updates in 7 days

$
0
0

When getting ready to push a plugin update to the world last Monday, little did I know what the week had in store for me. I had no plans of publishing seven updates over the course of a week. I thought I’d get two or three updates done before I burned myself out wading through old code.

By Wednesday, I was already on a roll. I’d gotten three updates done. Once I made it that far, I figured I might as well keep going.

I spent a not insignificant chunk of time this morning debating whether to continue the streak.

Why not go for 14 days? Or 30?

I have enough plugins to make this a month-long affair. At a certain point, I’d have to stop. One week was a good stopping point. Not to mention, I have some client work lined up that will interfere with me continuing on.

The perfect is the enemy of the good

I know it’s a cliché, but clichés are clichés for a reason — it’s because they are profoundly true.

I tend to be known in some circles as a perfectionist. At times, that’s not a bad habit to have. At other times, it means I spend too much time pursuing the impossible that would be better spent elsewhere.

When putting together seven plugin updates in a week, you don’t have time to be a perfectionist. You just have to be good.

It’s only code. If I screwed something up, I can fix it in the next update. There’s a such thing as a patch release for a reason.

I’m in my 14th year of building things on the Web. I’ll admit that I’m a bit nervous about every single release I’ve ever sent out to users. This includes first, major, minor, and patch releases. No one wants to be that developer who just pushed a fatal error on 1,000s of sites.

At a certain point, you simply have to pull the trigger on a release and stop second-guessing yourself.

Weekends are for play

I work every weekend. Mostly, this is answering emails and taking care of odds-and-ends. I try to leave the serious work for during the week.

For the most part, I try to keep my weekends to fun stuff or chores around the house and garden. Now that I’m in my 30s, I’ve gotten a little better at this. Weekends should be for relaxing and giving the brain some time to reboot.

There’s rarely anything so important that can’t wait until Monday.

Stick to a daily schedule

Last year, I decided to stick to a daily schedule for work. I keep an 8 a.m. - 4 p.m. work schedule with a flexible hour before and after work just in case I need it. Of course, I have a lunch break built in there too. At the end of the day, it’s good to unwind and do some non-work things that you enjoy.

It was challenging getting a plugin update out by the end of the workday. I went over a couple of days but not by too much. If I didn’t finish by the end of the workday, I told myself to simply stop my streak.

There’s rarely anything so important that can’t wait until tomorrow.

Find balance and avoid burnout

One of the reasons I do my best to stick to a schedule is because I’m an all-in type of person. When I’m doing something, I put all my time and energy into that one thing. The bad thing about that is that it becomes easy to get burnt out.

Ask me about my last endeavor to learn Spanish. I spent two weeks learning everything I could, devouring everything about the language. By then, I was tired of it and haven’t been consistent in my lessons since.

So, the guy who just spent a solid week updating seven WordPress plugins is going to tell me to avoid burnout?

The old me would’ve tried for the 30 days until about the third week before waking up in a haze, surrounded by empty Hot Pocket wrappers and Dr Pepper cans. Seven days was me putting the breaks on things.

Check out the plugin releases

Thanks for taking the time to read the post if you’ve gotten this far. Feel free to share your thoughts.

If you want to see what plugins I released last week, here are the announcement posts:

2018: The year of books

$
0
0

Every year, I make an entire list of things I’m planning to change in my life for the new year. Many times, I’ve completed my goals. However, over the past couple of years, I’ve struggled to finish many of them. Perhaps, it’s because I haven’t posted them here on the blog.

Ultimately, I’m only accountable to myself. However, making my goals public has always helped me stay on track. For 2018, I’m back to making my New Year’s resolution known to the world.

While I have several goals this year, I wanted to make a primary goal — one that I could track and keep updated here on the blog without getting overwhelmed.

100 books

This year’s primary goal is to read 100 books.

I love reading. I usually knock out 20 books or so every year, but that’s not much reading at all. I want to change that, and it’s simply about making a conscious effort to do better. There’s so many great books I’m missing out on because I’m not taking the time to read more of them.

I started reading Descendant (Princess of the Gods Book 1) yesterday to bring myself into the new year. It was a freebie, short, and something I could read on my phone. I thought it best not to kick the year off with something as long as War and Peace and set myself up for failure.

I’m not setting any limits on the kinds of books I’m going to read. I’ll do some fiction and non-fiction. I’ll read some young adult. I might even throw in a graphic novel or two. Other than cheap romance novels, I’m open to most anything.

Recommendations are welcome.

Hoping for a Kindle

Right now, I have two different Kindles on my Amazon Wish List. I’d like to get one at some point, but I have to wait until I save up a few dollars after Christmas and first-of-the-year taxes. Until then, I’m stuck reading on my phone or hard copies of books I already own but haven’t read yet.

The tech-geek in me really wants the Kindle Oasis but the practical side of me wants to stick with the Kindle Paperwhite.

Donating old books

This brings me to an add-on goal for “the year of books.” I have a fairly large collection of physical books at the moment. They are doing nothing more than gathering dust. I’ll never read most of them again.

What I’d like to do this year is find a place to donate these. They’ll do a lot more good for someone else than they will for me just sitting on a shelf.

Books are meant to be read.

Over the past few years I’ve focused on minimalism and getting rid of things that take up space at home. Getting a Kindle and getting rid of my physical books would help me push more toward that goal while passing on the gift of literature to someone else. Also, many of my books are available via Amazon’s Matchbook program where I can get the digital version for $2.99 or less if I really want to keep a copy for myself.

I’ll keep some of my physical books. Useful recipe and gardening books are essentials in my house and actually get used. I’ll keep some of the hardback classics and other books that have sentimental value attached to them. But, there are others that I have no good reason to keep.

At the moment, I’m thinking of donating them to my old high school, which had a sorely-lacking selection of books when I was there (not sure what it’s like now). I may also simply let friends and family pick the ones they want. I’m not sure yet. I’ll take some time to consider my options.


Bottled blackberry wine

$
0
0

Last year, I began the process of starting a blackberry wine. Just before Christmas, I was able to bottle it and give most of it away as gifts. Of course, I kept a bottle of it for myself. It got pretty good reviews for my second go at wine making.

I just wanted to share the final update for those of you who have followed this story from the beginning. Here’s a quick gallery of how everything turned out from start to finish.

When life gives you lemons...

$
0
0

You know, sometimes you just get tired of drinking all that lemonade.

August started out great.

It was the best month, financially, that I’ve had all year. I celebrated Theme Hybrid’s 10-year anniversary. And, I paid up all my hosting fees to keep the site going for its 11th year. I got ahead on insurance payments.

I launched the beta version of a new starter theme for WordPress.

Yes, the month was looking good.

Then, my car got a flat tire. The next day, I noticed Panther’s (one of my cats) left ear was swollen. After keeping an eye on it for a few days, it didn’t appear to get any better. He had a hematoma and had to go in for surgery to get it drained. He’s now under house arrest for two weeks. He refuses to wear the cone around his head and continually finds a way to pull it off.

Panther is also an outdoor pooper. He always has been. It’s one of his best qualities. The litter box just isn’t his thing. So, he’s having to learn how this works. He knows how to poop in the box, but he hasn’t gotten the hang of covering it up. He thinks standing outside the box and scratching the floor will get the job done.

He’s miserable. He’s usually the first out of the door in the mornings. I’m miserable too because I always work from the front porch while keeping an eye on the animals. I’m trying to stay inside and keep him company, but he’s not happy about it.

I know. Welcome to frickin’ adulthood.

Generally, I don’t let too many things bring me down. I’m the type of person who believes that anyone can get up and put a smile on their face in the mornings regardless of what’s going on in their life.

But, sometimes. Sometimes — you just need to complain about life and hope that someone will listen.

So, my dear reader, I hope that you will forgive me this once. I just needed to complain for a bit.

</rant>

2018-2019 network TV schedule

$
0
0
Old, vintage television on legs, set on a concrete floor.

It’s premiere night at my house tonight, which means it’s time to break out the pizza and soda.

With the season premieres of The Big Bang Theory, Young Sheldon, and Manifest, I thought it was time to share my 2018-2019 network TV schedule.

One of my favorite things to do in the late summer and early fall of the year is to fill out my calendar with show times for the upcoming season. Narrowing down the shows I’m interested in vs. what I actually have time to watch can be a challenge.

Deciding on which shows get the axe when there’s a time conflict is typically the least fun part of the process. Fortunately, this year, one of the awesome folks over at Theme Hybrid passed along a Tablo DVR that they no longer had use for. And, I had an external hard drive gathering dust for saving recordings. Now, I shouldn’t have to worry about conflicts. I’ll probably reevaluate my schedule in the coming days since this development (just got the Tablo on Friday).

Schedule

The following list will change over time. I’ll inevitably drop a show or two. I’ll pick up others that don’t currently have a listing or air until the winter/spring.

The times below are in Central (not Eastern as typical). I’ve listed the network in parentheses and the season premiere date for each. The shows with an asterisk are new.

Sunday

  • 7:00-8:00 - God Friended Me * (CBS) - 9/30
  • 7:00-8:00 - Supergirl (CW) - 10/14
  • 8:00-9:00 - Charmed * (CW) - 10/14

The Orville will premiere on December 30 following an NFL doubleheader.

Monday

  • 7:00-8:00 - Arrow (CW) - 10/15
  • 8:00-9:00 - Legends of Tomorrow (CW) - 10/22
  • 9:00-10:00 - Manifest * (NBC) - 9/24

The Big Bang Theory will premiere on September 24 at 8:00 followed by Young Sheldon at 8:30.

Tuesday

  • 7:00-8:00 - The Gifted (Fox) - 9/25
  • 7:00-8:00 - The Flash (CW) - 10/9
  • 8:00-9:00 - Black Lightning (CW) - 10/9
  • 9:00-10:00 - The Rookie * (ABC) - 10/16

Wednesday

  • 7:00-8:00 - Riverdale (CW) - 10/10
  • 8:00-9:00 - All American * (CW) - 10/10

Thursday

  • 7:00-7:30 - The Big Bang Theory (CBS) - 9/27
  • 7:30-8:00 - Young Sheldon (CBS) - 9/27
  • 7:00-8:00 - Supernatural (CW) - 10/11
  • 8:00-9:00 - Legacies * (CW) - 10/25

Friday

  • 7:00-8:00 - Blindspot (NBC) - 10/12
  • 8:00-9:00 - Midnight, Texas (NBC) - 10/26

No cable?

People always ask me why I don’t have cable/satellite TV. Actually, with cord-cutting becoming more popular these days, I get the question far less often.

I dropped cable back in the early 2000s when I was a broke college student. I’ve never had much reason to justify the exorbitant price over the years.

If you’re interested in the antenna I use, it’s an outdoor ViewTV antenna. I pick up all the major networks plus a few others in a rural area. I get about 22 channels on most days, depending on conditions. Given a taller pole (mine is at 8 feet), I could probably pick up more. But, I’m content with what I have.

For the handful of cable shows that I do watch, I catch up on those via Netflix or DVD/Blu-Ray.

The college era: Then and now

$
0
0
Hands holding a mound of soil with a seedling popping out.

I’ve taken some time away from my main work this week to focus on cleaning things on this blog. I still have much to do, and I’m only about halfway through everything.

Earlier today, I completed the cleanup of what I call the “college era” of the site. It consisted of 349 posts (assuming I didn’t miss any). I was a prolific blogger for 4 years, starting with my 1st post on April 15, 2003 and ending with my 349th post on May 24, 2007.

Nearly half the posts I’ve written on this blog happened in the span of 4 years.

What’s crazy about that number is that it was the busiest time of my life. I routinely slept 4-6 hours a night, tops. I was a fulltime student. I worked two jobs during half of that era. I took time to learn Web design. I created art, digitally and by hand. I wrote stories and started on more than one novel.

And, somehow, I carved out enough time to routinely blog. I wrote approximately 87 posts each year. If I hadn’t been so busy, I probably would’ve doubled that number.

Writing regularly is something I always tell myself to do, but I never get around to it. Therefore, I’m making a promise to myself to do better. To take more time to share my thoughts.

While I didn’t have time to read through all 349 posts, I did read many and scanned a great deal more. It gave me a chance to reflect on how much I’ve grown in the past 15 years. I’d like to revisit this blog again in another 15 to see how much I’ve grown again. I must spend time keeping a record of my thoughts to make that happen.

There’ve been times when I considered marking some of my old posts as “private” so that only I could read them. There are posts that I’m not proud of. There are some borderline racist remarks. There are sexist posts. But, I haven’t hidden those items because that’s not who I am now. That person has grown into someone who is a much better human being. The person I am now is a reflection of my experiences.

I still have some growing to do. It’ll likely take a lifetime before I’m the best version of me.

The most important thing I’ve learned is that I need to spend more time letting loose. Today, I’m always hesitant to pull the trigger on anything. Whether that’s publishing a blog post or releasing a product or sharing my thoughts with someone on a subject. Part of that is the wisdom I’ve gained over the years — don’t open your mouth before thinking. Part of it is the current social climate, particularly online. One mistake can spell disaster for a person’s reputation, or in the case of a small-business owner, that person’s livelihood.

But, I believe the best version of me is the version that takes more risks.

For me, that means just being creative and not being afraid to share what I’ve built with the world.

It means writing blog posts without worrying if I’m offending the wrong group of people.

It means trying to be the best me I can be.


In the coming weeks, I’ll unveil a new version of this blog. I won’t get into all the details now, but I’m excited about what I’m working on. It will be the biggest change on this site since May 13, 2005.

On blogging: What I regret the most

$
0
0
A notebook with a straight calligrapher's pen with an ink bottle sitting on a table. There is a brown satchel, an old windup clock, and a cup holding pencils.

As I mentioned in the previous post, I’m overhauling the blog. This has given me the opportunity to reevaluate many things in my life. I’ve been able to sit and remember some of the great things that have happened to me. I’ve seen myself grow in these past 15 years of blogging.

What I regret the most is that I didn’t write enough about my life.

During my college years, I wrote extensively about my day-to-day existence. There were numerous experiences that I left out.

The first person to buy something from my Amazon Wish List is someone I’d like to thank. While I wrote about the experience of getting the gift, it’s the future experiences that mattered. That gift was the film “Serendipity.” It was my version of “The Notebook.” Literally every guy reading this knows what I’m talking about. It’s the ultimate date-night movie. Let’s just say that I’ve gotten all of somebody’s $10 worth out of that film.

My blog painted a picture of who I was.

Even my 14 months in South Korea got a few posts. I wish I’d spent more time writing about my experience there. Granted, I had to be careful about divulging too much information online as a school teacher.

Toward the end of my stint teaching in Korea until present day, I’ve primarily focused on WordPress. It has been my life for 10 years. It hasn’t been my entire life, but most wouldn’t realize that simply reading through the posts of the past decade.

As I read through what is now nearly 800 posts, the ones that stand out the most are those that are about my life. Most of the posts I wrote about some gizmo or gadget for WordPress 8 or 9 years ago don’t bring back fond memories. Those posts don’t tell me about myself. My first day of the Body-For-Life challenge or the time I attempted NaNoWriMo (National Novel Writing Month), are the moments that I look back on and appreciate.

Going forward, I want to record more about me. Or, at the very least, record my thoughts on things. That may include writings on social issues, politics, or pop culture. I’m not entirely sure.

What I do know is that I want to look back on my life years from now and see a person who was passionate about things outside of work.

The Final Comments

$
0
0

Two seagulls standing next to each other on the roof. One is shouting while the other is calmly standing next to the other.

19,516.

That’s the number of approved comments this blog has amassed over the years. The vast majority of these comments are on some of my more popular WordPress-centered posts. I’ve had a lot of fun over the years discussing the various topics on this blog. It’s been a long and exciting journey, but it’s time for a new era.

After this post, I will disable commenting for the foreseeable future.

I wanted to write this post as a sort of farewell and to give everyone who reads the blog a final chance to comment. Please don’t waste it trying to convince me to leave commenting open. My mind is set. Next week, I’m re-launching this site, and commenting won’t be a part of that.

Why, Justin? Why?

This has been a long time coming. It’s something I’ve been thinking about for at least two years now. Several factors went into this decision. But, before we get to those reasons, let’s skip down memory lane.

A look through time

I’ve had one post hit over 1,000 comments. I’ve had 10 posts hit 300+ comments. Here’s a quick look at the most-commented posts of all time.

  1. Structure: WordPress Theme (1,020)
  2. Custom post types in WordPress (616)
  3. Visionary: WordPress Theme (522)
  4. Options WordPress Theme (513)
  5. Get The Image WordPress Plugin (454)
  6. Goodbye, headaches. Hello, menus! (378)
  7. Members: WordPress Plugin (372)
  8. Custom taxonomies in WordPress 2.8 (359)
  9. Cleaner Gallery WordPress Plugin (342)
  10. Adding and using custom user profile fields (325)

I’ve had, in total, 42 posts with 100+ comments on them. We’ve had some wonderful discussions over the years.

My only non-design/development post to garner 100+ comments was Living the frugal life. It seems that folks like saving dollars. 💵💵💵

Why I’m disabling commenting

Over the past few years, I’ve grown to dislike comments on the blog, sometimes to the point of not wanting to blog anymore. Managing comments isn’t something I signed up for when starting this site back in 2003. I just wanted to share my thoughts with the world.

The asshole-factor

If you run a Web site with any level of popularity, you get assholes who don’t know how to be non-assholes when they comment on your posts.

When you call some of these people out for being an asshole, some attempt to tell you that text is “non-emotive” and you’re reading more into it than what they intended. That’s fresh, farm-grade BS. If someone tells you that, they want you to continue allowing them to be an asshole on your blog. This type of asshole is prevalent in the developer community. I understand that many developers have trouble expressing themselves, but that’s no excuse for assholery and not improving as a human being when someone points out your assholishness.

Text is an emotive medium.

It’s the job of the writer, not the reader, to spark a particular emotion. If you’ve never read a book, a story, or a poem that has made you laugh, cry, or go on an intense emotional journey, you’re either reading crappy stuff or have no soul. Don’t give me this BS about text being non-emotive.

If I’m being an asshole, you better believe that I’m intentionally being an asshole.

I typically either censor assholes on my blog or give them a verbal beat-down the likes that they’ve never seen. Depends on my mood. Long ago, I even had an official “Wall of Shame” page for these people on my site. But, all that gets tiring.

The only person who should be an asshole on my blog is me.

Viagra and skin-care products

Spam. Ugh.

I’ve had a pretty good spam-deterring system for the past few years. I’ve used a combo of comment moderation and blacklist words/phrases along with the following three plugins to effectively stop most spam.

But, some things still get through. Such is the nature of running a blog with open comments.

The toughest spam to catch are those comments that look legit but link back to a spammy Web site in the URL field. Sure, I could disable that field, but I like to look at the Web site of the person commenting.

It’s also hard to distinguish between legitimate comments that say something like “Awesome work!” or “I love this!” from spam comments that are short and similar in nature. These comments, while appreciated, offer little value to the conversation.

After enabling comments back in 2005 when I switched to WordPress for running the site, it’s been a job moderating spam. It’s been a huge time suck over the years and not something I’m interesting in continuing.

Share or tweet this

More and more, social media has replaced commenting. A post I write today may pick up discussion on Facebook or Twitter while having few comments here on the blog. It’s how people communicate online now, and it’s time I embrace that.

In a lot of ways, this is a bit freeing. It means that I can let the social media giants handle moderation of comments. And, because everyone is on some social media network or another, more people can be engaged in the discussion, particularly if they’ve never seen my blog.

Write your own post

One thing I don’t see enough is people responding by writing their own blog posts. Leaving a comment on another site’s blog post means that you’ve lost control of your content.

This is something I plan to do more of. Instead of leaving a comment on a blog, I want to take my time to give a thoughtful response on my site. A good example of this is a recent post by Ben Gillbanks on the complexity of the Mythic starter theme. I could’ve written a comment, but that wouldn’t have give me the freedom to go as in-depth as in my response post. Comments tend to be reactive and not quite as well thought through as a blog post.

I will be encouraging more people to respond to my posts in this way. If you have something truly constructive to add to the discussion, take the time and allow your mind to create a well-formed response. I’d love to read what you wrote. You can always connect with me via the contact page, Twitter, or Facebook.

And, if you want to be an asshole, you can do that on your own blog too. 😎

Switching from WordPress to a custom CMS

$
0
0

Monument Valley, Arizona-Utah, United States

If you’ve been a long-time reader of my blog, I bet you never thought you’d see the day with a post titled anything like this one.

I’ve moved this blog from WordPress to a custom CMS.

Before getting into an explanation, I want to make it clear that I am not leaving the WordPress community in any way. I love WordPress. I’m still doing big things at Theme Hybrid. I will continue writing about WordPress here on this blog and being a WordPress evangelist for what I hope is many, many years to come.

This was a deeply personal decision for me and what I thought was best for my personal blog.

I wasn’t sure if I wanted to write this post. The WordPress community means everything to me. Even the thought of not running my blog on the platform that has given so much to me is frightening and feels wrong in some ways. Part of that is because I’m so deeply loyal to the project. Part of it is because WordPress has been a security blanket for so long that it’s been hard for me to step outside my bubble.

However, it’s time for me to explore something new.

What’s new with the site?

A redesign of JustinTadlock.com with simple colors. The page has an off-white background. The post content in the screenshot has a large featured image followed by text.

It has a new coat of paint. A redesign was long overdue. Frankly, I was tired of seeing my last WordPress theme.

I decided to keep it simple for now. Many items don’t have CSS rules yet. It’s very much a work in progress. I’m sure there are minor issues (and a few major ones) that need to be cleaned. But, that’s half the fun of this project.

Overall, I knew I wanted to keep the design centered on the content. Everything else should take a backseat to the words on the screen. If you’re here, then I assume you’re here to read what I have written and not get distracted with bells-and-whistles.

Home-brewed CMS

I’ve teased a custom CMS to a select few people on Slack and Facebook. I haven’t talked about it much publicly.

I’ve been building the system on the weekends and whenever I had free time. Aside from a few Symfony components and Parsedown, I’ve built most of this system from scratch. It’s been an adventure.

At some point in the future, I’ll likely open it to the public. I’m looking for a few packages that are MIT-licensed to handle some features rather than the GPL. I’d rather avoid the viral nature of the GPL.

Plus, this system is nowhere near ready for release. It’s alpha-level software at best.

Comments are gone

As I mentioned in the previous post, I’ve discontinued the commenting system. I could’ve easily integrated something like Disqus, but that’s not something I’m particularly interested in at the moment.

I haven’t worked out how to show all the old comments just yet, but I’d like to make that happen in the future. There’s some good stuff there.

I also plan on exploring the use of Webmentions at some point.

Era archives

One new feature I added to the site is an “era” taxonomy. After blogging for over 15 years, I decided to break my content down into distinct eras. These are periods of time in my life where major shifts happened.

I thought this would be a fun way to always go back and look at the things I’ve written based on the time period. Here’s a quick list of the current eras:

These probably won’t mean much to most people. It’s mostly just for me when I’m feeling a bit nostalgic.

Archive pages

I’ve decided against paginated archives. I find it a bit annoying looking through something like the WordPress topic only to find 10 post excerpts with tons of pages to scroll through.

Instead, most archive pages show a full list of posts. That way, you can quickly scan everything to find what you’re looking for.

Or, if you’re like me, hit Ctrl + F on your keyboard and do a quick search on the page for a keyword.

Merged tags and categories

I’ve merged my tags into the category taxonomy (what I’ve always called “topics”). Having two separate methods of grouping my blog posts never made much sense to me, so I decided to just have a single taxonomy.

Feel free to check out all of the topics on the topics archive.

Why I moved from WordPress

The simple answer is that it no longer felt like the best system for my personal blog.

This is not going to be a post where I bash WP. While I have my share of complaints about WordPress, most of those things played little-to-no part in my decision to try something different.

Editing content

Some folks may be wondering if the upcoming WordPress 5.0 editor (currently the Gutenberg plugin) played a part in this decision, given the timing.

The answer is no.

Outside of a short aside post or quick gallery, I haven’t used the WordPress editor for writing posts in several years. I do all of my writing in a Markdown editor offline.

Dealing with WP’s post editor in general played a role in my decision, but this is not directly tied to Gutenberg. The last time I checked, pasting Markdown into Gutenberg was quite a nice experience.

This is more about my workflow. I write posts in Markdown files. It makes sense that the system I use recognizes that Markdown is my primary method for publishing.

Comments

In my last post, The Final Comments, I went in depth about why I was shutting down comments. This was a decision I made some time ago. Making that decision meant that I was no longer reliant on WordPress. Comments and a few other features were the main reasons I’ve continued using the platform these last few years.

For so long, I held onto this notion that I needed to have comments on my blog posts. In some ways, this was an addiction, a way to gauge popularity. Similar to Facebook and Twitter “likes,” I had become accustomed to getting at least a few comments whenever I’d publish something. Commenting, in many respects, was just as much a part of the identity of this site as the content itself.

A couple of years ago, I read something along the lines of comments not belonging to the site owner. I can’t remember the article name or link now, but it shifted my perspective. With things like the European GDPR (General Data Protection Regulation) and similar legislation likely coming from other countries in the future, the idea that these comments aren’t really mine to control is becoming more of a reality.

The point I’m getting to is that the most important thing to me is the content that I write. That’s why I started this blog back in 2003.

I also think commenting/discussion systems need to evolve to the point where the user has more control and into a standardized system across the entire Web. I’m not sure what that might look like, but it’s a topic for another day.

Performance

This is going to be a complaint about WordPress and Web sites in general.

Out of the box, WP is a lot slower than it has to be. While there are people who submit patches to fix performance problems here and there, I don’t see a lot of talk throughout the community about making WordPress leaner.

It’s 2018 and my WordPress-based site is slower than what I had in 2003 (and in 2005 when I started using WordPress). We live in a time when we should be serving the fastest Web sites in history, but Web pages are growing in size with no thought to user experience.

Install XYZ caching plugin with 500 config options should not be the go-to response for running speedy Web sites.

I wanted to try my hand at making this site load faster. Then, take what I learn from that experience and apply it back into the work that I do with WordPress. This should be an interesting and fun journey.

PHP code from this decade

Okay. So, yeah, that heading is a bit of a dig at WP.

While I can build WordPress plugins and themes in whatever version of PHP I want, those plugins and themes must still interact with code that was written for PHP 5.2, which was released in 2006.

Building something from the ground up that approached things from a purely OOP perspective with more modern coding practices has been fun. I’ve learned a ton of cool stuff and am still learning.

My own edification

I like tinkering with things and breaking them. To be constantly working on, breaking, and fixing my personal blog is fun for me.

With WordPress, things just sort of work — that’s a good thing seeing as how it runs over 30% of the Web.

Ever since I made the switch to WordPress in 2005, each year, I’ve had fewer and fewer things to tinker with here. I miss that excitement a bit. WordPress is a mature and stable project. I long for the thrill of the bleeding edge.

I want to continue learning, and one of the best ways for me to do that is to experiment with new things.

What the future holds

I may be running WordPress again in a month or a year. I don’t know.

It’s just content. I can move it around anytime and anywhere.

What I do know is that I’m eager to go on this new venture with JustinTadlock.com. These last couple of weeks that I’ve spent wrapping up things enough to push the new site live has been some of the most fun I’ve had in Web dev in years. It feels like the early days with a new frontier to explore.

Few things excite me more, and I hope that you, dear reader, continue down this journey with me.


A day in Prattville with Shannon

$
0
0

My cousin was in town today. As is custom, that meant riding up to Prattville, Ala. and stopping by Bass Pro Shops. We had a pretty fun day hanging out. We took Shannon’s son out for lunch at Steak ‘n Shake (yes, I brought home an extra burger).

We started the day letting Shannon meet my niece (pictured below with my sister) and ended the day with me buying a Buffy the Vampire Slayer toy.

Hey, don’t judge me. It was $5 and the Books-a-Million woman went totally out the way to find it for us when we were joking about them needing a Buffy in the collection. She (the woman, not the toy) was cute in the geeky kind of way that I like and easily took my money. I’m such a sucker.

Anyway, here’s a few photos to commemorate the day.

Pictures of cats

$
0
0

If there’s anything truly good about the World Wide Web, it’s that people can share cat pictures. Here’s a few pictures of cats that I see and interact with in my day-to-day life. Maybe they can brighten your day.

Smeagle

Smeagle is the surrogate grandpa around these parts. He’ll turn 15 years old in just a few weeks, which is well into his 70s in “cat years.” Like any good grandpa, he’s always grumpy with the younger generation and wants things his way.

He’s done a lot of traveling (Auburn, Atlanta, and back home) and been with me since 2003. His sister, Oly, died several years ago. Not long after, he gained a new family of rowdy kittens.

Smeagle, an old tabby cat, sitting in the shady part of a porch.

Oreo

Oreo is a cuddler. He usually follows Smeagle around, but he’s mostly an equal-opportunity cuddler. When he’s not doing that, he’s constantly running around the yard without a care in the world.

Below, he’s found a fresh pile of leaves that look super comfortable.

Oreo, a white-and-black cat, sitting in a bed of leaves.

Jane

Jane is the only girl cat. She spends half her time mad at one of the boys. But, you better believe she can hold her own. She is the ultimate predator. Patient, quick, and fierce. I’ve once seen her spend nearly an entire day waiting for a single mole to come out his hole.

The only problem Jane has is that she tends to drag snakes into the yard. She even got bit last year and had to be taken to the vet.

Jane, a solid gray cat, sitting and yawning on a porch.

Panther

Panther is Jane’s brother. For the most part, he sticks to himself throughout the day unless I have the camera out. Then, he is always ready to strike a pose. He’s a jumper. There’s not a single structure on the property around here that he hasn’t at least attempted to climb up. He once made it about 30-feet up into the pecan tree after a squirrel before deciding he’d gone too far.

Panther had surgery on his left ear not long ago. The doc says it’ll likely always be a bit crooked now. So, he’s a little bit less handsome but at least twice as bad-ass.

Panther, a solid gray cat, lying atop a clothesline post

Tom

Tom is the neighborhood bully. He’s a lovable cat once he gets to know you, unless you’re another cat. He doesn’t really belong to anyone but is taken care of by everyone in the neighborhood. Even after being around for a couple of years, he’s still scared when people reach toward his head. I’m afraid he was abused as a kitten.

I’m going to call the mouse in the picture below Jerry. I’m pretty sure Jerry ended up being lunch.

Tom, a tabby cat with a white underside, lying next to a mouse in the grass.

Simba

Simba is another neighborhood cat who appeared earlier this year. We never found a home for him, so he just kind of eats scraps that everyone throws out. He was starving when he first showed up as a tiny kitten and probably hadn’t eaten in days. He’s playful and is going through his sort of teenage-wanting-to-fight phase right now.

Simba, a tabby cat, lying on the porch steps.

Tigger

Tigger is one of my neighbor’s cats who hangs out sometimes. He was the neighborhood bully for a long while, but he’s just gotten lazy over the last couple of years. Mostly, he guards his own porch from other cats. However, he does allow Simba to eat some of his food from time to time. I think he recognized that Simba was just a kitten who needed help.

Tigger, an orange and white cat, walking.

About Page 2018

$
0
0

A bit over 5 years ago I made a promise to not make the updating of my about page a quinquennial event. I didn’t quite live up to that promise.

Time passes by quickly. It’s hard to believe it’s been 5 years.

I wasn’t much in the mood to create a new about page today. However, I had “Update About Page” listed as my most important task on the schedule. Because I’ve been attempting to stay on track and always complete the tasks I’ve assigned myself every day, I had no choice but to muddle through.

Therefore, the new and improved (?) about page is essentially a brain dump. I will definitely, absolutely, assuredly update it within the next half decade.

One day, I'll write a novel

$
0
0

A wood table with an open notebook set in the background with a plain white coffee mug in the foreground.

As I struggled to write my About page a few days ago, I realized that I’ve always had one unchanging goal in life. This is a goal that I’ve had since I was a schoolboy. It hit me that I’m not any closer to achieving this goal than I was 10 or 15 years ago. I didn’t want to update that page with the same unaccomplished goal and have it sitting there for more years to come.

One day, I’ll write a novel.

Like many things that I thought I would have accomplished by now, “life” has gotten in the way. There’s always something else to do. I’m too tired after work. I’ve got an errand to run. I’ve got dinner to cook.

Thirteen years ago, I attempted to write a novel in one month following the National Novel Writing Month (NaNoWriMo) challenge. This was arguably the busiest time of my life. I was taking several writing and literature courses, working two jobs, and trying to keep pace with all my party-going college friends. To make matters worse, I had to prep for semester finals and spend time with family for Thanksgiving. The most insane thing I could add to my schedule was attempting to write a novel within a month.

However, I still knocked out around 25,000 words of the 50,000-word goal before the month was out.

Today, I can’t say that I have the same excuses. Yes, I run my own business. Yes, paying bills and taxes is stressful. Yes, there’s a whole slew of other excuses that accompany adulthood. But, I’ll never be as busy as I was in college. I’m just a bit lazier and more stressed out with “adult” stuff.

What I’ve found to be the greatest motivator through my 30-something years is that nothing beats a good deadline. When I was writing Professional WordPress Plugin Development, I wouldn’t have finished a single chapter without a deadline (my co-authors and I had two chapters each per month). Having an editor awaiting an email with your chapters and an advance of a few 1,000 dollars helps, but deadlines are where the magic happens.

That’s why I’ve decided to hop on the NaNoWriMo train again this year. It will provide me with a solid deadline for the month.

Shooting for 50,000 words also breaks down to roughly 1,667 words every day. That’s an easy goal for someone who tends to be as long-winded as I am.

Some of you who have read my WordPress tutorials are now shaking your heads in agreement. Justin, cut some of the talk out and just show me the code!

I don’t have any characters in mind. I have no plot points scribbled on notepaper. I’m starting from zero. It’s only today that I decided to take the plunge after a few days of questioning whether I was mentally prepared for such an undertaking.

I’ll just write and see what happens. One massive brain dump.

I tend to wing things anyway. That’s when I do some of my best work in any field. I’ve written term papers in the hours prior to placing them in my professors’ hands. I’ve given presentations with only a couple of index cards worth of notes. I’ve built fully-functioning WordPress plugins on the fly. Perhaps my first novel should be no different.

I’m only posting this on my blog to make it a permanent goal that I’m not allowed to wiggle my way out of. If no one knows about it, is it really a goal?

This should be a fun, stressful, insane month. Let’s see where it goes. Feel free to join the adventure if you dare.

Day 1 of NaNoWriMo

$
0
0

National Novel Writing Month banner image.

David Chandra, a friend I know from the WordPress community, said he was looking forward to reading my Day 1 post after hearing about my attempt to finish a novel for National Novel Writing Month.

I hadn’t planned to write a Day 1 post because I figured I wouldn’t have much time for anything after adding my novel-writing endeavor to my full schedule.

But, here we are.

The first day had its high and low points. I managed to fumble through 1,681 words in my first two-hour writing session. When the day began, I wasn’t overly confident about my chances of getting off to a solid start. I had no plot ideas. I hadn’t thought of a single character. I didn’t have a clue about the world that my story would be taking place in.

It wasn’t until after breakfast that I started formulating some idea of a character I wanted to write about. A memory from last year popped into my mind for potential storyline. I had something to build from.

Typing those first words on the screen was a struggle. Where do I start? What should my characters say? I hadn’t flexed my fiction-writing muscles in a long while and stared at a blank screen for minutes.

After knocking out the first few paragraphs, I was a bit looser but still struggling.

I was around 800 words into my story when I checked in at the 1-hour mark. Things had picked up a bit. After a 15-minute break, I popped in Volume 1 of the Dawson’s Creek soundtrack and started pounding the keys. I found some rhythm. It wasn’t pretty, but the story was flowing. Things were starting to happen. Two characters had come to life. I had a bit of a vision of this world that they inhabited.

I stopped.

When I hit the 2-hour mark, I shut things down. I left the story to stand as it was. As much as I hate to cut off the creative flow, I know that I need to maintain a relatively steady pace for the next 29 days. Overdoing it too much on Day 1 could spell disaster down the road.

I tapped out at about 1,681 words for my first session. That’s just over my goal of 1,667 words/day to hit the 50,000-word mark at the end of the month.

I don’t plan to blog about this experience every day of the month. I need to save some of my creative juices for my design and development work. Blogging about it every day will likely contribute to burnout. I’ll at least try to periodically update the blog here with my progress. We’ll see how it goes.

The NaNoWriMo Web site has badges for various goals, so I may update based on some of those. Thus far, I’ve earned the following “writing” badges:

  • You’ve got a novel (for starting).
  • You’re on your way (for my first word count update).
  • You hit the 1,667 mark (for passing that word count goal).

They have several other writing badges alongside participation and personal achievement badges. A mini reward system like that should help keep me motivated.

Overall, I’m just happy I made it through the first day. Even though I struggled a bit getting started, I forgot how much I enjoyed the challenge of fiction writing.

Viewing all 153 articles
Browse latest View live




Latest Images