I don’t know what happened to the week. Just yesterday it was Tuesday and I just finished writing down my ideas for the ninth. Now it’s the fifteenth? It went by so fast! At this rate, I’ll be done in no time!

(This is something I’ve said to myself almost every Friday since I can remember.)

2018/10/09

10 Things I Need to Brush Up On

Once you’ve learned something, you are not guaranteed to “know” it forever. If you don’t use it, you lose it. This list contains things I’ve either already learned, and am beginning to get hazy on, or things I’ve touched on but would like to learn more about.

Algorithms
Data structures

CompSci 101: algorithms and data structures. There’s no way you can get through any degree program without learning these. And just about every software engineer interview is going to cover them. Almost every article out there about interview prep spends a great deal of time on brushing up on these two things.

Let’s be honest: in 90% of real world work, you won’t really need to memorize algorithms or data structures. Most software developers work on line-of-business apps, responsible mainly for transforming data into a presentable format. Most modern languages have things like Linked Lists or Stacks and Queues built into their standard libraries.

You don’t need to memorize how to write and traverse binary space partitions. You do need to be able to generalize problems and give accurate estimates on the cost of the code you’re writing, and judge whether it’s right to use a stack or a queue for some set of data — something which doesn’t require rote memorization of implementations, but a different kind of skill altogether.

In any case, I’d like to brush up on the specifics of these things, and I think it should be a regularly scheduled task. Once per year, or every six months, just breeze through ’em.

Quaternions

If I ever want to really get into the nitty gritty of 3D graphics, this is a must.

SOLID Principles

SOLID is a mnemonic designed to help remember a set of principles that are intended to allow you to write better software.

When writing code, I tend to work in two “passes”: first, get it working; second, make it clean. Perfect is the enemy of good and it’s counterproductive to try and write great code when you’re also trying to solve an actual business problem. But once that problem is solved, it also never hurts to take another pass through the code to make it more readable and more efficient where you can. After all, the best code is code that’s easy to read by humans.

Keeping these principles nearer to the front of my mind (along with others like Functional Core, Imperative Shell) while going through this process surely couldn’t hurt anything.

Lambda calculus

From a certain perspective, every time you code anything you’re using a form of lambda calculus.

Being self-taught, I’ve found that the hardest thing to learn on your own is math. It’s easy to pick up a programming language and build a thing. But the “higher” you go in math, the harder it gets when you’re on your own.

I think focusing here would be relatively easy: it has clear application in functional programming. And reasoning about programs as sets of mathematical functions would be an interesting exercise. One that I think would make me a better developer. Mocking up implementations on paper using this kind of approach would certainly be a little more rigorous than using pseudocode.

Set theory

I like working with databases. Sometimes it really feels like I think in SQL.

Set theory is another applied-mathematics case for me. After all, relational database design is “just” applied set theory.

I’d like to learn the actual mathematics behind it all, though.

Relational database design

It seems like many startups that grow big end up learning the same lesson: you cannot beat a good database. Mongo may be fine for quick weekend mockups, but if you’re looking for anything with real performance and reliability, you need a real database. (Even when Mongo or its like are used effectively at scale, you’ll find it’s because the data is modeled in a relational method.)

I’ve designed a small few in my time. It’s always something that you look back on, later, and know you could have done better. Or, at least, that you could do better now.

As with most things in life, I don’t want to look back on something I did a while ago and think, “yeah, that’s about as good as it gets.”

So, as with SOLID above, this is one of those things I’d like to pursue on a regular basis.

Applied / effective altruism

What’s the best way for me to use what I have to help others in the ways that they need the most?

Narrative breakdown & analysis

In my other spare time I like to write fiction. I think in order to be able to craft a truly great story, you need to actually know how stories function on a mechanical level. And also on an emotional level. You have to know how to earn catharsis (and what catharsis really is); how to truly challenge characters without making it seem like you’re just lobbing awful shit at them; that the Hero’s Journey was descriptive, not prescriptive, and everyone is doing themselves a disservice by using it like a formula.

So I want to get better at the art of viewing things through a critical lens.

Semiotics

Semiotics is the study of symbols and their interpretations. Picture your high school English class: “What is the significance of the well in this story?” “The well is the symbol of the unconscious; that it’s dried symbolizes…” This scene from Twin Peaks: Fire Walk With Me is a good example (and jab at) semiotics in practice.

This is one of those rabbit holes of information you could dive into and never pull yourself out from.

2018/10/10

10 Ways to Be More Frugal / Financially Savvy

There’s nothing in this list that you can’t find in just about any FIRE blog.

  1. Pack lunch at home
  2. Pay off credit cards entirely
  3. Pay extra on mortgage each month
  4. Don’t buy new when you can help it
  5. Buy less meat
  6. Find a lucrative side project
  7. Cut back on energy drinks
  8. Stop browsing sales
  9. Drink water instead of soda
  10. Pay yourself first

