Leave the Dead

I was traveling through the dark woods. I had started my journey alone, but as is natural I fell in and out of various groups and with various companions. At times I camped alone, and at times the campfire was loud with merrymaking and good company.

As I traveled through the swampy part of the woods, I began to have a regular set of companions across my travels. We traveled during the day and made merry at the campfire at night. Occasionally a companion split off and rejoined us later, but for the most part we were a constant. It was a pleasant sense of normality compared to the rest of the journey, and I was glad to have a sense of permanance.

Read more →

Attention Hijacking and Supernormal Stimulus

Attention Hijacking and Supernormal Stimulus

We can’t help it. We’re browsing the internet innocuously and some article grabs us: “Jim Carrey Sickened by Will Smith’s Oscar Win Standing Ovation.” One article quickly becomes ten more.

We quickly find ourselves on social media embroiled in arguments about the latest JK Rowling tweet. The arguments beget more arguments. Hours pass without us noticing.

We turn to porn and find we can’t just look away. It’s not about getting off, it’s about consuming as much as we can. We keep needing to find one more video. There is no saturation point.

Read more →

The Toolbox Metaphor and Blame

The Toolbox Metaphor and Blame

A toolbox is your collection of tools to solve a problem set. Most people own a literal, general purpose toolbox. Some people own several toolboxes, specialized for solving specific domains. I refer to this as the toolbox metaphor: a collection of different tools for solving problems. Though I frequently use the toolbox metaphor when talking about skill building, it applies to the tools we use to self analyze as well.

Read more →

Guide Rails and Guard Rails

Guide Rails and Guard Rails

A guide rail is the thing that keeps a tram or roller coaster on the right path. It limits the carriage to a single correct course of action. If the tram or roller coaster is not following the guide rail, something has gone wrong.

A guard rail is the thing along highways and other roads. It keeps you from going into danger. It doesn’t dictate your path, but it blocks off dangerous paths.

Read more →

Intentional Slowness for Better Learning

Intentional Slowness for Better Learning

When I was an amateur hiker I frequently thought to myself that I should be the one who walks in front of the pack. After all, I can hike very quickly. I can easily take the lead and move the entire group quickly through the landscape. As I said, I was an amateur hiker and was both foolhardy and well over-estimating my skill.

As any experienced hiker will tell you, this is a terrible idea. Hiking is not about going fast, it is about moving slowly and enjoying yourself. Having the most quick person lead is a good way to turn a hike into a death march for the slower members of the group. Instead the slowest person in the group should be the one leading and setting the pace. This ensures nobody is left behind and the group moves as a single unit.

Read more →

How I Store Data

How I Store Data

I have a problem when it comes to data - I have too much of it. I’ve been burned multiple times by losing access to some piece of content that was online. I’ve also lost data to a cloud provider changing policies, locking my account accidentally or having their own data loss.

So I took it upon myself to own and backup all my own data. So far that’s actually gone really well, and as we’ve seen more and more privacy issues stemming from the cloud it’s reinforced that decision.

Read more →

The Campfire Metaphor for Friendship

The Campfire Metaphor for Friendship

So you’ve spent a long day hiking through the woods. You’re tired, hungry and want to eat something other than granola. It’s getting dark and it’s getting a bit cold.

You find a small clearing and remove any debris before creating a small campfire. It’s just some big sticks and tinder, no need for a roaring flame when it’s just you. You put down your bag and start enjoying the warmth when you hear a set of footsteps.

Read more →

A Collection of Advice

A Collection of Advice

Most everything I’m about to say here is obvious to someone - but the sum of it is (hopefully) not obvious to everyone. This is kind of a catch-all of the little advice that’s too small for its own entry but still useful. None of these are “life hacks”, just sane advice.

