Year In Review Marketing

The joys of a new year. A time to reflect on what all you accomplished and start planning out those new years resolutions. One of the hardest parts of this process is figuring out what all you did the past year. Sure big events are easy to remember and if you keep a journal then going back through it will help fill in the gaps, but there is a lot that slips through the cracks.

A new trend that has started becoming popular is apps and services sending you a personalized yearly review based on the data they have.

WordPress sent me one highlighting the number of posts, website traffic, most popular days, and most commenters.

Todoist, featured in the main post image, sent one showing how many tasks I completed each month, when I’m most productive, and how I rank compared to others using the app.

These are just two of the services I use that did this and I loved it because it made me want to share the results publicly and, in turn, give the vendor direct word of mouth advertising.

From a business standpoint if you have the data then generating user reports like this shouldn’t be too expensive to create, especially if you are comparing to other forms of marketing, but the benefits are a more personal recommendation.

Plus since it’s all in your database you’ll be able to reuse this same marketing tactic year after year with no further expenses.

Book Dust Jackets

I’ve been a digital reader most of my adult life but for the past year I’ve been trying to reduce my screen time and started buying real books. I started out with paperbacks but now I’ve moved into wanting hardcovers because they seem more sturdy and will stay in better condition longer.

The one drawback I experience is with the book jackets or sleeves. They always seem to shift and move and get wrinkled or creased. I decided enough was enough and I now remove them when I start reading, then put them back on to place on the shelve.

I thought I’m surely not only that finds these annoying and went out to research why these jackets are still included and the history behind it. According to Wikipedia:

After 1900, fashions in, and the economics of, publishing caused book bindings to become less decorative, and it was cheaper for publishers to make the jackets more attractive. By around 1920, most of the artwork and decoration had migrated from the binding to the dust jacket, and jackets were routinely printed with multiple colors, extensive advertising and blurbs; even the underside of the jacket was now sometimes used for advertising.

As dust jackets became more attractive than the bindings, more people began to keep the jackets on their books, at least until they became soiled, torn, or worn out. One bit of evidence that indicates when jackets became saved objects is the movement of the printed price from the spine of the jacket to a corner of one of the flaps. This also occurred in the 1910s and early 1920s. When jackets were routinely discarded at point of purchase, it didn’t matter where the price was printed (and many early jackets were not printed with any price), but now if book buyers of the 1910s and 1920s wanted to save the jacket and give a book as a gift, they could clip off the price without ruining the jacket.

Now that the jackets hold most of the design it’s as much a part of the book as the pages themselves and I feel like they shouldn’t be tossed away.

I looked into what others are doing with their jackets and came across a few different ideas:

  • Use them as bookmarks (front flap for the first half, back flap for the second half)
  • Throw them away
  • Remove while reading
  • Keep and frame them to hang in their study or library

I would rather the design be printed on the covers but also understand the economics of doing this would raise the price.

When reading books with a dust jacket what do you do with it? Do you find them annoying?

Just 20 Pages- A Goal To Read More

For the past two years, I’ve made the same new years goal, read more books.

Both years I’ve failed. I would start off reading every night and a few weeks into the year something would happen to cause me to veer off course. A new side project idea, a new writing project, just to worn out, you can insert any excuse here but I just lost track.

Each year I would put on my list of goals an actionable item like read 20 books, but that number overwhelms me. It’s like standing at the base of a mountain preparing to climb it, all you see is a rough and rugged path. Of course, with climbing once you start you can’t say today I don’t feel like walking. Your only choice is to trudge along and make small gains every day until you finish.

A goal of reading a total number leaves an opening for procrastination. Today I don’t feel like reading I’ll catch up later.

Instead of continuing that same pattern I’m going to set a daily goal of twenty pages. For the average person, reading an average book, twenty should take at most half an hour. So it’s not overwhelming and something easy to block off time for.

Another benefit is by doing it daily then it’s much easier for it to turn into a long term habit.

Twenty pages is inspired by Farnam Street and Jeff recommended 25, but he is an overachiever. 🙂

2015 In Numbers

At the end of every year I like to look back and see what all I accomplished. Since almost everything I create and work on is online, generating stats and data is relatively easy. Plus many services are now sending “year in review” emails so it’s all automated. Here are some of this years numbers for Laravel News and this site.

Laravel News

