The question of control: Stoicism and radical optimism

Stoicism is a school of Athenian philosophy that emphasized the importance of managing our expectations. A central concept for Stoics is the dichotomy of control, in short, the separation of our concerns into two categories – that which we have direct control over and that which we do not have direct control over. Stoics then recommend that we ignore the second category. This sounds reductive and pop-psychological, but the things the Stoics considered in the latter category might be surprising to modern day armchair philosophers. Among those things that we should ignore according to Stoics are our reputation, the opinions of others, our health, and politics.

It is notable that the ancient Stoics did not create a third category to represent things that we have limited control over. He is an obvious critique of that doctrine: isn’t our level of control on a sliding scale? In that third category, we might place a subject like our health, over which we do not have direct control, but certainly some influence. I can choose to eat fast food everyday and not get up from my chair for a week, and that would certainly have an influence on my health. On the other hand, I cannot will myself to not have the debilitating allergies that I experience in central Texas. Modern re-imaginings of Stoicism have created a “trichotomy of control” to encapsulate this third category of semi-controlled variables. But according to the ancient Stoic tradition, you only get the two categories, and this is no accident.

I cannot directly influence my health. I cannot choose to be healthy. Nor can I choose to be unhealthy. Rather, I can choose only my behaviors adjacent to the question of my health. I can choose to cook my own meals at home with vegetables and lean meats, or I can choose to eat fast food. I can choose to go to the gym rather than stay at home and watch television. I can choose to take a job offer for a job that will have me working 80 hour work days, or I can choose to take a job that will give me ample time for exercise and eating right. These choices have significant impact on my broader health.

In this regard, the ancient Stoics had it right. The things under my direct control are limited to my daily choices, behaviors, and attitudes. Everything else – my reputation, my health, how that meeting next Tuesday is going to go – is completely out of my sphere of influence. The dichotomy of control makes sense when you root yourself firmly in the present, considering nothing except the current moment. In the omnipresent now, I have a limited set of choices, but they are numerable and clear.

The purpose of the dichotomy of control is to serve as just one tool on the toolbelt of the Stoic sage. A Stoic’s goal is happiness – not the momentary passions of a nightly bacchanal, but a sustained sense of well being and security in oneself. So we should see the dichotomy in that context.

Namely, the dichotomy offers us a tool for restricting the sphere of our concern. So instead of worrying about the outcome of a large endeavor, we instead focus on the daily decisions and tasks that must be completed in order for the greater effort to be realized. The Stoics teach that the source of our suffering – which modern condo-dwelling people might call “anxiety” or “depression” – is wanting something that we cannot have. In other words, life sucks when we want those things that are in the forbidden category of “stuff we can’t actually influence.”

We cannot control the emotional whims of the jilted lover. We cannot will our friend’s wife to think we are sophisticated. We cannot make our hairline grow back. And so on.

It is common sense, but common sense is not as commonly practiced as one might think.

Stoicism then takes a decidedly radical turn by inviting us to imagine our worst fears coming true. Not only are we forbidden from wishing and hoping to influence that which is beyond our control, we are encouraged to imagine everything going wrong. Suppose our reputation is ruined, our lover deserts us for someone better, and we get diagnosed with a terminal illness. Is it likely that a perfect storm of bad things will happen to us? Perhaps not, but it is possible. Can we imagine the worst possible outcome, and know that we would, in fact, be okay?

All too often, this is interpreted as a pessimistic attitude. In truth, it is yet another tool in the Stoic toolbelt designed to help restrict our concern to our immediate circumstances.

The modern, Oprah-esque self-help armchair philosopher may misinterpret Stoicism’s fondness for picturing negative outcomes as a desire for negative outcomes – a self-defeating attitude. According to the “law of attraction”, we can (somehow) summon tragedies by dwelling too much on possible negative outcomes. But in fact, it is anything but. Stoicism acknowledges the truth that none of us get through life without significant heartache, and it wants us to be prepared for the inevitable.

Visualizing negative outcomes allows us to train ourselves to handle tragedy, and limiting our concerns via the dichotomy of control prevents us from getting hung up on what we can’t change.