Grooming

  • Use a real facial cleanser when you shower and wash your face daily. The exact brand and whatnot doesn’t matter, but the improvement of using a decent facial cleanser over just bar soap is significant. Most of these are low cost, come in endless varieties and will improve your face.
  • Bar soap is cheaper, just as effective, and stores way better than liquid body washes. It also usually has much less scent on it.
  • Learn how to file your nails correctly and file them immediately after you clip them. No more snagging and tearing fingernails in the gym or during boxing.
  • Buy some decent stainless steel (preferably Japanese) nail clippers too, and stop leaving them in your shower.
  • Regardless of what you shave, Dorco razors are what you should be using. Dorco actually supplies the razors (and handles) for most expensive mail-order razor services, but you can buy their direct brand very cheaply and with the same quality. Dorco is almost certainly what your barber uses for their shaving blades.
  • Shaving balms (really, any of them) will help if you tend get razor burn. Many of them tend to be strongly scented for better or worse.
  • Use a good shaving cream. It’s worth buying a half dozen from your local store and finding your favorite since there’s actually a lot of variation between shaving creams.
  • Buy good scissors for any hair trimming you do. You should be spending at least $40 or so, and the scissors should be sharp enough you can easily clip hairs with no force. Good scissors can be sharpened by the same folks who sharpen your kitchen knives.
  • Find your face shape and groom your hair and facial hair accordingly.

Cooking and Nutrition

  • Packaged, prepared foods are significantly worse for you than you making the identical dish at home. If you don’t believe me, check the nutrition labels next time you go to the grocery store. If you have some junky foods you like but want to slim down some, just recreate them at home and watch portion sizes.
  • When you’re at the grocery store you want to buy raw proteins (meat, fish, tofu, etc), raw vegetables (it’s fine if they’re pre-trimmed or washed) and basic carbs (dry pasta, grains, rice, etc). Extremely cheap, very healthy and tastier than a tv dinner.
  • The basic recipe for a decent meal is a carb, a protein and a vegetable. Ideally you mostly want to fill up on vegetables, but carbs tend to be cheap and easy. One pot meals (either in an Instapot or just a literal pot on your oven) can be assembled in about twenty minutes for a few dollars, can feed an army and are very healthy.
  • The very fit and the supermodal skinny kind of folks eat pretty much how I just described, but smaller overall portion sizes and they skip the snacks.
  • Alcohol, candy and sweets, and fats (eg cheeses) are calorie dense. You can have them, just watch quantity. I find I have better self control when I regularly allow myself to have a small amount - a bit of ice cream after dinner daily.
  • Whipped cream has very few calories and is very sweet. It goes well on almost everything, and whipped cream and plain fruit is a pretty solid diet dessert option.
  • When cooking, don’t be afraid of high heat. High heat is how we add texture to dishes. Salt, Fat, Acid, and Heat are the levers to making food taste good. Especially don’t be afraid of acids - high quality vinegar is cheap and life changing.

More Cooking Advice

  • Cast iron cookware is indestructible, very cheap (and used cast iron is perfectly good) and will outperform any $100 or $200 cookware you can find on the market in terms of heat retention and final product.
  • Have at least one good kitchen knife and treat it well. Victorinox (makers of the swiss army knife) have a series of knives called the “Fibrox” that are cheap and mainstays of most commercial kitchens.
  • Preheat. Preheat your skillet before you put stuff in it. Preheat your oven before you put food in it. It’ll make food stick less and give better browning.
  • When it comes to cooking tough things, whether it’s kale or barley, you can either use a bunch of time or add acid. You want to add acid. Apple cider vinegar adds a nice tang, white wine vinegar enhances richness and tomatoes start acidic but become sweet when sufficiently cooked.
  • The slow cooker is the lowest effort way of cooking and it consistently produces some of the best results. Add ingredients, cover with liquid (usually broth), cook a few hours until done.
  • Sous vide is how expensive steak places make amazing steak. It’s also extremely easy, works for almost every meat and vegetable, can be very healthy and is very convenient for bulk cooking lots of food. Only downside is initial cost and the need to plan ahead a bit.
  • If you want to meal prep but need variety, use different sauces for different meals.

