Coffee Is Hard
stilldrinking.org
stilldrinking.org
> Living is mostly a series of repetitive and unrelated tasks. It makes sense that the most tedious things to code are the tedious things that just have to be done. There are no life lessons or gymnastic skills involved in doing dishes, there’s no underlying theory of housework that will reveal itself after a thousand vacuum cleanings. Making coffee is a boring sequence of steps people feel stupid for getting wrong, even though they’re statistically doomed to screw it up now and then. The hard parts of of life are driving to work, eating properly, flossing, ....
Perhaps I found it particular insightful because I just became a parent a year ago. Prior to this, I thought I had optimized my life so well that most tedious work were gone from my life; with the peak being having switched to remote work and not having to even commute anymore.
Then I became a parent, and had to come to terms again with having to do a long series of repetitive and routine work every day -- washing bottles, dishes, changing diapers, etc. It was a bit of a cultural shock to my system since over the past 10 years I had slowly gotten used to / gradually removed or optimized aspects that are frictions / repetitiveness / tedious routines from my life; and suddenly it's 10x of it all coming back. Over the past year, I've come to realize this is what life is, which is exactly as the author said.
"Everything in life is miraculous. It rests within the power of each of us to awaken from a dragging nightmare of life made up of unimportant tasks and tedious useless little habits to see life as it really is, and to rejoice in its exquisite wonderfulness." ― James Branch Cabell, The Cream of the Jest
Not that I've remotely mastered it, but I think there's a lot of wisdom in there.
I always assumed it meant travel more and look for adventure, but I have come to understand that 'enjoying the ride' in your life, not always just pursuing some next thing is about enjoying the tedium.
Some of my favorite memories of my young children is the time we spent washing dishes together or watching them vacuum up the rugs and chase the cat with the broom.
It's all about enjoying the ride, man.
We were rushing to get everything ready for the wedding. Picking up supplies. Moving into a house near the venue for a couple of days. Doing the wedding itself, packing up, getting home the next day. Obviously it goes without saying that the weeks leading up to the wedding were busy, just a little bit more so than every week before it.
But when I pulled the van into our driveway, 36 hours before leaving for our honeymoon, I had a blissful amount of time to just do mundane tasks. Return the kegs. Break down dozens of cardboard boxes from gifts that had arrived in our absence. Return the van to my friend's house, retrieve my car from same friend. Pack for 12 days away.
It's hard to put into words, but I just realized that I was in absolutely no hurry, because, for what felt like the only time in recent memory, I had more time than I had stuff to do. I was not pressured, or rushed, or thinking about what comes next. I had vacation in front of me, stress behind me, and limited mundane tasks in the present.
And that's how I found myself breaking down cardboard boxes with a huge smile on my face. Slowly, methodically taking them apart. Not annoyed at how many boxes there were. Not thinking about how I had to finish this, so I could do the next thing, so I could get to bed, so I could wake up for work the next day.
I don't think I've ever been so 'present' than I was in that moment.
If I can convince myself that clearing the table for a new project is in itself a project it'll be cleared and washed and clean with a smile on my face. If I can't I'll be much more likely to just shove everything to the side to "solve" the obstacle and keep going.
I'm not very good at recategorising stuff on purpose yet, but it's definitely something I'm actively practicing.
Anyways I figured that's more or less the same thing as the journey-vs-destination thing worded a bit differently.
I'll end my ramble here before it gets too long.
I think finding lovely things tedious is something most of us learn, then unlearn.
Albert Camus
I'm going to die eventually, so is it futile to exercise everyday, to learn, to try and be a better person? I don't think so, but all of those things are journeys that never end and require many mundane tasks.
Many repetitive activities end up having a practical purpose: as someone who does strength training I know about sets and reps and lifting heavy things. But that gives me strength for everyday things.
But the point of giving Sisyphus that task is precisely because it is pointless. Sisyphus isn't doing anything with his existence except that task.
I'm really loving this quote, definitely using it at some point.
How can one be free when they are a slave to their discipline? A great example is time, everyone wants more of it. The way to get more time is to not waste time. Being discipline with ones time is how not to waste it.
I'm far from the most disciplined person (practicing discipline is pushing the rock), but in the ~2 years since I really put more discipline in place it has changed me as a person. Highly recommended.
[1] He has podcasts, and many books. I suggest listening to Tim Ferris when Jocko was on as an intro.
[2] https://www.amazon.com/Discipline-Equals-Freedom-Field-Manua...
In other words, arbitrary and random work, putting someone in an uncertain and unpredictable situation is worse than constant and well-defined work.
Changing a nappy bleary eyed at 4 am with an inconsolable screaming infant I recalled this advice from my friend with three kids. I had a sort of epiphany realizing that I could control me reaction and find joy in pretty much anything if I accept that it just has to be done.
Finally, it comes down to a decision when I am not enjoying something: i) Do I have to do this? (can I change the circumstances, or not do it) ii) if yes, be creative and enjoy it.
Surprisingly, works a lot of the time. The times this reasoning fails is when the task imposed on me is by other people that to my judgement have done it out of laziness, incompetence or exploitation.
Tedious: too long, slow, or dull; tiresome or monotonous.
"Too" long as in "longer than I'd like." Tiresome. Monotonous. Those sound like the opposite of enjoying the ride to me!
Are the folks here denying definitions and they make up their world instead and get upset when they encounter reality, or why does this downvoting happen? I'd really like to know.
However, “quot[ing] the definition” in this case is citing a denotative facet of the word. There is also nuanced and idiomatic usage that is indicated in connotative meaning.
Pointing to denotative meanings when connotation is more contextually relevant is often considered combative and may garner downvotes.
I find your definition of "tedious" to be at odds with your enjoyment of these experiences - maybe "tedious" is not the right word here?
It sounds like a rationalization to me.
"Oh this person rationalized happiness out of a miserable life, instead of just being miserable. Somehow, that's bad and nobody should bother doing that" .. ?
Things aren't tedious, you the observer put the label 'tedious' on them and then yearn to get away from them.
Since you are actually vacuuming and not putting it off or paying someone else to do it, this is unhelpful labelling which only serves to make you less happy. You may as well consider it a new instance of vacuuming never seen before and look for the differences and seek to enjoy it, as considering it the same vacuuming event as last time copy-pasted and look for the similarities and then call them boring. If you have to pass through it either way, why pick the interpretation which makes you feel worse?
Like "you never step in the same river twice" because the water changes, and you change, you never vacuum the same room twice.
are you holding that against him? Does this bear on the wisdom of the advice?
All that said, I don't think you can say this is just a question of attitude. Some activities just inherently suck - 19th factory jobs, manual data entry and things of this sort can't be redeemed by attitude. Indeed, it's probably better to hate jobs like that than to think of them as a reasonable place for a human being to end up.
Actually, this is false. I've been programming for 30 years straight, except for a brief 1 year stint as a data entry operator. I made it my goal to be the best data entry operator they had ever seen. This was for Robert Half/Accountemps, an employment agency that both acts as a headhunter firm for data entry operators and a contracting company that hires out data entry operators. I was able to continuously focus on getting better in such that I could accomplish as much in 4 hours as they're best high-end "professional" data entry operators could do in a day, with similar accuracy metrics. I did this by programming a series of macros to accelerate what I did, and other tricks such as pre-sorting similar items.
While I do agree with your general sentiment to some extent, the best way to deal with undesirable menial tasks is to dig in and push for excellence.
Seriously, if the dishes are clean, how much more excellence do I need? Same with most menial house-cleaning tasks. I don't mind a messy house, so why put more effort into doing these things than necessary?
You weren't doing what they were doing any more than a person with a dishwasher or robot vacuum are doing the chore of washing dishes or vacuuming, even if they are getting a similar result. You simply made the dishwasher, which is far more interesting than doing the manual stuff.
It wasn't redeemed by attitude, but by tools that made it better. Others might not have had the knowledge to so, which reflects better on what most folks are stuck with. Either no knowledge of ways to make it better or lack of permission to use that knowledge. Unlike you, they are stuck. The conveyor line only moves at x speed, you cannot tear the sale signs fast enough, federal laws say you have to fill out these forms, the company wants everyone to do it this way because compliance is better and standardised.
Everyone is missing out on something; everyone is a prisoner of circumstance.
"Life is suffering" -Buddha
"Tedium is the worst pain" -Grendel
I realize that first quote is meant to be encouraging, but you can take it at face value to mean what it is: most of life sucks.
Pessimism and optimism are choices we make on how to interpret reality based on our experiences. This might sound like some feel-good comment that you can easily just see things better if you try to frame it differently but it's not. I am profoundly cynical and genuinely believe the world would be a better place if more people would replace their unfounded optimism with skepticism. Sometimes there really isn't a reason to be optimistic other than a desire to feel better about the situation.
Boy, howdy, have you misinterpreted the Buddha. I believe most would agree that in context, Buddha was saying, "Life is suffering because $REASONS. But it doesn't have to be, because $OTHER_REASONS." A vast oversimplification, yes, but I feel that it is a much more accurate representation of the quote.
Another famous quote that everybody gets wrong because they cut it short:
"Distance makes the heart grow fonder"
That quote means separation is good for couples, but almost nobody knows the actual quote:
"Distance makes the heart grow fonder for those nearer"
This is saying distance destroys relationships and you will look for affection from someone who is available.
Indeed, if anything it seems like in general the opposite would be true, if common culture adapts a quote to more accurately fit their reality (irrespective of whether this particular quote is "true" or not).
(Also, I can't find any source for your claim, despite plenty of articles on the source of the phrase, such as https://quotes.yourdictionary.com/articles/who-said-absence-..., so I'm guessing that's a myth.)
I didn't mean it as a gotcha, just that people will mangle quotes to support whatever idea they're trying to argue. Ironically it seems I have accidentally done the same thing.
He did say that we turn much of life into suffering by our unwise reaction to it.
Part of not being bored is to ensure you are "present", which is a whole lot easier when you're well rested.
"Some people do the dishes to make them clean. Some people do the dishes to do the dishes."
Valuing the experience that is happening, whatever it may be, has power.
I wonder how repetitive life feels for humans who still have to hunt for their food.
Not to say that we should shift back to a hunter-gatherer society, but I wonder how much of the mundaneness of life is something we brought on ourselves and not actually an implicit part of existence.
To put it another way: we used to required half of all human beings to attend to household tasks. That setup wasn't put into place because of malice, it was there by necessity. Managing a household used to take as much effort and thought as running a small business does today. Modernity has saved us from that.
That said I highly doubt if that's a preferable state of affairs.
only the cereal grains can serve as a basis for taxation: visible, divisible, assessable, storable, transportable, and “rationable.”
And so early states led the way in agriculture in order to collect more taxes.
https://slatestarcodex.com/2019/10/14/book-review-against-th...
I find this especially effective filling up the dishwasher more perfectly optimizing the layout each time.
I guess I approach these chores like Zen gardens.
Anyway that’s how I tricked my brain into turning the chores into quality time. ;)
If I'm going to clean, I might as well work towards being amazing at it.
Same tetris with the dishwasher too as well as trying to find the correct amount of detergent to use per load over a period of time with different loads and soil levels.
Sad I know!
The distinction is fairly small but at least for me personally it makes a gigantic difference in how much I like doing a task. If I'm woodworking I generally loathe sanding, it's repetitive, tiring, and dusty. But if I see the sanding as its own mini project I can spend hours getting it perfect.
There’s a proper way!! I swear it!
How fast can I do a reasonably good job at this, time starts now.
Thanks. Just reminded me of this:
"One always finds one's burden again... He too concludes that all is well... Each atom of that stone, each mineral flake of that night filled mountain, in itself forms a world. The struggle itself toward the heights is enough to fill a man's heart. One must imagine Sisyphus happy." (Camus, http://dbanach.com/sisyphus.htm )
Literal translation would be "everyday life", but the French term has an aspect of positivity in it that I don't think carries over to the English version.
I disagree. Those are simple rituals that makes life enjoyable too. For instance, I know that after flossing, I'm good to go to bed. Or I know when I'm driving my car that I won't get interrupted and I can wander with my thoughts.
> I know that after flossing, I'm good to go to bed.
I know that when I'm tired and done for the day, I'm good to go to bed. Flossing is a maintenance chore that's needed only because our teeth aren't good enough (and can't be made good enough, yet) to not need it.
> I know when I'm driving my car that I won't get interrupted and I can wander with my thoughts.
If I were in that situation, I'd prefer to stop driving to work (by e.g. going remote, or relocating), but I'd also want to have an uninterrupted time for being with my thoughts anyway, perhaps explicitly scheduled and negotiated with my S.O.
Etc. Now, I'm not really criticizing you as much as I envy you - my life would be happier if I could hack my brain to see the tedium as something worthwhile, instead of doing my best to minimize its amount and impact on my life.
The afternoon commute with the traffic jams, buses packed with students, noise... nope, never missed that.
It's the bits in between those things that are the juicy fun part, though, I guess
On washing dishes: of course nobody loves doing dishes. But honestly it is zen for me. I have a method and a particular way to stack the dishwasher or dish rack. I don't really let anyone come between me and my process. Bluetooth headphones are a boon to the whole process as you can just plug in, listen to your favorite podcast, and putter around the kitchen getting dishes done!
In my house the chore division has me doing the kitchen after the kids are in bed. I love optimizing and getting everything in, but in the right configuration so it also all gets clean. I get annoyed when my wife starts loading the dishes early, because the space isn't managed perfectly, and I don't get my little zen-zing of 'I had a lot, and I wasn't sure it would work out, but it all fit'.
Plus, with Bluetooth, I no longer get my headphone cord caught on the dishwasher's rack! I listen to podcasts at 3x, and learn so much while getting a feeling of satisfaction for a job well done.
There will always be wood that won't chop itself and water that won't carry itself, m8. Enlightenment can only put things in perspective.
Making the tedious parts of raising a kid go away is a lot more expensive than making the normal adult boring stuff go away, though. Also if you're not fairly damn rich (i.e. rich enough not to need a real job) the boring parts will be most of the time you spend with your kids by a large margin, so you'll be reluctant to outsource that even if you can afford to. That's even more true if you're not paying to have the rest of your boring stuff done by someone else ("sorry honey, maybe we can play blocks later, I'm cooking dinner because if I don't we won't, you know, have any" but then later it's bath time then story and bed and maybe you squeeze in 10min of blocks if you're lucky)
I don't remember if it was the dev talking about his own team, or if he was talking about players interacting with the demo, but he mentioned that some people were attempting to summon a list of ingredients (flour, eggs, sugar, milk, etc.) and throw them into a bowl and then into a heat source to see if they could make cookies within the game.
I also recall playing it and, at a certain point, realizing that I was stubbornly uncreative in using the variety of options available to me.
In retrospect maybe that wasn’t true, and the game managed the massive potential for variance by condensing things into smaller buckets. Either way those were some brave developers agreeing to that project scope.
https://gamasutra.com/view/news/300313/Scribblenauts_dev_sha...
https://www.reddit.com/r/TheMakingOfGames/comments/6ibtrf/sc...
If you enjoy devouring this guys writing, buy his book, “And Then I Thought I Was A Fish” (I think it’s the “novel” he references the game being based on?). I really really liked it. Link at the bottom of the original post.
The other book is just a collection of blog posts. It’s /okay/. But I really really liked ATITIWAF. The kind of book that makes you want to try your hand at writing.
—a random internet fan.
"The only reason coders' computers work better than non-coders' computers is coders know computers are schizophrenic little children with auto-immune diseases and we don't beat them when they're bad."
> This is the story of a boy, a girl, a phone, a cat, the end of the universe, and the terrible power of ennui.
Instead of seeing the example code and thinking 'Ah, yes, that code gets something done in a straight-forward way.', I instead think, 'I'm pretty sure I could build a scripting engine and turn most of that code into ajax calls to json files. Of course, I'd then have to build an in-game editor which allowed you to modify the contents of the json files while playing the game with hot-swapping content. Huh, art? Plot? Fun? Oh, yeah, I guess I'll probably need those... eventually...'
Fortunately, trying (and failing) to make games led me to realize that I really love programming and building maintainable systems.
I have a stovetop espresso machine, and I'm constantly amazed at the new and ingenuous ways I come up with to mess it up. Making coffee before you've had your morning coffee is the great connundrum of our generation. Here's a short list of failure modes I've run up against:
- Machine on stove, no water
- Machine on stove, no coffee grounds
- Machine on stove, completely empty
- Coffee and water in machine, machine in refrigerator
- Coffee grounds in water reservoir
- Coffee grounds in brewed coffee reservoir
- Brewing correctly, brewed coffee reservoir still filled with water from washing
- Brewing correctly, head off to work
- Brewing correctly, coffee grounds returned to microwave
That's just a subset, and amazingly I still come up with a new one every few weeks.I spent last year thinking on how to implement a text-only simulation that could cope with just about any situation. Most of my models were mentally evaluated on this "simple" task of making coffee. The design I came up with (still to be implemented) is not code driven, but data driven. Instead of executing bunch of nested if-elses, I'd have a big list of tuples that contain <action, preconditions, reaction>. When action is performed upon object, this list is traversed. For each element, it's preconditions are compared to current world state. Based on this criteria the most suitable element is selected, and it's reaction is applied to modify world's state.
Your list could be used as preconditions for action of brewing coffee; each would produce different results ranging from nice coffee to yucky mud or broken machine. I'd like to include a nice built-in editor that could be utilized to quickly modify or add reactions, objects, or world state variables. I have most of it figured out but it's a lot of work to put together all the pieces.
“Before Enlightenment, chop wood and carry water.
After Enlightenment, chop wood and carry water.”
"It is," he replied.
"And how do you feel?"
"As miserable as ever," said the monk.
>'LOOK AT COFFEE MAKER': () => { if( State.scene.state.coffeedrunk ) { return "The coffee maker has done its job and mercifully drained the last life out of the old and savaged grounds." } else if( State.scene.state.brewed ) { return "The coffee maker has a fresh pot of what is likely coffee in it." } else if( State.scene.state.brewing ) { return "The coffee maker is brewing." } else if( State.scene.state.waterinmaker ) { return "The coffee maker has fresh water in it, and is ready to brew a terrible cup of coffee." } else { return "Makes coffee. Whodathunk? There's no water in it, and you don't have any fresh coffee, but the grounds already in there have only been used twice and can't be THAT moldy." } }
This is JavaScript right? Is that how these sorts of games are coded? Would learning this be the best way to go about creating games? Thanks.
GameMaker has a non-programming method but I don't know how capable it really is. I wouldn't worry too much about what language you learn, at your stage it's more about the general knowledge of how to get things moving. Transitioning to another language at a later point won't be difficult.
Looks like Spelunky, Undertale, and Hyper Light Drifter were as well.
I would recommend using https://love2d.org/ to get started. This is a simple language built around a 2D game engine with (I think) many examples to follow
It’s easy to learn small things, reasonable to scale to harder things, and the award winning games regularly publish their sources—so you can copy and tweak and learn.
Though, maybe Adventure Game Studio and free images do the trick, dunno.
Specifically, I myself would play games that are set in the same city if the city was big and detailed enough. Just let the games be something more than the hyper-casual churn of ‘question the witnesses, look for evidence, name the perpetrator.’
Sierra's graphic adventure games used their own toolkit called AGI, which stood for Adventure Game Interpreter. http://www.agidev.com
He also wrote a new adventure game and blogged about its development
`sudo pip install pygame`
The truth is, the author is coding an irrational and illogical system, and what this is basically is a big old set of special cases.
But then keep in mind the whole piece is satire.
I would turn the question around on you: why would you put this in data? If you have too much boilerplate, just refactor your code.
When you get to where you are going, you need to sell it for money. If you get out without removing your keys, it is stolen. Then someone offers you enough money to continue on in the game. If you say yes, then much later in the game you die because you don't have a jetpack. If you say no, they offer to throw in their old jetpack. There are literally no hints that a jetpack would be related to selling your skimmer. You just have to reload old saves and try random things until you get one. And hope you have enough saves that you didn't overwrite one from before you sold the skimmer, or you need to start the whole game over.
That is, by about Space Quest II or III, you could still take an action that would lead to your death within a minute or so, but you could no longer take actions that would lead you to dying/being unable to finish many, many scenes later.
Can anyone confirm this?
And I feel like the later LucasArts games (Day of the Tentacle, etc) you could never actually be in a fail state.
My understanding is that Sierra was intending to be more fair as time went on, but they had a bias against playtesting so there were still some big goofs that got through.
I think all of the first 5 KQ games had ways to lose items that would later be needed to win.
KQ VI had a branching path and if you picked the "easy" branch you were unlikely to end up in a very unwinnable state, but there was no indication at the time of the branch that you were doing so (IIRC you were about to be burned alive and you could either use some maid's clothes to put out the fire, destroying the clothes, or cast a spell that required boiling some water, using up some component). With a hint-book it took me several attempts to make it through the "hard" path.
Maybe my favorite KQ memory was KQ 3. Just getting out of the house took my family weeks. Every single misstep turned you into dust. And once you figured it all out, just walking down that stupid path you were 1 pixel away from death in some places.
Those were some fun games.
—the psychologist from ‘Pickle Rick’
I recently played Machinarium, and enjoyed it a lot. My wife and I played it for many evenings on the couch, and computer games are not her thing at all.
I'm finishing up Infamous Machine on my Android phone. It's a fairly silly, small game, but a direct homage to LucasArts games like Day of the Tentacle.
Fester Mudd - Curse of the Gold
Broken Age
My world is changed by how obvious yet insightful this is.
We did eventually beat it after much trial and error, but only with the help of a cheat sheet she had printed off :) I do remember it being brutally hard.
https://grumpygamer.com/puzzle_dependency_charts
some adventure game puzzles became way too obtuse to be fun.
This is false.
Doing dishes can involve gymnastic skills at any moment and the deepest truths of life, the universe - and everything - can be found in the simplest of chores.
Async/await has its own footguns, except they’re so difficult to debug that you need static analysis tools (Typescript or ESLint) to use them safely.
It’s one of that most special class of APIs that let you add a bug in one part of the system (e.g. forgetting an await) that causes a totally different part of the system to fail inscrutably. (Although really it’s Promises that unlock this ability, but potato/potahto.)
Callbacks are easily debugged with just a normal JavaScript interpreter.
I think the author agrees, and wrote the article mostly as a response to people who think it is.
That might be true, but it doesn’t seem like a thing you could know.
Specifically, if you draw the trend line on the size and price of kuka/fanuc/abb robot arms, and you put UR's models in there for today, we are really only 3 - 5 years away from you having a robot arm sitting on your kitchen counter that you can script to make your coffee for you.
So all of these bugs will become real :)
> Avoiding premature death is a process of not occupying the same space as fast-moving metal or motivated microbes. Living is mostly a series of repetitive and unrelated tasks.
1000000% agree!
Couldn't be more wrong.
Loved reading this...