GeistHaus
log in · sign up

øΔ

Part of wordpress.com

A blog about nothing

stories
A case against nihilism
Uncategorized
If you aren’t religious, it’s easy to feel like life is somehow inherently meaningless and that humans add their own meaning to it. For some, this is fine – they don’t think too much about it, and move on. For others, like me when I was in college, this can be a source of existential […]
Show full content

If you aren’t religious, it’s easy to feel like life is somehow inherently meaningless and that humans add their own meaning to it. For some, this is fine – they don’t think too much about it, and move on. For others, like me when I was in college, this can be a source of existential dread and even depression. I suspect the reason people are addicted to their phones is that they fundamentally aren’t comfortable with their existence.

The idea that life is fundamentally meaningless is roughly known as existential nihilism. Before continuing, I should note that I’m not a philosopher, nor am I particularly well-versed in scholarly views on nihilism. This essay is mostly a response to the kind of everyday nihilism I’ve seen in my peers, who might make statements like “Nothing really matters anyway” and feel that this is somehow the philosophically obvious and correct viewpoint.

There are a few reasons people seem drawn to nihilism. One might be that there are a variety of different religions that all have conflicting views – this makes it seem like one’s religious beliefs are largely a matter of chance, and makes it difficult to believe in one particular religion. Then, in the absence of a religion to tell you why life is meaningful, one has to invent one’s own reasons, or simply avoid thinking about it. Once you start trying to reason about the meaning of life from scratch, it’s hard to avoid feeling like whatever decision you make or conclusion you come to is ultimately arbitrary. So it’s natural to conclude that the “truth” is that life is meaningless, and that it’s our ideas about it that give it meaning.

There are a few ways to proceed from here. When I was in college I somehow found comfort in the fact that I didn’t particularly want to die, so I might as well live. Other people say “Well, we’re just humans, so let’s just be humans, enjoy time with friends and family, and do what we can to help each other.” I might call this the “pragmatic” avoidance of nihilism which basically says “why bother thinking about it?” This seems pretty effective for people who can do it – but for others, there’s still a nagging feeling that there’s something they haven’t fully resolved, or like they’re distracting themselves to avoid thinking about the ultimate pointlessness of things. Or it can feel like everything you’re doing is meaningless and unsatisfying in the background, even if it’s something you might enjoy.

For someone in this last camp, how does one proceed? Do you conclude via reason that life is meaningless, but go on living with “impassive stoicism”, as the Wikipedia page for existential nihilism suggests? Or is there another way to think that doesn’t lead to the conclusion that life is meaningless?

Recently, I’ve come to think that the understanding that life is meaningless is based on a subtle logical error. Instead of thinking about “life”, for a second, let’s consider this coffee cup:

A cup of coffee

Is this cup of coffee meaningful? It’s just the coffee shop’s cup – it’s not particularly meaningful to me. But I do like it, and it signifies ritual and comfort. If this were the last cup of coffee I drank at this coffee shop before it closed, however, maybe it’d have more meaning. Or if it were a mug that my grandpa gave me before he died, it’d be much more significant. So it’s clear at least that the sense of meaning of an object is contextual.

The mistake that I think (at least some) existential nihilists make is to go from “meaning is contextual” to “things are essentially meaningless”.

Let’s again consider this coffee cup:

The same cup of coffee

Is this coffee cup meaningless? For any of you reading this, it almost certainly feels meaningless. You might think, “Why would I care about that cup of coffee?”, or “Stop showing me pictures of a coffee cup.” Or maybe you think “It’s just a bunch of matter, melted sand formed into a drinkable shape, inherently void of all meaning.”

Let’s compare that to my own response to this coffee cup, which is “I like it”.

Aren’t “This cup is meaningless” and “I like this cup” both based on human ideas? Is there anything more fundamentally true about “This cup is meaningless” than “This cup is meaningful”?

It turns out that while meaning is contextual, meaninglessness is also contextual and only exists in contrast to ideas of meaning!

So it’s actually not the case that somehow meaninglessness is the objective state of things, and that humans simply add meaning. If you think humans add meaning, you must also realize that they add meaninglessness!

So where does this leave us with our cup of coffee (or life)? In fact, it’s neither meaningful, nor meaningless. It’s:

