Working on Buttondown — or any mature, complex codebase — effectively and quickly requires a lot of tacit knowledge that I've done a hitherto-poor job of documenting, a fact I am learning more and more quickly as I start to scale up the number of folks working on the codebase.
Documentation in the literal sense is a good first step and final step, of course, but when a codebase is in the "process" of being documented writing down "this is how you do X" does often not actually solve the problem of making sure everyone can do X safely and quickly.
One thing that I've found useful, in the spirit of shifting process to the left, is capturing steps in tests. Here's a simple (but real!) example: adding new Django modules to the codebase. Whenever you run python manage.py startapp
, you also need to add the new app to a bunch of different places:
pytest.ini
, so tests are run;pyproject.toml
, so files are linted;modules.txt
, so metrics are exported.
The perfect solution to this problem is creating a script that automatically adds a new app to all the relevant places and stuffing it into a Justfile, but that's a pretty big piece of work that requires thought and error handling and a whole slew of other stuff. Instead, it's comparatively easy to just capture these constraints in a test:
# This test suite ensures that, when we create or rename a module,
# we update all the relevant configurations so that we lint/test/etc. that module.
from django.conf import settings
RELEVANT_FILES = ["./pyproject.toml", "./pytest.ini", "./modules.txt"]
def pytest_generate_tests(metafunc):
parameters = []
for filename in RELEVANT_FILES:
for module in settings.BUTTONDOWN_APPS:
parameters.append((module, filename))
metafunc.parametrize("module,filename", parameters)
def test_module_is_present_in_pytest(module: str, filename: str) -> None:
assert module in open(filename).read()
This approach also works well when you're trying to enforce a norm or invariant for all new code. (At Stripe, we called this approach "ratchet testing", though initial Googling seems to indicate that this metaphor has not exactly spread like wildfire.)
Another example: Buttondown uses Django-Ninja to generate an OpenAPI spec from the live API. OpenAPI is great, but
it sadly lacks an ergonomic ability to document each value of an enum, so we maintain a separate enums.json
file that needs to be updated whenever a relevant enum has a new addition — even though some enum values are undocumented!
A similar approach works well here:
import json
ENUMS_FILENAME = "../shared/enums.json"
OPENAPI_SPEC_FILENAME = "assets/autogen/openapi.json"
RAW_ENUMS = json.load(open(ENUMS_FILENAME))
RAW_OPENAPI_SPEC = json.load(open(OPENAPI_SPEC_FILENAME))
def pytest_generate_tests(metafunc):
parameters = []
enums = RAW_ENUMS.keys()
for enum_name in enums:
extant_enum_values = RAW_OPENAPI_SPEC["components"]["schemas"][enum_name][
"enum"
]
for enum_value in extant_enum_values:
parameters.append((enum_name, enum_value))
metafunc.parametrize("enum_name,enum_value", parameters)
# Do not add more items to this ratchet unless you need to!
KNOWN_MISSING_PAIRS = [
("CreateSubscriberErrorCode", "metadata_invalid"),
("ExternalFeedAutomationCadence", "daily"),
("UpdateSubscriberErrorCode", "email_already_exists"),
# ... and so on.
]
# This technically does not exercise Python code; it's testing that `shared/enums.json` is up to date.
def test_enum_is_exhaustively_documented(enum_name: str, enum_value: str) -> None:
assert (
enum_name in RAW_ENUMS
), f"Enum {enum_name} is not documented in {ENUMS_FILENAME}"
if (enum_name, enum_value) in KNOWN_MISSING_PAIRS:
return
assert (
enum_value in RAW_ENUMS[enum_name]
), f"Potential value {enum_value} of enum {enum_name} is not documented in {ENUMS_FILENAME}"
What I find most lovely about this approach is that test-driven invariants are self-documenting. A task like "adding a new value to an existing enum" is not obviously a thing that should require searching an internal knowledge base, but a test that captures information about it can contain code pointers, technical explanation, and a way to fix it.
In general, a good mental exercise whenever you're reviewing a PR is "could a test have caught this?", and then reminding yourself that a test should be defined less as "a thing that exercises business logic" and more as a "script that exercises your codebase".
political culture encourages us to think that generalized anxiety is equivalent to civic duty
I described this book's predecessor, Berlin Game as "deeply, thorough competent" and I meant it in the highest possible terms (in the same way our protagonist might deploy 'competence', as a compliment of utmost order.) I finished that book a mere week ago, and now I've finished it's sequel, which tells you perhaps more than any prose about how similarly impressed I was.
It does a number of rare things for a sequel, chief among them elevate the base material rather than rehash it. The plot and mechanics of Mexico Set could not exist without what we know about its characters and world from Berlin Game; it trades the dreary, rain-soaked climes of Berlin for the hot, red, and dusty ones of Mexico (for the most part). It felt fresh and more propulsive; in a way, I was more entranced by not knowing where this plot was going than by the original's thorough pacing and plotting.
I cannot emphasize enough: as someone who hates sequels, who couldn't imagine the merit in this kind of book's existence, I was delighted. (And now, it's onto the third of the trilogy.)
A tiny postscript: one of the things I only realized a little bit after the fact was how much reading one of Deighton's novels is pleasurable in the same way as reading a Christie novel — both this book and its predecessor (and London Match, which of course I have already started) revolve around one big secret being uncovered in much the same way Poirot is trying to uncover the true culprit, and you get to hold onto disparate threads and see which ones are revealing and which ones are red herrings. But, like Christie, part of Deighton's mastery is that while there are characters you're not going to like, there are no out-and-out villains: everyone feels human, and no shifts in plot feel contrived or forced.
Highlights
'He was a real Berliner,' I said. 'He ran the transport business like a despot. He knew the names of all his workers. He swore at them when he was angry and got drunk with them when there was something to celebrate. They invited him to their marriages and their christenings and he never missed a funeral. When the union organized a weekend outing each year they always invited him along.
I had bookmarked Kolo many months ago to try out and finally got a chance to integrate it with Buttondown — a process that I expected to take a couple hours on a lazy Sunday and in fact took ten minutes and three lines of code.
If you have a Django app, I think you should drop everything you're doing and install it right now. It is tremendously, immediately, terrific in a way that I haven't felt about a dev tool in quite some time: modern, ergonomic, immediately valuable, trivial to set up.
So much of my feeling on Django and the Python ecosystem writ large has felt Squidward-esque — feeling comfortable with my architectural decisions and comfort with the language while watching Rails, Typescript, and even the PHP ecosystem advance their respective tech trees much more rapidly. This is a rare case where I am delighted to have chosen Python, though I suspect it is only a matter of time until this tool (or at least this genre of tool) is language-agnostic.
Stop whatever you're doing for a moment and ask yourself: Am I afraid of death because I won't be able to do this anymore?
'He was a real Berliner,' I said. 'He ran the transport business like a despot. He knew the names of all his workers. He swore at them when he was angry and got drunk with them when there was something to celebrate. They invited him to their marriages and their christenings and he never missed a funeral. When the union organized a weekend outing each year they always invited him along.
This book, more than others in the "how to do business" genre, is both:
- legitimately valuable, and probably scores the highest of any such book in terms of "opened my mind and convinced me to change the way I do business"
- very neatly divisible into "parts that are very good and parts that are bad."
The parts that are bad:
- Much like with The Phoenix Project and The Goal, the backing narrative and prose is stilted to say the least.
- A lot of the specific tactical advice (care about how you dress! focus on your store's color coordination!) is very nineties-based in a way that does not perfectly translate to SaaS.
- There's a lot of lead-funneling you into the E-Myth consulting services landscape.
These things are minor compared to the three main takeaways I got from the book, which were delivered at exactly the right time for where I am as a founder:
- Almost all ICs-turned-founders overweight their role as a "technician" and underweight their role as an "entrepreneur" and "manager", and it's important to explicitly assign yourself those two roles (and many others) in order to give them weight and significance.
- A very common failure case for adolescent companies is "management by abdication", where the founder tries to scale out by hiring generalists which works as a short-term band-aid but not a long-term cure.
- A very useful mental exercise for reifying tactic knowledge is to adopt the hypothetical of "what if I was franchising this business?", so as to document everything required to scale and run the business. This process will make it easier to source and train new employees, identify chokepoints in your business, and achieve balance.
All of which is to say: if you were scared off by the hackneyed phrasing of "E-Myth", plunge in. You'll find things worth reading.
Highlights
Baking pies is not about being done, her grandmother taught her; it's about baking pies.
A couple folks wrote in responding to Vibes and years asking how I did annual planning.
I start with a question: "if I had a magic wand, what things would I want to change about the business?" My answers can be concrete or abstract; they can be lofty or object-level. They just have to be the right answers, and they have to be honest.
For instance, when I went through this exercise in December the first few answers that came to mind were:
- I'd make it so that there's an actual top-of-funnel system to drive user acquisition, instead of the "write a bunch of content and hope that it works" system that's been the watchword thus far.
- I'd get rid of the janky editor and replace it with something better.
- I'd have a magically evergreen series of walkthrough videos.
And so on.
Once I have a list of answers that feel correct, I shape them into concrete deliverable projects:
- Build a top-end marketing engine that is self-documented and legible enough to hand off to a talented writer, with clear analytics and lifecycle emails.
- Rewrite the core editor abstraction.
- Plan out a list of sixty walkthrough videos and find a freelancer who can execute on them.
You get the idea.
There's no real shaping or scoping or sizing or any of that — the exercise is to get the project into a single sentence that is clear and falsifiable. Then it becomes a project for the year.
That's it!
I think it's easy to underestimate how long a year is, and how much good work — when it's focused wisely and tactically — can be done. Even now, a "bad" week in terms of technical productivity means only fifteen or so hours of flow; extrapolate that out to a year, and that's 750 hours. Buttondown is not large; there are very few projects that could not be accomplished within 750 hours.
Giving yourself permission to devote yourself to a task is a superpower.
"Taigen's won 24 duels! How many have you won?"
"Should I have been counting?"
Bucket list item accomplished: I got to nerd out about my setup for a Uses This interview!
Baking pies is not about being done, her grandmother taught her; it's about baking pies.
A really fun game and truly impressive indie effort that suffers from many of the same flaws (albeit less so) as Dicey Dungeons — a slow early-game, a sense of disempowering non-determinism, a lack of depth. I bet I play this a dozen (or a dozen dozen!) more times, because there's still so much going for it — runs tend to be quick, there's a lot of fun combinatorics at play, and it feels very easy to pick up. (And the aesthetics + presentation are terrific.) I'm just being a harsh judge because Slay the Spire set the bar so very, very high.
XH asks:
How do indie developers/small teams keep track of and prioritize long-term roadmaps?
I've been basically work off my gut + Feeling of the Day for the past few years, and that's getting a bit unsustainable
Buttondown's roadmapping has existed for the past three years in a bimodal fashion:
- In November—December, I spend a lot of active and passive time thinking about what the most important big investments I need to make are. By design, these tend to be infrastructural, ambitious, and nebulous — "introduce localization", "rebuild analytics pipeline", "re-design email editor." These are never quantitative/measurable; I've never found metrics-based business goals useful in the context of Buttondown. [1]
- I keep a big, gnarly, public roadmap and pop things off the roadmap as I deem fit, in response to various exogenous factors (what I find interesting to work on in a given day; what customers have flagged recently; what strikes me as particularly time-sensitive.)
Of the time I spend working as an engineer, probably 40% of my time is spent on the big ambitious stuff and 60% of my time is spent on the reactive/vibes-based stuff. This distribution should probably be closer to 50-50, if I'm being honest, but it works well for my goals.
IMHO: roadmaps with horizons greater than a year are only useful in large organizations where you need long-term resource planning and financial allocation. (Even then, they're mostly onanistic: every single 3—5 year plan that I've worked on has become consigned to history by Year 2.)
Conversely, roadmaps with horizons less than a year incur a productivity tax in exchange for legibility. Sometimes that tax is worth paying (coordinating comms with writers; working on multiple large projects in parallel with other engineers); right now, it's not worth paying for Buttondown.
Metrics, roadmaps — all of these things are tools, and often they can point you in a given direction in exchange for a cost in time and/or money. Vibes cost nothing; they might not be perfectly accurate, but I think your most important job as an early founder is to have a preternaturally strong sense of what direction to go in absent external stimuli.
("Why have an annual plan at all, if vibes are so useful?", you might ask. Because I was never a two-marshmellow child, and I am personally quite bad at keeping important-but-not-urgent work top-of-mind. It's hard for me to wake up and suddenly think "hm, maybe this is the day to start rebuilding the editor", and the ritual of committing to that kind of project for a year keeps me from spending all my time snacking on lower-ROI but more easily-actionable work.)
I find metrics-based goals very useful for operational or performance-related tasks (drive p90 response time for /v1/subscribers down to one second), though. ↩︎
A deeply, thoroughly competent MI6 novel. The last spy novel I read was Red Notice, a truly poor piece of fiction: one which had me concerned that perhaps I was left with Le Carré and that was it.
Thankfully, that is not the case: Berlin Game does not speak to truths about the world nor does it surpass its genre form, but it's a very good book: surprising (albeit not too surprising), engrossing, worth its weight. Deighton's protagonist is rich in way few of Le Carré's (outside of Smiley) is; I'm excited to read more in the series.
Blew my expectations away. Borderline-pornographic direction and aesthetics courtesy of Hiro Murai, and a surrealism reminiscient of Atlanta in many ways — these stories, these things happening, they are not real but they're still useful vehicles — and in other ways more reminiscient of Bojack Horseman, a show that would also treat you to bouts of tonal whiplash. (This series owes a lot to animation in general, and I think the suspension of disbelief that episodes like 6 require are easier to stomach when you're already looking at cels.)
The chemistry between Erskine and Glover is perfect, both in terms of the highs and the lows; the show nails both the arc and the landing. [1] Glover's wardrobe is insanely good. Not a life-changing show, but perfectly executed and if they manage to backdoor themselves into a second season I'll be excited to watch.
Selfishly, I respect the show for not spending any time on the machinations or meta-plot of "what/how is Hihi?" That's not what the show is interested at all. ↩︎
2024-02-21
2024-02-22
2024-02-23
2024-02-24
2024-02-25 - The E-Myth Revisited - Crystal Project - Taskmaster - Attack on Titan (Season 4)
2024-02-26 - The E-Myth Revisited - Blue Eye Samurai - Crystal Project
2024-02-27 - The E-Myth Revisited - Blue Eye Samurai - Crystal Project - Monster
2024-02-28 - The E-Myth Revisited - Mexico Set - Legend of the Galactic Heroes - Crystal Project - Taskmaster
2024-02-29 - Crystal Project - Mexico Set - Frieren
2024-03-01 - Blue Eye Samurai - Mexico Set - The Club Dumas
2024-03-02 - Mexico Set - Taskmaster - Crystal Project - Delicious in Dungeon
2024-03-03 - Mexico Set - London Match - Attack on Titan (Season 4)
2024-03-04 - Taskmaster - Monster - Crystal Project - Blue Eye Samurai - London Match
2024-03-05 - London Match - Crystal Project - Legend of the Galactic Heroes
2024-03-06 - London Match - Blue Eye Samurai - Taskmaster - Freiren
2024-03-07 - London Match
2024-03-08 - London Match
2024-03-09 - Delicious in Dungeon - Taskmaster - London Match - Secrets of Grindea - The Club Dumas
2024-03-10 - London Match - Austerlitz - Secrets of Grindea - Crystal Project - Taskmaster - Attack on Titan (Season 4)
2024-03-11 - Austerlitz - Taskmaster - Monster
2024-03-12 - Austerlitz
2024-03-13 - Austerlitz - Scott Pilgrim Takes Off - Legend of the Galactic Heroes
2024-03-14 - Crystal Project - Scott Pilgrim Takes Off - Frieren - Taskmaster
2024-03-15 - Crystal Project - Unicorn Overlord - Austerlitz - Delicious in Dungeon
2024-03-16 - Austerlitz - Unicorn Overlord - Dune - Frieren
2024-03-17 - Austerlitz - Unicorn Overlord - Monster
2024-03-18 - Attack on Titan (Season 4) - Unicorn Overlord - Taskmaster - Devs
2024-03-19 - Devs - Unicorn Overlord
2024-03-20 - Devs - Unicorn Overlord - Taskmaster
2024-03-21 - Devs
2024-03-22 - Dune 2
2024-03-23
2024-03-24 - Austerlitz - Frieren
2024-03-25 - Unicorn Overlord
2024-03-26 - Delicious in Dungeon
2024-03-27 - Monster - Taskmaster
2024-03-28 - The Late Show - Austerlitz
2024-03-29 - Attack on Titan (Season 4) - Superforecasting - Cribsheet
2024-03-30 - Cribsheet - Taskmaster - Unicorn Overlord - Legends of the Galactic Heroes
2024-03-31 - Cribsheet - Unicorn Overlord
2024-04-01 - Frieren - Cribsheet - Unicorn Overlord
2024-04-02 - Cromartie High School - Cribsheet
2024-04-03 - Cribsheet
2024-04-04 - Cribsheet
2024-04-05 - Unicorn Overlord
2024-04-06 - This is Personal - The Club Dumas
2024-04-07 - Unicorn Overlord - Only God Was Above Us - The Club Dumas
2024-04-08
2024-04-09
2024-04-10 - Unicorn Overlord - Cribsheet
2024-04-11 - Sugar - Cribsheet - Dungeon in Dishi
2024-04-12 - Sugar - Taskmaster - Monster
2024-04-13 - Taskmaster - Legends of the Galactic Heroes - Cribsheet
2024-04-14 - Cribsheet - Unicorn Overlord - Frieren
2024-04-15 - Cribsheet - Trust - Cromartie High School
2024-04-16 - Trust
2024-04-17 - Trust - Murderville
2024-04-18 - Trust - Ripley - Taskmaster - Delicious in Dungeon
2024-04-19 - Trust - Ripley
2024-04-20 - Work Clean - Taskmaster
2024-04-21 - Work Clean - Unicorn Overlord - Monster
2024-04-22
2024-04-23
2024-04-24 - Work Clean - Taskmaster - Legend of the Galactic Heroes
2024-04-25 - Work Clean - Sugar
2024-04-26
2024-04-27
2024-04-28
2024-04-29 - Work Clean - Frieren
2024-04-30 - Work Clean - Cromartie High School
2024-05-01 - Work Clean - Taskmaster - Dungeon Dishi
2024-05-02 - Work Clean - Taskmaster
2024-05-03 - Work Clean - Unreasonable Hospitality
2024-05-04 - Unreasonable Hospitality - Taskmaster
2024-05-05 - Unreasonable Hospitality - Taskmaster - Monster
2024-05-06 - Taskmaster
2024-05-07
2024-05-08 - Taskmaster - Frieren - Unreasonable Hospitality
2024-05-09
2024-05-10 - Unreasonable Hospitality - Cromartie High School
2024-05-11 - Unreasonable Hospitality - Taskmaster
2024-05-12 - Unreasonable Hospitality - Super Turtle Idle - Animal Well
2024-05-13 - Monster
2024-05-14 - Animal Well - Everybody's in LA - Unreasonable Hospitality - Legend of the Galactic Heroes - Taskmaster
2024-05-15 - Animal Well - Unreasonable Hospitality
2024-05-16 - The Diamond Age - Taskmaster - Everybody's in LA
2024-05-17 - The Diamond Age - Everybody's in LA - Cromartie High School
2024-05-18 - The Diamond Age - Taskmaster - Dungeon Dishi
2024-05-19 - The Diamond Age - Pokerogue
2024-05-20 - The Diamond Age - Pokerogue - Taskmaster - Monster
2024-05-21 - The Diamond Age - Pokerogue - Legend of the Galactic Heroes - HIT ME HARD AND SOFT
2024-05-22 - The Diamond Age - Pokerogue - Sugar
2024-05-23 - The Diamond Age
2024-05-24 - The Diamond Age - The Club Dumas - Pokerogue
2024-05-25 - Pokerogue - Taskmaster
2024-05-26 - Pokerogue - Vampire Survivors - The Club Dumas
2024-05-27 - Pokerogue - Vampire Survivors - Profiles of the Future
2024-05-28 - The Diamond Age - Oh Wonder
2024-05-29 - Pokerogue - The Diamond Age - Everybody's in L.A.
2024-05-30 - Pokerogue - Monster
2024-05-31 - Pokerogue
2024-06-01 - Pokerogue
2024-06-02 - Team - Taskmaster
2024-06-03 - Team - Frieren
2024-06-04 - Cromartie High School
2024-06-05 - Dungeon Meshi
2024-06-06
2024-06-07 - The Diamond Age - Godzilla Minus One
2024-06-08
2024-06-09 - The Diamond Age - Monster
2024-06-10 - The Diamond Age - Taskmaster - Legend of the Galactic Heroes
2024-06-11 - The Diamond Age - Taskmaster - Pokerogue
2024-06-12 - The Diamond Age - Pokerogue - Mushishi (Season 2)
2024-06-13 - Freedom's Forge - Hit Man - Pokerogue
2024-06-14 - Freedom's Forge - The Fall Guy - Pokerogue
2024-06-15 - Freedom's Forge - Pluto - Pokerogue
2024-06-16 - Freedom's Forge - Pokerogue - Taskmaster - Cromartie High School
2024-06-17 - Freedom's Forge - Pokerogue
2024-06-18 - Freedom's Forge - Pokerogue - Dungeon Mishi
2024-06-19 - Pokerogue - Presumed Innocent
2024-06-20 - Pokerogue - Freedom's Forge
2024-06-21
2024-06-22 - Pokerogue - Taskmaster
2024-06-23 - Pokerogue - Mushishi (Season 2)
2024-06-24 - Pokerogue - Kaiji - Freedom's Forge - Team - Presumed Innocent
2024-06-25 - Pokerogue - Freedom's Forge
2024-06-26 - Pokerogue - Freedom's Forge
2024-06-27 - Pokerogue - Freedom's Forge - Profit First - The American Friend
2024-06-28 - Delicious in Dungeon - Pokerogue - Profit First
2024-06-29 - Taskmaster - Monster - Pokerogue - Profit First
2024-06-30 - Taskmaster - Pokerogue - Profit First
2024-07-01 - Profit First - Pokerogue - Team - The Three Musketeers - Kaiji
2024-07-02 - Taskmaster - Pokerogue
2024-07-03 - Cromartie High School - Pokerogue
2024-07-04 - Spy Hook - Pokerogue
2024-07-05 - Spy Hook - Pokerogue
2024-07-06 - Spy Hook - Pokerogue - Delicious in Dungeon
2024-07-07 - Spy Hook - Pokerogue
2024-07-08 - Spy Hook - Pokerogue
2024-07-09 - Kaiji - Taskmaster - Pokerogue
2024-07-10 - Spy Hook - Snack Shack - Pokerogue
2024-07-11 - Spy Hook - Mushishi (Season 2) - Pokerogue
2024-07-12 - Spy Line - Cromartie High School - Pokerogue
2024-07-13 - Spy Line - Pokerogue
2024-07-14 - Spy Line - Pokerogue - Delicious in Dungeon
2024-07-15 - Spy Line - Pokerogue - Taskmaster - Kaiji
2024-07-16 - Spy Line
2024-07-17 - Spy Sinker - Pokerogue - Taskmaster - Mushishi (Season 2)
2024-07-18 - Spy Sinker - Pokerogue - Team
2024-07-19 - The Hunting Gun - Pokerogue
2024-07-20 - Pokerogue - The Correctionsx - The Good Soldier Svejk - Taskmaster
2024-07-21 - Taskmaster - The Corrections - Pokerogue - The Good Soldier Svejk
2024-07-22 - Cloud Atlas - Pokerogue - Taskmaster
2024-07-23 - Cloud Atlas - Pokerogue - Taskmaster
2024-07-24 - Cloud Atlas - Pokerogue
2024-07-25 - Cloud Atlas - Cromartie High School
2024-07-26 - Team - Taskmaster - Pokerogue
2024-07-27 - Team - Delicious in Dungeon - Pokerogue
2024-07-28 - Team - "Fire Emblem Engage" - Pokerogue
2024-07-29
2024-07-30 - Team - Kaiji - 'Fire Emblem Engage"
2024-07-31
2024-08-01 - Cromartie High School - Taskmaster
2024-08-02 - Team - Train Dreams
2024-08-03 - Pokerogue - Delicious in Dungeon
2024-08-04 - "Fire Emblem Engage" - Train Dreams
2024-08-05 - Train Dreams - Taskmaster
2024-08-06 - Ted Lasso
2024-08-07 - Ted Lasso - Taskmaster - Mushishi - Pokerogue
2024-08-08 - Ted Lasso - Taskmaster - Pokerogue
2024-08-09 - Ted Lasso - High Output Management
2024-08-10 - Pokerogue - Fire Emblem Engage - Taskmaster - High Output Management
2024-08-11 - High Output Management - Cromartie - Great Pretender - Fire Emblem Engage
2024-08-12 - Taskmaster - High Output Management - Ted Lasso
2024-08-13 - Taskmaster - High Output Management - Monster
2024-08-14 - The Unicorn Project - Ted Lasso - Fire Emblem Engage
2024-08-14 - The Unicorn Project - Ted Lasso - Taskmaster
2024-08-15 - Fire Emblem Engage - Ted Lasso - Taskmaster
2024-08-16 - The Unicorn Project
2024-08-17 - The Unicorn Project - Fire Emblem Engage
2024-08-17 - Fire Emblem - Taskmaster - Unicorn Project - Kaiji
2024-08-19 - High Output Management - Kaiji - Great Pretender
2024-08-20 - High Output Management - Dungeon Meshi
2024-08-21 - Monster - Taskmaster
2024-08-22 - Melvor Idle
2024-08-24 - Melvor Idle - Cable Cowboy
2024-08-25 - Taskmaster
2024-08-26 - Wizrobe - Cable Cowboy
2024-08-27 - Wizrobe - Cable Cowboy - Taskmaster
2024-08-28 - The Great Pretender - Forever - Cable Cowboy
2024-08-29 - Melvor Isle - Taskmaster
2024-08-30 - Le Samourai - Taskmaster
2024-08-31 - Cable Cowboy - Melvor Isle - Kaiji
2024-09-01 - Cable Cowboy - Melvor Isle
2024-09-02 - Cable Cowboy - Melvor Isle
2024-09-03 - Cable Cowboy - Melvor Isle
2024-09-04 - Cable Cowboy - Taskmaster - Monster - Melvor Isle
2024-09-05
2024-09-06 - Melvor Isle
2024-09-07 - Melvor Isle - Cable Cowboy - High Output Management
2024-09-08 - Melvor Isle - Idle Itkah
2024-09-09 - Taskmaster - Kaiji - High Output Management - Melvor
2024-09-10
2024-09-11 - Melvor Isle - High Output Management - Taskmaster - Mushishi
2024-09-12 - Creation Lake - Taskmaster - Melvor Isle
2024-09-13 - Great Pretender - Picayune Dreams - Creation Lake - Taskmaster - Melvor Isle
2024-09-14 - Creation Lake - Melvor Isle
2024-09-15 - Creation Lake - Melvor Isle - Taskmaster
2024-09-16 - Creation Lake - Melvor Isle
2024-09-17 - Taskmaster - Kaiji - Melvor Idle
2024-09-18 - Melvor Idle - Slow Horses (Season 4)
2024-09-19 - Melvor Idle - Taskmaster
2024-09-20 - Melvor Idle - Slow Horses (Season 4)
2024-09-21 - Melvor Idle - Taskmaster - Diablo IV - Creation Lake
2024-09-22 - Diablo IV - Melvor Idle
2024-09-23 - Diablo IV - Melvor Idle
2024-09-24 - Taskmaster - Melvor Idle
2024-09-25 - Picayune Dreams - Melvor Idle
2024-09-26 - Melvor Idle
2024-09-27 - Melvor Idle - Taskmaster
2024-09-28 - Melvor Idle - Taskmaster
2024-09-29 - Melvor Idle - Trust - Diablo IV
2024-09-30 - Melvor Idle - Trust - Diablo IV
2024-10-01 - Melvor Idle - Taskmaster - Diablo IV - Trust
2024-10-02 - Melvor Idle - Taskmaster - Diablo IV
2024-10-03 - Melvor Idle - Taskmaster - Balatro - Trust - Diablo IV
2024-10-04 - Slow Horses (Season 4) - Melvor - Diablo IV - Taskmaster
2024-10-05 - Melvor - Diablo IV - Taskmaster
2024-10-06 - Slow Horses (Season 4) - Melvor - Monster Sanctuary - Bad Monkey
2024-10-07 - Melvor - Monster Sanctuary - Trust
2024-10-08 - Melvor - Monster Sanctuary - Taskmaster
2024-10-09 - Melvor - Monster Sanctuary - Taskmaster - Dandadan - Slow Horses (Season 4)
2024-10-10 - Melvor - Monster Sanctuary - Trust - Taskmaster
2024-10-11 - Melvor - Trust - Taskmaster
2024-10-12 - Melvor - Trust - Monster Sanctuary - The Yiddish Policemen's Union
2024-10-13 - Melvor
2024-10-14 - Melvor - Monster Sanctuary
2024-10-15 - Melvor - Monster Sanctuary - Taskmaster - The Anderson Tapes
2024-10-16 - Melvor - Monster Sanctuary
2024-10-17 - Melvor - Monster Sanctuary
We have developed speed, but we have shut ourselves in. Machinery that gives abundance has left us in want. Our knowledge has made us cynical. Our cleverness, hard and unkind. We think too much and feel too little. More than machinery we need humanity. More than cleverness we need kindness and gentleness. Without these qualities, life will be violent and all will be lost.
The aeroplane and the radio have brought us closer together. The very nature of these inventions cries out for the goodness in men - cries out for universal brotherhood - for the unity of us all. Even now my voice is reaching millions throughout the world - millions of despairing men, women, and little children - victims of a system that makes men torture and imprison innocent people.
I just thought: "The more places I put pineapple, the more places he'll think I put pineapple."
He was announcing the truth to you and telling you that the truth has the taste of death, and you believed, not in his words, but in his grimness. And now I say to you that, in the infinite whirl of possible things, God allows you also to imagine a world where the presumed interpreter of the truth is nothing but a clumsy raven, who repeats words learned long ago.
_A bartender at one of the management retreats made a handsome return by buying Capital Cities stock in the 1970s. _When an executive later asked why he had made the investment, the bartender replied, “I’ve worked at a lot of corporate events over the years, but Capital Cities was the only company where you couldn’t tell who the bosses were.”