Stress and Life Management

  • Keep a journal and write in it frequently. If your entry is the days date followed by the word “fuck”, that’s fine - just write. When you go to write your next entry, read your last one. Look for patterns.
  • Exercise is the single greatest stress reliever, it has no downsides if done correctly, and it will give you more energy and address many health issues. Find the exercise you want to do and do it - swimming and martial arts are both a lot of fun.
  • Melatonin is one of the most effective, natural sleep aids. It’s sold at every grocery store and pharmacy over the counter, is cheaper than gum and has no habit-forming component. It’s effects can be neutralized by looking at a bright light, including sun light. Take 0.5mg (yes, that little) an hour before bed and put away any screens. Further Reading. Don’t combine melatonin and alcohol.
  • Dedicate an evening a week to intentional downtime and relaxation. It’s a great time to write in your journal, read something inspirational to you, or just listen to a bit of music. Turn off your phone if you can’t resist social media or the news. Avoid TV and movies.
  • Your phone should generally be dark, silent and out of sight. Turn off all notifications, disable all sounds, remove animations and keep your home screen free of tempting apps or timewasters. Android, iOS.
  • Alcohol doesn’t make you less stressed or anxious. Alcohol is a mood enhancer, and like all mood enhancers you will feel worse sobering up from it than you felt before you used it. Think of alcohol as a drug that delays stress but with an added tax. Alcohol will also trash your sleep (which will make you more stressed as well..)
  • A lack of sleep, even a really modest lack of sleep can have major health consequences. Small sleep deficits result in significantly impaired decision making. Chronic insomnia results in much higher risk of cardiovascular and stroke events. Stress impairs sleep, impaired sleep causes stress.
  • Your bed is for sleeping and having sex. Anything and everything else (work, television, twitter) is forbidden in bed. Your bedroom should have no screens, it should have no light at bedtime and it should be relatively silent. Fans help drown out noise quite well, and actual whitenoise machines are cheap.
  • If you can’t fall asleep after about an hour of trying, stop trying. Get out of bed, go to another room, turn on a light and read a book for twenty minutes. Try to go to bed again. Repeat as needed.
  • Social media is a trap. It’s designed to keep you “engaged” by showing you controversial content that will get you riled up. “The only winning move is not to play.”

Finances

  • Never tell someone how much money you make (with a caveat1) or how much you have. At best you’ll inspire envy, at worst you’ll become a target.
  • You should never pay for banking services. Avoid banks with too many fees. Consider a credit union. Always check the fee schedule before opening an account.
  • Never carry debt on a credit card if possible. Avoid high interest loans. When paying off debt, pay off the highest interest debt first.
  • You can never out-earn bad spending habits. Or put another way, it doesn’t matter how much money you make, you can always spend it faster than you earn it.
  • Keep 6 months of expenses in a savings account. Don’t touch it. It’s not a vacation fund, it’s not a Christmas fund, it’s for life or death emergencies. Rebuild it as soon as you can upon use.
  • Your job requires you to work for your pay. Passive income on the other hand generally doesn’t require much effort or time once established. Building passive income is not easy but is very valuable.
  • Never co-sign a loan or mortgage unless you are willing to be responsible for the debt in full. No, really just don’t.
  • Expect loans to family or friends to be unpaid. Never loan more than you are willing to give (or put another way, never loan more than you are willing to lose). Always get loans in writing - but realize enforcing them will lose you a friend or family member.
  • Everything has a cost, not only an upfront cost, but a cost of maintenance and upkeep. Include this in your math. Everything has a lifetime, and you should think about the lifetime cost of everything you buy. The cheapest option is always not buying something.
  • It is often better to spend more to get a better product the first time. “Buy once, cry once”. When you don’t know what you need or want, then you should experiment with low cost options first.
  • Never trust a financial advisor if they aren’t acting as a fiduciary.

I’m not a lawyer, this is not legal advice. The following is my layman’s understanding.

Read more →

Authentic Selves and Pop Philosophy