matthewsaltz
http://matthewsaltz.wordpress.com/?p=383
Extensions
Emails from My Dead Grandfather
Uncategorized
Dear Grandpa, Please stop sending me emails from the grave. These links look very suspicious and I do not know where they will take me. Though there is some chance they will take me to the beyond where you are waiting to commune, it seems more likely that my computer will be infected with a […]
Show full content

Dear Grandpa,

Please stop sending me emails from the grave. These links look very suspicious and I do not know where they will take me. Though there is some chance they will take me to the beyond where you are waiting to commune, it seems more likely that my computer will be infected with a virus or that my identity will be stolen.

So grandpa, while I miss you greatly, and wish I could hug you again someday, these emails will have to stop. I’m just not opening them, okay? They’ll be relegated to the spam folder, where they’ll be deleted automatically after a short while.

Love you,

Matthew

P.S. I want to get the ring you left me fitted so that I can wear it, but I haven’t gotten around to it yet.

P.P.S. I wish I could talk to you more about how you felt as a person. And what it was like in your mind.

P.P.P.S. The memory of hugging you when my head only reached your belly is still one of my gold standards for what it feels like to be home.

P.P.P.P.S. Love you. Miss you. Please stop sending me emails though, seriously.

matthewsaltz
http://matthewsaltz.wordpress.com/2022/04/29/emails-from-my-dead-grandfather/
Extensions
How to make stir fry (my brother’s recipe)
Uncategorized
I’m pretty new to cooking anything more complicated than rice and beans, basic pasta, and individual items like sweet potatoes in an oven or basic broccoli with salt and pepper. Last week I insisted that my brother teach me how to make stir fry, since he’s a pretty good cook and very enthusiastic about cooking. […]
Show full content

I’m pretty new to cooking anything more complicated than rice and beans, basic pasta, and individual items like sweet potatoes in an oven or basic broccoli with salt and pepper. Last week I insisted that my brother teach me how to make stir fry, since he’s a pretty good cook and very enthusiastic about cooking. It also happens that he likes to make food that’s not too complicated, which works out well for me.

He asked what kind of stir fry I wanted. Spicy? Sweet? Thick sauce or no? Noodles or rice?

I wanted spicy and not too heavy, and I already had broccoli. He said he preferred noodles to rice, so I decided to try that. I don’t eat meat often so I wanted to cook tofu.

Here’s what we ended up with. Read through the whole thing before starting to make sure that you’re not surprised by something later (or that I didn’t leave out something important on accident). You can also order how you do some of the preparation differently/however you want (for example, you might want to start boiling the pasta water while you prepare the veggies). But I guess that’s standard for recipes… I’m really new to this. Anyway, enjoy!


Ingredients (this makes one serving, for me):

  • 2 cloves of garlic
  • About 1 big stalk worth of celery
  • A pack of pre-cut up broccoli, about 8 x 4 inches in size. I know, this is not a standard unit. Basically it should cover up 3/4 of the bottom of your 10″ pan. (I also used carrots instead of broccoli the second time I made this and it was good. About 1 big carrot’s worth.)
  • About a 2.5″ length of a piece of ginger (Again, not a standard unit. Doing the best I can. How do you measure ginger??)
  • Chili flakes (or a fresh red chili but they don’t have that at the little grocery next to me where I’ve been shopping)
  • A block of extra firm tofu
  • Some rice noodles (however much you want for one meal)
  • Low-sodium soy sauce (low-sodium so you can dump more in without it being too salty)
  • 1 lime

Preparing the veggies

  1. Cut the garlic into thin slices, cutting across the short axis. You can also mince it instead. Put it in a tiny cute bowl for later
  2. Cut the celery in thin strips along the short axis, but with your knife at a 45 degree angle so you end up with these little weird rainbow shapes that are slightly longer than they would be if you just cut them the short way. It looks weird but turns out to be good and crunchy, so I approve. Put this in a little bowl for later.
  3. Julienne the ginger. I linked a 1 minute video. It sounds really fancy but it’s very easy and basically means to cut it into thin strips. You can put this in the same bowl as the celery because they go in at the same time.
  4. If you didn’t get pre-cut-up broccoli, cut that.

Making the tofu

I used this recipe for tofu but without the cornstarch. (They didn’t have cornstarch at the place by me…)

