The Arrival by Shaun Tan

I see book recommendations all over the internet and in the past, I would try to make a mental note or add the title to my task list to check out later. This never really panned out because I went back to check I would forget who recommended it and without that personal connection I’d decide against getting the book.

This year I changed that up and decided to add any book that a friend recommends to my Amazon cart that way I’d be forced to ​take ​action on it. The Arrival is one of those books and it came as a surprise because someone else in my family completed the cart and it came as part of the order. #lifehack

As I started flipping through it I was amazed that it was a graphic novel telling about the immigrant experience. It’s beautiful and will make a great coffee table book and one to go through with my kids.

The one downside to all this is now I can’t remember who I have seen​n recommend it, but I appreciate it.

If you want to know more about the book itself this review from Alana Abbott is perfect:

Tan captures the displacement and awe with which immigrants respond to their new surroundings in this wordless graphic novel. It depicts the journey of one man, threatened by dark shapes that cast shadows on his family’s life, to a new country. The only writing is in an invented alphabet, which creates the sensation immigrants must feel when they encounter a strange new language and way of life. A wide variety of ethnicities is represented in Tan’s hyper-realistic style, and the sense of warmth and caring for others, regardless of race, age, or background, is present on nearly every page. Young readers will be fascinated by the strange new world the artist creates, complete with floating elevators and unusual creatures, but may not realize the depth of meaning or understand what the man’s journey symbolizes. More sophisticated readers, however, will grasp the sense of strangeness and find themselves participating in the man’s experiences. They will linger over the details in the beautiful sepia pictures and will likely pick up the book to pore over it again and again

You can get your own copy of The Arrival on Amazon and it’s currently $13.99 for the hardcover, which I recommend.

When it comes to tools like Facebook, Twitter or Instagram: don’t let the fear of missing out dictate how you live your life. The most productive and fulfilled people I know often got where they are by doubling down on the activities that return them huge benefits, while happily ignoring everything else.

Cal Newport – On Analog Social Media

Read books and listen to audiobooks with Libby

The public library system doesn’t seem to get a lot of love lately, but they are making great strides in modernizing. One example​ is the Libby app for phones and tablets.

I first seen it mentioned by a friend on Twitter and decided to check it out. I found the Leonardo Da Vinci biography as an audiobook and put it on hold. ​Last night I got an email it was available and was instantly able to start listening.

The app is pretty well done, and it includes all the main features you need. Plus a bonus for ebooks to automatically send them to your Kindle.

The only downside is that a lot of book titles that I looked for had only one or two stock and you have to place a hold which can take some time before it’s available, but if you haven’t tried out your local library lately, I’d recommend it.

Profit First

Profit First by Mike Michalowicz is one of the business books I read last year and I decided to start 2018 off by implementing some of the features of this book and I wanted to share they are working well so far. In fact​, it’s​ working so well I got my wife on board and we setup our family budget using the same ideas.

The premise of the book is, of course, on taking your profit first​ and in order to do that Mike recommends creating several different banking accounts. For example, here would be all the different bank accounts for a small business. Income, Profit, Owners Comp, Tax, Operating Expenses “Opex”, and two extras, Profit Hold and Tax Hold.

Then it works like this:

  1. Deposit all revenue into your income account.
  2. Every 10th and 25th transfer out into the main accounts based on percentages above.
  3. Take your biweekly/monthly draw from the Owners Comp account.

Now for my business,​ this felt way overboard and I honestly didn’t need all those accounts. I decided to simplify and go with income, profit, and taxes, then instead of twice a ​month at the end of the month is when I do my transfers. By doing it this way I can look at the P&L statement and know exactly how much income I’ve had and then just move it around.

As I said I’ve enjoyed this process and its​ personal finance at the basics. Every dollar goes somewhere and if you aren’t purposefully planning where that is, then it’s probably getting spent. Because of this, I talked to my wife and we decided to give this same thing a try for our family budget. Here are the accounts Mike recommends you setup:

  • Income Account – Every deposit goes in here
  • The VAULT – Emergency Fund (Start at 1 month. Goal is 8 months)
  • Recurring Payments – Mortgage, Cars, HOA, etc.
  • Day to Day – Grocery, Gas, Dining​
  • Debt Destroyer – For paying off debt

This felt like too many to me again so I simplified, (yes he says you shouldn’t do that, but he isn’t the boss of me):

  • Income Account + Day to Day combined (debit card)
  • The VAULT – Emergency Fund (Money Market)
  • Recurring Payments – Mortgage, Cars, HOA, etc. (regular checking without debit card)

We divided all our recurring payments out and found the exact amount that needs to go in that account, now when a paycheck comes in that amount goes to Recurring, a set percentage goes to the Emergency Fund, and the remainder stays in Income for day to day expenses.

