Flat Pat

Pat is flat.
And that’s that.
All of Pats friends are fat.
Pat was born to a couple of famished expats.
The fat pack won’t let Pat into their frat.
He tried to show them that he could scat; but on his face they spat.
Pat grows up resentful and becomes an autocrat.
Drat.
He implements new laws stat. Now everyone has to be flat.
And that’s that.

Hacking The Rate of Self Improvement

What You’ll Learn

  1. Why change is slow
  2. Why planning too much is bad
  3. Using the Pareto principle to grow faster

Rome wasn’t built in a day.

“Where is that saying from?” I thought to myself. After a quick Google search, I found out that the saying originates from a French phrase from 1190, written in the collection Li Proverbe au Vilain. I love this maxim. To me, it represents the slow motion of a stream that erodes the face of a mountain. It represents the slow formation of the Earth at the infantile stage of the Solar System over 4 billion years ago. It represents a patient parent, waiting for the day that their young child’s violin lessons will create the next concerto.

I then took a step back and marveled about how easy it was for me to find that information. In fact, a lot of things are pretty easy in this day and age. I’m rarely ever bored, because I can always distract myself at a moment’s notice with my phone. The irritation from boredom is easily remedied by opening Reddit or Instagram. What does that make me? Impatient.

In some ways, being impatient is a really good thing. Hopefully this will come as a surprise to no one, but death is inevitable. Time is limited for us humans. Time is even more limited in the years where our minds can contribute (assuming the brain fully matures at 25) meaningfully to society. Being impatient keeps us hungry, hungry to solve life’s problems before we buy the farm.

I became interested in the idea of finding a happy medium between the guarantee of change over large periods of time, and being able to experience rapid growth. How do I make measurable changes in myself in a fair amount of time? What if I don’t want to wait a whole generation to become happier? What if I don’t want to spend five years in school pursuing a graduate degree to have a piece of paper tell me I’m an expert?

Planning (in correct doses)

In machine learning, there is a problem set known as overfitting. Overfitting happens when an algorithm that describes and predicts data is much too complex.

As an example, imagine we are trying to decide what to eat for dinner. We had pasta yesterday, so we don’t want pasta. Oh, and my partner just started Keto, so we can’t have pizza. I’m not in the mood for tacos. But General Tso’s has too much salt. Down the rabbit hole we go. We could spend weeks mulling over what to get for dinner out of the near limitless options. And in the process, die of starvation. By trying to acknowledge every potential data point, we end up making a worse decision.

Often, overfitting can be attributed to zealousness. We have data, we see what didn’t work before, and we analyze, analyze, analyze. We all know people who are compulsive overthinkers. People who spend their waking hours trying to predict every single outcome. This type of thinking is necessary to a point. Forging through a forest without a map is a dumb idea. Mapping out every rock is an equally dumb idea.

For myself, I try to not overthink things, but I’ve found a good trick is to set a timer to think and worry. I give myself 20 minutes to think of worst case outcomes, to pick apart data, to dissect any morsel of meaning. After that timer goes off, I step away.

By doing this, I’ve been able to short circuit the urge to overthink things.

Effectiveness

I’ve mentioned the Pareto Principle before, but I’d like to take a few sentences to give some real life examples of how you can add the Pareto Principle to your life.

The Three Steps To Effectiveness…ness

First, start with a well defined goal. Your goal doesn’t have to be SMART but it should point you in the correct direction.

Second, choose one thing you can do today that will bring you closest to this goal.

Third, repeat this process and tweak as needed. Iterate on what you did yesterday, try something new, because the same inputs net the same result.

Examples

Here’s an example. Say I want to learn how to be an archeologist. That goal is pretty vague, so let’s first define it better.

1) Define the goal

Instead of “I want to be an archeologist.” let’s say, “I want to go on a geological dig with paleontologists.”

2) Find the most effective thing you can do today to achieve this goal.