In summary:

  1. Buy extra firm tofu
  2. Cut the tofu into cubes
  3. Lay the cubes out onto some paper towels
  4. Lay some paper towels on top of the cubes
  5. Put a cutting board or other flat thing on top of those paper towels, covering the cubes
  6. Put something heavy-ish on top of the cutting board, like a cast iron pot, a stack of books, or a typewriter (Yes, I actually did this… it was fun.)
  7. Wait 20-25 minutes ish. Meanwhile preheat the oven to 400 degrees.
  8. Toss the tofu in a bowl with 1 tbsp soy sauce and 1 tbsp olive oil until they’re all covered. It’s fine if it breaks up a little.
  9. Lay the pieces of tofu out on a baking pan
  10. Once the oven is preheated, put the tofu in in the middle of the oven for 15 minutes
  11. Take it out and toss the tofu around a bit with a spatula
  12. Put the tofu back in for another 15 minutes
  13. Take it out of the oven and put it in a bowl for later

This amount of time will make for pretty crispy tofu that’s almost meat-like in texture, which I like. For slightly less crispy you can do 25 minutes total. I’ve done both and prefer 30 minutes total.


Making the pasta

I got rice noodles and basically followed the instructions on the package to make them. For me that’s basically:

  • Boil water
  • Put pasta in (no salt for rice noodles with this stir fry dish, says my brother)
  • Lower heat a little but still boiling
  • Leave in for 6 minutes
  • Take out and strain and rinse with cold water thoroughly to stop them from continuing to cook

My brother’s instructions were to just pour boiling water over the noodles and let it sit for 1-2 minutes, but I think we must have different kinds of rice noodles because that would not be enough for the ones I got.


Putting it all together!

  1. Put sesame oil (or vegetable oil is what my brother prefers, but I like sesame) in the pan, about enough so that when it heats up it’ll coat the bottom
  2. Put the heat on medium-high (for me that’s a 6 out of 8 on a gas stove)
  3. Wait until it’s hot and the oil is runny and you can spread it across the pan
  4. Turn the fan on over your stove if you don’t want to inhale whatever cooking chilis puts off, which makes me cough and sneeze
  5. Dump as much chili flakes in as you want. For me that pretty much covers the surface of the oil that’s pooled up in various areas of my non-stick pan, but just feel it out. I like it reasonably spicy but not crazy. Stir that around for 30 seconds or a minute
  6. Dump the broccoli in there, stirring it around at first, and then stirring frequently until it’s got some browning and otherwise seems pretty much cooked. When I do it the broccoli absorbs all the oil, but my brother says that’s because it’s a very non-stick pan, and it seems to be fine. I resisted the temptation to add more oil and it’s turned out great.
  7. Once the broccoli is pretty much cooked (but maybe not like 100% cooked because it’s still gonna be there for a bit), dump in your bowl of celery and ginger. Stir around, stirring frequently, until the celery has cooked down a bit and seems pretty much good to go.
  8. Dump your tiny cute bowl of garlic in, stirring it into the rest of the mix quickly so it doesn’t burn on the bottom. Keep stirring for a minute or so. Maybe a little longer, you just want to cook the garlic a bit but not a ton.
  9. Dump the bowl of tofu in. Stir it around. (If you do my brother’s way of doing this, instead of pre-cooking the tofu, you’d press the tofu, cut the tofu into thin strips, and at this stage, you’d dump all the veggies into a bowl on the side while you cooked the tofu till it’s crispy. Then you’d mix the veggies back in when it’s done. I tried that tonight and it’s actually a little more of a hassle and it didn’t turn out as well, but I’ll try it again another time.)
  10. Put soy sauce. I basically toss the bottle around until most of the top surface of the food in the pan has been touched. But use your judgment, I guess. (Side note: I hate the spelling of judgment.) Somehow I’ve just gotten it right both times by eyeballing it. Hoping it’s not beginner’s luck.
  11. Cook that, stirring around until the sauce has been absorbed and has cooked down some. This won’t take that long.
  12. Dump that whole delicious mixture into a big bowl
  13. Put the pasta in the pan and stir it around some. Since my pan is so non-stick there’s basically nothing left in the pan, so I add some more soy sauce to the pasta at this point. Again just use your judgment. I put a few splashes in at this stage, I guess. Stir that around till the pasta has absorbed the sauce and is hot again (if you chilled it before. If not and you timed it exactly right you can take the pasta straight out of the boiling water, strain it, then put it in the pan, but the idea of trying to time this stresses me out at the moment so I just do it at the beginning.)
  14. Take the pasta out and serve it into whatever bowl you’re going to eat in
  15. Put as much of the delicious veggie mixture on top of that. So far I’ve had a slightly high veggie to noodle ratio so I’ll put some veggies on, eat, then add some more veggies after. Somehow I manage to eat all of this in a single meal and it’s not too much food, probably because I don’t make a lot of pasta
  16. Taste it. Hope it’s good! You can also cut a lime in half and squeeze a little bit of fresh lime juice on top if you need to cut the spice or salt a little. Do that to taste, and do it slowly because otherwise it’ll all just taste like lime (I did that on my second serving of veggies the first time I made this, and it was still pretty good. Most people probably don’t need this warning but I’m assuming you’re as much of a noob as I am.)