Authentic Selves and Pop Philosophy

We often hear people talk about wanting to find their true selves, or to be their authentic self. This often coincides with a big life choice like leaving college or going on a months long road trip. Life gets too confusing and you just need to align with your own internal truth through some mystical, journey-like experience.

This mindset isn’t foreign to most of us. When our life circumstances change, it often feels like we change with it. Many people feel a nagging sense of doubt, of not being sure why they make the decisions they do, or why some things make them feel different than expected. There’s this concept that external forces (work, social constructs, whatever) keep us from truly knowing ourselves and if only we could be in touch with our authentic inner selves, then we could rise above our doubts and problems.

Read more →

Hello esp32: getting started with the esp32 and micropython

Hello esp32: getting started with the esp32 and micropython

The esp32 is a small 32 bit realtime microcontroller with 160mhz of processing power, several megs of flash and last but not least, bluetooth and wifi that’s available for about $6 a pop and can be programmed using both the Arduino language and MicroPython. Today we’ll be going through the setup procedures including how to flash firmware, getting your code onto it and the available peripherals and ecosystem.

What esp32 should I buy?

There are dirt cheap ones on amazon $ and this includes ones with different peripherals sets like oled screens $ and lora $ . While you can go bottom of the barrel here, I wouldn’t go any cheaper than the “HiLetGo” brand and even those tend to mediocre quality.

Read more →

Fighting Scams

Fighting Scams

Photo by Josh Appel on Unsplash

If you ever find yourself the victim of an internet scam, the first thing to realize is that it’s ok, and you are not the first nor last person to fall victim to a scam. Scammers trick millions of people successfully, and though it can be embarrassing, it’s important to take some steps after being scammed both to recover your money and more important to harm and stop the scammers.

Read more →

Crockpot Pork Tip Sirloin Roast

I regularly use the crockpot for larger cuts of meat, and it’s fantastic for both pork and beef. I’m going to show the process I used for a pork tip sirloin roast (think large tenderloin with a nice fat cap), but the same general method applies to other cuts and even beef as well, though you may want to change up the seasoning a bit.

First we need to get a pan ripping hot. I like to use cast iron pan like the lodge skillet $ but it’s not required. If your stove top has different burners, choose the largest one available and set it to the highest setting. Yes, the actual highest setting where it resembles the back of a jet engine. You shouldn’t use any cooking spray or oil, just let the pan preheat.

Read more →

Cookies in the Apocalypse

Cookies in the Apocalypse

Photo by Erik Mclean on Unsplash

So in case you haven’t read the news lately, apparently there’s a pandemic going on. Whether you’re sitting on a stockpile of toiletpaper and scarfing down freeze dried peas, or pacing panickedly hoping you can still find at least a napkin to wipe your butthole with, this seems an appropriate juncture to talk about sensible preparedness, isolation and planning for volatility.

Sensible Preparedness and Cooking in the Apocalypse

Keep some canned food around, few extra jugs of water and a couple of candles in the kitchen drawer. These are the things that most of our grandparents told us and they’re part of the realm we’ll call being sensibly prepared. Ideally you’ve already been doing these things, but if you haven’t now is the time to do them slowly. Get a few cans with each grocery run, refill a few used milk jugs with clean tap water and make sure your basic supplies for adverse situations (like the power being out) are as they should be.

Read more →

Moderating Communities

Moderating Communities

Photo by Anna Earl on Unsplash

Moderating a community is more like gardening than it is like engineering. It’s an art of balance and having a light touch rather than having an iron will and designs for the future. Formal moderation is important for some communities and entirely unneeded for others. When a community decides to have moderators, it should begin by having community standards.

What the law says and what a community says can and will differ when it comes to moderating content and setting acceptability. I believe the law must respect a fundamental right to free speech and any limit on free speech is extremely difficult to justify. Outside of direct actionable calls to violence, people have a legal right to speak as they please1. Of course, having a legal right to speak doesn’t mean a right to speak in a particular venue or community. Communities often times have more strict standards. If your community is geared towards young children discussing a game, then obviously the allowable content is more strict than a community of adults discussing their dating lives.