By doing this I’ve noticed a few things. The first is we are spending less per month because the income account doesn’t have a lot in it. Something happens to you when you know your only account with a debit card is low, and that is the personal side that takes over.

I’m sure this system will not work for everyone, but if you feel stuck in a rut that you can’t get out of it could be worth a shot.

My First Online Doctor Visit

The end of February I came down with a cold, allergies, something. It was horrible and after a few days of suffering, I decided it was finally time to see a doctor. Being the internet loving nerd that I am I figured I’d try out one of those new online doctor apps called, Teledoc.

I made an appointment for 10PM and went through all their settings to make sure my computer would be able to connect, and at about five till I logged in and waited for the doctor to arrive. Just after 10PM I heard someone come on but apparently, they couldn’t hear or see me, but I could hear them, just not see.

At around 10:30 the doctor finally called my cell phone and we did the consultation that way. It was like I was talking to a call center, the doctor had a foreign accent that I couldn’t understand, and all they did was give me some cough medicine and tell me to take some Claritin-D.

Flash forward four weeks since then I am still not better and after attempting to ride my bike yesterday and having a horrific coughing fit I decided to see my local doctor.

I ended up having fluid on my ears, stuff in my chest, a red and swollen throat, and I got a shot plus four different types of medicine to get this junk out of my system.

All because I wanted to save time I ended up suffering and probably get worse with each passing day. Now that I’m on all this medicine they say it’ll still be another five days before I’m fully back.

What is weird is that I have friends that have used the same online service and rave about it, I don’t know if I just did it at the wrong time, got the wrong doctor, or what, but it was not a great first experience and I doubt I’ll do that again. I’d rather take an hour off work and see a real doctor who can actually make a diagnosis of my symptoms.

IDEA – IKEA Style Instructions for algorithms

IDEA a unique project that uses IKEA style of instructions to explain algorithm assembly instructions. From their about page:

IDEA is a series of nonverbal algorithm assembly instructions by Sándor P. Fekete, Sebastian Morr, and Sebastian Stiller. They were originally created for Sándor’s algorithms and datastructures lecture at TU Braunschweig, but we hope they will be useful in all sorts of context. We publish them here so that they can be used by teachers, students, and curious people alike.

All IDEA assembly instructions are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International license, or CC by-nc-sa 4.0 for short.

Quick Review of Andy Weir’s Artemis

Artemis by Andy Weir came out at the end of last year and as a big fan of the Martian I decided to grab the Audible version, which is arguably the best way to consume fiction, and after finishing it I wanted to share my thoughts.

First, the narrator, Rosario Dawson, was brilliant. I loved her in the Luke Cage and Iron Fist shows and she didn’t disappoint​ with this book. However, outside of her,​ I was really let down by this book.

Everything was way too convenient​ for the main character, Jazz Bashara, and the teenage sexual humor annoyed me. This book was very different from the Martian and I’m sure by piggybacking​ on the success of that book this one will be made into a movie, but I’m hoping this was just a sophomore slump for Andy Weir and he’ll be back on his game for the next one.

If you haven’t tried an Audible book before you can get two free Audiobooks through their current promotion. I’d recommend getting a different book for first though.

Thanks to Cloudflare

Finding services to complain about is always easy and it’s easy to look for things that annoy, much harder to find things that please.

Today I want to give a shout out to Cloudflare for helping me save money on hosting, and protecting my sites. Based on their dashboard in the past month they’ve helped with the following:

  • 10,371,929 SSL requests served in the last month!
  • 3,217 malicious requests blocked or challenged in the last month
  • Helped me save 157 GB of bandwidth in the last month
  • Cached 7,583,021 out of 10,832,286

All this is great, but this month I had am unexpected billing issue that wasn’t my fault, and their entire support staff handled it brilliantly. ​It’s great dealing with people that care, especially on the support side.

My Annoyance with WordPress.com Themes

Late last year I switched this domain from self-hosted WordPress back to wordpress.com that way I didn’t have to deal with updates, running a server, paying for hosting, and everything else.

The ease of use is superb and having it as a SAAS is wonderful for me. I can just write and share things when the inspiration hits and I don’t have to worry about anything.

However, one of the downsides is the themes available on WordPress.com. It currently shows 310 available and I’ve literally been through every single and not been happy with any and its always minor stuff.

For example, I found one that was perfect. It had a standard blog layout, my content looked great, but then it didn’t support featured images on the post details page. Then I’ll find an awesome grid theme, only to see my content look like crap in its demo. Then others where I think it’s going to work based on the theme screenshot only to find out it actually looks nothing like that.

Tonight I’ve spent so much time trying to find one that would work for me that I eventually just gave up and went back to twenty-fourteen.