Day 1-7: Research what archeologists do, what they study in school
8-14: Search for volunteer opportunities on https://www.archaeological.org/fieldwork
15-22: Buy/rent a metal detector on Amazon, and go dig in a public park or forest
23-31: Post your findings on a blog, or YouTube

3) Repeat to taste

Example 2: I want to be able to bench press 1.5x my body weight

1) Define the goal

Goal is well defined already. Awesome!

2) Find the most effective thing you can do today to achieve this goal.

Day 1-7: Research what bodybuilders do, the correct form for bench pressing
8-14: Work on grip strength (apparently this is pretty important for confidence while lifting heavy)
15-22: Find a spotter, work out and eat the right foods
23-31: Get the amount of sleep you need to perform your best in the gym

Our goal will morph over time, which is why it’s important to not have the goal be too rigid. Remember, we aren’t trying to think of everything, just the important things.

How Fast Can I Change?

This really depends on how you define change, how many variables are outside of your control, and how well you are able to stick to a schedule. But I’d argue the going rate is around two months of continuous, well placed work. This conclusion is anecdotal, but is also based off of James Clear’s blog on automatic habits. We don’t need something to become automatic, but the less you need to actively think about the process, the better. This goes for everything from dating to astrophysics to piano to basketball. Work on the effective fundamentals and you’ll notice changes! I promise.

On average, it takes more than 2 months before a new behavior becomes automatic — 66 days to be exact.

Conclusion

The only constant is change.

In conclusion, set a defined goal, work on the most effective thing you can do today, and iterate/restructure your goal weekly. You may not become Donald Glover, but you might like what you find instead. It’s important to find a balance between patience and impatience, to learn when to look and when to leap. Keep in mind change is inevitable. However, we can steer the ship. It’s really great to walk into a room with people you know and have them say to you: “You seem different.”

You can check out my three favorite apps to stay productive here.

Mailing List

Accelerating Your Potential

Great news! MassChallenge has agreed to share their thoughts on helping individuals create startups and to teach us (myself included) about startup accelerators. Thank you MassChallenge!

MassChallenge is a non-profit startup accelerator that has raised over $4 billion dollars! for startups. That’s a lotta dough! If you’d like to see my thoughts on whether or not an idea is worth pursuing, you can check out my post on “Million Dollar App Ideas” here.

Full post after the break:


Are you interested in setting up your own startup company? I am pleased to tell you that these days, there are a number of paths you can take to ensure that your startup gains the support and indeed the investment it requires to thrive. One of these options is a startup accelerator.

What Are Startup Accelerator Programs?

Startup accelerator programs provide support to growth-driven, early-stage companies. They do this by offering education, mentorship and of course, financing.

Startups do not remain in accelerators. Instead, they enter them for a fixed period and are joined by a group of other companies that share the same or similar characteristics that match the investment thesis. Experience within the accelerator is both invigorating and intense. Rapid learning is designed to speed up the life cycle of these young, innovative companies. Essentially, years of learning will be compressed into perhaps several months.

I am sure you are aware of other similar options such as incubators, seed stage venture capitalists or angel investors. While these can be effective they do not have the collective elements of the startup accelerator. This is a fixed term mentorship-driven program which will ultimately conclude with a ‘demo day.’

A typical accelerator will last between three and six months compared to an ongoing angel investment or an incubator that can continue for up to five years.

The First US Accelerators

The first noted accelerator in America was Y Combinator. This launched in Boston in 2005 and was known as a seed accelerator program. TechStars was then founded in 2006 in Colorado. Since then, these two have become two of the top accelerator programs on a global level.

Between 2008 and 20014, these accelerators were increasing at a rate of 50 percent every year.

Today, there are nearly 200 accelerators throughout the US and Canada and over $100 million has been invested in these programs in total. The average investment can be anywhere between twenty and fifty thousand.

The Application Process

As you might expect, these accelerator programs are competitive due to the benefits that they could provide a company. Of 3000 applicants, a system will select 150 teams. They will ensure that these teams match the investment verticals and the requirements of the thesis before accepting between 45 and 90 applicants.