Read more →

TS80 Soldering Iron

TS80 Soldering Iron

The TS80 is a portable, somewhat finicky Chinese manufactured soldering iron which is powered over a USB-C port. It heats quickly, holds its temperature very well, is extraordinarily handy and is one of my favorite soldering irons to date. If you’re still using an old corded unit and you’re like me and frequently doing small amounts of soldering in weird places, I encourage you to pick it up and give it a try. There are several kits available on Amazon but I recommend buying a minimal set $ to start with and providing your own charger (or at least buying a decent one).

Read more →

Ends vs Means

Ends vs Means

Photo by Dominic Romero on Unsplash

Think of the most manipulative person you know. You know, the one who spreads rumors to create drama, or the person who knows just how to press your buttons to get you to do something you don’t really want to do unwittingly.

It’s pretty easy to get a sense that the things these people do - even if they don’t result in any harm - are bad. They kind of set off that moral “bad smell” scent that hints at us that something’s wrong. It seems kind of hard to understand why these things are bad without looking at the consequences, and yet it’s possible to condemn manipulation regardless the outcome.

Read more →

Nuance, Binaries and Models

Nuance, Binaries and Models

Cover Photo by Devin Edwards on Unsplash

We’re surrounded by binary choices in our world: the light switch is on or off, we can have a glass of wine or not. We oftentimes want to apply this idea to other situations: our friends like us or not, our work is good or bad. The truth is very few things are actually binary, and almost everything in the world exists as a composition of states - in other words, reality is complicated.

Read more →

A Primer on Functional Debate

Debate not fighting

All debates are arguments, not all arguments are debates. We aren’t here to address mindless shouting or simply attacking the other person. In a debate each side has a specific claim they’re trying to defend and advance, and is putting forward evidence for their side or rebutting evidence on the other side.

Why debate?

When two people disagree, why should they bother talking through the merits of each argument and trying to solve it? Why not just shrug, agree to disagree and move on?

Read more →

Understanding the power of Linux, as a Windows user

Coming from the perspective of a Windows user, Linux may seem entirely alien under the surface. Windows favors a batteries-included, gui driven workflow where programs tend to be all inclusive. Linux favors a command line driven workflow, where only the basics are available, and programs are small and meant to be chained together.

The Kernel

This disparate approach is due to many differences, but there are two main ones at play. The first is the design of the kernel, the heart of the operating system. Windows favors a hybrid kernel which incorporates some features into the heart of the operating system directly and some features outside the direct kernel being heavily necessary. Linux on the other hand favors a unikernel approach which contains everything for a valid (but not very useful) operating system.

Read more →

TP-Link Smart Plug IoT Button v0

So my office lamp is in an awkward location behind a sofa. Instead of re-arranging my office furniture like a sensible person, I decided instead to just install one of those cute $20 tp-link plug that let you toggle stuff via a smart app. Of course, it turns out that the smart app takes an eon to load and I only have my phone on me about half the time.

So the answer of course, instead of re-arranging my office furniture, was to dig through the spare parts bin and make a physical button for my now smart lamp. I chose a particle photon since it speaks UDP (and has a nifty control panel, and I had one.) However, unlike the fancy new models from Particle, this doesn’t have any support for a lithium polymer (lipo) battery so we’re going to use a tp4056 package from Amazon to give us the ability to recharge our LiPo and not draw too much current from it at once. We’ll also need a button.. since that’s kind of the whole bit of this.

Read more →

Hello World 2.0

Hello again world! Blog 2.0 is launched. This was a move from Jekyll to Hugo using a tweaked hello friend theme.

Specifically I:

  • Removed the byline (all posts are by me)
  • Fixed the trailing dash after date
  • Fixed short blog post content not being displayed on post lists
  • Other little tweaky things