I really do wish WordPress would normalize themes further or at least explain what is expected. Take the featured image. What is it for? Only for the archive lists, or for post details too? The answer seems to be whatever the theme designer decides. Another one is what is the home page? Some preview images show what I believe is a portfolio, but then when you try to just a standard blog home page it looks like crap.

Honestly, I think the crux of the issue for me is I want an old school simple blog where every theme now feels overly designed and the designers are expecting you to​ be able to add awesome images to every post.

Simple PHP Refactoring

Today I needed to write some code to grab a list of CC addresses from an email, and I thought showing the steps I took could make for an entertaining blog post.

I know everyone works differently and when I’m facing a coding challenge the first thing I do is try my best to just get it to work. I don’t care how the code looks or anything. The only goal is to make it work. Here is my first working attempt at solving the problem of grabbing the CC’s:

/**
 *
 * Returns an ​array of email addresses
 * ['john@example.com', 'jane@example.org'];
 *
 */
public function getCC() 
{
    if ($ccs = $this->getHeaderByKey('cc')) {
        $adrListArray = imap_rfc822_parse_adrlist($ccs, null);
        $ccs = [];
        foreach ($adrListArray as $item) {
            $ccs[] = $item->mailbox.'@'.$item->host;
        }
        return $ccs;
    }
    return false;
}

This code is using PHP’s imap_* functions to first see if the CC header is set in the .eml file, then the imap_rfc822_parse_adrlist function to parse an email address string. This is useful to normalize​ the output of an email address list. The getHeaderByKey either returns the string of the header or false.

After I got it working the temporary variable was really annoying me, so I next refactored to the following:

public function getCC() 
{
    if ($ccs = $this->getHeaderByKey('cc')) {
        $adrListArray = imap_rfc822_parse_adrlist($ccs, null);
        return array_map(function($item){
            return $item->mailbox.'@'.$item->host;
        }, $adrListArray);
    }
    return false;
}

That started feeling better, but I really don’t like that all that code nested inside the if.

public function getCC() 
{
    if (! $ccs = $this->getHeaderByKey('cc')) {
        return false;
    }

    $adrListArray = imap_rfc822_parse_adrlist($ccs, null);
    return array_map(function($item){
        return $item->mailbox.'@'.$item->host;
    }, $adrListArray);
}

Now it feels cleaner to me and could be further simplified by removing the $adrListArray temporary variable:

public function getCC() 
{
    if (! $ccs = $this->getHeaderByKey('cc')) {
        return false;
    }

    return array_map(function($item){
        return $item->mailbox.'@'.$item->host;
    }, imap_rfc822_parse_adrlist($ccs, null));
}

Personally, I think it’s cleaner than what I had the start, but even now I’m not 100% happy with it. I don’t like the $ccs variable assignment in the if statement, I think the method name should be changed to better represent this returning an array of email addresses. It’s not a single CC.

I think it’s a fun exercise writing out why you made the improvements that you did and thinking through how to make your code readable. I know this is subjective, but I find the last example easier to grasp vs. ​the first. What do you think? Do you see any other improvements that could be made?

Reading vs Audio Retention Rates

Today, I came across an interesting question on HN that asked, “Are there any studies about book reading retention rates vs. audiobooks?”. None of the answers that I have seen actually cite any studies, but it’s interesting to me on what some of the people say, most notably a user named Juvoni Beckford:

I’ve done some personal “A/B” testing on audio vs print for retention and found that I remember significantly less when listening to non-fiction content as opposed to reading it and the recall dropoff is very sharp.

I mainly use audiobooks now for mostly fiction and narrative strong content like history, biographies/memories, or communication around domains like sales, public speaking, marketing, and relationship books.

I found a lot more interesting things about being more strategical in using the right medium(print vs ebook vs audio) depending on the nature of the content I’m consuming as well as my energy levels

My results mirror his almost exactly and I started a similar system. If it’s a business or development book I buy the ​print version, ​if it’s fiction I go Audible, if it’s a classic that I know my kids might one day need to read for school I buy the print version. Rarely do I buy ​ebooks now and only for self-published​d tech topics. I think all this has to do with age and knowing that real books I can give away or let my friends borrow, whereas​ an ebook and audible all that is annoying.

Bloomberg: Traditional to Roth IRA Do-Overs Could Prove Costly

Ellen Stark writing about the new tax laws for IRA conversions:

The trouble with switching a traditional deductible IRA to a Roth is that you owe income taxes on the entire amount you convert. And while you have to make the move by Dec. 31, you likely won’t know that year’s full tax picture until you prepare your return. In the past, if the conversion pushed you into a high tax bracket or made your bill so high you couldn’t pay it, you could reverse the conversion, in what’s called a recharacterization. Same was true if the market dropped sharply after you converted, leaving you with a tax bill on investment gains you no longer enjoy. Starting with 2018 conversions, that escape route is gone.