Applicants are required to show why their startup is different from the rest and why it will thrive on the market. They will also need to have a full team and strategy in place to ensure success in both product development and success with a target customer base.

Benefits Of Startup Accelerator Programs

The main benefit is that the founders of the startup will be able to learn and develop their company at a rapid pace that exceeds other opportunities on the market. In learning by doing ventures can be scaled in a matter of months. The main value of these programs comes from the intensive learning environment that is created and may help the company attract seed as well as early-stage financing.

If you are keen to learn more about the staggering impact of accelerator programs on startups today and the process required to apply, I encourage you to check out the infographic below.

Infographic Courtesy of MassChallenge

The Road to Startup Acceleration

The Art of Living Below Your Means, and Still Having Fun

A Series of Unfortunate Graduations

The sign of financial health is when you don’t have to think about your finances

In 2018, non-housing debt passed four trillion dollars in the US according to the Federal Reserve.

Despite being a notable number that’s easy to talk about, this presents an alarming picture of consumer debt in the years to come. Unfortunately, a lot of this debt isn’t even the fault of consumers. In 2004, credit card debt (a good thermometer of spending habits) represented .69 trillion dollars of consumer debt. In 2018, credit card debt climbed to .87 trillion dollars.

1 trillion = 1000 billion, so .87 trillion = 870 billion

More shockingly, student loan debt rocketed from .26 trillion dollars in 2004 to 1.46 trillion dollars in 2018. That’s over one trillion dollars taken over 14 years, or “3.5 full cycles of undergrads” (real 100% valid math, take my word for it).

The number of students projected to attend American colleges and universities in fall 2018 is 19.9 million, which is higher than the enrollment of 15.3 million students in fall 2000, but lower than the enrollment peak of 21.0 million in fall 2010. Total enrollment is expected to increase between fall 2018 and fall 2027 to 20.5 million. During the 2018–19 school year, colleges and universities are expected to award 1.0 million associate‘s degrees; 1.9 million bachelor’s degrees; 780,000 master’s degrees; and 182,000 doctor’s degrees (source). In 2015–16, postsecondary institutions awarded 939,000 certificates below the associate‘s degree level, 1.0 million associate‘s degrees, 1.9 million bachelor‘s degrees, 786,000 master‘s degrees, and 178,000 doctor‘s degrees.
source

As a recent grad with student loans myself, I feel this sting personally. Hopefully future generations will make more informed decisions about whether or not a four year university is worth the financial burden. Until then though, no use crying over spilled milk, right?!

spilled milk

What the hell am I supposed to do with this?