If there is any critique I have found in the Stoic way it is that it tends to discourage optimism. Very often I have found that the best way to endure daily struggles is to assume it will all work out in the end. I call this sort of perspective radical optimism and it is, in a sense, the complete opposite of Stoicism. Radical optimism means assuming that your unrequited love will someday be yours, even if the way forward is completely unclear. It means looking at global crises and trusting that eventually the situation will be worked out.

In contrast to Stoicism’s toolbelt, which seeks to narrow our concerns to the present, a radical optimist focuses on the big picture. I contend that this is not such an anti-Stoic concept. The distant future, after all, is so utterly beyond our control that to speculate about it could hardly impact our ability to cope with the present, so we may as well imagine an ideal future.

Want a decentralized web? Start a blog

There is a lot of talk about the decentralized web now. I’m very interested to see where IPFS takes us, and I’m even working on my own little IPFS backed project in my spare time.

So what is decentralization? It’s a fancy way of talking about peer-to-peer networks. P2P (a common shortening of “peer-to-peer”) represents the potential future of a distributed, decentralized internet.

But to understand the difference between that and the “normal” internet, you have to understand a bit about networking. When I load up Facebook’s homepage, I am essentially plugging into Facebook’s servers via my browser software. These are thousands upon thousands of computer wired together in a data center somewhere. When you enter your profile information, or post a snarky quip, it gets stored on Facebook’s servers. And Facebook owns that information. They can harvest your data however they want, with some limits in Europe thanks to GDPR and the soon-to-come CCPA in California. Unless you’re in one of those jurisdiction, your data is owned by Facebook. And Facebook can profit from it however they choose.

If you were to upload the same data to IPFS, the situation would be different. IPFS stores data across multiple computers around the world called peers. Unfortunately, to access something like a whole webpage in such a system can be slow, because we have to stick together data from across the network. It’s not all within a single data center controlled by one company. IPFS also uses something called a block chain to keep tabs on that data, making it tricky to “search” for your data unless you know its precise location in this vast network.

If you are at all politically minded, you can see why the decentralized model is getting so much traction in certain circles. It offers an alternative to the world that emerged in the last 2000s where a handful of private entities control vast swaths of the world’s data.

Eventually, so the theory goes, people would come up with a decentralized version of sites like Facebook. It would be powered by something like IPFS. In fact, Diaspora (which predates IPFS by quite a lot) and Mastodon have achieved exactly this.

That said, technology like IPFS has a few glaring practical challenges. For one thing, storing all of that data will take up a ton of space and processing power. Ordinary citizens would have to decide to host an IPFS instance (called a node), pay the electric bill, keep a high speed internet connection running to it, and so on. Some probably would do so out of passion for the project. But it’s almost inevitable that eventually IPFS nodes will be largely running on Amazon or Google hosted cloud servers. Perhaps even one of these big companies would offer “free” IPFS hosting in exchange for an opportunity to packet-sniff everything coming in and out. So the big companies might end up effectively re-centralizing this system in practice if not in principle. Sure, the block chain* aspect prevents tampering with the actual data, but it does kind of beg the question of why we are running this complex peer-to-peer system if it tends to become centralized anyway.

So what is a boy to do? I am a fan of simple solutions. And IPFS, though intriguing, is far from simple. A simple solution for owning your own information online?

Host a blog.

At this blog, I have an opportunity to present myself to the world exactly as I choose. I run WordPress and manage it myself. WordPress isn’t trying to monetize my content or manipulate my audience with algorithms to increase conversion rate on ads. I can post my own profile online here with as much or as little information about me as I want to share with the world.

If you want to see the internet do better than Facebook and Twitter, give blogging a try! All you need is an AWS account, a little bit of technical know-how, and something you want to say.

*I hope to write a more thorough article about blockchain at a later date. It’s a complicated enough idea to warrant its own article.

The risks and rewards of public blogging

I have had an internal debate about whether or not to have a public blog. I enjoyed writing in blogs since long before Facebook and Twitter came to replace them. I enjoy having the space to express myself and share some of my interests in a way that is discoverable for others who may be interested in what I have to say. To me this has always been the magic of the internet.