More important, the old blog required some git commands to submit new blog posts. That was fine when I was at my laptop, but no good if I wanted to compose from my phone (at least, not easily). My plan is to set this up on a CI job that runs hourly - that’ll also enable me to future date posts and have them show up when appropriate. I’m not entirely sure where I want to drop the markdown files - maybe Dropbox is fine but I tend to not hand out api access to my dropbox.

Read more →

Failure

I’m going to give a theory on why people tend to be afraid of failure, back it up with some anecdotal evidence and then give a recommendation on how you should react to failure in general.

Why we fear failure

When you’re in school and you go to take a test or do homework, the general understanding is that you either pass or fail. It’s a binary choice that once made, is mostly irreversible.

Read more →

Release versioning

There are several different strategies for versioning releases. I’ll cover a few of them quickly.

Semver

{major}.{minor}.{patch}

(or to be a bit more clear)

{breaking}.{feature}.{fix}

Add in a new feature? Do a minor bump. Change an API? That’s a major. Pretty common, pretty easy, well supported.

The Git Hash

This is my preferred strategy and one I use for the iris chatbot. Since there are multiple people releasing multiple versions from different branches she doesn’t have a “golden release”. Instead each release is just the current git hash. This is a bit messier but automatic and avoids versioning confusion.

Read more →

Pax

Spent the weekend at Pax which was amazing but came back to some disappointing news.

Pax South

Pax South was amazing. It always strikes me how friendly Pax is, despite being a massive event. The crowd is really kind and it’s an awesome experience. Lots of great games (especially Indie) games coming up. Looking forward to Dreadnought especially. Lots of great merch as always, including Musterbrand and Sanshee.

Read more →

How to talk about tech: a primer

Everyone has read a blog post that starts with a grand claim such as “MyLatestDB is the fastest database ever!”, or more than likely, “LatestHatedTech is the worst thing ever made ever.” It’s probably pretty obvious the issue with this and instead of ripping apart this approach I’m going to recommend a better one. My goal here isn’t to be exhaustive, but provide a general guide of how to write blog posts about tech appropriately.

Read more →

Quick n’ Dirty: Keyboard Navigation

I was recently on a comic website and was struggling heavily with their poor UI layout that made navigating pages quite painful so I wrote a tiny tampermonkey script to add in WASD style navigation. This particular site has both between issue and in-issue Previous/Next, so there is a “next page” and a “next comic” button.

For compatibility this is written as an ES5 IIFE with ye-olde dom events instead of some sexier DOM 3 tricks. Links are grabbed by text content which is expensive but this particular site didn’t have consistent classes or ids. I use focusin and focusout to make sure we aren’t in a textfield when navigating so you can still use search and whatnot (and it’s way cheaper/easier than patching every input with custom events and pretty well supported in most browsers).

Read more →

Open Data

So one of my big focuses in a lot of my projects is less about open sourcing my code (though that’s important) and more about open sourcing my underlying data. To be honest most of the time while I like my code, it’s not really all that special - just about any competent developer could reproduce something close enough. What is special is my data which enables my project.

This idea of data being important is a double edged sword. On one hand it means that when I can open source data then other developers are improved by it. On the other hand, open sourcing anything is that much more of a battle. One of my recent battles has been trying to get the Dungeon’s and Dragon’s Fifth Edition Systems Reference Document (basically, the open source version of D&D) into a consumable data format (ie JSON) instead of a PDF.

Read more →

This blog & the tech that powers it

This blog isn’t all that interesting tech wise, but I wanted to take a moment to cover it for those with a passing interest. It’s a jekyll core with a very hacked on midnight theme, currently using jemoji for the :heart:s, :poop: and :laughing:.

Code is styled with the very fancy and very awesome Fira Code font so that things like this are a thing:

'use strict';
const myFunc = (...args) => {
  if(args.length >= 1 && args[0] === true) {
    ...
  }
}

(Those weird compound symbols are called ’ligatures’ and they’re a neat new-ish html5/css3 feature.)

Read more →