Enjoy!

matthewsaltz
http://matthewsaltz.wordpress.com/?p=312
Extensions
A Simple and Dynamic Method for Consistent Productivity
Uncategorized
Throughout my career, though I’ve managed to be productive in aggregate, I’ve always sought to be more consistent in my productivity. How productive I am at a given moment seems driven by a combination of few factors: How enthusiastic I am about the current tasks I’m supposed to be completing Whether there are any upcoming […]
Show full content

Throughout my career, though I’ve managed to be productive in aggregate, I’ve always sought to be more consistent in my productivity.

How productive I am at a given moment seems driven by a combination of few factors:

  • How enthusiastic I am about the current tasks I’m supposed to be completing
  • Whether there are any upcoming strict deadlines
  • General life factors (have I slept well, have I been exercising, is there something stressful going on, etc.)

Since I obviously can’t rely on those things to always be in my favor, I’d like to learn to be able to make consistent progress on my tasks even when some of these factors are to my disadvantage. I’ve tried a lot of things, and some have worked for a time, but none of them have really stuck.

About a month ago I started a new system that I really like, and I hope I will stay with it.

The system is as follows:

  1. At the beginning of the day, create one goal that I have to accomplish that day. I write the goal at the top of a piece of paper. The goal needs to be specific enough that I can definitively say when it’s done, and it needs to be completely realistic for me to finish it that day, so that I can say “Yes, I can definitely do this. No excuses”. It also needs to be significant enough that at the end of the week, even if I only did those goals, I would still feel like I’m making some consistent progress. Typically the goals I choose are things that might take one to two hours of focused effort.
  2. Only do one thing at a time, and log what I’m doing as I go. Before I start a task, I write down what I’m about to do. When I finish the task, I check it off and write the next bullet point. If something comes up while executing the task, like realizing I have a question I need to ask someone, instead of asking them right away, I will write down a “TODO” in-line in my log and box it to come back to later. So if the task is “Check email”, I write down “Check email”, open my email, read it and execute only small tangential tasks (so, e.g., I don’t see an email about a code review and then get distracted and go do the code review), and when I’m done, I quit my email and check off my task. I do the same for Slack, which means I don’t leave it open in the background. If I take a break, I write “Break” and check it off when I’m done and come back to my desk. I write my big goal at the top of the page and when I finish it, I box it and check it off for some extra satisfaction. At the end of the day I write DONE and box it, to get some closure.
  3. Leave my phone in the other room while I’m working. It seems that I really do have to be physically separated from it by a significant distance to keep from being distracted by it.

That’s it! No need to plan my day in advance, or to block off specific times to work on things. I don’t pick my goals for the week ahead of time. I just sit down, choose my goal and write it down, and then start cranking. I think I’ve been more efficient for the past week and a half than I’ve ever been.

Here are a few reasons why I feel like it works well for me:

  1. Even when I’m on Slack or email, I’m focused on only doing that, so it doesn’t just feel like I’m messing around or bouncing around between things.
  2. Having to write down what I do before I do it makes me aware if I start to get distracted and do something I’m not supposed to be doing at that moment. Usually I catch it pretty quickly and get back to what I’m supposed to be doing. It also gives me a freedom from having to make any other kind of decisions at that moment.
  3. Checking things off as I go makes me feel great. It’s constant feedback that I’m making progress.
  4. It’s completely flexible. In the past I’ve tried blocking off my schedule in advance, but it’s impossible to predict exactly how long things will take. This way I just make consistent progress, no matter what. If I want to take a break, I do so, with no guilt, because that’s what I’m supposed to be doing at that moment, and I know that when I sit back down I’ll be back working and being productive and focused again.
  5. Knowing that I have a single thing to get done that day gives me some closure and a known stopping point, which both makes me work more than I might if I didn’t have a stopping point and also makes me feel better when I’m done, because I achieved what I set out to achieve. It also is motivating because even if I really didn’t feel like working I could say “It’s okay, I just have to finish this one thing”, but typically that’s enough to get over the hurdle and get into the zone. Also, if I finish the goal early, I feel more relaxed the rest of the day knowing that I’ve already accomplished what I set out to.