In the early days, blogs had the flavor of a missive. Each post was a well-considered personal essay on a subject of the author’s interest. Microblogging changed that culture by introducing the short-form post which encouraged quips, jabs, and memes. With only 140 characters, there are severe limitations on discourse. And so today platforms like Twitter have become battlegrounds of thoughtless name calling, self promotion, and knee-jerk politics. Journalists and activists are harassed from one extreme or another. Online armies of deranged Twitter users swarm to defend perceived slights against celebrities. William Gibson himself could not have predicted our dystopian present.

Therein lies the biggest benefit of public blogging. I can control the context in which my writing is interpreted, preventing unwanted context collapse. I know that my writing will be read only on this website. It won’t be shared and pass around on Facebook or Twitter. I can write as pithily or as long-winded as I need to, depending on what subject I’m covering. And I can include all the details needed to make myself understood.

Ideas require nuance, and some things are worth saying publicly. Nuanced subjects require a nuanced approach. And nuance just does not work in a micro-blogging format. It does not work as a Facebook post. Ideas are better expressed in person, but if that is not possible, then in long-form prose.

So I will continue to write here. I will document some of my thoughts about my various interests with the hopes that somebody will find them useful or enlightening.

Jiu jitsu lessons

I don’t exactly know why I began learning jiu jitsu. The simple answer is that I was looking for a Muay Thai gym and I decided to go with a Ralph Gracie affiliate in Chicago on the north side. One day I stuck around for an hour after the Saturday morning boxing class and the owner, a black belt named Misho Ceko, told me to get into a position with another new guy. After a few minutes being crushed under my partner’s weight, I realized I knew nothing about self defense. That night I bought a gi.

I did not grow up watching combat sports on TV. I didn’t own any Tap-Out merchandise and I still don’t have any tattoos. I also have no real interest in being a serious competitor in jiu jitsu. I’d like to do a competition for the experience and to test myself, but it isn’t important to me that I win.

So why do I keep coming back to this strange and beautiful brutal sport?

I think it is because jiu jitsu has taught me a lot about what learning means.

When we begin learning a new skill, we often have a honeymoon phase in which we are excited by the novelty. It’s fun to pick up new skills, challenge yourself, and break the monotony of your usual responsibilities. By following a chain of such hobbies, one might successfully defer mastery of any skill by perpetually starting over from scratch.

There is a reason most of us did not keep practicing piano long enough to become concert pianists. When the honeymoon is over, we realize that we are staring down a long, interminable logistic curve of skill acquisition. We might still have dreams of being a rockstar one day, but when we have to practice scales day after day, the magic disappears pretty quickly, and we are left only with an overwhelming sense of futility. Television has not prepared us for this harsh reality.

Through jiu jitsu, I have learned to face my own sense of futility. There is simply no way to pretend to be any good at jiu jitsu. BJJ implements a ruthlessly empirical method of measurement – sparring.

Jiu jitsu is both brutally difficult and easy to practice at full strength without harming one’s training partner in a way that is impossible in, say, boxing. Instead of delivering blows to your partner’s head, you are instead maneuvering him into a position such that he will be forced into accepting defeat, or else succumb to permanent injury – i.e., via asphyxiation or a broken arm. Paradoxically, this makes jiu jitsu quite safe to practice against a competent training partner.

Sparring is the test. And it is this empirical test that makes progress possible.

My biggest leap in learning I had came when I realized what kind of questions I should even be asking. What is guard retention? What does it mean to frame? How does spinal alignment affect balance and stability?

The same is true of any skill. The beginner, knowing nothing of the principles, cannot grasp the purpose of a technique. But he can learn the technique through repetition. He can learn how to implement it in a specific context. By learning enough of these contextual skills, he can assemble piecemeal a working skillset. But he still does not really have understanding. And that understanding may only come when he has already internalized the contextual procedures.

We can think of the learning process as a man trying to climb a very tall wall. First he must begin building a ladder. Each discrete skill that he learns constructs another rung of the ladder. The rungs themselves are not critical – indeed, he may be able to climb the wall missing one or two. The important thing is that he keep focused on constructing the ladder, rather than expending energy trying to scramble his way up the wall, so that one day, when he has long forgotten that the wall is there, he will be able to easily scale it.