I’m guilty most of all of browsing sales because I want to buy something, not because I need something.

2018/10/11

10 Personal Rules

Be honest

It’s trite, but true: honesty is the best policy. Sometimes you may have to get diplomatic about it. But when you tell the truth, you don’t have to remember anything.

Love openly

Nobody in your life should ever go without knowing exactly how you feel about them. If you love someone, tell them. Tell them when you feel and how you feel. Everyone wants to be loved and to know that they’re loved. So tell them. Hug them. Smile.

Don’t be afraid to fail

Breaking something is the best way to know how it works. Failing is the best way to find the route to success. Fail early, and often, to find your way back to the path.

Procrastinate judiciously

When you feel like procrastinating, this is your brain telling you to take a break. Listen! But don’t dally. It’s easy to take that break and then say, “Well, I’m having too much fun to quit my break now.” Just take a few minutes, then return to doing something.

Try harder to keep in touch

Sometimes I feel like the absent-minded professor. I have too many thoughts in my head, too much I want to do and too much I’m doing. It’s easy to see a text from a friend and think to myself, “I’ll respond in a few minutes after this.” And then I look at my phone two days later and the text is still there, unresponded.

Yes, they could always call — but so could I. This rule is more of an I wish statement, I guess. I need to make a more conscious effort to stay in touch with my friends.

Don’t ignore phone calls

Especially from numbers you don’t know. It could be a telemarketer. Or it could be an opportunity.

Read every day

Not blog posts. Not Reddit, or Twitter. Read a real live book. Concentrate on it. Long form attention is a muscle, and it must be exercised.

Go outside more often

Get some of that Vitamin D.

Never stop learning

When you become complacent, you die. Maybe not literally. But you will be supplanted.

Be positive

Don’t sweat the small stuff. And it’s all small stuff.

2018/10/12

Ideas

Coffee of the month club

For a nominal fee, receive a few sets of carefully chosen beans in the mail every month. One dark roast, one medium roast, one blend.

Tea of the month club

Same idea as above, but with tea.

Mentor finder service

A place to find someone to help teach you, or to sign up to help teach others.

Machine-learning powered watermark remover (don’t do this)

This would be evil. But technically possible.

Smart pilot light

I had an incident this weekend where the pilot light on my water heater went out and I found out at an inopportune moment. It would be a rare instance where I’d support a “Smart” device to alert me when the pilot light goes out.

Automated raffle entry

A bot to crawl the web for raffles and enter them for you. Only once. Or maybe one that somehow listens to local radio and shoots a text off when they give the magic word.

Distraction-free writing IDE

Not just a “darkroom” editor. Something that silences everything on your PC, prevents any notifications from ever disturbing you, even temporarilly disconnects your network. You set a time limit. It shuts you off from the world.

Google-free web analytics platform

To see the details on your visitors without Being Evil.

Color-blind browser plugin

Detect hues that are difficult for folks suffering from color blindness and inject some kind of pattern to the objects, or shift the hues, to make them more distinguishable.

C# cookbook

A book of design patterns, common code snippets, etc., for quick reference.

2018/10/13

10 Questions I’d Like Answered

If I found a crystal ball, I might ask it some of these. And I would most likely be unable to decipher the answer I receive.

  1. Will we ever “solve” climate change?
  2. Does alien life exist, and will we ever contact it?
  3. Is there a way to establish a canonical method of ethical consumption?
  4. Can addiction be cured, or only replaced?
  5. Why is it so easy to accept Evil in the abstract, but not the concrete?
  6. Can we ever go back to who we used to be, or is it useless to try?
  7. Is mental health heritable?
  8. Is mental health curable?
  9. Will we ever physically explore the stars?
  10. If we “cure” death, would those cured eventually lose their humanity?

2018/10/14

10 Things I Value More Than Work

  1. Freedom
  2. My time
  3. Sleep
  4. Creativity
  5. Solving problems
  6. Meaning
  7. My sense of humor
  8. Conviction
  9. Friendship
  10. Having a home

2018/10/15

10 Things I Want to Be True in 10 Years

Things that I can do something every day to get closer to making a reality.

  1. I will be published
  2. I will have made significant strides toward financial independence
  3. The world will have enacted controls to account for climate change
  4. I will be married
  5. I will have founded or co-founded my own business
  6. I will have seen over 3,000 films
  7. I will have read over 20 books per year
  8. Myself and my friends will have settled into lives with which we are happy
  9. Violence will continue its downward trend in the world
  10. Lab grown meat will become more widely available

There were a few times I came close to missing a day. And to be honest, I did miss one — then I filled it in later. You may be able to guess which one.