A lot of disgruntled new grads have realized that a degree in that subject they hopefully liked will only take them so far. Unfortunately, Sallie Mae always be comin’ and knockin’. There are multiple options to manage student loan debt (one of my personal favorites is the Personal Finance subreddit but I want to talk about one particular way that’s near and dear to my heart, budgeting.

Budgeting for Fun and Profit

For my first year or two out of school, budgeting sounded like a dirty word, or some kind of unachievable pipe dream (I can’t budget! I don’t have enough money for that!). But that phase is ironically where budgeting is the most effective. Budgeting your expenses is kinda like getting eight hours of sleep. We all know we need it, but like, c’mon what’s one more episode of Umbrella Academy gonna hurt?

A few years ago, my friend put me on the idea of YNAB and I was like nah, too hard. Then around September 2017, in a fit of rage seeing a credit card statement where I spent way more money than I thought I did, I decided to give YNAB a shot. About four months later, wowza. It’s a game changer. Here are two photos that will give you a good idea of my financial status since downloading YNAB.

spending chartA chart mapping my spending habits over the past few months

net worth chart
A chart mapping my net worth over the past few months

Two Graphs Walk into a Bar and Break It Down

I wanted to show both to paint a more realistic image of both my gains and losses since October. As you can see, my spending spiked a few months, but the other ones average out to about the same amount. This might seem depressing, but it’s actually really good news. I can pretty confidently say I’ll spend the same amount each month. This includes my static expenses like my rent, groceries and student loans, and gives me a good idea at the rate I buy frivolous s*** (I live in NYC, it’s really hard not to buy/partake in frivolous s*** here).

The second picture is much more rewarding, this is a picture of my net worth. For the uninitiated, net worth is:

Net worth is the value of all the non-financial and financial assets owned by an institutional unit or sector minus the value of all its outstanding liabilities.

In a less boring way to say that, net worth is your total value, including your debts. The red bar = bad, the blue bar = good. As we can see here, my debt is going down while my assets are increasing. How is this happening? Well, let me tell ya!

The best way to protect your assets is to put money into savings first. Another bad word, by savings here, all I mean is taking some small percentage of your income and putting it into a separate account than your checking. Hopefully you won’t need to tap into this often (you’ll need to find out your own burn rate against the money you bring in!). Slowly, sometimes over the periods of years, this one action will start to add up. Your debts will continue to go down as you pay them, and your assets will go up. This is a really good feeling. This small win is really important for new grads like myself, and can give us back a modicum of control.

What About Fun, Though?

The real point I wanted to draw here is that budgeting doesn’t mean that you have to give up the things you love. I mean, with all the minimalist joy resources out there today, you’ll find no shortage of ways to pare down on life and still have a dope time. But as a twenty-something who lives in New York City, here’s my take:

  • Seriously ask yourself: Do I need to do this thing? Do I need to go out this weekend? Am I doing this because I enjoy it or because I feel like I have to impress somebody else or save face?
  • Adjust your mindset: Fun is a malleable concept, and there are a ton of fun things you can do while you save. Maybe one of you weekend nights becomes Netflix and Chill instead of I’ll Foot the Bill
  • Pick up Reading: Not trying to sound like anyone’s dad here, but I started reading last year and it’s been a game changer, both financially and well-roundedness…ly?

Conclusion

We, the luckiest generation, who were thrust into higher education post Y2K have the “fortune” of having some crazy debts. Fortunately though, with some clever planning, we can use this to our advantage as well. Get out there and save! And after that, get out there and enjoy your life!

Mailing List

3 apps that make you more productive

We live in a pretty cool time. We’re surrounded constantly by gadgets, are in constant communication with each other and new technologies that improve life come out every day. One thing that’s worse though, is the anxiety that comes with always being connected to each other.

I grew up with the internet, so I can’t relate too many firsthand experiences, but I’m told before the Internet was around, when the work day ended, you were expected to go home and not think about work!

A Brief History Lesson with Dr. Adams

In Algorithms to Live By, Brian Christian and Tom Griffiths talk about the creation of the Internet and how the communication layer of the world changed. Basically, the internet works similar to FedEx. Your computer will ship out a package and another computer will eventually receive it. Your computer then waits for a receipt, an acknowledgment that the other computer got it. Then your computer will send the next package. If no receipt is returned, your computer can keep sending the same package over and over too (think of this like a ‘return to sender’ in the mail).

Before this, phones (like those old ones with the cords!) followed a different model. In order to send data, both lines need to be active. If you’ve ever been hung up on, you know exactly what I mean. You can talk and talk, but the other person won’t ever receive it.

What does this mean, in the context of productivity? Well, think about your email inbox. A lot of us myself included, are obsessed with “Inbox Zero”. But since work can come in at any point in the day, we’re never really done (asymptotic to zero). We’re expected to stop drinking our margaritas on the beach. We’re expected to look at our phones compulsively every five minutes to make sure we didn’t miss a “package delivery”.

This isn’t all bad though. The very cause of our troubles can be used to facilitate processes so that we finish things we need to do, or things we said we’d do.

Our goal is to decrease the load on our physical brains, by taking advantage of tools (our digital brain). So let’s jump into it!

Todoist

Todoist is a really powerful to-do list. The main selling points for Todoist for me are:

1) The ability to use natural language processing to add scheduling to todos
2) The ability to track past and completed todos with filters
3) A pretty intuitive project structure