Overall, I’m excited, and hopefully there’s something in here that will be helpful for you too!

matthewsaltz
http://matthewsaltz.wordpress.com/?p=235
Extensions
Society by Induction (or, Growing Government) (part 1)
Uncategorized
This is the first post in a series of posts considering ways to design governments. 7 minute read Typically when we consider “society”, we think about a giant mass of people – millions or billions depending on the scale. When we talk about rules for governing society, we usually consider the amount of people that […]
Show full content

This is the first post in a series of posts considering ways to design governments.

7 minute read

Typically when we consider “society”, we think about a giant mass of people – millions or billions depending on the scale. When we talk about rules for governing society, we usually consider the amount of people that would operate under a single government – in the US at the time of writing, 328.2 million people.

The problem we are going to discuss today is: How do we create the best possible government?

And in order to answer that question, I’d like to borrow the bones of a technique from mathematics known as proof by induction.

The essential idea of proof by induction is to look at the smallest possible example of a problem (known as the base case), come up with a solution for that small example, and then generalize the solution to all problem sizes.0

So what does this mean in the case of government?


First, let us define a government as a set of rules for conflict resolution among the participants of a society.1

In order to find the best possible government, we will first construct a government for the smallest possible society – a society of two people – and then see whether the rules we create will apply just as well to larger governments.

So let’s start designing our baby government!


To make this concrete, let’s consider a society of two roommates. How would they resolve conflicts and establish rules? Well, one reasonable way would be to simply not establish rules, and then when a dispute arises (“You left your clothes on the floor again. I demand you pick them up.”), it must be resolved by some expedient means (e.g., flipping a coin, engaging in debate, or playing a game of Super Smash Brothers to determine the winner). They may proceed like this indefinitely, without ever establishing a fixed set of rules. On one particular day, it might be perfectly legal to leave clothes on the floor, if the almighty coin flip determines it to be so. On a different day, the fateful coin might land on tails, forcing that good-for-nothing scoundrel to rid the floor of their soiled clothing at once!

This may seem silly. However, because the number of people in this society is small, this could actually work. But what happens if we increase the number of people to three?

If we assume that between a pair of people, C conflicts will arise per day, then with a society of two people, every single day those two people will have to resolve C conflicts. But with 3 people, because there are three unique pairs (Person A with Person B, Person A with Person C, and Person B with Person C), now there will be 3C conflicts to resolve per day! (And that’s assuming there’s no such thing as a three-way conflict, which is almost certainly false.) In a society of n people, there will be (C * n * (n – 1))/2 conflicts per day. If n = 100, that’s already 4950 * C conflicts per day! (Edit: Of course, in reality, not every person will interact with every other person in society on a given day, but let’s go with this line of reasoning because it’s fun anyways and that’s what I thought of while writing the post, and I like the rest of the conclusions anyway.)

So we can see that our simple government with no laws and case-by-case conflict resolution does not scale to large problem sizes.

The fundamental problem here is that these two roommates may end up resolving similar conflicts over and over again, and not always with the same outcome. This is a waste of time!

So, what if, instead of resolving the same dispute over and over again, the roommates were to document the resolution to that dispute, and refer to that for all future disputes of a similar nature? This would save them a lot of time, and probably a lot of anguish as well, by avoiding rehashing the same conflicts over and over again. Sounds like a win to me.

And so we say, let there be laws!

This way of forming laws is actually quite elegant, because it avoids another very difficult problem – agreeing on common principles. So on the one hand, the resulting set of laws may be intellectually unsatisfying or not perfectly internally consistent (especially in a system where laws are determined by coin flip); but on the other hand, this allows for compromise, even when the two people being governed operate by completely different moral frameworks. Pretty good, I’d say, for our tiny government of two!

(It turns out this is basically how common law works. It’s also related to caching.)

Now going back to our favorite question: Can we generalize this to larger societies?