Functional programming jargon decoded

The last year I’ve learned Scala to the point of literacy. In the course of doing so, I also acquired some hands-on understanding of functional programming patterns. In this post I’m going to attempt to define some common terms that get thrown around by Scala people with the hope of providing a sort of glossary.

Type classes

If you’ve worked with a language with generics support like Java, you’re surely familiar with common generic types like List. List itself is not a type. We can’t actually refer to a List in Java. Rather, we have to a refer to concretization like List<Integer> or List<String>. We can think of List itself as a type which, given some parameter (which is a type itself), itself produces a type.

In Scala this is called a type class or a type constructor. Back to our Java example, try to think of List as a special function that knows how to build a type given another type.


The term “monoid” sounds complicated, but without even getting into the abstract algebra behind it, we can define it in simple practical terms.

Simply put, a monoid is a type that can be combined. A nicer name might be addable. To define a monoid, we need two things:

– The definition of “zero” for this type. (E.g., the number 0, an empty string, an empty list.)
– An operator that defines how to combine two instances of the type.

“Combining” in this sense can mean anything – adding, subtracting, concatenating strings – as long as it is associative.


Another complicated sounding name for something powerful and expressive, monads are the cornerstone of functional programming. The monad is a design pattern that allows purely functional programs to be written in an imperative style.

I like to think of monads as mappables. Whereas the monoid defines a thing that can be added, the monad defines a thing that can be transformed. Monads are useful for modeling side-effects in a purely functional way.

List is a simple example of a monad. Given a List<String> (or List[String] in Scala), we could define a function which, given a String, produces another String. This might do something like transform some text into its uppercase form. Or we could transform the String to an Integer, e.g. by finding the length of the string buffer.

Note that the transformation is defined in terms of the contents of the List, but the transformation operation occurs on the List itself. In other words, our transforming function is:

String => Integer

But the transformation is:

List[String] => List[Integer]

More generally, we write this as:

F[A] => F[B]


A => B

The transformation operation is called map in functional terminology, and F in the above example is our monad. Fancy name for a powerful design pattern that allows us to generically compose statically typed programs with no sucky side-effects.

Logistic learning curves

The more I reflect on it the more parallels I find between Brazilian jiu jitsu and other aspects of life. This has recently struck me most in the form of the logistic learning curve.

The thing about jiu jitsu is that is starts out extremely hard. On your first day of jiu jitsu, you will feel humiliated by your inability to escape from side control under the weight of a 130 lb white belt. Most people quit right there and then. But for those who keep training, something odd happens. You learn a few really basic escapes, framing, maybe a sweep or two, and suddenly you are no longer getting crushed after ten seconds. That moment of recognition – “holy shit, I didn’t get instantly tapped by that blue belt!” – feels like a massive improvement. Soon enough, you tell yourself, you will be well on your way to becoming a jiu jitsu master!

Unfortunately, that initial aha moment only come once, usually at about the six month mark. After that, your progress will be agonizingly slow. For a while I actually felt like I was getting worse at jiu jitsu. This “plateau” of progress is a common experience. It doesn’t feel like you’re getting better because the big leap of understanding – the difference between knowing nothing and knowing a little bit – is a one time thing. After that, it’s many months of hard slog until gradually a few more things begin to make sense, you start to address bad habits, correct misunderstandings, and so on.

You might remember the logistic curve from math classes. I’m not going to throw out a bunch of equations here, but suffice to say it looks like a smooth curve that ramps up quickly at one end, but then levels off in a long, asymptotic approach toward its maximum value on the far end. It looks like this:


We are accustomed to thinking of learning as a series of knowledge insertions. This is the technocratic version of learning. Your teacher has some knowledge. They transfer it into your head. Now you have that knowledge. This may work well for standardized testing and molding students into industrial drones, but it isn’t how learning actually works.