That said, trialing this app to see if you like it isn’t really a thing. Their free tier is garbage, but you can occasionally find a code on Reddit to give yourself a free month (or use a referral, email me if you want one!)

Todoist is my “first line of defense”. When something comes up that I’m not ready to deal with, or if I’m busy doing something else, I’ll add it to Todoist. There have been times when I’ve been scrolling through my unfinished todos and I’ll realize that I forgot to do something small from months ago. Context matters. Sometimes you need to be in front of your home desktop to do something!

Back before todo lists were a thing, I honestly don’t know how people just didn’t forget to do things. I know I forget constantly. But maybe that’s just because I get distracted, I digress.

Habitica

Habitica is a gamified way to keep track of habits. Habits are extremely important for productivity for multiple reasons. For one, habits when practiced every day, leads to major growth over time, but only when done consistently. Rome wasn’t built in a day, and neither is your meditation habit.

To quote Atomic Habits:

Your outcomes are a lagging measure of your habits. Your net worth is a lagging measure of your financial habits. Your weight is a lagging measure of your eating habits. Your knowledge is a lagging measure of your learning habits. Your clutter is a lagging measure of your cleaning habits. You get what you repeat.

I treat my habits as static if possible because it allows me to plan my day around the ~30minutes it takes for me to finish them. By externalizing my habits into a game, the feeling of accomplishment has a tangible existence. Habitica also allows you to feel like an RPG hero while you do them, which is really fun. This app kind of reminds me of level progression back in my World of Warcraft days, but is much healthier.

Notion

Usually people say that they save the best for last, but I actually did.

Notion is amazing. It’s kind of like Evernote, Trello, and Google Docs had a baby. But this baby was born strong as f***. Notion has a very intuitive UI, and I use it as my goto “long term” planner. Because everything exists in one space, I can easily context switch from one project to another. I can’t say enough positive things about Notion, it really feels like one of those apps that change the way you interact with your computer/phone.

Their offline support is pretty buggy, though.

Conclusion

These three apps didn’t change everything in life for me, but in tandem they make me a much more productive human. One who gets s*** done!

If you’re interested in productivity, check out my post on blocking distracting websites with Python or sign up for my mailing list below.

Lexical Scoping and Improv

Summary

  1. What is lexical scoping?
  2. What are closures?
  3. Lexical scoping is a technique used in improv
  4. Comedic callbacks and Rule of Three

What is lexical scoping?

Lexical scoping is a computer science concept used to manage and read variables. Lexical scoping is used by the parser (the interpreter of our code) to determine which variables belong to which scope. This is best illustrated with an example:

Some key words:

  • variable: a value that can change over time, not constant
  • function: a block of code that can be run by a computer by “invoking” it using parentheses, like putOnPants()
  • closure: we’ll get to that soon 😉

example courtesy of Mozilla

You can run this in your Console too! On Chrome you can hit ⌘-Option-J (Ctrl-Shift-J on Windows) and copy pasta the code above. Feel free to have it say your name instead!

What are closures?

Closures are similar to lexical scoping, but provide us different benefits. Above, we called displayName immediately. However, in Javascript, functions are considered as first class objects. All this means is that we can treat functions as objects (an object is a complex topic, but it’s easiest to think of as an entity, like a person or a car). Lets modify our example above a bit:

Key Terms:

  • return: a return statement is the final line of code in a function. It basically returns the computation done

What’s happening here is that we’re setting up two separate lexical scopes. These scopes are unique, and both have a different idea of what name evaluates to. In sayBram name = Bram, but in sayBradPitt name = Brad Pitt. Feel free to try these out in your console!

Fight Club
First rule of closures: don’t talk about closures

What does this have to do with improv??

I agree, that’s enough code, let’s focus on comedy here. In improv comedy, the structure usually goes as follows: the audience gives your team a word or a phrase, you spend 20-30 seconds coming up with scenes about it, and then you go wild. The great thing about improv is that it’s all based on Yes, and, which means that everything your team members say is “true” for the scene.