Going back to the math – if we assume there are only M possible unique conflicts, then our society only has to reach a resolution to each of these conflicts once in order to create a law for each of the M conflict types, after which all conflicts will be able to be resolved by preexisting laws! So the size of the society and the conflict rate C do affect how fast this set of laws will have to be created – and at first, there will be an overwhelming number of laws created per day – but after all of the laws are created, assuming there’s not much overhead to resolving a dispute once a law is in place, there is no longer any daily time spent resolving conflicts! Of course, in practice resolving a dispute even according to an existing body of case law takes some effort, so for this to actually work, people would have to mostly follow the laws to limit the number of disputes.

There’s obviously a lot of detail missing here but given the size of the common law Wikipedia page, I’d say that yes, this way of making laws is actually practical in some sense.2

One fun thing to note about this is that the mechanism for the initial resolution of a novel dispute has been left completely unspecified, and yet we were still able to make some sort of a determination about the scalability of the rest of this legal system. Of course, in practice, it makes a difference whether this is done via coin flip or by a judge or by a popular vote, but allowing the initial law creation process to be abstract lets us consider the scalability of the rest of the system independently.


So, we’ve now seen how it’s possible, by considering a very tiny society of two people, we’re able to create general principles that seem to work well even as society grows larger. In a future post I’d like to explore how we might evolve this further and address more of the details and issues with what’s been presented so far. Stay tuned!


0 Proof by induction actually has a very formal definition which we won’t be following here. I’m more interested in the broad category of reasoning/intuition-building which works by starting with small cases and then moving to generalize that solution. I don’t know what to call that exactly and the closest analogy in my head is proof by induction. So, mathematicians, please forgive me.

1 This is my own definition and is probably wrong. If someone knows a better term for this than “government”, let me know. (Judicial system, maybe?)

2 As a fun aside, to get rid of the “startup delay” during the creation of all of the laws, you could agree on some set of base laws or rules to “bootstrap” society, but that would require a way to come to consensus on fundamental rules as a society, which currently is not required. But this would get us closer to something like the current government of the US which has a combination of case law and statutory law. (To be completely transparent, I’m talking based on 5 minutes of Wikipedia reading. I am not a lawyer or an expert in government.) But I want to derive everything from scratch, so who cares about the US! We can talk more about the introduction of statutory law if it’s required in future posts.

matthewsaltz
http://matthewsaltz.wordpress.com/?p=141
Extensions
Understand First, Critique Later
tech
5 minute read At the company I work for, the design process for projects involves writing a technical design document that describes the way in which the project will be implemented. Before proceeding with the implementation of the project (barring some potential proof of concept work that happens alongside the design), the design document is […]
Show full content

5 minute read

At the company I work for, the design process for projects involves writing a technical design document that describes the way in which the project will be implemented. Before proceeding with the implementation of the project (barring some potential proof of concept work that happens alongside the design), the design document is sent out for review to teammates, who then critique the design.

I’ve always enjoyed reviewing designs, but as my expertise has grown and as I’m more involved in designs for projects that I won’t necessarily be involved in implementing, I’ve noticed that I sometimes have a counterproductive impulse that I’m working on curbing. Something like the following will happen in my brain while reading the document:

  • I don’t fully understand this… It seems too complicated.
  • Let’s think about how I would do it.
  • It seems to me like it’d be easier to do XYZ, which would have benefits ABC.

At this point, there’s a fork in the road.

The first impulse I have is to post “It seems to me like it might be cleaner to do XYZ, because ABC.” However, there are several issues with this.

First, it demonstrates a lack of respect for my coworker(s) and the time that they have taken to come up with this approach. I’m implicitly saying “This gut impulse that I have is equal to the hours that you’ve spent.” This isn’t actually how I feel, but it could come across that way.