Here is the break down for this year on Laravel News

  • 1.5 million views with the best day bringing in 27k.
  • 356 new posts, growing the total to 1,053 posts. Down from 679 last year.
  • Longest posting streak of 6 consecutive days. (I typically take the weekends off)
  • Most popular post was the Laravel 5 release announcement because it hit the front page of hacker news.
  • Top referring sites: twitter.com, facebook.com, news.ycombinator.com, laravel.com. Thanks to all the others that linked to the site.
  • Most visitors came from The United States, United Kingdom, & India. 212 countries in all.
  • The Laravel newsletter grew from 3,260 subscribers to 11,650.

Eric Barnes (this site)

For this site which gets almost no love.

  • 230k views with the best day bringing 1,800. Last year total views was 50k.
  • 33 posts published bringing the total to 114.
  • Setting up Gulp, Bower, Bootstrap Sass, & FontAwesome was the most popular post and it wasn’t even published this year. Search engines still reign.
  • Most visitors came from The United States, United Kingdom, & India.

I don’t think there is anything to really learn from these numbers except to show up everyday and eventually something will hit.

How To Teach Your Child To Ride A Bicycle And Be Safe

For almost a decade I was a motorcycle safety instructor and taught a lot of students how to ride and more importantly how to ride safely.

In my teaching experience, I came across two types of students. The first had never ridden a motorcycle before and the second is one with years of experience. The beginner was typically timid but listened well. The experienced knew how to ride but was full of bad habits. Can you guess which one was easiest to teach? It is common to assume that if someone can already ride then explaining to them their mistakes would result in quick correction. That is rarely the case because once a habit becomes ingrained it can take years of constant practice to change. Continue reading “How To Teach Your Child To Ride A Bicycle And Be Safe”

A Trip To Mount Mitchell

Living just outside of Charlotte, NC I have the ability to drive west a few hours and be in some of the most beautiful parts of the Blue Ridge Mountains. A short drive east takes us to the coast. Being in such a unique area, I can take the family on a day trip and experience as much of the outdoors as we want.

Today we decided to drive up to Mount Mitchell as it’s a place I’ve personally never been. What initially surprised me is from Charlotte to the peak is only 128 miles or two and half hours away. We loaded up the minivan and away we went. Continue reading “A Trip To Mount Mitchell”

How to send both HTML and Plain Text Password Reset Emails in Laravel 5.1

Laravel comes with an included Authentication system complete with password resets that saves you from the burden of having to set it manually on all your projects. In one of the apps I built, there have been reports of the password reset not making it to the end users. It just so happens that all email is being sent through a third party system which tracks sends and deliveries.

In this case, the emails were being sent and reported being delivered but the user kept claiming they didn’t receive it, the obvious culprit of it going to spam/bulk mail. In the research process, it was discovered that we only sent an HTML password reset without any text fallback. Maybe that was the reason?

This seemed like a simple improvement and could at least rule out that as a possibility. However, now all the mail is handled inside the Illuminate components and I couldn’t find any documentation on how to send both.

At this point, I started digging to try and see how Laravel is sending the email. Inside PasswordBroker I found an emailResetLink method which is how it is actually sent:

$view = $this->emailView;
return $this->mailer->send($view,

Now it’s just a matter of figuring out where “$view” came from and I didn’t have to look far. Inside the constructor it is injected:

public function __construct(TokenRepositoryInterface $tokens,
                            UserProvider $users,
                            MailerContract $mailer,
                            $emailView)

Next question is, where is the instantiated? Doing a project search for the class name lead me to the registerPasswordBroker in the PasswordResetServiceProvider. This pulls in from the config file:

$view = $app[‘config’][‘auth.password.email’];

Opening `config/auth.php` shows how it’s defined by default:

'password' => [
    'email' => 'emails.password',

Almost there. Going back to the mail documentation it shows you can send both with this call:

send(['html.view', 'text.view'], $data, $callback);

That means it’s just a matter of adjust the auth.password.email to be an array instead of the string:

'password' => [
    'email' => ['emails.password', 'emails.text-password]',
Don’t leave your users stranded–send both for an important email like this.

One of the benefits to Laravel is at almost every turn there is a simple way of solving a given problem and this is just one example. I hope by me outlining the steps I took to solve the problem it gives you insight into finding your own way around the next time you get stumped.