Okay, so let’s say the word is typewriter. I might come up with a scene about how I work at a 1950’s news company, Mad Men style. My partner and I would act the scene, and pay attention to which bits get laughs. We then would store those away with the character for later.

Example:

Scene 1: (Me and one other person) I’m a distraught house husband whose novels aren’t taking off because they’re really bad. However, my wife doesn’t want to shatter my confidence so she tries to stifle her laughter as she reads my book.

Scene 2: (Two other people) A completely different timeline where typewriters are falling from the sky, causing mass hysteria. Kind of like Fahrenheit 451 meets dinosaur asteroid extinction.

Scene 3: (Me and someone from scene 2) We both narrow in on what went well with the audience the last two scenes and really send those jokes to the moon (as in, we make them even bigger and crazier)

What we’re doing here is lexical scoping! We’re remembering who our characters were and what they did, and then were invoking them later, like tellFunnyJokeFromEarlier(). I won’t act as someone else’s character and use their jokes, and they won’t use mine!

Rule of Three

I want to close this out discussing the rule of three. The rule of three basically states that jokes are really funny if you use them three times. The rule of three also applies to photography in the Rule of Thirds (another post for another day), and slogans like Stop, Drop and Roll. Three is just a really memorable number. So using what we’ve learned above we can write improv comedy as code like this:

Books I Read [September]

For this month, I wanted to branch out a bit. I generally read a lot (only?) non-fiction, so I made sure to pick up one autobiography and one historical fiction book this month. I’m pleased to report that they didn’t disappoint! In fact, Beneath a Scarlet Sky was my favorite read this month! Join me below for quick reviews of these books!

Disclaimer: The links are affiliate through Amazon

Beneath a Scarlet Sky

Beneath a Scarlet Sky is a phenomenal read.It’s emotionally gripping, and shows a perspective of World War II that I’ve never seen before. The story follows Pino Lella, a 17 year old who gets caught up in the middle of World War II. Through his bravery, wit, and unshakeable morals, Pino changes the entire tide of the war. Really humbling piece.

The Life-Changing Magic of Tidying Up: The Japanese Art of Decluttering and Organizing

I really enjoyed the takeaways from this book. I’ve always lived pretty minimally, but I’ve never really anthropomorphized my stuff before. This book is built around the concept that the only items you keep should be the items that bring you joy. This can be done with one massive “cleanup day”, and you’ll only be left with items that make you happy. The second main concept is that every item has its place. When treated well, items will have a longer shelf life, and be able to serve you better. I like books that acknowledge that there isn’t a one size fits all approach to every person, and this book is about as flexible as it gets, since you’re only keeping the stuff you like!

The Richest Man in Babylon

Save 10% of your income (pay yourself first). Don’t speculate with those who will lose your investments. It’s pretty unreal to see how advice written on cuneiform tablets 2000+ years ago have advice that is still accurate today. This book is a collection of stories from those who have changed their lives drastically by following the rules of money. Very short read, and very inspiring.

The Power of When

In my opinion, this book isn’t good. It could honestly be a blog post. There are a few interesting tidbits about circadian rhythms in here and how they vary for different people (doing creative work before noon is better for “bears” rather than “wolves” for example), but by and large this book is pretty dry and unhelpful.

Burn the Fat, Feed the Muscle: Transform Your Body Forever Using the Secrets of the Leanest People in the World

Burn the Fat, Feed the Muscle taught me many things about weightlifting that I didn’t know prior. It shed a lot of inconsistent ideas that I held about nutrition, weightlifting, cardio and goal-setting in general. For me, the most important take away the book was how to align our physical goals with a life that’s not hyper restrictive. Whereas a lot of other material I’ve looked at is either promoting some sort of fad diet or crazy workout routine that doesn’t work, this book is very straightforward. I think the most interesting thing about this book to me was that it was targeted at people who are attempting to become bodybuilders. Therefore anyone with less “moonshot” physical goals should find this book to be very valuable.