Furthermore, by failing to understand fully what they have written, there are a few things I could miss out on:

  • They probably understand the problem more thoroughly than I do, which could lead to different design decisions than the ones that I’m considering. They may be making different assumptions about the use case (both in terms of functionality and performance) or may have thought of edge cases that I haven’t considered. They may also have a better understanding of other components of the system with which this project will interact and the problems with those. Any of these could unravel the validity of whatever ideas I had for the design. They may have even considered the design I’m proposing it and decided against it for some reason. Sometimes they may even say so in the document that I’ve failed to read carefully.
  • The proposed approach, though counterintuitive to me on the surface, may have positive implications I don’t understand. For example, it could improve performance or simplicity in another area in a way that isn’t clear at first glance. (For example, “By doing this, we avoid having to do this other hairy thing.”). They could also be using techniques I haven’t seen before, but which, once digested, prove to be useful for this design and for me in the future.
  • The approach could be reasonable, but there could be a gap in communication which caused me to react by labeling it “complicated”. This can be fixed by tweaks to the language or the layout of the design.
  • Without fully understanding the design, I can’t give good feedback on incremental ways to improve it. After understanding it fully, I might actually be able to provide helpful feedback on the design as-it-is that would lead to something everyone is satisfied with, rather than trying to shoehorn in my own approach.

So, while I believe the impulse to come up with my own design is perfectly natural (after all, it’s easier to write code than to read it), I think it’s better to take the second path in the fork in the road: Understand first, critique later.

Taking this path isn’t so difficult. There are a few tricks that I can do to make sure that I’m as patient as I should be when reading a design:

  • Keep a separate document where I can write my own ideas for the design as they pop up. If I really feel inspired to brainstorm on my own, that’s okay – I can do it in a separate document and come back to it later. Brainstorming my own ideas is my way of fully digesting a problem, so I don’t want to do away with it completely or suppress it.
  • Write comments as I go, but don’t publish them until I’ve read the whole document. Sometimes I’ll ask a question that is actually answered later in the document, and this helps prevent that. We write our documents in Google docs, so we can do this with the comments feature there. If I feel like there will be too many of these or like I’ll need to split reviewing across several sessions, I can use my brainstorming document to aggregate a list of questions, before going back to put them in the correct place if they remain unanswered.
  • Ask questions until I understand the design as stated. At this point, consider whether the alternatives I have in mind still make sense. This is the key part. Once I understand the design, some or all of my ideas may have been invalidated, or I may be more convinced that my ideas could be helpful, but with the confidence to talk about them with full respect for the original design and the considerations with which it was created. If I can’t understand the design even after a thorough read, it may be time to talk to the author(s) offline to clarify my understanding and suggest edits that would help the clarity of the document.

As always, there are exceptions, and I don’t intend to be overly dogmatic about this approach, but I think that following it will lead to being not only more pleasant to work with, but also a better engineer.

matthewsaltz
http://matthewsaltz.wordpress.com/?p=133
Extensions
but the dust
poetry
(a poem) i see the empty storefronts and i wait for the streets to grow themselves dusty - tumbleweed will find its way and so will the outlaws, bandana masks huffing, (a standoff awaits) wind whistling, everything still but the dust.
Show full content
(a poem)
i see the empty storefronts and
i wait for 
the streets to grow themselves 
dusty - 

        tumbleweed will find its way
        and so will
        the outlaws,
        bandana masks huffing,
        (a standoff awaits)

wind whistling,
everything still
but the dust.
matthewsaltz
http://matthewsaltz.wordpress.com/?p=118
Extensions
The Power of Fuzzy Things
Uncategorized
6 minute read assuming 200 WPM As a software engineer, I’ve gotten used to describing things precisely. Specifically, programming involves describing a process so meticulously that even a computer can understand it. I’m given some behavior that I need to tell the computer to do, and I write a step by step sequence of instructions […]
Show full content

6 minute read assuming 200 WPM

As a software engineer, I’ve gotten used to describing things precisely. Specifically, programming involves describing a process so meticulously that even a computer can understand it. I’m given some behavior that I need to tell the computer to do, and I write a step by step sequence of instructions that the computer is able to execute.

If that sounds dry, it’s because it is. And yet, I do it for a living, and I enjoy it thoroughly. What gives?


Natural language (what I’m writing in now) is an extremely useful tool for the conveyance of information and the explanation and exploration of ideas. Through language, we are able to speak with one another and come to an agreement about a legal contract, whose turn it is to do the laundry, or whether or not God exists. We can fight in twitter wars, or call our neighbors something so foul that their blood turns cold. Language can create, and language can destroy. 

But predominantly, in day to day life, we think of language as a way to communicate information.

I write this essay. You read this essay. Your brain processes the information on the page and forms an opinion based on the content of the essay. I have written a program, dry, but with so many words, for your brain to interpret, execute, and respond.

If that sounds dry, it’s because it is.


I would like you to perform an exercise. Look at whatever it is you’re sitting or standing on, and describe it.