Why the change? For one, over the next 10 years, the federal government expects to collect another half-billion dollars in taxes as a result. What’s more, this shuts down a strategy that exploited the grace period: converting multiple IRAs to Roths early in the year, investing each in different asset classes, giving all the accounts up to 21 months to rise or fall, and then recharacterizing the ones that lost money. Essentially, you could cherry-pick winners to save on taxes. “Congress didn’t want to discourage converting,” says Jamie Hopkins, associate professor of taxation at the American College of Financial Services. “What they really wanted to shut down was this tax-planning strategy.”

I’ve never heard of this conversion strategy before, and it still remains crazy to me that we have all these loopholes in our tax system and the only way to know about them is to have a highly​ engaged advisor or to spend hours upon hours researching how to best utilize the existing system.

Tiger Woods Birdie on 17 at Valspar

Today’s final round at the Valspar Championship had Tiger Woods in the hunt for the first time in forever. Tiger was down by two with two holes to play and you knew it was time for him to break out, but you weren’t sure if he still had it. Then on 17, he made that insane 40-foot​ putt.

As it went to the final hole it reminded of the time back when I loved watching golf. Tiger has always stolen​ the show because he is a closer. Today felt like the good old days before he went crazy. Alas, on the 18th he missed the closing birdie putt and finished second.

I think it’s good for golf that he is back ​and good for the fans. It brings back the excitement that I’ve not felt from any other player.

Laravel: Disable Timestamps on Models

A few days back someone sent me a message with an issue on all the old posts on Laravel News. It wasn’t a huge bug but to fix it I had to resync all the posts from the WordPress install and as I was running through them I noticed that all the updated_at dates were then out of sync. Technically they are correct since I updated each post, but I wanted to keep the original date.

Laravel provides the ability to set this on demand and I could just include it in my command and have it ignore updating each timestamp. Here is a quick example:

$post->content = $data->content;
$post->timestamps = false; // Dont change the timestamps on save.
$post->save();

Of course, if you don’t want timestamps at all you can disable it on the Model level through the public $timestamps = false; property.

Twitter wants to open verification to everyone

As reported by Recode on a Periscope Live Stream with Twitter CEO Jack Dorsey:

In a very casual Periscope livestream on Thursday, Dorsey said that he wants to verify everyone on Twitter, a continuation of the plan Twitter laid out a few years ago when it asked users to apply for verification online.

That program as been suspended since the fall, when Twitter got major backlash for verifying a few white supremacists. But it appears that Dorsey is open to relaunching some version of it once Twitter figures out how it should work.

“The intention is to open verification to everyone,” Dorsey said from a conference room at Twitter’s San Francisco headquarters. “And to do it in a way that is scalable [so] we’re not in the way and people can verify more facts about themselves and we don’t have to be the judge and imply any bias on our part.”

As someone who has a verified account, ​I’d love for Twitter to make it much easier to get. One of the bonuses of being verified is that in your notifications tab you get a subsection​ for “verified” which only shows notifications from fellow verified accounts. This would be great for filtering out the noise of bots, trolls, and fake accounts. However, not many of my friends are verified so it makes this tab useless.

I also never understood the original verification process. I was able to get it, but I have friends with many more followers, and more active that didn’t. Just like @laravelnews got verified but @laravelphp isn’t. Makes zero sense to me.

For Two Months, I Got My News From Print Newspapers.

Farhad Manjoo writing for the NY Times:

In January, after the breaking-newsiest year in recent memory, I decided to travel back in time. I turned off my digital news notifications, unplugged from Twitter and other social networks, and subscribed to home delivery of three print newspapers — The Times, The Wall Street Journal and my local paper, The San Francisco Chronicle — plus a weekly newsmagazine, The Economist.

I have spent most days since then getting the news mainly from print, though my self-imposed asceticism allowed for podcasts, email newsletters and long-form nonfiction (books and magazine articles). Basically, I was trying to slow-jam the news — I still wanted to be informed, but was looking to formats that prized depth and accuracy over speed.

It has been life changing. Turning off the buzzing breaking-news machine I carry in my pocket was like unshackling myself from a monster who had me on speed dial, always ready to break into my day with half-baked bulletins.

I actually thought about going to paper newspaper delivery a few months back and put out a tweet poll seeing if anyone else is doing it:

Not surprisingly, most people get their news online and I honestly didn’t want a daily delivery, which I know will end up with unread papers lying everywhere. So I decided to completely cancel all my newspaper subscriptions, subscribe to one weekly magazine (Bloomberg Businessweek), unfriend everyone on Facebook, and then just ignore it. If something important happens I’m sure I’ll hear about it.

From tuning out all the noise I’ve noticed a difference, but the biggest is how little knowing the news actually matters. I’d argue locally it matters more, but my local paper’s website​ is so bad I don’t want to waste my time.