The Untethered Soul: The Journey Beyond Yourself

This book has some amazing ideas, but they are unfortunately wrapped up in a lot of repetitive wording.
The book has a few central themes, but most revolve around the idea of acceptance, mindfulness, and equanimity. The book stresses the importance of keeping your heart open always. The arguments the author laid out were very logical, and I intend to keep my heart open when possible, or at least be aware of why I feel the need to close up when I do. Worth a read if you’re looking to incorporte mindfulness into your day to day life.

Not Forgotten: The True Story of My Imprisonment in North Korea

I’m not particularly religious so when I read not forgotten the story in North Korea by Kenneth I didn’t really know what to expect. Kenneth Bao is a vivid author, and I could really feel his faith come through his words. This book taught me a lot of really interesting knowledge about both North Korea and religion. I was particularly impressed by the strength of spirit Kenneth had when faced with insurmountable odds. This book maybe for you if you’re interested in learning about North Korea-US geopolitics religion or the struggle that people can go through to fulfill their purpose.

See you next month with some more books! ^_^

Surely you Jest!

Here’s a few quick tip for the users of Jest out there!

Environment Variables

If you’re using environment variables that need to be loaded in before your tests run, you can use the –config flag. This flag will allow you to pass in environment variables. Example:

Mocking Modules vs Mocking Specific Functions

When referring to external libraries, use jest.mock. This is a very powerful function that will mock all exported methods from a module. You can think of it like a window in front of a store. You can see all of the items inside, but you don’t interact with them directly. For more info, check out this link from the Jest docs

Reseting Modules

One of the most annoying things about testing is always having to clean up state after your done. It’s like being a kid again and having to clean your room every day before your friends can come over, even though they were the ones who made it dirty yesterday. Luckily Jest makes this really easy thanks to the resetModules() function. More info can be found at this link. This comes in handy extremely often, don’t be afraid to use it a lot!

FIN

That’s it! Hopefully you took away on or two things from this post. If you’d like to learn more about testing, you can check out my other post on it here: Tests: 5 Tips to Make Coding Less Stressful Jest is a great framework, and if you have any questions about it, please leave a comment below!

I’ve Owned a Kindle for a Month Now

Let Me Spin Ye a Tale

For Prime Day this year, I was like well, screw it, why not buy a Kindle? The PaperWhite was only $80 and I’m a sucker for deals. The problem is, I’ve never been much of a reader. I’d start a book from time to time, but I’d never really get through an entire work. I’m glad to report that since I’ve bought a Kindle, this has become way less of an issue. I think the uniformity of the text, the ease of handheld use, and ease on the eyes really allowed me to nuzzle deep in the pages of a book the backlit screen of a Kindle. Also, most importantly, it turns out that books are like, really good. Huh.

The Reading Lists

Since I had no idea where to start with reading, I took to the internet to find some reading lists. These people are like super reviewers for books basically, curating from a large pile and selecting books that they find help shape their world view. Much thanks to them!

Bill Gates
Derek Sivers
Tim Ferriss
Neil Pasricha

The Books

Disclaimer: I’ve attached affiliate links to these books, but only check em’ out if you want!

Here are the books I got through this month.


The War of Art

The War of Art: Break Through the Blocks and Win Your Inner Creative Battles

  • The War of Art addresses resistance, the invisible enemy stopping all of us from approaching our goals
  • Resistance comes in many forms, and to dispel it one must learn its sneaky ways and outsmart it
  • The book itself kinda reads like a collection of short stories
  • Its all bold on the Kindle for some reason

He: Understanding Masculine Psychology

He: Understanding Masculine Psychology

  • He is a story about a man’s journey through life, about the battles we face with our internal masculinity and femininity
  • It’s a very short read
  • It follows the growth of a character but alludes back well to modern struggles men face
  • It should be read along side its companion novel, She: Understanding Feminine Psychology