Done? Good. Consider whether you could describe it well enough that someone on the other end of the phone would be able to have a reasonable idea of what that thing looked and felt like. Chances are, you could.

But now I want you to imagine something else. Imagine you’re tasting your favorite food. 

Now, try to describe that feeling. 

If you’re anything like me, you can’t. And yet, this sensation is one of the most common, pleasurable, and fulfilling feelings there is. How can this be?

And even if I could describe it – “warm, cozy, home” – would you feel that feeling? Would you know what it is for me to truly taste my favorite meal?


Poetry is the taste of language, and it’s meant to be that way. As soon as you see the structure of a poem, lines spaced unevenly, a Jenga tower of words on the page, you know that what you are about to read is not a sequence of instructions. What you are about to read is a journey, designed to take you from Point A to Point B, where Point B is uncharted territory, off the Feelings Grid of labels and “hungry” and “sad” and “sorry”, but instead on an island, where you find yourself without having ever taken a single step. And on the first attempt to describe the island, it will vanish. Others can only find it by following their own journey through the words, and they cannot know where those words will take them until the path has been made their own.

A quick google search tells me that “sublime” is thought to come from the Latin “limen” meaning threshold. Poetry can take you across the threshold – but in order to explain what’s beyond it, you have to cross back.


And yet, it seems unlikely to me that if so few words can take you to a place beyond the threshold, that there’s not something more than ordinary communication of information happening when we talk to one another. As keen as we are to consider ourselves master manipulators of concepts and symbols, high minded and full of reason, able to burn anyone on Facebook by pointing out their logical fallacy when talking about Trump or the liberal media, I think it’s likely that what’s really happening when your face turns purple reading your cousin’s latest tweet is more akin to poetry than it is to programming. And yet we continue to swat each other around with words, knocking them back and forth like a puck on an air hockey table, with the puck always floating just above the surface. It never quite touches the table.


Similar to poetry, when an advertisement comes onto the screen or is pasted onto a billboard, we are quick to dismiss our worship of the primacy of words and symbols and reason. We’re taught that when looking at an advertisement, there is more going on beneath the words, and we must look past them and their literal meaning, onto what they are telling us – the subliminal messaging. It is no coincidence that subliminal and sublime have the same root. 


For most of my life I’ve considered myself a scientifically-minded person, and I would still say that that is true today. Sure, I’ve written poems and music, but I have always idealized logic as king. And it is true that logic provides an excellent framework for the development and criticism of ideas. But in a way, logic and science can form a trap that’s very hard to extract yourself from.

The trap that science and logic can form is the trap of thinking that you understand something fully.

It’s the trap of thinking that you can use them to explain everything.

It’s the trap of thinking that logic is really the way that humans make decisions. If you’ve ever written up a list of pros and cons for an important decision you’ve had to make, trying desperately to force the decision into some formula, you know that this isn’t the case. A right decision isn’t a program you write. It’s poetry that you read.


I described the consumption of poetry as a journey, but said nothing of its production. The job of the poet is to dive beneath the threshold, feel out the twists and turns of the eddies in their bodies, flesh out the flowing currents as words, and produce on the page some small sequence of characters in the hope that the form they’ve created could reproduce the swirling depths in which they once swam. In a sense, a poem is not written – it is read. 

It just doesn’t start out as words.


It’s true that a program is a sequence of steps that the computer can consume and execute. But a given program is only one of many that would accomplish the same task. As a programmer, my job is not the dry one of typing out a mechanical set of instructions, but rather one of searching the space of all possible programs to find the one whose structure fits the most elegant form. It’s a process of sifting through this and that structure until I find the one that feels right all the way down to my bones. And hopefully, if I listen well enough, others turn out to feel this way too.

But inevitably, and probably frequently, I will miss the mark, and others will read the code I write and curse it and send messages to their coworkers about how awful it is, and why didn’t I just do this, or that?

And inevitably, I will argue with someone with differing political views, and I will hear the words they are saying and I will swat at them with my own words and I will only serve to increase the division between us. 

But perhaps, sometimes, I will be able to listen with open ears, looking below the threshold, and instead of attacking their information, I will listen to their poetry. And if I can listen to theirs carefully enough, perhaps I will be able to hear my own poetry, too.

matthewsaltz
http://matthewsaltz.wordpress.com/?p=93
Extensions