No, learning is a gradual process. A student has to internalize models and core concepts. It takes time to establish this basic literacy. Initially students are excited when they learn to read and can recite their ABCs. Hey, great, you used to be illiterate, and now you can read. But of course, a child cannot really read. To read is to comprehend ideas encoded into the words, not merely the transmission of words from paper representations into spoken language. Reading, rather than a “skill”, is a mode of thinking which aids in the organization of thought.

Rather than envisioning learning as skills acquisition, the logistic curve gives us a model of learning as a continuous process that never really completes. Even experts will forever grind away on the long tail of that curve. 

Thinking and the internet

I grew up in the golden age of the Internet. Yes, it used to be capitalized. I am of the generation that un-capitalized it. When I was an introverted, isolated teenager the internet was a way to connect with people who liked the same things I did, to share a bit of myself, and to learn. Well into my college career, I still saw the internet as an idyllic place. Of course, there were criminals and bad actors abusing it, as there will always be. But it still retained that magical potential.

At some point, things changed. If I had to put a date on it, I would say the internet started to suck around 2007. This was approximately the point at which Google ditched its “don’t be evil” philosophy. When YouTube was new, it was a tranformative way for creative people to get their work in front of an audience. Over time, it’s become riddled with ads and Google’s spyware, like everything else. Privacy is a feature tacked on to a platform built to monitor their users, to give those users some semblance of control over the manner in which they are monitored. There is no earnest attempt to allow users to opt out of such monitoring, only to slightly tweak in what manner it is monitored.

The internet is everywhere now, and everyone is hiring. In a sense, this is surprising. When I was entering high school, there was an assumption that the internet bubble’s bursting had been a fatal blow. Programmer jobs were being outsourced to India or disappearing entirely. I ended up studying computer science because I liked math and the internet. I had no conception of it as a career. I expected that I would eventually make a living teaching. When I learned to program at the age of twelve I never expected that twenty years later there would be psychology majors and yoga instructors trying to learn web development.

The apocalyptic vision of a tech industry completely moved overseas to Bangladeshi sweatshops never came true. Instead, we ended up with something much more banal. Corporate America took over the internet, exactly as William Gibson said it would, but instead of using it to wage cyber warfare upon one another, they turned it into a massive surveillance system to drive advertising revenue. Instead of hiring armies of underpaid, poorly trained third world programmers to keep it running, they hired an army of underpaid, poorly trained young adults in the U.S.

Now the internet, which was once a creative canvas and a playground for entrepreneurs, has become a series of walled gardens. There was once a belief  that anyone could start their own online news agency, a boon for freedom of speech and freedom of press. A new enlightened age of reason would be born. Everyone with an internet connection would be exposed to well reasoned, balanced perspectives. Facebook’s news feed has hijacked that dream and used its walled garden to create news bubbles that further the bipartisan stupification of Americans. Instead of trying to engage in a dialectic to reach political solutions, we have rabid “activists” online shouting at one another and manipulating sound bites to enrage one another. All that sound and fury, signifying nothing, has spread into actual in-the-flesh discourse. Reason and debate is rejected. Displays of anger, sloganeering, and language games are embraced.

If the internet is to become what we once envisioned it could be, we must go back to that vision. We must reject the control of the corporate walled gardens.

One key to this must come from developers and those who understand the technology. There must be tools built to achieve privacy and freedom of speech. These tools will come in the form of software, but they will also be legal tools. We must defend the right to free speech against anyone who would assail against it, no matter how seemingly noble their reasons for doing so.

Another key is our words. I don’t know anyone else with a blog. I don’t know anyone else who feels comfortable publishing their views on politics and society in a public venue. There is a fear I feel even now, as I type this, that criticizing one of the companies that runs the internet will in some way damage my career.

But if the situation is to change, there must be many more people writing and thinking and criticizing. We must practice these skills. Any skill left unpracticed will atrophy. Ancient people practiced hunting and fishing and warfare, for these skills meant the difference between life and death. The weak did not survive. So these cultures inculcated practice into their lives, and their children’s lives. Our ability to think is just as vital to our survival. When our minds atrophy, we become easy prey to corrupt governments, radical movements, and corporate monoliths. Instead of living free lives, we will become cattle. And so we must think. If we stop, we will perish.