“Thoughts On” journals

Derek Sivers has a blog post from back in January on the benefits of a daily diary and topic journals and this part is something I started trying:

There are certain subjects in your life you think about a lot. People, places, hobbies, health, plans, finances.

For each subject that you might have ongoing thoughts about, start a separate “Thoughts On” journal. Whenever you have some thoughts on this subject, open up that file, write today’s date, then start writing.

I’ve started doing this in my notes app and once I see something that makes me think I open it up and start writing.


Derek describes his thoughts on like this:

I find it so useful to keep my thoughts on each subject together, because I can see my past thoughts and current thoughts in one place. I can see how my thoughts on this subject have evolved or keep repeating. Sometimes I think I have a new thought on a subject, so I open up the file and write it down, then afterwards I see I had that same thought a year ago and had forgotten about it. If you care about your thoughts, keep them.

For me, each has been more of a rant. I see something on the internet and that enrages me so I write down all my anger. Then I’m done with it and I don’t have to think about it again. Next time you want to argue on the internet write it down and move on with life. I promise you’ll be happier.

If Else in SQL

Today I hit an interesting problem and when creating a report for an internal billing system. The system itself automatically bills each customer every year and we have two types of customers. One that pays with a credit card through Stripe, and another type that we invoice and their billing departments pay.

Because invoices take longer for us to be paid we always create the invoice 30 days before it’s actually due and for Stripe customers,​ we do it 7 days early. This way if anything goes wrong like a declined credit card it gives them extra time to fix it before becoming delinquent.

Of course, the side effect to this is it causes our stored “next billing date” to be 7 or 30 days off depending on the type of customer, and we keep the original date in case the customer ever decides to switch from one to the other.

With that setup out of the way, I needed to create a list of customers ordered by when they would be billed. Like all things, there are many ways to solve this but for this, I decided to do it directly through SQL. What I wanted to happen was if an organization is a Stripe customer then creating a “real_bill_date” set to 7 days before it’s due, otherwise create a “real_bill_date” to 30 days prior.

Here is the query I was able to create:

      organizations.stripe_active = \'1\'
          DATE_SUB(next_bill_date,INTERVAL 7 DAY)
      DATE_SUB(next_bill_date,INTERVAL 30 DAY)
  END AS real_bill_date,
  subscription_active = 1
  real_bill_date ASC

This uses SQL WHEN/ELSE clauses to determine what should be happening. Basically translating into “if Stripe is active, then subtract 7 days”, “else subtract 30 days”.

This is useful for the next time you think you have to do a query and then do a query looping each to get a calculated field. Yes, that typically works but is process intensive and can lead to timeouts. Doing it directly through SQL is usually much faster.

Own Your Narrative

In my local paper,​ there was a story about a guy doing something dumb, the internet found it and now the insanity has started spiraling. He was fired from his job, now getting death threats, and on and on. The article ended with a quote from him saying, “now when anyone searches his name this event will be the first thing that comes up and will continue to affect my life”.

This is a reminder of why it’s so important to own your own narrative. Have your own blog or website where ​you can control the SEO, you can respond to whatever event on your own terms, and bypass the journalist that have their own narrative that may not match your own.

Many (most) journalists​ are spin doctors and they already know the angle they are going to take on a story before they even contact you. They will take your quotes out of context and they will bury if that is what their story calls for. Without having your own medium to fight back you might be at their mercy, and that is not somewhere you want to be.

Plan For YOUR Users​

Today the CommitStrip featured this comic about losing touch with your users. It’s really great:


But it also made me think about the other side of this. If you are building something where your target market is someone really close to yourself then, by all means,​ take advantage of that. One thing that comes to mind is fonts for code blocks on your personal blog. You are probably save using source code pro or something that isn’t preinstalled yet many developers have it installed.

Of course, there are many more examples of how you can take advantage of what you target user will be using and it never hurts to plan for them first with simple fallbacks for the others.

Relaunching dotdev

A few years ago, 2016 according to my projects page, I launched a site named dotdev. The original goal was a developer magazine, but that didn’t really work out, so then it turned into a Medium publication where I curate web development tutorials. Due to Medium’s constant changes, I decided sticking with them was not a great idea so I moved all the articles I had written over to a WordPress install and just left it sitting.

I’ve been thinking about it ever since and finally decided its time for me make use of the site and I’m going to officially relaunch it on Monday. Instead of developer tutorials, it’s going to be a site dedicated to bringing you cool developer tools and news. There are so many neat apps, code, and products that I come across that I’d really love to share them but I don’t have a great outlet for that. So dotdev is going to be that place. The goal is to curate and highlight products that I think are cool and each post will be short and to the point, so it’ll be easily digestible​.


The site will continue to be on WordPress and I’m using Tailwind CSS to create the theme with the help of Jason Beggs. I wanted something super minimal and the goal right now is to just get content out and stick with it. I plan to improve it as time goes on and I’m setting little milestones so when I hit one I’ll spend more time improving it.

If developer tools and resource are something of interest to you be sure and follow dotdev through RSS, Twitter, Facebook, or Email.

Sleep, Glorious Sleep


For the past month, I’ve started going to bed and waking up at set times, and it’s been amazing. Every night 10 PM is bedtime, lights out, and no talking, then every morning 6:30 AM is wakeup time. I’ve been really consistent and started using a sleep app as a way of tracking it.


As you can see, I cheated a little over the weekend, but since starting this habit, I’ve felt the best I have in years. I’m no longer tired every day, and in need of a nap. Instead, I feel great and now that my body has acclimated at around 9:50 PM my body tells me it’s bedtime.

We all know sleep is essential but if you’ve been struggling, try going to bed and waking up the same time every day, even on the weekends. I know you’ll lose a little bit of reading or work time, but it’s worth it.