Sapiens: A Brief History of Humankind

Sapiens: A Brief History of Humankind

  • Sapiens is amazing. Harari takes an extremely comprehensive look at human history and development from fields spanning from biology to theology
  • It’s very long, but it’s impressive he fit 300,000 years into a book, so meh
  • It’s a bit depressing at times, and can really put a lot of things into perspective

The 7 Habits of Highly Effective People

The 7 Habits of Highly Effective People: Powerful Lessons in Personal Change

  • When I started 7 Habits of Highly Effective People, I’d assumed it was going to be a cheesy self help book. I was wrong.
  • It does help the self, but not the self you’re thinking of. It helps the metaphysical self, and helps align yourself each and every day
  • There are too many takeaways in this book to count, it’s phenomenal

The Happiness Equation

The Happiness Equation: Want Nothing + Do Anything=Have Everything

  • The Happiness Equation by our main man Neil Pasricha (mentioned above in the reading lists)
  • Extremely focused around positivity, with a ton of nuggets on how to be happier any given day
  • I didn’t feel too inspired by the takeaways, but it’s a very good book, and I have the utmost respect for it’s author
  • The steps can be cumbersome to implement in daily life without forethought

Afterword

I hope you enjoyed these quick thoughts on the books I’ve read this month. I feel so proud that I’ve been able to finish so many, especially since I’ve gone years without finishing one. Books truly are wonderful, and I’m excited to devour some more.

Let’s try this again next month. Same time, same place? Yeah? Yeah. Cool. Cool.

Blocking Websites with Python

Finding Motivation

Avoiding websites like Facebook, Instagram, Youtube and Reddit can feel like a full time job. The internet is a great tool for productivity and knowledge, but all too often it’s a time sink as well. Earlier this week, in a fit equally caused by frustration as much as inspiration, I decided to write a Python script that would allow me to automate the blocking process on my computer, as well as learn something new.

Aside on Willpower

Willpower may or may not be a finite resource. Anecdotally, decision fatigue feels real to me, but it may be just a mindset. I do know, however, that the allure of time sink websites like Facebook and Instagram keep me from important stuff, like y’know, my blog (¯(ツ)/¯). Therefore, for me, it makes sense to have some framework to disallow myself from wasting time, because I have a hard time making that decision by choice.

Summary

  • The Hosts file (stored at /etc/hosts) is a file that connects IP addresses with human readable names. An IP address is where a site is located, it can kind of be thought of as an actual address.
  • We can overwrite actual IP addresses with our own! This means that no matter what browser you use and type in someurl.com we can re-route it before the connection is completed
  • In python to read and write to a file, the mode is ‘r+’
  • Since the /etc/hosts file is owned by the root directory, we need to use ‘sudo’ to edit it
  • Editing /etc/hosts isn’t an ideal way to block traffic, since the connection with the server (like facebook.com) is still started. A more thorough way to block traffic is to use IP Table rules. Thanks to this Stack Overflow post for helping me understand this!
  • Websites like Reddit have a ton of DNS resolutions, so we need to block ALL of them

That There Python Code

Here’s the whole script, we’ll break it down below.

With any script, it’s best to start reading by understanding the dependencies of the project. When you know what libraries a developer used can give you instant insight into the structure of a project. It’s kinda like a table of contents in a way.

Here, we are using sys and subprocess. From subprocess we’re importing call. This method allows us to call terminal commands like ls or nano! From sys, we’re using argv which keeps track of how many arguments we pass in at runtime.

Both block() and unblock() function in a similar manner. They open a file, check it for a certain line (# Block These Sites!), and if found either append or remove the following lines, in the cases of block() and unblock() respectively. Therefore, it’s important to append our changes to the bottom of our etc/hosts file to prevent overwriting important host info!

This code block does two things for us, it checks whether a user input true or false as an argument (block and unblock respectively) and then uses the call() method we discussed earlier to flush our cache, registering browsers like Chrome and Firefox to have to ask /etc/hosts for it’s updated state.