2025-05-25
- It’s happened again. An app I used to love has been enshittified to the point where I have stopped using it for its core functionality. This time, it’s Audible. They no longer support playing books offline that you have bought and downloaded. Absurdly user-hostile choice. Additionally, their DRM-bullshit check that they run when you click the “play” button takes ages. It’s almost like the people who implemented this system are incompetent. Add that to the nonsense of making the “home” page not show me my library and instead bombard me with ads, plus the fact that when I go to my “library” page, the scrolling performance is atrociously janky, and I have now stitched together a new system for listening to my audiobooks. Hate to see it go this way, as I used to love Audible and had been a customer/subscriber for 10 years. Oh well, maybe that’s all we can expect from successful apps run by mega-corps.
2025-05-10
- Had a great time with Elena and her parents at the Ballet tonight. What a nice art form.
2025-04-22
- Had another solid session in cursor with Claude 3.7 and Gemini 2.5. Getting closer to launch, can really feel it. I think I only have like 100 more polish items, so it’s really getting close now.
- First genuinely warm day in nyc for me. 77 and sunny. Excellent. Love to walk around this time of year. Feeling the city start to come alive after winter. Amazing stuff. New York living is a grind in many ways, but there are some moments, and I mean moments, where it is truly sublime. Going to be hard to leave in a month.
- I still wonder if AI will lead to a decentralization in the app layer. On the one hand, no, obviously this will not happen. Centralization is largely a financial maneuver, where firm consolidation supports establishing pricing power and sustaining high margins. Even if AI allows more people to start businesses, it doesn’t follow that this meaningfully changes the long term benefits of centralization. Oops, much more to write here but meeting up with a friend. Hopefully you figure it out without me!
2025-04-21
- Very impressed with Claude 3.7 and Gemini 2.5 pro, recently (and I guess cursor). I had been working on a project split across two directories (frontend/backend), which wasn’t a natural fit with giving the model context across those boundaries. I recently moved those directories into a shared top-level directory and opened that in cursor when working on the project. Big quality of life improvement. Very easy to share class definitions and ask the models to ensure consistency and all that. And the models have just been very strong in recent sessions, even on more esoteric questions (e.g. animations api in the frontend framework). Very cool.
2025-04-20
- Easter with Elena’s parents and the Long Island Bulgarian community. Looking forward to delicious meat dishes.
- I heard today is Hitlers birthday. Surprised that 4/20 produced such a decidedly “not chill” person.
2025-04-18
- I am finding Google’s Gemini 2.5 model to be really strong in Cursor. Essentially equal to Claude 3.7.
- Heard that tomorrow is some sort of “national protest day”. Haven’t heard a specific issue being discussed, but there is certainly lots to be concerned/upset about these days. My lack of awareness of a specific issue made me think about protest, in general, in a democratic society. I feel like protest is good/very healthy as a social thing to do. In the US it seems like the norms around it are to only protest for the most extreme crises. That’s obv a good time to have a protest. But I can’t help feeling that this approach of “only in a crisis” is kind of bad social/political hygiene. I think we would be much better off socially/politically if we treated protest like we treat going to the gym: something that you may not love doing but you do regularly because it’s important and foundational to support other things you do enjoy. Of course, the analogy is a bit tough (or maybe especially appropriate) in the US because so many people also don’t seem to go the gym either. But, I do think few people look at going to the gym as “something to do only in an emergency,” so if we could at least move in the direction of “this is a regular hygiene activity that is part of living a good life” that would be a win.t is part of living a good life” that would be a win.
2025-04-17
- A new day, a beautiful one in New York City. Back from Europe, so I get to watch the sun rise over the city for the next couple days. I don’t love being jet lagged, but this is a nice perk.
- Back at work, feels busy. Not an amazing vibe, but good to be busy, in some sense.
- Still feels like there’s a lot of room for computers to be better. Optimistic. Ofc concerning that most people are not using the tools super well today (and aren’t given an easy way to do that). Sort of reminiscent of that Voltaire quote about how there are so many books out there and so few people bother to read. And so many of those that do read seem content to consume pure drivel. Has something of an elitist vibe, sure, but mostly interesting that it seems to echo today with computers (access to infinite knowledge, mostly used to watch mindless videos). I personally don’t mind a small amount of mindless drivel, but it does seem disappointing that the metrics indicate people spend so much time with that kind of thing.
- A buddy sent me a link to the recent HN “fingerprinting” user contributions, noting that it seems like it would be effective in finding people’s “alt” accounts. I think they’re probably right. And then I thought, “ok, is there any way to improve the anonymity here while preserving the essence of the contributions and without a huge hassle?” And I think this could be something LLMs help with. Sort of like the recent demo where AI was used to alter the accent of an Indian call center guy to sound more like a native English speaker (to improve understandability when talking to e.g. Americans), you could run your comment through an AI filter that would apply a separate, consistent personality layer to your words. Not sure if current LLMs would be sufficiently good at this, but I think the basic idea is sound. LLM as filter/flexible transformer is a good/repeatedly interesting frame (in addition to categorizer, summarizer, planner, reasoner, etc).
2025-04-16
- Was reading this article, which I found from reading DDIA. The article made this interesting connection between transactions/notions of time that I hadn’t thought of before. Normally, I think of transactions and locks in terms of data consistency/safe concurrent edits. They are a “safety” feature for databases, at least in my normal framing. But the article noted that you can also think of this in terms of “time”, where a transaction/locking the relevant parts of the db during a transaction provides a well-defined notion of “now”. Without locking across relevant pieces of data, “now” is a meaningless concept. “Safety”/“correctness” and “time” are thus all different ways of looking at the same thing. This makes sense as well when you think of consistency models as fundamentally about what kind of “ordering” guarantees are provided to readers of concurrent writes, and ordering is what makes a set of operations “correct”
from the application’s perspective. And that “ordering” notion is 1:1 mappable to concrete notions of “time”.
- Another benefit of “flashcards as markdown” is that that is likely to be an easily readable, parseable, modifiable, extendable, etc format for decades to come, unlike proprietary or application-specific formats (e.g apkg files). It still strikes me that kids in school don’t seem to use digital flashcards for practicing things they learn in school. Which seems to imply it would be valuable for me or others to actually create notes/cards for that stuff. And the best way to do that is to put the content in a medium that has the best chance of being useful in the long term. Textual documents stand out as probably the best medium for this kind of thing.
- Ive seen a good amount of writing recently about “vibe coding.” This “vibe coding” is a phenomenon where a programmer cedes near-total control to an LLM when writing code and only guides/instructs at a high level and to correct clear errors (usually by copy/pasting in the error). Most commentary has focused on the impact on individual productivity (or lack thereof). There’s been surprisingly little substance on the potential organizational impact of this style of development, other than the “one big idea” that LLMs will cause mass unemployment among programmers/general society. Now, let’s be fair, it’s obvious why that particular idea would get the lion’s share of attention. But I increasingly find it an unlikely idea on the time scales regularly discussed, and even if you take it seriously, it is rare at this point for content on that subject to do anything other than rehash well-established perspectives.A bit boring, honestly. With that said, I do think there’s still a lot of “meat on the bone” around discussing the impact of LLMs. I’m particularly interested in discussions about how the deep integration of LLMs in dev processes (tho not full replacement of programmers) could change team/organization dynamics. For example, I could imagine that leaning heavily on “vibe coding” might result in organizations moving away from more heavyweight software design processes (for those that require extensive design docs, for example) and move more in the direction of progressive enhancement of prototypes. Programmers would be free to start prototyping earlier and deeper, since the cost of prototyping at any given level of fidelity is likely to be reduced. That would be great! Who likes heavy processes where any rando, who will never do any work on the project to support their requests for changes, can block progress on something good/worthwhile/cool by bringing up requirements for “making it web scale” or any number of scenarios that can generally be handled as needed when the system in question hits those situations. Anyways, if “vibe coding” results in reduced process/coordination overhead, fantastic. But maybe it’ll do the opposite! Hard to say, but I’d love to see more org-level analysis where LLMs are viewed as org-level disruptive (changing processes significantly) without reaching the level of disruption that looks like “everyone is unemployed and/or killed by the robots.” If only vgr was still writing Ribbonfarm…
2025-04-14
- I’d like to publish my notes on the books I read as I make them. Ends up being a little hard to see the proper format. But I feel like there should be some sort of clean mapping between markdown and what gets produced as Anki flashcards. I currently take notes in a nested list format (topic is one level of nesting, questions are next level down, answers are one more level after that). This is nice for encoding the structure of information as a sort of tree. But it has downsides around writing notes on mobile in Obsidian (multiple levels of nesting takes up limited horizontal space on mobile, so the “answer” portion of a card ends up only having like 2 words per line, sad) and the natural display of this as markdown is similarly not very nice. I’d prefer a flatter hierarchy for showing this info in a website format, where indentation is not the primary marker of information structure, and instead you have a more “document native” system where a topic has a big heading, a
question is a heading one level down, and answers are a regular md paragraph/block directly after the heading. There’s still some nuance around advanced things like “how do you have an image as part of the front/question of a card” where you’d maybe need extra structure, but overall this should work for basic cards. The ultimate dream is to have a system where you can take notes in a natural format (e.g. some basic structure on top of markdown) and then translate those notes into cards/published web pages/some format that can be consumed or used by LLMs/etc. But I’m still kind of far from that.
- some quick notes on what I think of as being “close to ideal” for a learning process these days. It won’t account for learning all types of information, but should be standard for a lot of knowledge-work-related things. First, you read a thing. Or maybe you watch a video of the thing. The output here is a set of highlighted sections with interesting/important information. Next, highlights are reviewed. You don’t know at this point how important the information will be, so you tolerate a low retention for things that don’t get past this point (e.g. fuzzy retention where you are aware the information exists and kind of how it fits together, but couldn’t reconstruct it from memory/first principles without re-engaging directly with the material). For sources/highlights that are identified as “sufficiently important or interesting” (usually bc they will come up again and again in important or useful situations) the highlights serve as a jumping off point for writing more detailed notes.
The notes take the form of Anki flashcards, distilling key foundational facts from the source material, including things like defining key terms (ofc) and also relating ideas to other flashcards and similar “higher level” questions. There can also be room here for longer-form writing that is structured to explain the concepts to an unfamiliar person, with an emphasis/clear section focusing on what is important/interesting about the information (how is it used in real life, why would a interested novice benefit from paying attention to/learning this thing?). Those cards are added to long-term review, with a higher retention goal (80-90%). And then after that, if you are still interested in going deeper, you will need to actually get your hands dirty and physically/directly work with tools that involve applying the knowledge. So, in computer science terms, this would be something like actually implementing a data structure you have studied, or actually building a system that relies on
exercising the knowledge (e.g. a basic web server after studying http). The real-world practice is the highest level of engagement. It won’t be something you do for all the things you pick up to read at the beginning. Probably it will be a handful of things (e.g. stuff related to your job or long-term hobbies). But I think this general tie ring structure is pretty good for balancing learning new things in various areas against the time constraints of doing things like creating/reviewing cards and also actually using the knowledge from the cards in the real world. These days, there is a lot of friction in going from reading to reviewing highlights and a decent amount of unnecessary friction in creating well-structured cards. The review experience is fairly optimized. And there is room for reducing friction around figuring out how to go from reviewing cards to engaging with the information in real world projects. LLMs have lots of potential to reduce the various friction points
substantially.
- Had a lovely, relaxing day today in Bulgaria. We’ve been running around to tourist sites pretty aggressively over the previous week. Nice to have a day where we lounge around. I like this structure generally, and am reminded that I felt similarly during my trip with Rob to Indonesia, where we were all “go go go” for a couple weeks and then ended the trip by relaxing on a tropical island for a few days. Nice to have a “push” period and a “rest” period on a vacation.
2025-04-13
- Yesterday went to Rila Monastery with Elena and her aunt Veska
- Lovely time there but very cold. Interesting to see a place that is seemingly frozen in time, which is how most tourist sites feel/are. But overall a good view into the life of a semi-modern (1800s) monk.
2025-02-28
- Been a while. Time to get back to publishing.
- Surprises me how hard certain aspects of web programming are. Eg developing on localhost with an api server and
2024-08-23
- Finished the book on the Reformation, have moved on to the next one: the beginning of the Age of Reason. The Durants begin this book with a large focus on art across Europe. Not uninteresting, but feels less exciting than the similar focus in other books, eg the one about the Renaissance.
2024-08-11
- Coding while the sun sets. Had some ripe summer tomatoes earlier. Got some fresh-baked banana bread waiting for me. Life is beautiful.
2024-08-09
- Went to my fourth coffee meetup with the NYC distributed systems people. So fun. So many interesting, nice, smart computer people. Had a lot of fun sharing my latest project idea. Was very well received! Lots of good, thought provoking questions. Left me feeling excited 😃
2024-08-03
- Went to the beach today for the first time in a while. Really need to have a ball to toss around while there. Unfortunately, today was mostly just sitting in the sun. That works ok for like an hour, but eventually becomes boring/tiresome. Also, quite hot today.
2024-08-02
- Had a lovely burrito with my boy Phil!
- I recently got roped into wearing an Apple Watch bc Elena wanted to have us both tracking exercises together as a couples activity. It’s mostly fine. One thing that is surprisingly bad is the media integration. Like when playing a song on Spotify or Audible, the latency on showing the progress in what’s currently playing is absurdly bad. I’ll look at the watch, it’ll be frozen for a couple seconds, then jump dramatically forward. Bizarre. Quite a poor experience.
2024-07-30
- Had a really great meeting with a new coworker today. A cool thing came out of it: I felt excited about a long-ish term career path. The meeting was with a very senior engineer at Block, who is close friends with a former boss of mine. We talked about all kinds of work things. A big thing that stood out was how his job is basically to find amorphous and impactful projects and figure out how to solve them. He doesn’t have annual goals or really anyone to report to. Essentially, the org trusts him to do good work, and that’s what he does. Kinda feels like, to use a mafia analogy, he’s a “made man” in the org. I think that kind of thing would be very cool. Not just the “no annual goals” part. That’d be nice, sure, but I’d still have high expectations for myself bc otherwise you might as well go and do something else. But the ability to dive deep into something that seems interesting/worthwhile, that sounds awesome. Because the more I do stuff with computers, the more I realize there’s so many things to learn, and so many parts of the stack that have potential to impact how a system performs overall. With that said, it’s a long way from where I am now to becoming a “made man.” Lots still to build and learn. But it’s nice to have something a little more specific to look forward to in the long term.
2024-07-28
- Was reading this blog post from Tailscale. Really interesting stuff. I’m not sure I totally grok it all. But the big ideas seemed to be that Tailscale enables certain classes of applications to be developed/hosted without paying heavy rents to cloud providers. Tailscale accomplishes this by decentralizing the connectivity layer. In technical terms, they make it possible to avoid the hassle of getting/managing TLS certs, which is a key driver of centralized management of connectivity today. And by making it possible to connect computers directly with minimal technical hassle, you don’t have to pay the AWS tax and route all your applications/data through their services (notably EC2 and S3). Instead, you would develop/self-host applications directly on the machines you own, and they would talk to each other directly and securely via tailscale. The blog post seems to think this enables some kind of “new Internet.” But I’m not sure I totally get that. Honestly, I think part of the challenge is that so much of my time is spent working in the existing, “old Internet”-client-server model. So, it’s hard to see/understand what this would totally change. So, for example, the blog talks about how you could self-host a file sharing application and then avoid paying network ingress/egress fees to AWS when transferring files between devices. Agreed. That makes sense at the network level. The problem is that the proposed “new Internet” solution seems to assume that I have big enough hard drives to store my data. So, what’s confusing to me is that it seems like if I adopt the Tailscale Internet, I’d also have to migrate my stuff off of S3 and onto some other storage system…that I manage? Or would s3 plug into Tailscale too? And whose cables am I using to transfer my data? These questions, particularly how basic/foundational they seem to me, make me think I must not totally get what’s going on here. And to be sure, I don’t really know much about Tailscale other than it’s an easy way to securely connect to a bunch of devices I own without doing HTTPS certs and public DNS all over the place. If I had to take a guess, I’d expect that the Tailscale folks would point out that, yes, people would probably have to move their data out of AWS, and for people with FAANG-sized workloads, Tailscale is not initially going to be super competitive, as that amount of scale means you would invest large amounts of cash into data centers anyways. But most businesses aren’t like that. And most businesses could save significant amounts of money by migrating off of super expensive AWS stuff and into their own datacenters (or a tailscale-friendly datacenter provider). And then you’ll end up seeing a wave build, much like the adoption of the “old Internet,” where people slowly adopt this new method of managing servers/drives and it gains more and more steam and more and more infrastructure is built around it, until it becomes the new default and then nobody pays the AWS tax anymore. It’s a compelling vision, in that sense/at a high level. I’d love to stop paying the AWS tax, and much of my development efforts are similarly aligned.
2024-07-17
- I continue to make (slower now that I’m working) progress through Will/Ariel Durant’s great history tomes. I’ve made it to Luther. Fascinating. Especially after I’ve getting through the preceding ~600 years of bad behavior from the Church. These big moments really hit hard after wading through hours and hours and hours of people doing bad stuff. Anyways, it’s great. One interesting thing that stands out is how you can draw some parallels with the Reformation and The Innovators Dilemma, which is quite popular today in my technology-focused circles. Basically, a key sticking point in the Reformation was around the selling of indulgences by the Catholic Church. And, much like a large incumbent in the world of business, The Church struggled to respond effectively to Protestant complaints because they were heavily dependent, organizationally, on the revenue from the sale of indulgences. When faced with the choice between innovating in a more lean environment (sans
indulgences) and holding on as long as possible to the existing ways, they made the choice so common among large organizations of today. History may not repeat, but it does seem to rhyme. Cool to see.
- I finally figured out Weddingpalooza!
2024-07-16
- Programming for my personal projects now has to happen in the evenings. Bit of a bummer, as there’s so much I’d like to do. But the constraint has created this wonderful side effect where I often will be coding as the sun goes down. I have a little nook with a bean bag that looks out over the New York skyline. And I sit here, and write my code, and my unit tests. Life is so rich sometimes.
2024-07-13
- Finished my first week at a new job. Flew from New York to SF for a team onsite that happened to coincide with my start date. Back home now. On the train. Overall, it was good. I’m tired. Good to be home.
2024-07-07
- The Story of Civilization continues. Here come the Ottomans. They took large parts of the Balkans (before Constantinople). I didn’t realize Bulgaria was held by the Ottomans until 1878! Not sure what happened after that, but ~500 years of Ottoman rule is much longer than I had imagined.
- Wow, more history. Had never heard of the Hungarian/Christian hero of Hunyadi Janos. Some crazy stories, particularly the story where Simon Komany switched uniforms with Hunyadi in response to reports that the Ottomans would deliberately seek out Hunyadi for heavy attack. Simon took Hunyadis clothes, was slain, and his diversion allowed Hunyadi to lead the Hungarians to victory.
- Another point from history. Really striking how significant the succession problem is for monarchy as a political system. Tons of stories of great kings/conquerors having their countries ruined by their incompetent or uninterested offspring. Seems unsolved, even today, for that system. A republic has its own challenges, but I’m greatful for the challenges we have, in light of those faced by citizens of other systems.
2024-07-06
- Updates on history (from The Story of Civilization VI: The Reformation). I’ve made it to the printing press. Was interesting to get more color on Gutenberg. I had read that his first press was quasi-stolen from him by his financier (who gave a loan to Gutenberg to build the thing, then demanded repayment before Gutenberg could print anything to bring in revenue, and the courts gave the finance guy the press). Interestingly, the finance guy took away the printing press before Gutenberg made his now-famous bibles. So, to make the bibles, Gutenberg had to make a second press himself and finance the whole thing again. Impressive dedication. I guess founders always find a way, even in the 1400s. But also, evidently the printing press was an immediate commercial success, as there was a reasonably large middle-class with income to spend and larger portions of the population had learned to read by that time. Very cool time in history. Printing press was, of course, a very
very big deal (much like the Internet/Web of today.)
- Today is my last day before beginning work activities. Technically, today is Saturday, but I fly west tomorrow morning for an on-site next week, so I count tomorrow’s travel as “work activity.” Mixed feelings. This time off was an incredible time for me. I feel like I still have more I wanted to do with this time. I don’t know when it’ll happen again. Once the inertia of having a job and receiving a paycheck sets in, it’s very hard to shake it. Of course, I am also excited to get back into the thick of things with software on a professional team. So much to learn. And hopefully meaningful relationships come from it.
- Having such a great time watching soccer and programming this afternoon. Kotlin, you are a beautiful language. Soccer, you are a beautiful game.
- Made more progress in through the Middle Ages. Arrived at John Huss. Wow, wild guy. Too bad what they did to him.
2024-07-04
- Continuing to read the Durants’ Story of Civilization. Reached a section about the Middle Ages in Britain. Shocked to learn that the typical allowance of ale was 1 gallon of ale per day per person. What on earth was society like where a substantial portion of the population was drinking a gallon of beer/ale per day…
2024-07-03
- Watched the Aaron Swartz documentary yesterday. Documentary was “just ok,” which was kind of a bummer bc I am a big fan of Aaron’s work. Naturally, the documentary spent a lot of time focused on the criminal case the government brought against Aaron for his downloading a bunch of JSTOR articles via MITs network, and that’s reasonable/a good call. But I wish they had given a little more time to certain of Aaron’s technical contributions that are really excellent. In particular, I was disappointed that they didn’t even mention Markdown. My recollection is they focused on Aaron’s technical contributions to 1) mini-wikipedia when he was 12, 2) creative commons licensing stuff, and 3) Reddit. And those are cool things too. I just happen to have a very strong affinity for Markdown because of its impact on Internet publishing. Basically, I believe Markdown made it much easier for individuals publish writing on the web with minimal intermediaries/technical acumen. HTML+CSS are “ok” for
reasonably technical people, but Markdown, I believe, really shines in making those technologies more accessible to people who aren’t comfortable with writing HTML on their own. And that’s a big deal! Naturally, all of my writing on the web is done in Markdown, and I vastly prefer it to fiddling with direct HTML or using some hosted blogging platform. I think Markdown has resulted in significantly more writing being published on the web, and published in a way that isn’t owned by centralized platforms, and that’s a really great thing.
- With that said, one thing that still seems too hard is getting (selected) images from my phone -> published on my blog. Surprising.
2024-06-29
- A guilty pleasure of mine: Pillsbury Grand Cinnamon Rolls. Truly so bad for me, but also so so good. You bet I got some in the oven rn.
- Continuing to fight off this cold. Been carrying it around the entire week. Bleh. Thank god for Dayquil.
- I’m off to start a new project: an analytics service for apps with no users. You send us JSON blobs, we tell you how many blobs you sent us and when. At some point, maybe, this could help the apps get some users.
2024-06-27
- I’m reading the Dremel paper from Google. There’s a section about representing structs in a columnar format in an efficient manner, especially in the presence of optional fields or fields that can be lists (i.e. a
repeated
field in protobuf parlance). They adopt an interesting approach for putting fields in a columnar format, where the value of the field is stored with a little metadata. And the metadata is used/constructed in a way that allows for determining which record the value is a part of. It’s a pretty nuanced construction for the metadata imo. And ofc very smart. Reminded me of a similar section from another notable Google paper, the GFS paper. Specifically, I recall there being a metadata blob associated with each chunk. And the amount of metadata was like 64 bytes. Compared with the amount of data managed by the system, the stored metadata was very minimal. But the metadata had big/very worthwhile advantages associated with its usage. In both the GFS paper and this Dremel paper, the smart usage of metadata really stands out in the system design. I feel like when I think of these systems, I tend to focus on the bigger building blocks, like chunk size or network protocols in GFS, and pay les attention to how metadata can play an important role if used well. Sort of an invisible pillar to me when I think about these systems at a distance.
2024-06-26
- It’s time to admit that Civ 6 is addictive to an unhealthy degree for me. Every time I play, I am consumed by the game. I play for hours and hours. I skip meals and blow past sane bedtimes. Of course, I love it. It is awesome to be so engrossed in a thing. And also, it is not healthy or good for me to engage with it like this. The saving grace is that I still only open the game rarely, and I don’t have a job rn so I can get consumed by anything with minimal consequences. But still, I want to recognize that my relationship with Civ is unhealthy. You can love something too much, it seems.
- I read an interesting blog post about “microfeatures” of blogs that are cool. One stood out that I’d like to integrate into my blog: webrings. Basically, a webring is a section at the bottom of a blog that links to other blogs you read/like. It’s a nice way to help readers find other sites that are cool/interesting. It extends the concept of a blogroll (a standalone page on a blog that links to other, recommended blogs) by integrating the blogroll into a place where readers are more likely to notice it/be receptive to exploring (at the bottom of a post they just finished reading). One challenge here is I don’t have a blogroll. But I do have an API for things I recently read/saved on the web (via Readwise). I think it’d be cool to include that stuff somehow, perhaps webring style.
- I was recently talking to a friend, who is learning to program, about starting a blog. I linked him to this blog and said “would love if you read/commented, but no obligation ofc.” And then I remembered this blog has no comments enabled. And this is bc I don’t wanna deal with spam/bots. The thing is, how big a deal/problem would this be? I don’t really know. The only evidence I have is kind of weak. One, I used to use Wordpress for a blog and it received a handful of spam comments on each post. And Two, I run a Postgres server, and when I check the logs, I see almost constant attempts to log in as the default user (
postgres
). This latter bit of evidence does, at least to me, signal that the amount of bots/spam on the Internet is still quite large. People are scanning servers all the time, and I would expect spam/abuse for unprotected blog comment sections is still a real problem.
- I read this post about counteracting the addictiveness of social media. Love the idea. Might implement it myself. Particularly useful on mobile.
2024-06-25
- A new version of a library I use (
dotenv
) was just released. I read the release notes and was pretty impressed. Some interesting approaches to sharing.env
files in OSS software using asymmetric encryption. Still seems like you’d have some rough edges, though.
2024-06-20
- So lovely to be home and have coffee from my little espresso machine. Feels good to save those $5. Tastes great too.
- I have like 2 weeks until I start work again. Excited about the new gig! But also kind of sad that my time off is coming to an end. Was thinking specifically about how I want to go out and do more walking around NYC before work starts. We’ll see if I change this habit in time.
- Had a great time at the distributed systems meetup in NYC, organized by Phil (@eatonphil). Excellent talks about how full-text search works, and yet-another-binary-json-format (YABJF) optimized for at-scale analytics processing.
2024-06-16
- Seems like it would be cool to be able to deploy “ephemerally persistent” services that have controllable downside risk. So like, a lot of people go on about “I have to use cloud-hosted/paid monitoring solution because if it goes down, that would be really bad.” But actually, most of my need for X service (e.g. monitoring) could absolutely tolerate downtime without issue. With this in mind, it should be possible to use/deploy something like a “SQLite-backed (or DuckDB-backed) analytics service, which keeps the most recent 1GB of data stored on disk” or some, similarly configured thing. You could deploy these, uh, micro-services (lol) to a single machine and probably get pretty good performance/reliability/usefulness. Potential services would be: exception reporting, general analytics, logs maybe. Using SQLite means deployment would be straightforward (as it’s all in-process). And the way these hosted companies structure their free tier, you could probably get quite a lot of extra headroom by self-managing a simple service.
2024-06-14
- It’s time to start seriously thinking about making a tool to find the right house to buy. Things to consider: tool should help improve accuracy of cost modeling (numerous tools exist to copy/borrow from), tool should improve on assessing/comparing locations (tough problem, not well-solved by existing general-purpose UIs), tool to assess the actual property characteristics (not so good rn imo), tool to assess transportation characteristics of a location (e.g. time to get to airport, time to get to likely, in-office, work location, etc).
2024-06-13
- I am re-reading Kleppmann’s excellent book, Designing Data Intensive Applications. Early in the book, Kleppmann tells the story of how the SQL/relational model came to be dominant. He notes a couple other competing data models for databases, most notably the CODASYL model. I thought it was interesting the main reason the CODASYL model lost, according to Kleppmann, was that it was more work for application developers to deal with. And this happened because the CODASYL model failed to sufficiently insulate/isolate applications from common changes to the underlying schema/data layout. If, over time, an application developer wanted to evolve their schema and change relationships between entities, they would have to go back and rewrite all their queries throughout the application that used those entities. That becomes a huge burden, as these kinds of changes would come up regularly. Contrast this with SQL, which you can count on to be essentially rock solid for a large number of common schema transformations (e.g. adding a field to a table or connecting two new tables). You don’t have to rewrite anything you’ve done before, in those cases, everything just keeps humming along. There are, of course, still times where a schema migration would require rewriting queries. And those situations are sufficiently uncommon that the burden is manageable, and much more so than with CODASYL. That ends up being such a huge win that it dwarfs the performance considerations associated with how CODASYL and relational systems store/access data. This emphasis on “what’s best for the bulk of software that uses this system?” determining the winning model reminds me about a hardware story. Admittedly, I only vaguely recall this story. But I think there was a Stratechery article a while back that talked about Pat Gelsinger arguing with a Stanford Professor about computer architecture stuff in like the 1970s or 80s. The professor, iirc, was saying something like X architecture (RISC, I think) will beat Intel’s x86 because it can be made more performant than x86 overall. And Gelsinger was like “no, x86 will win because it has all the software already, and by the time people would rewrite the software for X architecture, Moore’s Law will mean that the x86 hardware is much faster anyways, so it’ll never make sense to do the software rewrite.” Developers and companies would just wait for x86 to get faster and keep pushing their systems forward on x86, which then makes a rewrite even harder, locking in x86 even more. Gelsinger ended up being right, at least on the time horizons they cared about in that conversation. Another situation where the speed/pain of writing software has historically (and still today) been much bigger than whatever pains come from slightly sub-optimal hardware or database designs.
2024-06-12
- Read an interesting blog about tuning Postgres memory usage via
postgresql.conf
settings. Some HN comments linked to this tool, which I used to get some conf values for my use case. Looks like it made my batch jobs ~25% faster! Easy win! Need to make some flashcards to internalize what each of the config settings controls.
2024-06-09
- Sometimes I share things about myself in a way that, when reflecting on it, is more about avoiding rejection than finding connection. And that’s kind of a bummer. Where is this coming from? Well, yesterday, I met a new person. They were nice and interesting, and I really enjoyed talking with them. And I think they enjoyed talking with me! But I came away from the interaction feeling like I had really held back parts of myself, including parts that I think are cool and interesting. My intuition is that I regularly hold things like that back. And I think that goes back to trying to adapt to past experience, where sharing those things resulted in, let’s say 80% of the time, people going “oh…uh…sure…😐”. Aka my attempt at connection fell, mostly, flat. Naturally, my adaptation to this feedback was to share this stuff less/later. Unfortunately, this adaptation meant that I also lose those 20% of initial interactions where people go “no way, me too! that’s so cool! 😀.” Of course, the strategy of withholding weird/cool parts of yourself can be ok if you have sufficient time to let that stuff come out over multiple interactions. You delay gratification to interaction #2 or #3, for example. But it does seem like another one of those environmental factors of life at this stage is that the bar for “let’s get together again!” is actually quite high, both for me and other people. So when the first interaction is “just ok” or even “good, but not great” I’m very likely to not follow up, as is the other person. And so there is never a “later” to share the stuff I think is actually cool/interesting, even if it’s not really normal. (For context, a classic example of something weird/cool I might share would be “I spend a lot of time doing flashcards/trying to figure out ways to make learning/retaining stuff fun and interesting”). In any case, wanted to write about this stuff, which I think helps bring clarity to my thoughts. And also to put it out there that I’d like the pendulum to swing back towards “express weird+cool stuff about myself earlier to connect with the right people early on.” Obviously, the times where sharing stuff about myself falls flat really do suck. That’s still true, and I don’t have a solution to making it not suck. But it doesn’t seem like my current approach results in particularly great outcomes either, just a more drawn out, lower intensity failure. I think I’d like to swing back towards failing fast and early, a hallmark of the younger me who didn’t really know that 80% of the time his interests would not be shared, and also a recognition of an important idea: time is not really abundant.
2024-06-07
- Saw this post on HN about declining birth rates in Japan. Most comments followed a similar pattern of being very concerned about the economic impact of declining birth rates (things like “how will we pay for Social Security???”). I don’t totally disagree with the concerns, but I also am interested in ideas that would challenge this narrative. And one came to me from another area that seems somewhat unrelated: bullshit jobs. The tl;dr here is that if there are enough bullshit jobs, then maybe the declining population isn’t that big a deal. We will shed the bullshit jobs and people will instead spend their time on more useful work and individual productivity will rise to counteract the population loss. I think this idea isn’t totally crazy. It was pretty interesting (in some sense) to see Twitter/X shed 80% of its staff and seemingly have very limited impact from that. Now, I wouldn’t guess that 80% of all jobs are bullshit
jobs, but it does seem likely that a pretty good percentage are. And if, say, 30% of these “knowledge worker/professional services” jobs are the kind you see in Office Space, then we could conceivably weather a 30%-ish population decline without reduced output…or something like that. I don’t want to get hung up on the specific numbers. The point is, there seems reason to believe these are significant productivity gains left on the table in service of other, valid social goals. And while declining population would be a stress to the existing structure of things, there is probably lots of room to reorganize things to mitigate the downsides.
- Been making more AI summaries of my recent highlights. In previous post, I mentioned the idea that this would help avoid the “glossing over” problem associated with re-reading notes. Been doing it for a few days now, and I think it depends heavily on the structure of the resulting summary. It currently comes out as a huge blob of markdown (I’ve posted an example here). When it comes out as a huge blob, it still ends up suffering from the “glossing over” problem like 60% of the time for me. My thinking is that it’s because I can see it’s a huge blob and would take me many minutes to read through. And that conflicts with my goal of having the summary be a quick, efficient review of recent reading. Naturally, I am wondering whether presenting it in smaller chunks would be better/lead to more active engagement. Or maybe there’s a way to turn the summary into interesting question prompts that extend the
summary/highlights with interesting info (e.g. in a section about off-CPU analysis of threads, you could have a prompt about what year/decade were threads invented and why, etc). The idea being that this info would be sufficiently “new” to be interesting and sufficiently “related” to have some benefits around reinforcing what you’ve read.
- Reflecting a bit on the above, one of the main goals (maybe the entire goal) is to make engaging with educational information fun and interesting. My model here of LLMs/gen AI tools is that they have strong potential to be an “interestingness engine.” Right now, I’m in the phase of trying to figure out, at a basic level, how to make something interesting that you’ve already seen before. The next level would seem to involve having a system dynamically adjust to meet the user where they are.
- Read this interesting blog post from Uber about counting how many rides drivers provide/riders take. Need to jump to a call with David to practice coding problems, but found it to have a reasonable discussion of how to achieve low latency for analytics queries on super high throughput data. Relies on Apache Pinot to do a lot of heavy lifting it looks like. Would be cool to know more about the structure of Pinot, the blog made it seem like it uses LSM trees with a columnar format.
2024-06-06
- Continued reading Brendan Gregg’s Systems Performance book. A thing that keeps coming up in various examples is optimizing I/O sizes. Basically, applications can have significant speedups by tuning I/O sizes so that you end up with a smaller number of I/O calls with larger size vs many I/O calls with small amounts of data. Reminded me of a data structure I learned about at a Dist Sys meetup in New York: Bε-trees. Basically, this B-tree variant is write-optimized, and the main way that is achieved is by collecting writes into an in-memory buffer before sending them to disk. This amortizes the cost of disk I/O over more inserts compared with traditional B-tree (and similar to LSM trees), which increases the write performance on average. This kind of I/O optimization also reminds me of the part in the GFS paper where they mentioned they use large OS page sizes to saturate disk bandwidth
when reading large files. This dramatically increases throughput on their typical tasks (processing huge amounts of data across many machines).
- I ran another check on using vision-based GPT APIs to add useful info to PadDaddy (specifically, estimating natural light levels from photos of the unit). Unfortunately, it’s still too expensive for my budget to process all the incoming images using these APIs. There’s something like 5-10k new apartment images per day, each image uses ~600 tokens to produce an estimate (almost entirely input tokens), thus the cost is ~$20/day to process every image for every listing. Adding $600 to my monthly burn for PadDaddy isn’t something I’m going to do rn. If I could get it to $1/day, that’d be worthwhile. Of course, I could look at ways to provide the feature without processing every image. I could cut 60% of costs by only running the “Great” and “Good” listings through the analysis. But I need to cut costs by 95%, so… The dream is, ofc, to build systems where users pay for the tokens to do the processing they care about. That might be a good startup (users buy tokens in bulk, are
able to spend them at any service that supports the api). Though, I would still expect users to prefer known, upfront costs, even if those costs on average are exorbitant compared to usage. The act of thinking “is this worth the tokens” for every type of processing is mental overhead that is annoying for customers and likely bad for business.
- So glad that Love Island is back. 3 episodes in, 57 to go. Group is lookin good already. Good chemistry. Good drama. Also teaching me a lot about the female experience.
2024-06-05
- Nice morning in LA. Wonderful latte and reading session. Decided to focus on fighting distraction during reading. Set a timer for 25 min and tried to see how long I could go without picking up my phone. Made it 15 mins 😕 but only suffered one lapse. Glad I made the attempt to test myself.
- oh yeah, wanted to publish this wonderful thing that happened. Yesterday dinner was awesome. Went to Costco and got myself a couple slices of pepperoni pizza. Listened to this history book about the Italian Renaissance. Was a wonderful section about the lives of Raphael and Michelangelo. The sun was going down over LA. The whole thing cost $5. It was perfect.
- Was reading more of Systems Performance. Enjoying it well enough. But I’m realizing that it’s moving into territory that is a bit too abstract. I wish I could easily make the ideas/information more concrete, mainly through sample exercises. The section I read today was about profiling off-cpu threads. This contrasts with on-cpu profiling in that the off version is a measure of what causes the thread to wait (e.g. disk or network i/o, blocked on acquiring a lock, etc) where the on version measures which part of the program is using cpu cycles the most. Together, these two types of profiles (usually shown in flame graphs), give a good idea of how the thread transitions between various states it can be in and what perf improvements are available. What I would love are some highly practical examples. Like maybe a Docker container I can load up that has a sample application that you can run in various configurations and then a set of commands are
provided that walk you through a perf analysis using both types of profiles. That would be excellent. I recall something at the beginning of the book about there being samples? Not totally sure. But will see if I can track some down so that this info gets out of the world of purely abstract concepts and becomes something I’m familiar with on a more physical level.
- Saw this on HN today. Love this kind of thing. Identifying important information (exposed secrets) by figuring out what it is correlated with (entropy) and separating it from irrelevant things on that basis. Often involves looking at a thing from a new perspective. In this case, lines in a codebase are not just instructions for a program, but also little blobs of entropy, and the biggest blobs could be very interesting.
- Listening to this Dwarkesh podcast rn. It’s an interesting thing. Two pretty smart, sophisticated guys talking about AI stuff. At one point, the guest (Leopold Aschenbrenner) talked about how the trendline for AI electricity use is that in some small number of years, AI compute will use 20% of electricity production (exact year of 2027 iirc, but I’m not gonna go back and verify, the vibes of 2027 are directionally correct). This is a pretty wild prediction, among several in the podcast. Interesting to hear how smart people get to these kinds of things. Of course, it triggers some rationalist skepticism. Basically, if you find yourself making an absurd prediction on a small timescale, you should pause and assess whether there’s some factor you don’t see that will keep things from going totally bonkers. Like if you find yourself with a bonkers prediction, it becomes much more likely
that you are missing some important factor in your model vs you actually being correct. Unfortunately, these guys in the podcast didn’t spend much time assessing potential gaps in their models. Admittedly, it’s more fun and exciting to talk about how AI might destroy the US government or CCP vs asking something like “my model predicts 20% of US electricity production will shift to data centers, why might that not pan out?” To me, both are fun and interesting, would be great for them to both get reasonable airtime.
- Continuing in my journey writing Python backend code. Splitting out a large-ish project into pieces. Decided on a “services” model deployed as a monolith. The nice thing about “services” is that they create really strong separation of concerns in the codebase. You define really clear contracts via methods and input/output data types, which makes everything quite testable. But there are drawbacks, of course. I do struggle now with the N+1 queries problem, and I’m more concerned about performance issues if/when things start to scale. I guess the good news is that I have plenty of vertical scaling left to use (backing store is currently on a $5/month VPS lol) and then if/when it ever becomes time to go beyond a single-machine for persistence, the service boundaries will at least make the process easier. Been pretty challenging, though, all said. Lots more tests. Lots more class/interface design questions. Lots more non-trivial stuff that I’m not super familiar with in Python. But overall, I have come away very happy with Python as an environment for writing this kind of code.
2024-06-04
- I wish there was some notion of a “for loop” for ML. By “for loop” I mean some extremely basic structure that is easy to understand and implement to solve some known problem. Programmers know “for loops”, when to use them, and how to quickly plug them into a program/system when useful. Despite the importance of ML, and even some basic familiarity with terms/structures (e.g. CNNs, RNNs, GANs), I have almost no ability to plug the building blocks into a program/system quickly. Of course, it’s not impossible for me to use these things. But the conceptual gaps for both knowing when the building blocks would apply and being able to quickly place a block are quite large. Would be awesome if those gaps were smaller. Modern LLMs help somewhat in that they are plug-and-play via various APIs, so that is something. But still feels like the programming primitives in ML are just absurdly complex/difficult to use.
- I am back on my experimentation with integrating LLMs into my learning system (which is mostly just Anki rn). Today’s experiment was around solving the “re-reading” problem for highlights from a book. To understand where I’m coming from here, it’s worth going back a bit to the foundations of spaced-repetition. My understanding from lived experience and hanging around spaced-repetition people for a long time is that simply re-reading notes (or kindle highlights) is not very useful for retention/understanding. It’s not a negative thing to do, by any means, but the level of engagement with the information is quite low during re-reading because (at least in my case) there’s a feeling of “been there, done that” that creeps in during the process. It’s not new information, your brain knows that, so you just kinda gloss over it. One of the powerful things we can theoretically do with LLMs is to rewrite stuff we’ve already read before into something that feels fairly new (or hopefully “new enough”). The idea is that this will break down the “been there, done that” feeling and cause you to actually re-engage with the material. Would be great if this worked. Now, there’s a number of approaches you could take with this. LLMs are super flexible, so the limit is mostly your imagination. For example, you could change the style so it’s as if Shakespeare wrote the info. But for this first experiment, I went for something simpler and more straightforward: just converting a collection of recent highlights into a structured outline, like you would make in a college course. There wasn’t a super strong reason to do it this way (vs the Shakespeare approach), it was mostly driven by intuition that a simpler, somewhat familiar format would likely be the most worthwhile. I should probably write up a longer post that goes into more detail about the specifics of the experiment (e.g. input highlights, llm prompts, and outputs). But overall, I’m reasonably impressed with the output for an initial experiment. The output is coherent/worthwhile and feels novel enough. It feels like a good solution to the problem where you step away from a book for a bit and want to remember “what was going on last time I read this” without actually re-reading highlights or sections, which would suffer from the “eyes-glaze-over” problem. And the results here make it seem like it has good potential to open a set of ways to engage with books/reading things that falls in between “making/reviewing flashcards” and “just forgetting things.” Exciting stuff.
2024-05-31
- I’m reading Brendan Gregg’s Systems Performance book. Goes into very significant depth about operating systems and how applications interface with the OS. It’s interesting that by default this is almost totally absent as a concern for me as an application developer. Stuff like “on Linux, pass
O_ASYNC
flag toopen(2)
to create a file descriptor in an async fashion”. Thankfully, I do still remember doing this kind of programming in school and whatnot. Otherwise, this would all be quite challenging/go completely over my head. But it’s definitely an interesting reminder about how much of the programming stack is abstracted away at any given level. It feels like studying performance as a topic is a good one for pushing into a lot more layers of the stack. Every part of the stack matters from stuff like padding data structures to be word-aligned, to setting I/O sizes at the OS level, to controlling network protocols, to compiler flags, to application data structures/algorithm design. Fun stuff 😀. It also reminded me of one of the big takeaways from reading that Google File System paper. So much of the software design ended up being downstream of the hardware capabilities (e.g. the system is built around streaming large blobs of data from disk, which capitalizes on the high throughput of sequential disk reads after seek vs a system that might try to provide lots of small random reads and hits slow seek times over and over). Kind of similar to how much of the processing code that gets written is downstream of the way the data is structured.
- Saw a good thread on the pros/cons of homeschooling from a prominent Twitter person who was homeschooled for most of their childhood. A good reminder that while “education” is rightly considered a “universal good,” any specific system of “education” will involve real tradeoffs and for different people, the right tradeoff for them could easily be different from others. As an example, when I talk with friends about the prospect of homeschooling some future children, there’s an almost universal concern that homeschooled children will be “undersocialized,” that they’ll be “weirdos,” etc. What this perspective seems to miss is any notion of tradeoffs. It seems to get right the idea that homeschooled kids will likely be pretty culturally different from their public/private schooled peers. And it gets right that there will be numerically more kids in the public/private school category. But what it gets wrong is the notion that the public/private schooled peers are “correctly” socialized. Or, more accurately, it assumes a cultural dominance between homeschool culture and public/private school culture when it’s likely closer to merely a case of cultural differences. For example, the tweet thread noted that one of the most disturbing “socialization” outcomes of public school kids (whom the tweet author met during a 3 month stint in public high school) was that the many of the public school girls were incredibly insecure about their body image compared with homeschool girls. I hadn’t personally thought about that stuff, but also, yeah it makes sense! High school is rough for so many people! So that seemed like an insightful point about the pros/cons of socialization in public/private school. Helpful to have that outsider perspective. Another one that comes to mind is the tweet author noted that public/private school kids have relationships extremely segregated by age (often the vast majority of socializing happens with kids almost exactly your own age), whereas homeschooled kids had deeper/more meaningful relationships with people in an age-agnostic way in their community. This one is imo less bad than the body insecurity stuff, but it’s still obviously a tradeoff. I came away from the thread with a much stronger impression that the homeschool vs public/private school socialization question is one of tradeoffs vs one strictly dominating the other. Of course, public/private school kids have advantages in socialization, too. I think it’s fair to say they are better prepared to play certain types of social games going forward in life. And if that’s important to you or you want your kids to be good at those games, by all means, optimize for that! Hopefully in that assessment, there’s also some element of asking whether you could build an alternative system outside the public school system that accomplishes the same goals better, but that’s a lot to ask of an average person. At a minimum though, hopefully we can retire the meme of “homeschooled kids are going to turn out as social weirdos.” (Now, I will note at the end here, that one unfortunate part of this story is that the tweet author is pretty widely considered to be an extreme weirdo, but oh well.)
2024-05-30
- Idea: embeddings are a form of hash function. But with the added component that close values of the hash are likely to be pretty similar. What’s nice is that an embedding has some of the privacy benefits of a hash function (though not in the strictest/strongest case). It would be kind of hard to go from a specific embedding output back to the specific input text. Of course, a hash value is often very small and thus easy to quickly check for equality (prob 100-1000x faster than a 1500-dim embedding). So for those kinds of purposes, embedding is not as good. But I think “embedding as hash value” was something interesting I hadn’t really thought about before.
- Had a ton of fun imagining LLM future use cases with Ari today
2024-05-29
- A while ago, I went to dinner in France with a group of people. The group contained people I’d never met. I asked one of them, “what are you getting up to these days?” And she responded that she teaches psychiatry/psychotherapy at “a school in Boston.” I responded playfully, “oh, that’s cool, what’s new in psychotherapy? What came after Freud?” And then she gave a response that was very hard to understand. It was almost classically academic in that it refused to engage with the playfulness of the question at all, and got lost in irrelevant details about how Freud was bad or something. I think this kind of thing is a real bummer, and a real missed opportunity. I would much rather, in the setting of a casual dinner party, contribute and receive information that is “not quite right” and also playful vs “pedantically correct” and dry. I’ll add here that I generally had a lovely time at dinner with this woman and the rest of the group. This isn’t a general shortcoming. It came up in an
area where it comes up for most people: talking about their (often intellectual) work. And then a similar thing happened again, more recently, when we had some friends over for brunch. One of them is an artist, and I asked them how their art was going and what they thought was interesting etc etc etc. These were, I hoped, real softball questions that could be engaged with casually. Unfortunately, no. This person also refused to play with these ideas, and mostly struggled to say anything at all, seemingly trapped by a requirement to give the most sophisticated, deep response to a question at brunch. Again, I don’t think it’s bad to shoot for the deepest/most sophisticated intellectual relationship with your work. I do this in many areas, too, at least historically (e.g if someone asks me about flashcards in the past 5 years, I would struggle to return that serve in a light, accessible way). Of course, now I think of this stuff as just a missed opportunity. It’s brunch, not a PhD
defense. The medium, as always, is the message. Anyways, the point here is to note that I appreciate it when people can talk about their interests in a light, playful, accessible way. And I’m going to start consciously working on contributing that vibe myself. I think this is an excellent use case for this micro-blog: practicing telling stories about my life in a lighter/accessible way.
- Another cloudy day in LA. Good for a warm latte.
- Time for bed. A brief recap. Had a lovely morning blogging at the coffee shop. A friend visited and we continued exploring whether it will make sense for me to join as a technical cofounder at his startup (likely no, but worth exploring bc I have the itch and this is a good opportunity). Shipped some code. Was weirdly obsessive in my checking of emails about the outcome of recent interviews. Felt like my regular checking was out of proportion to how much I am excited about the outcomes (my excitement level is “some!” But I was checking basically every incoming email as if my life depended on it). Didn’t exercise, again. Foolish. Probably the only thing I would change about my time off is fixing this and getting back into a more serious exercise habit. Alas, the best time was back then, second best time is now. Had an early ravioli dinner with E. Got them raviolis and pesto from Costco and boy did Kirkland deliver! Went for an early eve walk with E after dinner, lovely. Did a small amount of practicing piano, learned first part of Jamming by Bob Marley. Have really gotten into Bob Marley recently. Truly excellent vibes. He’s actually pretty famous, too. Well deserved, I’d say. Played bananagrams in the eve with friends who happen to live down the street from us in LA. Small world. And now writing before bed. Life is good.
2024-05-28
- I’m once again trying to write/publish more stuff on this blog (and eventually syndicated to other, larger Internet platforms, but that’s a ways off). I have identified Instagram and Twitter as the main distractors that take time/attention away from this goal. So I have set up a system to try and guide me away from infini-scrolling those sites. It relies on an app a friend told me about called One Sec, which forces me to pause for like 10 seconds before continuing to the infini-scroll places. That didn’t really work that well at first. I’d just wait at the time tollbooth and then go on. But then I had the idea to use some of the other features of One Sec, specifically the configuration option that allows One Sec to give you one-click links to other, preferred apps. Naturally, I put my writing app (Obsidian) as one of the preferred apps. And this has helped the last couple days with ensuring I actually write at least one small thing, before/in addition to my
infini-scrolling habit.
- Was thinking more about a “big question” in my life: where to live for the next stage (i.e. the “family” stage). Was talking this over with my partner. One thing I wanted to note here about those talks. It still seems like the biggest missed opportunity in the housing question on a broad scale is a coordination one. Basically, people coordinate exceptionally little with friends when it comes to choosing a place to live. At this point, it does seem to me like there are strong, positive, generally non-linear returns to living close to friends/family. Those returns seem to increase all the way from “same continent better than diff continent”, “same country better than diff country”, “same state better than diff state”, “same city better than diff city”, “same neighborhood better than diff neighborhood”, and “same block better than diff block.” And then, yes, they do seem to hit diminishing/potentially quite negative returns at “same building better than diff building” and “same room better than diff room.” With that said, the level of coordination I see around this kind of structure (from myself and peers) is very low. I don’t think that’s a huge surprise, there are plenty of reasons why people don’t try to build life around each other in this way. And I think a large portion of those reasons are cultural preferences that could go a different way without much bad stuff happening. But nobody else seems to reach for this kind of thing or push on this thing, so we broadly don’t even try. I am not that different in this way, of course. It’s not like I am out waving the flag of “let’s try to get a group of friends to live in the same neighborhood of a particular city.” But I do note that it seems like a missed opportunity, when you sit down and think about life from the broadest perspective. Both in the moment and when looking back, it seems that time with friends and family reliably leads to the best times/memories/most meaning in most cases/etc. And yet, that seems to play kind of a medium factor for people in the housing question, at least over these past 10 years/at this life stage. There seems to be some notion of “we’ll build community wherever we go,” which is totally fine, but also I’m kind of skeptical that you can just swap friends/family out like that and get particularly comparable results. In this domain, specific people seem to really matter. The big factor seems to be time. You can’t swap people out bc you invested significant time with people you met in childhood/early adulthood and there’s no similar shared cultural stuff like college past age 30. But who knows, maybe I’ll find that actually making lifelong, deep friendships past age 30 is not that hard, that my hesitance is mostly a skill issue in some way, and things will work out better than I can imagine from my current level of life experience. I dunno. But I do think about it as a thing that would be cool if it were somewhat different.
2024-05-27
- Gooooood morning! Have to go to a new coffee shop today. A friend mentioned that the one I was going to “does child slavery,” which I do not approve of. Pretty surprising! I thought we had all agreed that slavery is bad. I guess this is what happens in Joe Biden’s America. Anyways, time to find a new store. Fortunately, there is one just down the street that seems nice. Fingers crossed that they share my opposition to slavery of all kinds.
- A thing I’m noticing as a change in interpersonal relationships. I’m shifting away from grounding my preferences in objectivity and shifting towards subjectivity. In the past, when navigating preference differences between myself and others, I’d reach for “objective” concepts to navigate handling of the situation. Stuff like “what do most people seem to think about this question?” Or “if we always made X choice in this situation, would that be optimal according to some expected value assessment?” These questions are an effort to step outside of personal subjectivity (what do I specifically want) and use a notion of objectivity (general principles about the world or human relationships) to make decisions. In many ways it is a “systems” approach to these problems. I think that approach certainly has merit. I have not abandoned it entirely. But I notice in myself that these days, I reach more often for subjective evaluations of a situation. I think things like “forget if this
specific situation is part of some generalized, platonic ideal of something, and instead look at the specific person across from you and their preferences, and the specific place you are at, and see if you can work with this specific person on their own terms to come up with a solution.” A situation becomes more of a snowflake, and less of a widget. I think this is mostly good. For one, it places less of a burden on myself and others to justify a lived experience, at least by default. And two I think it is helpful in making me more comfortable in who I am at a given point and in the face of social challenges. There’s less self doubt because I accept that there is some amount of self that is really showing up, and that self is less constrained by striving to be some platonic ideal of a self that fits into some general self-justifying system. Of course, it’s important to recognize that this shift does not make preference differences
disappear. The challenge is still there. It’s still hard to navigate preference differences regardless of the lens/frame/approach. The “objective”/“systems thinking”/“generalized” lens is also still good to consider, and I think the subjective one is a better starting point in most cases.
- A meta-note about these changes. I don’t think my change here is particularly uncommon or weird. People try new stuff all the time or grow into or out of ideas regularly. But I note that this kind of stuff can easily lead to friction when folks aren’t updated on these changes. And it’s hard to keep people updated! Like, another part of the change above is that I now find it quite grating when people try to apply some objective style to a difference of opinion/preference on a thing. Like recently a friend sent me a video from instagram related to a disagreement we had. And, of course, the video was of some random person supporting my friend’s view on the issue. This is an attempt to engage with the difference on an “objective” basis (the argument being “see, other people feel like me, it’s quite common, and should be viewed as the objective default perspective”). In the past, I would have engaged with the objective style approach, maybe sending a response video from some other
random person that confirms my own view. But now I find this whole thing quite silly. Just tell me how you feel/think about a thing. I’ll try to accommodate it. I don’t really care what other randos would or wouldn’t do about it, in most cases. Of course, this friend has been close with me for quite some time. They know me mostly in the old model, the “systems thinking”, “statistical modeling”, “objective” approach person. And it’s hard to explain this shift to them in real time. Hell most of the time, the grating part starts quite a bit before I can even describe the shift itself. It presents a real challenge for maintaining close relationships. People change. And in ways that are hard to communicate in the moment. Tough problem.
- I found the Nikki Glaser special (Someday You’ll Die) to be “just ok”
2024-05-26
- It’s interesting to see things evolve over time. The specific “thing” this time is programming. And the interesting evolution is around how programming feels. In the past, I’d do my best to write a working program that solved a problem. And I did mostly solve the problems. Unfortunately, it was often a struggle. I’d end up writing extremely complicated code that was easy to mess up in several ways (trivial and otherwise). But I would finish the task and that was generally “good enough,” (and the best I could do with the time and abilities at my disposal). But these days things are different. I do still mess things up (trivial and otherwise), but with less frequency. A big change is that now, when I write code, I have a much stronger sense for whether the “shape” of a program is likely to be good or bad. A good shape is one that minimizes errors, leads to the code flowing more easily. A bad shape…well it’s the opposite. In the past, I’d only be able to assess the
shape after I finished the program. I’d realize “oh, that would have been easier if this thing was over there.” But now, I can feel it in the moment of writing. And then I can go back and figure out a better shape upfront. Also a change here is that I usually identify shape issues around the structure of data and the dependencies between pieces of code. A secondary source of shape issues is improper mastery of the programming language or poor language design. But it’s really cool and interesting to have this sense emerge from long term experience. A real joy of programming. Another thing of interest is that it’s really a feeling in the sense that it has soft edges. I don’t always know right away what is wrong and often do a check of those things above to get more clarity. But the fuzziness of it makes me wonder if it’s sort of the same fuzziness you see in statistical phenomena. This would make some rational sense. That basically, if we shifted from the emotional/“feeling” space of
language into more rational-focused analysis, I’ve now written (statistically) a large enough amount of code/number of programs that I can tell when a shape is wrong by doing a loose statistical comparison between the shape of past programs and the shape of the current one. Bleh, that’s a badly shaped sentence, right there. But I wanted to get that idea out: maybe this feeling I have is also connected to a certain not-totally-amorphous statistical reality of the world. And this would make sense! As feelings, if working properly, will be correlated with reality generally.
- Today I met up with a friend and we talked about doing a trip to Joshua Tree for an upcoming weekend. At one point, we discussed whether to include a friend of ours who had a toddler. My buddy said, “look, we love the little guy, but he can sometimes be…a lot.” On the one hand, I can understand why this could be a vibe problem. Screaming toddlers definitely change the vibe. No need to pretend that it’s always fun. On the other hand, it really rubs me the wrong way to exclude members of a community on this basis. I spent some time reflecting on this. And I think it kind of goes back to a “big tent” approach to community building that I hold to quite strongly. I contrast this approach with the “walled garden” one that I also see pretty commonly. In the “walled garden” approach, the goal is often to select for exactly the right people, and be very comfortable excluding people who do not match a particular, cultivated vibe. And it’s an approach that seems to work well for many people.
And, of course, people should adopt whatever approach works for them. With that said, it is not my approach. I don’t really enjoy walled garden vibes, even when I am “privileged” to be selected for entry. I am a “big tent” man. I belong with the “big tent” people. These days, I trace this back to my older brother. Probably the main reason I am a “big tent” person is that my brother has, for his whole life, been excluded by every “walled garden” person he’s met. This is largely because he is on the spectrum. And so, when faced with my own decision on what kind of community to build, of course I could not put up the same walls that were used to keep out my own brother. No. I instead choose to build a tent. A large tent. Big enough for all kinds of people, across all kinds of spectrums. And, yes, with plenty of room for toddlers.
- New good use for GitHub copilot: generating test code. I’ve seen people mention this online. Can confirm. Good stuff.
2024-05-25
- I’m out at my morning coffee in LA. I’m treating myself on this monthlong adventure out west to morning coffee at nice coffee shoppes (normally I save money and make it at home). It’s a nice thing. Here’s what I was thinking about while here today. I’d like to make a list of “YouTube categories considered great”. This list would contain general categories for videos that are great as background/foreground entertainment. You can put your attention on them and they are interesting. Or you can have them going in the background and they provide good energy. The first categories that come to mind based on recent viewing would be: tennis videos (particularly roger federer highlights/matches), nasa spacewalk/moonwalk videos, surfing videos, bob ross painting videos, posy videos, espresso prep slo-mo videos. I’ll also call out anti categories. For example, you might think beautiful landscape videos would fit here. But no, they don’t have enough going on. They are too background, not enough foreground. Underwater ocean life videos are close here, but I think only a portion of those videos qualify and it’s not a high enough proportion. But Planet Earth as a specific show would fit the mold. On the flip side, I think a lot of cooking related videos are too busy. Too foreground not enough background. Mr Beast videos are obviously too foreground. So yeah, I wish I had a super long list. Feels like I’ve only scratched the surface. I also think it would be interesting to see if there’s a way to transform videos in a given category using something like ffmpeg so that they fit this idea. Modifying videos is a whole unexplored area for so many people, similar to remixing songs. Feels like it should be easier to explore those things.
2024-05-12
- This was a bit of a tough week. I’ve been feeling quite stressed about the quantity of things going on in my life. Feels like I’m having a hard time balancing. The things that stand out as contributing to a feeling of “being pulled” in one direction or another are: working on my friend’s AI startup, working on another friend’s new flashcard app, spending quality time with parents while visiting them in a foreign country, spending quality time with my girlfriend during those same travels, and preparing for interviews where I care about doing well. And then there’s just the regular life stuff. Exercising, spending time with friends, getting home from visiting that foreign country. And some not-so-regular life stuff: getting my apartment in order for some friends to visit for a while. It ends up being quite heavy. Have spent much of the week feeling overwhelmed. Hopefully, I can find a way to ease off of some of these commitments and bring things back into a better balance.
2024-04-07
- Been thinking more about LLMs as learning assistants. A big question for me is around “what is done manually and what is done by the LLM?” I think the gist of my answer here is: the core parts of learning will continue to be done by people, the toil should be done by LLMs. Sounds nice enough. But there are some inconvenient truths that need to be confronted. The first is that learning will continue to be effortful. LLMs will not bring us to something like that scene in The Matrix where Neo gets the Kung Fu floppy disk downloaded directly into his brain. No, people will continue to have to do the core of the work themselves. One example is that people will, absolutely, need to continue to read things themselves. I reject visions of LLMs in education that involve them progressively summarizing all the pieces of text or just showing a set of curated flashcards over and over until mastery. No, first things first, people will have to do the reading. If a student can’t or won’t sit down and read for 30 minutes, there’s just not that much you can do for them. The next thing is writing. People will continue to write and/or create things as a result of their reading. People need to actively make sense of the things they read. A common failure mode in my own learning is reading a thing, then reading some prepared summary, telling myself “nice, I remember everything in the summary, I must be good to go,” and then promptly moving on and forgetting everything within a matter of days. No, we have to actually engage with the material in the form of writing about it, drawing diagrams, acting out ideas in the physical or digital world in some form. LLMs can help here by prompting us to create things that we probably wouldn’t think to create or explore. But the active processing of what is read must still be done by learners. And finally, for people who really want to learn a thing, they will have to review the material. Again, this is an area where LLMs can help, by creating first drafts of flashcards/things to review based on the notes or other creative outputs on the relevant subject. But the actual reviewing of the cards/information will be up to the student. LLMs can also probably help a student stay engaged with these reviews better than existing systems, but, again, it is only a helper/facilitator. Ultimately, the core of learning (reading, writing, reviewing) will be done by students. LLMs can remove some of the toil (e.g. translating notes into flashcards for review, creating visualizations of concepts from written notes, making it possible and/or natural to review information using speech, etc.), but the inherent complexity and work associated with actually learning something will remain. Hopefully, in addition to full on removing toilsome elements, the LLM can also make the actual work feel less like work and be closer to fun. But that is a bit of a dangerous game. Many of the learning platforms that start optimizing for “fun,” seem to turn into things that don’t really accomplish much learning (e.g. Duolingo).
2024-04-05
- I continue to think about how LLMs can be the foundation for the next-generation of Anki-like tools for learning. I have been running some loose experiments in this area and wanted to document the findings. The current set of experiments is around using LLMs to generate compelling cards, to remove some of the toil associated with Anki usage. The results so far have been promising, but not earth-shatteringly good. I have found LLMs to be effective at generating solid term/definition cards for key terms from highlights of source material. And had middling success with generating “combination/relational” cards (cards that ask about how concepts relate to each other). Overall, I’m optimistic about the potential for LLMs to generate “knowledge webs/graphs” and associated flashcards. There are still very large questions, of course. The biggest one, that I haven’t even touched bc it feels so huge, is around the interface. Obviously, we are coming at this from a background of using Anki to review flashcards. And Anki does do a solid job in this respect, by being so narrow/focused in its review interface (other parts of the Anki interface are more frustrating ofc). I could/probably should start out by simply recreating the Anki review interface. But that intimidates me and I’ve been avoiding it.
2024-03-29
- I’ve been continuing the foundational explorations on BaboTree. Wanted to write about some things that stand out to me as potentially interesting. (n.b. I got stuck for several minutes trying to figure out how to word this sensibly. Annoying/frustrating. I decided to brain dump instead.) Working with Language Models to turn web highlights into flashcards has got me thinking that Language Models can be thought of as a more flexible (and more unreliable) hyperlink/search tool. In the world of the internet, a hyperlink is, on the one hand/most basic level, a connection from one document to another. That’s fine and true. On the other hand, you can think of a hyperlink as an encoding of a (loose) question/answer pair. Or, maybe more accurately, it can be modeled as encapsulating a set of questions/answers. An example might be helpful. If you have a hyperlink to Napoleon’s wikipedia page,
that could be thought of as encoding some set of questions. Some basic ones would be “who is Napoleon?” or “when did Napoleon become Emperor of the French?” and the answer would be (hopefully) found in the contents of the linked document. The hyperlink is an explicit link that connects the question in the readers mind to an answer in somewhere in the destination document (interestingly, the writer doesn’t even need to know what questions the reader might have, it’s open ended, which is also cool, but not the focus here). Language Models can perform a similar function. And just like in the recursive nature of hyperlinked documents (one document contains a link to another which contains a link to another etc), Language Models have recursive potential as well (an answer to one question can lead to other questions which leads to other answers etc). At this point, I think it’s worth spelling out what’s interesting to me about all this. In the past, I’ve mostly thought about Language Models
like information processing pipelines. They are pretty linear to me. But viewing Language Models like hyperlinks means you can engage with them from the perspective of a graph. A pipeline with its various stages can, of course, also be modeled as a graph (each stage is a node, with a single edge going to the next node). But graphs are much more flexible as a structure than pipelines. And thinking of Language Models as a graph traversal engine brings up different ideas about what is possible and what is worth exploring with them as tools.
- Took a look deeper look at Langchain today because I finally reached a point in my usage of LLMs where I thought I had the problem they are solving as a library/framework. tl;dr they do many things well and I’m not convinced it’s a good thing to adopt. Longer version: Basically, my LLM pipelines got long enough, and I wrote enough of them (maybe 25?) that I started to think that reducing boilerplate/consolidating essential complexity would actually be worthwhile. So, I started exploring my own solutions. After writing some exploratory APIs for composable pipeline steps, I realized “ah, I think this is what Langchain was made to solve.” And now that I finally experienced the problem and made a first pass at a solution myself, I felt ready to evaluate the Langchain approach more deeply than when I had heard about the framework in the past. Overall, I have come away impressed in some ways and non-plussed in others. I think Langchain has a really nice “pipeline description” syntax.
Their use of the
|
operator leads to very clean pipeline definitions. Here’s an example:
Really good job there! Very pretty. I am also impressed by their support for a number of nice-to-have LLM features. I think their API for streaming responses is very nice/simple. Similarly, their approach to embeddings looks great. Their support for concurrency withasync/await
built directly in is also a big plus. So, yes, lots to like. With that said, some big things stood out as “bleh.” The first to mention is the general “framework overhead problem.” Langchain is clearly trying to do a lot. They want to be the platform for building LLM applications. Unsurprisingly, they end up exposing a relatively large API surface you have to grasp before going from 0 to 1. It is definitely harder to learn than ramping up with something like OpenAI’s library, where you throw together an array of string dictionaries and you’re off to the races. As far as I can tell after like 30 minutes of reading their docs, the complexity of their API surface is very much downstream of them relying so heavily on thisRunnable
type for everything. And they seem to use theRunnable
type, and structure it the way they do, because they really want the|
syntax for chaining stages of LLM pipelines. While I appreciate the simplicity of the|
operator, I don’t think this is a good tradeoff. Maybe this structure is less of a deliberate design decision and more about language limitations in Python. I’m not sure. In any case, it seems clear they really wanted “composable” objects to get the|
operator to work, and this is what it took. Unfortunately, it kinda sucks to have that stuff exposed in the user-facing API. As a moderately experienced Python dev, I find their APIs pretty unnatural/un-Pythonic (compared with, among others, OpenAI, who really did a good job here). Anyways, I’m sure it’s really nice once you are deeply embedded in the Langchain world. But getting in there seems not that fun and not that productive of a process. Classic problem for frameworks ofc. In addition to API heaviness that hits you the moment you open the door, Langchain seems to suffer another issue common to many frameworks: they end up encouraging/requiring framework-specific handling of things. AKA it doesn’t look super easy to migrate away from Langchain because they chose to take the framework in a direction that is not particularly consistent with other relevant libs/the broader language style. Langchain is clearly opinionated in how you should build your application, and those opinions don’t seem to play super nice with other approaches. This contrasts with my current approach to working with LLMs: strewing dictionaries of{"role": "user", "content": "..."}
everywhere. Look this approach…it’s not super clean, I know that. But you know what it is: portable and rock solid. It is composable at the level of “will work with any library”, even if it’s not composable at the|
-operator level. I’m fairly confident mymessages
dictionaries will work forever. I’ll very likely be able to take them to whatever future LLM providers will pop up as either a drop-in replacement or with only minor variations. And, as a more general concern, say I want to change a pipeline to do something that isn’t well-supported by Langchain. My dictionaries will always be there for me. True, they’ll never reduce the inherent complexity of things I want to do, but they’ll never add accidental complexity either. Ultimately, after reviewing what Langchain does and comparing it with my initial approach to solving the same problem, I believe there’s a way to get like 80% of the benefits of Langchain without nearly as much API overhead or the concerns of framework lock-in. You’d lose some niceness around pipeline syntax (no more chaining stages with the|
operator). But I generally don’t find that syntax improvement to be worth the likely framework headaches.
2024-03-28
- I’ve become fairly anti “exceptions” in programming languages. I think they, broadly speaking, negatively impact readability and (ironically) safety in most languages. Of course, you very much need a way to represent “failure” modes in the course of execution. But I increasingly find myself uncomfortable with approaches like Python, where you wrap code that can fail in
try
/catch
for specific exceptions. I think my aversion largely boils down to a perspective on programming that centers a “networked services” model of a process. In that model, a large percentage of function calls can/will hit the network in some way to fetch/send data. And each of those calls can fail in some set of known/unforeseen ways. So, in Python as an example, you end up with a lot oftry
/catch
blocks littering the codebase. Furthermore, in many of these blocks, multiple calls could raise a given exception, and it’s not clear which one comes from which place. Additionally, in the event that some function you call changes in the future to throw a new exception, your process will just explode if you don’t update your code to appropriate catch the new exception. In a “networked services” view of processes, that can lead to cascading failures when something goes wrong in one component. Unfortunate when your language pushes you into those kinds of designs. A better model ends up looking like Elixir/Erlang in the strictest sense and Kotlin/Go in other cases. That great GOTO 2019 Talk talk about Elixir highlights the benefits of Elixir for “networked services.” Elixir/Erlang avoid littering the code withtry
/catch
blocks by enforcing a particular style of message passing between processes that more cleanly encapsulates error conditions and process isolation. I still have yet to really try Elixir (though am looking forward to playing with it soon, to learn more about the details of its tradeoffs as a language), so will leave my commentary there for now. On the Kotlin front, I have more experience, and love what they’ve done with the language. Kotlin has this really beautiful pattern where you combine these concepts of “sealed interfaces/classes” with compile-time-verified, exhaustive switch statements. These features allow you to write fault/error-tolerant code without relying on exceptions. You can model all the possible outcomes of a given function using a “sealed class” and then client code can guarantee they handle all known cases by using thewhen
statement in its exhaustive form. The compiler will verify that thewhen
statement has code to handle all the enumerated outcomes. And when a new thing is added that changes the set of outcomes in a later version of your software, clients can upgrade and be told by the compiler all the locations that need updating. It’s a beautiful way to handle network-focused code in a compile-time typesafe way. It lends itself to highly expressive, linear, easily readable code. I should probably give examples here, but I just wanted to use this space to jot down some thoughts/feelings about this topic, as I’m doing a decent amount of Python programming and finding myself wishing for a better approach to error handling/type safety. It feels like Kotlin got so much right.
2024-03-22
- I started reading Building Microservices. It is a little too light on the technical details, so far (I’m 30% of the way done according to Kindle). Lots of fairly surface-level anecdotes of things the author has seen. Almost no discussion of challenges around distributed systems, which is surprising in a book about microservices. I was also hoping to see more detail around API design and various tradeoffs/pitfalls in the various approaches. Maybe that’ll come later. I think the protobuf website is a little better in this regard with it’s API Best Practices page.
- My friend, Alex, is really excited about using Gen AI to build Anki 2.0. The idea would be to combine all the disparate knowledge management tools into “One Tool To Rule Them All”. We had a great talk about this, and I have had similar talks with Rob about it (who is ofc a natural choice for building Anki 2.0, as he taught me everything I know about Anki 1.0). Alex seems to have basically the same vision that I have in this area, which is exciting. But setting the specifics of it aside for a moment, an interesting thing happened at the end of the call. After I had mentioned I was a little hesitant to jump in to this project with the intensity of a full-time job, Alex said, “yo, I hear you, I think it would be a good exercise for you to take 30 mins to think about the question of why not do this? What’s the best answer for why not to pursue this project full steam right now? I’d be very interested to hear what you come up with.” So, let’s do that. Here’s the blackpill, for
me, on this idea: it would be good, but not good enough to justify full time devotion. Anki 2.0 is a great passion project and a poor choice for any hopes of financial upside. This blackpill, like most perspectives I find compelling, is a middle-ground against two extremes. One end of the extreme would look like “don’t work on any passion projects, become a corpo cog and die never having done the things you think are most important.” Of course, that can happen when you go work for a company, and it’s an extreme characterization of the what a job requires/demands. The other extreme, which I think I have a tendency to want to believe in would look like “if you build this tool, it will change your life immeasurably for the better, you will make more money than if you stayed at your corpo job, and your life will be filled with meaning and purpose beyond your wildest dreams.” This is also an extreme characterization of what it would look like to go all-in on building Anki
2.0. A more realistic assessment looks like this. The new Gen AI tools (LLMs, image generators, video models) are genuinely exciting things for building an Anki 2.0. Aaaaand Anki 2.0 would be, under optimistic assessments something like 50-100% “better” for users vs current Anki/knowledge management approaches. It would be much better! But 2x not 10x better. There’s a couple important angles to think about here: how would this improve my own life and how many other people would find Anki worth using if it was 2x better/easier to work with. For me, a 100% improvement in my experience doing Anki, while exciting, would not be “life changing.” It would not reduce the importance, or meaningfully change/improve the experience, of other foundational areas of life: exercise, sleep, eating well, building loving relationships with family and friends. The truth is that Anki is already “pretty good” in the role it needs to fill. And going from “pretty good” to “perfect” in this area,
for me, is a nice-to-have, but not a “killer life upgrade”. Of course, it is actually nice-to-have, aka it’s worth spending time building Anki 2.0. But it is not more important or more valuable to build Anki 2.0 8-12 hrs a day compared with doing a normal job for a normal amount of time and building Anki 2.0 for like 4 hours a day. Ok, so for me, Anki 2.0 is good and compelling, but not earth-shatteringly amazing. It’s a vitamin, not aspirin in my life at this point. What about for other people? Well, I think it has more potential to be interesting in that area. I think if Anki were 2x easier to use, you would see an increase in the number of people interested in using it. But I don’t think it would necessarily become so big that it’s obviously better to pursue that as a market opportunity vs other startup ideas/working a normal job. Here’s an example of something that would not change with an ideal Anki 2.0 that I think continues to impact the
commercial upside: learning will still be effortful. It will still feel more like going to the gym than eating sugary treats. Anki 2.0 (as I envision it) will not make Anki have the appeal of learning apps like Duolingo. And this is just one (important) factor that limits the monetary value of investing in Anki 2.0 full time. Ultimately, Anki 1.0 is a great niche product for a single-person team to build for a group of highly motivated customers (med students and learning freaks). It is not a great business for a larger team to take on. And I doubt that will meaningfully change with a perfect Anki 2.0. It will be better, just not so much better that high school students will flock to it in droves and continue using it for the rest of their lives. Again, we look for the middle ground. And there we find our blackpill.
- With that said, the blackpill on the blackpill is that you don’t really need to think about that stuff. Who cares. Just do things. Let’s create a repo and push while we’re excited. There was never anything to do but have fun.
2024-03-20
- Interview went really well! Turns out, I’m well-prepared. Feels nice.
Notes
2024-03-18
- I am continuing to spend an hour a day teaching my brother to code. It’s going pretty well! He’s starting to regularly solve “leetcode medium” problems, which is a big milestone, as those are the base level of difficulty in real technical interviews at companies. With that said, it also continues to be a great testing ground for my patience. In many ways, David’s approach to computers and solving these problems is not how I do it. Often, the difference in style leaves me vexed. For example, we often begin debugging a program by looking at a long, printed string of integer values with no associated variable names or information about where in the program that value was seen. I let David drive the debugging process, of course, but we have played this game many times now and it always ends with “oh, I think we need more info.” And then we go and add more info to the printed statements. Seeing it happen many times in a row is the vexing part, the part that puts my patience to the test.
But, perhaps it is a good lesson. They do say “patience is a virtue.” And I’m also increasingly fond of the vaguely-Buddhist idea I heard that relates to this: “If you think you have achieved enlightenment, spend a week with your family, see how that goes.” Even if you love your family deeply (perhaps because of that love), that experience seems to reliably be a great test in various areas.
- I am finding myself quite anxious about an upcoming interview with Meta. The interview is tomorrow. On some level, the anxiety/stress is understandable. The interview may reveal shortcomings in technical preparation, and that would mean I have more work to do, work that may or may not be “fun” and “exciting.” Yet, the level of stress/anxiety here seems to go beyond concerns about “discovering technical shortcomings.” No, it has that feeling of deep anxiety that comes from an assessment of your core being, of your deep character and worth. It brushes up against a level of anxiety usually reserved for questions like “Am I a worthy person?” and “will things work out ok for me?” In short, it feels like an ego challenge. And that’s…a surprising thing to feel in the context of answering leetcode questions. Of course, on some level, there are benefits to this emotional response. It elevates my performance level, which is nice. But I did hope that I would have a slightly different
reaction, at this point in my life. I wish I could retain the part of the reaction that feels like “this is an important event” without it having to also feel like “if it doesn’t go well, I may not be ok.” I wish I could rise to my best performance/best version of myself without having to also feel like I’m facing a critical ego challenge. And, on that front, I feel like I am so close. But I can tell in my feelings today that I am still in the “intellectualizing it” phase of knowledge and not in the “feeling it”/“sitting in it” phase. I’m just not quite there. Bummer. Of course, shaming myself or “shoulding” myself is only mildly useful. A better course is to recognize this as just the place I’m at with these challenges, and practice acceptance/compassion for it. We’ll see. Hopefully it goes well tomorrow.
Notes
- Android
- Coil is an image loading library that relies on coroutines. It replaces/competes with Picasso (Square) and Glide and Fresco (FB)
- Coil image loading library supports loading into traditional
ImageViews
and also Jetpack Compose’sAsyncImage
- Chucker is an HTTP request/response inspection library that integrates with OkHTTP to provide devs data on what their requests/responses actually look like at the network level
- What does Chucker do as a library?
- HTTP request/response inspector
- Works as an OkHTTP interceptor
- HTTP request/response inspector
- Compose itself is essentially two libraries — Compose Compiler and Compose UI. Most folks usually think of Compose UI, but the compiler (and associated runtime) are actually not specific to UI at all and offer powerful state management APIs. (from Circuit library docs)
- I like the way Circuit handles ui events. In other
Compose
examples, you see that individual click listeners show up as individual variables in UI State objects. That can lead to a proliferation of boilerplate, especially when the ViewModel/Presenter is the only one that really cares about the processing of the events. Circuit gets around this by giving UI Composables asink
to send all event types, and then defines the event types as subclasses of a sealed interface. That nicely delegates sending/processing code without much boilerplate in the@Composable
views.- Circuit is very neat. I like the design a lot. I wonder how it is different from Molecule? Or the other Square libs that make presenters/ui stuff in Compose.
- Coil is an image loading library that relies on coroutines. It replaces/competes with Picasso (Square) and Glide and Fresco (FB)
2024-03-14
- In a previous/recent post, I mentioned that you could, in theory, use runtime profiling data of your program to determine the type information for your program (which is normally determined in source code, written by the developer, and then verified by the compiler). It was just an interesting thought experiment, but seemed hard to implement for operationally. Anyways, something amazing happened recently. I went to a coffee meetup in midtown for systems engineers/enthusiasts. While there, I met a guy who was working on “runtime profiling” stuff. So, I shared my little theory with him about providing type information to dynamically typed programs using runtime information. He told me, “Yes! That’s indeed a great idea! And, when I worked at Facebook, they had a system that did exactly that for Python!” And then he showed me the Githup repo for monkeytype, which is indeed almost exactly what I described. So cool. I love experiences like that.
2024-03-09
- One of the main benefits of static/strong/strict typing is that you know the shape of your data when writing code. And with the information about the shape of the data, you avoid some pretty common/annoying programming errors, like thinking a field is present when it isn’t or making a small typo when accessing a field. It’s very nice to catch these types of errors before executing the code. But today, I was thinking about alternatives to using types to get this information when writing code. And I realized that you could, in theory, get a similar amount of value if you had really good data from existing/prior executions of the program. In theory (and some debuggers do this ofc), your program could monitor inputs/outputs for some fraction of the executions of every function in your codebase, recording the names of arguments, instance fields, etc. And then you could make that information downloadable/accessible in an editor. A programmer could hover over a function argument and see something like
2024-03-08
- Much of modern life can be modeled as an attention game.
2024-03-07
- The author of my current history adventure series, Will Durant, has a nice quote: “learn enough history to bear reality patiently, and respect one another’s delusions.” I like this quote very much.
2024-03-04
- I seems clear to me that historians will end up attributing the Decline and Fall of the United States in large part to the introduction of elastic waistbands. Of course, I have achieved this clarity of foresight from personal experience. Recently I attended a wedding, and had to wear a suit. The current style of suits worn by men my age, and in my part of the world, involves a very slim silhouette. The goal is to highlight what is supposed to be a fit and trim physique. I had acquired a tailored suit about a year ago that was fit to my proportions, and that I thought cut a nice figure. But when I went to put it on last week, I was unpleasantly surprised to learn that my pants had become painfully tight. Evidently, I had begun the slide, well known to my fellow countrymen, away from trim athleticism and towards bloated corpulence. During the wedding, where I hoped people weren’t noticing my “way too tight” pants, I had some time to reflect on how this situation happened. I realized that I simply had not received the important signals about my ballooning waistline because I had started regularly wearing “athleisure” pants with an elastic waistband. Had I stuck with the traditional garb of pure denim jeans, worn by our nation’s greatest heroes, the increasing rotundity of my figure would have triggered alarm bells much sooner. Alas, it was not so. And then I realized that my story is just one of many in our declining nation. I was, in fact, just another casualty in the war of convenience against excellence. This war, like many before it in the annals of history, has eroded the foundation of our country. It will not stop until there is nothing but rubble. Fortunately, the traditional navel-gazing of history won’t have to look far to find the culprit. Let this be my contribution to the task of understanding the past.
2024-03-02
- I think reading history books has had some nice effects. I think it has accelerated the understanding of certain important ideas for me. A big one would go something like “there have been so many people” or maybe “for almost any situation you find yourself in today, there’s 1000 people in the past who faced something similar.” This is a nice idea to sit with for a lengthy period. The “lengthy” part was helpful for me because in small doses, it was easy for these ideas to push me into a certain kind of nihilism (“everything has been done before by others” -> “it doesn’t really matter what I do or what happens to me”). But over a longer time period of reflection, I eventually moved past that to, what I believe, is a better view on it. Basically, moving past the basic nihilism of it, I found a sense of peaceful empowerment. There is not much to really fear, as many others have successfully trod all the paths before me. And there is much to be excited about, as I will get to travel those paths with fresh eyes, at whatever pace feels right. It will al work out okay in the end.
2024-02-21
- I stand up from my chair. Absolutely no issues. I take a step. And then another. Absolutely no issues. In fact, things work so perfectly, my attention never focuses on any part of the process. And writing about it seems like a nonsensical thing to do. And, in some sense, it is! There’s nothing I can really contribute to this subject other than “things are working exactly as they should.” There’s no wrinkles. It’s a perfectly smooth surface. Now, the point here, is that most writing seems to be about the wrinkles. In the history books I read, attention is directed towards the abnormal, the extraordinary, the tremendous successes and the catastrophic failures. Something worth keeping in mind when asking questions like “what do I make of my life?” or “are things going well for me?” Many of the things you read or encounter in media inherently come from a place of “this is weird.” And they will routinely fail to acknowledge this in any way.
2024-02-14
- Starting to get the sense that music is similar to Anki as a hobby. The thing that stands out as similar is the amount of time you have to spend grinding before you feel like it is “paying off.” I think most hobbies I’ve explored have a “payoff” window (when you start to really get excited about doing it more, you feel like you “get it” and want to explore, etc) of like < 1 hr. Basically all board games and sports fall into this category. You start playing, and boom, you’re having fun, you “get it.” Then there are hobbies where you start to see payoff after like 10 hrs. Maybe cooking falls into this category? Or programming (like you could do a small, intro project in 10 hours of time spend)? But then there’s hobbies that take even longer. Some hobbies involve spending 100-1000 hrs before you start to really “get it” and it starts to become exciting/fun. Anki falls into this category. Running/lifting has elements of this too. And now, music kind of feels like that for me. It’s a
bit faster of a hobby to pick up than Anki, which took maybe 100 hours (?). With music, I think I started feeling a payoff at like ~50 hrs (all just wild estimates here btw). But the overall experience of payoff is reminiscent of Anki. Also, similar to Anki, I had to do multiple attempts to get into it. My first attempt(s) at both resulted in the hobbies not sticking. I didn’t “get it” in time, and I dropped the hobbies before trying again. But now, I do feel like I “get it” with music as a hobby, similar to Anki…and it’s great! But it makes me think about “payoff windows” a lot, and how it is relatively rare to be willing to stick with something for 50+ hours before you start to feel like it is making sense. The upside I think with even trying to go that long without a payoff is that these kinds of hobbies tend to be very deep. You’ll likely never run out of things to explore, and they will change the way you relate to many things in the world around you, which makes life much more
rich.
Notes
- System Design Interview — An Insider’s Guide
- Websockets reduce latency compared with polling bc there is no per-request HTTP overhead and updates can be delivered precisely when they are created without incurring a large polling load on the server
- Are HTTP connections persistent?
- Generally, no
- They can be in HTTP 1.1+ with the Keep-Alive header
- Generally, no
- Cassandra is a good DB for write-heavy workloads
- What is a good DB for write-heavy workloads?
- Cassandra
- Others too, ofc, including relational DBs like MySQL, but this one was mentioned in the System Design interview book
- Cassandra
- What is a standard, first-pass sharding approach you should consider if your data doesn’t fit in a single DB?
- Shard by user id
- This will often work right out the gate. The downside/risk is if load is not evenly distributed across users. If a small subset of users create a disproportionate load (e.g. Justin Bieber has many Twitter followers), then putting that user on a single shard can itself create a hotspot that is fragile.
- Shard by user id
- What hardware indicators are often used when deciding whether to scale out/up a system under load?
- Stuff like
- CPU usage
- Out of memory errors
- I/O thrashing/throttling
- network card saturation
- CPU usage
- Stuff like
- Are WebSocket servers traditionally “stateful” or “stateless”?
- Stateful
- This was mentioned in the chapter about a “Nearby Friends” service
- Note, the implication of this is that removing a WebSocket server has to be done carefully because the loss of state can affect other clients/servers/the general behavior of the system
- Stateful
- What is the risk when removing a “stateful” server from a distributed system?
- Other parts of the system will depend on the state in that server and operations or user-facing features might break if the state is lost
- An implication here is that the load balancer or cluster manager will have to maintain state itself for when a node is added or removed from stateful services. This could be something like a “draining” state for when a service is in the process of being removed and shouldn’t have any state-creating requests routed to it. Or a “syncing” state for when a new server is up and pulling necessary state from other servers and isn’t yet ready to serve requests.
- Other parts of the system will depend on the state in that server and operations or user-facing features might break if the state is lost
- It is worth noting that effective auto-scaling of stateful servers is the job of a good load balancer. Most cloud load balancers handle this job very well.
- Websockets reduce latency compared with polling bc there is no per-request HTTP overhead and updates can be delivered precisely when they are created without incurring a large polling load on the server
- HTTP Headers: General Headers
Content-Type
- Specifies the media type of the resource or data being sent (e.g.,
text/html
,application/json
).
- Specifies the media type of the resource or data being sent (e.g.,
Content-Length
- The size of the response body in octets (8-bit bytes).
- The size of the response body in octets (8-bit bytes).
Date
- The date and time at which the message was sent.
- The date and time at which the message was sent.
- HTTP Headers: Request Headers
User-Agent
- Identifies the client software making the request to the server.
- Identifies the client software making the request to the server.
Accept
- Specifies the media types that the client is willing to receive from the server.
- Specifies the media types that the client is willing to receive from the server.
Accept-Language
- Preferred languages for the response content.
- Preferred languages for the response content.
Authorization
- Credentials for authenticating the client to the server.
- Credentials for authenticating the client to the server.
Cookie
- Sends stored cookies from the client to the server.
- Sends stored cookies from the client to the server.
- HTTP Headers: Response Headers
Set-Cookie
- Instructs the client to store the cookie and send it in future requests to the server.
- Instructs the client to store the cookie and send it in future requests to the server.
Server
- Information about the software used by the origin server.
- Information about the software used by the origin server.
WWW-Authenticate
- Indicates the authentication method that should be used to gain access to a resource.
- Indicates the authentication method that should be used to gain access to a resource.
Cache-Control
- Directives for caching mechanisms in both requests and responses.
- Directives for caching mechanisms in both requests and responses.
- HTTP Headers: Security Headers
Content-Security-Policy
(CSP)- Helps prevent cross-site scripting (XSS), clickjacking, and other code injection attacks by specifying valid sources for resources.
- Helps prevent cross-site scripting (XSS), clickjacking, and other code injection attacks by specifying valid sources for resources.
Strict-Transport-Security
(HSTS)- Enforces secure (HTTPS) connections to the server.
- Enforces secure (HTTPS) connections to the server.
X-Frame-Options
- Provides clickjacking protection by indicating whether or not a browser should be allowed to render a page in a
<frame>
,<iframe>
,<embed>
, or<object>
.
- Provides clickjacking protection by indicating whether or not a browser should be allowed to render a page in a
X-Content-Type-Options
- Prevents the browser from interpreting files as a different MIME type to what is specified in the
Content-Type
header.
- Prevents the browser from interpreting files as a different MIME type to what is specified in the
- HTTP Headers: Caching Headers
ETag
- A unique identifier for a specific version of a resource, allowing for more efficient caching and resource updates.
- A unique identifier for a specific version of a resource, allowing for more efficient caching and resource updates.
If-None-Match
- Allows a 304 Not Modified response to be returned if content is unchanged.
- Allows a 304 Not Modified response to be returned if content is unchanged.
- HTTP Headers: WebSocket Headers
- Used in the WebSocket opening handshake. It’s part of the protocol to establish a WebSocket connection.
- HTTP Headers: Compression Headers
Accept-Encoding
- Specifies the encoding algorithms (e.g., gzip, deflate) that the client can understand.
- Specifies the encoding algorithms (e.g., gzip, deflate) that the client can understand.
Content-Encoding
- The type of encoding used on the data.
2024-01-28
- an idea to chew on. Some people say stuff like “how you do anything is how you do everything” or “how you take care of the little things is how you take care of the big things”. I think there’s some truth to that (and a good amount of nuance). One thing I’m realizing is maybe a more interesting angle on the same idea is: “how you play games is how you do everything.” Was thinking about this based on learning to play Magic The Gathering with a friend (great game, my friend is a great teacher, it’s amazing, I can’t believe I didn’t play this before). One thing that I realize really stands out to me is around in-game choices where there is a “zero-sum” option vs a “positive-sum” option. In this case, I would note that most of the informational value lies with looking at the decision maker. And in particular, in situations where you could go a zero-sum way that benefits you vs a positive-sum way that benefits yoursef/others (often along different dimensions, often with somewhat less benefit to yourself), it’s likely very informational to pay attention to those choices in yourself and others. For me, I realize, at this point in my life, I am pretty unlikely to enjoy playing repeated iterations of games with people who choose the zero-sum path, bc I am so much more interested in exploring positive-sum paths through games. This is true for me, even if it means I will “lose” the game at the end of the exploration. Some things are worth “losing” an advantage.
2024-01-06
- What kinds of processes are done by people that should be done by computers?
- Filing for unemployment
- Redoing your license registration
- Government interactions
- Filing for unemployment
- What kinds of areas are hard with computers?
- Deployment!
- Monitoring
- UI design
- Deployment!
2024-01-03
- My contribution to the nature/nurture debate. One, some things are innate. Others are taught/learned. No question there, hopefully not controversial. With that said, I’ve seen so many instances where people (myself included!) think something is Nature only to find for myself that it is highly Nurture-able, that I think Nurture generally dominates, along most areas people care about. I think the disconnect between Nature/Nurture groups is most prominent when discussing achievements that take a long time. Nature is often credited (Kanye is a genius) when really Nurture very likely played a larger role (Kanye, in one song, raps about how he “did 5 beats a day for 3 summers,” a testament to his nurturing of his own talent). Seems likely in those cases that the availability bias overwhelms more rational reasoning processes: it’s easy to see the great outcome and the person next to it, there’s an immediacy and availability of that image. It requires comparatively much more
imagination/mental effort to see the outcome/person at the end and walk back to a kid in a basement making beats. To us, Kanye was always a crazy genius! In any case, a ton of stuff is amenable to nurturing, and the extent to which a thing can be nurtured is also generally very impressive. So like, you may not have the talent to become the literal best piano player in the world (as recognized by your peers/general community), but you probably have the ability to become top 1% of piano players, which is still very impressive and generally well beyond the goals of what people would want at the outset of picking up piano. So, I guess to sum it up, I am mostly team Nurture at this point.
- mmm have had such a wonderful back and forth with my music teacher about some music philosophy stuff. It was a long, and rich conversation, and I won’t really get into all of it here. But I wanted to write down some of the really juicy stuff. We were talking about this notion of “quality.” The question we were discussing was whether people need to be “educated” in order to have a deep appreciation for music “quality.” Is training important? As you might guess from my previous message here, I am very pro training. My teacher was in more of the opposite camp: that music quality is very real, and if you just really listen, you can tell what great music is without being told/taught. Our discussion eventually reached for analogies/metaphors that were helpful. My teacher brought up that everyone can tell the difference between a Ferrari and a Nissan when driving. I thought that was a fairly good example, in that I would have been mostly happy to take the other side of that bet.
But, to be specific about my claim, it’s not that I think people don’t perceive a difference when driving a Ferrari or Nissan (I think they generally do), it’s that the average person, will “know” a Ferrari is better because they are paying attention to signals that correlate with quality. Critically, the average person would not be able to pick up actual quality signals outside of those correlations being present. To make it more concrete, I think people perceive differences in quality in cases like this mostly based on things like brand recognition and perceived “rarity” (how many do you see in normal life). Those are real signals, they are just one step removed from being the signals that make up actual quality (most of the time). Anyways, the car example isn’t great because neither of us has driven a Ferrari or Nissan recently. But I think the point stands that most of the time, in areas where people are not expert and where a base
quality bar is achieved among all options, people’s perceptions of quality are extremely influenced by things correlated with quality but when asked “why is this good?” they would largely fail to identify the specific signals an expert would note when assessing quality. Aka “expertise” is a real thing that is trained, in most domains. Man, this is getting rambly, but whatever, it’s a blog. Ok, in the context of the convo, we agreed to explore that kind of thing more later and moved on. But I want to expand on it. I think actual this notion of “signal processing” is a useful metaphor. And specifically, I want to use my last effort here to connect “signal processing” and “expertise” to the hedonic treadmill. Ok, so let’s say you become very skilled in some domain. As a result, you are very attuned to real quality signals and have strong, defensible positions about what is “good” and what is “not so good” in that domain. For me, this domain is computers, but it could be
any number of areas (e.g. music). And, as an expert in your area, you will often find yourself thinking “good taste” is important. This is not imaginary, and is traceable to the many instances in real life where the basis for important decisions comes in large part from that “good taste” developed by years of practice. Ok, taste/expertise are real and important. I’ll note here that this is my actual belief too! It’s not that this is wrong, it’s just that it reliably leads somewhere interesting. Anyways, continuing. Of course, it doesn’t take much to generalize this existence of “good taste” in your area to realize “good taste” exists in other areas. And not only does it exist, but, just like in your domain, it should be attainable and it’s important to attain it. These thoughts come together to make you want to enjoy the “good taste” in all fields. Very understandable, and a good idea, for sure. Unfortunately, in those other domains, you are not an expert. This means you will have to
put in work and time to develop expertise. That’s kind of ok, I like learning things. But…I don’t really like waiting. So, instead of waiting to learn what the “real” quality signals are in a domain, I try to short-circuit the process with cash. I obviously can’t “become an expert overnight” in any given domain (ridiculous notion, though you can absolutely do it in a handful of years). But I can easily pay attention to signals that correlate with quality. The most common/basic one is price. So, I go out and search “best X” and then buy it. This is all well and good, generally speaking. But it is also a cycle. It feeds on itself. There is no end to domains in which you can have “good taste.” And there’s no end to people willing to sell you “best X” when you can’t even distinguish between “bad X” and “average X.” So yeah, “expertise” in one domain can trigger a desire to have achieved “expertise” across other domains without triggering a desire to do the work to achieve
“expertise.” And we can more easily read/pay attention to signals correlated with quality than become tuned to actual signals of quality. Put those together and you’ve got a nice little treadmill going! And it all starts with developing a little expertise.
- As an addendum, these days, I am interested in breaking this particular hedonic treadmill cycle by committing to just being a true beginner. Most notably, in the area of learning music. It is hard. It means I do stuff that looks/feels “basic” and “stupid.” It means I embrace working with systems, at least at the beginning, that feel “weak.” It means buying the entry-level thing and seeing if I can hack it before going for the full-bells-and-whistles expert option (though, I still struggle with this tbh). Probably most importantly, it means that I have to be wrong and make mistakes, a lot. Indeed, it has been and continues to be, humbling to do this. But also, kind of cool to be there at the beginning again, when things aren’t working, when things don’t make sense, when the whole road is still ahead of you, and you know that even though many others have walked it, you get to do it all in your own way.
2024-01-02
- Oof, I’m running into some hard work in some Anki cards I recently introduced to my music deck. I am trying to learn the relationships between various notes/chords. This is important for figuring out/developing chord progressions. In a basic sense, a given key has 7 distinct notes, and each note is given a number. In the major scale, you can make certain types of chords at each note, and those chords are given numbers according to their position. I’ve already got cards asking about “what is the 5th note/chord in the key of X” and those are pretty solid/easy at this point. I now want to learn “what is the 4th note/chord in the key of X?” The reason for choosing 5/4 is that they are important notes/chords in the major scale. Unfortunately, even though I am strong on “what is 5?” I am finding it very challenging to learn/review the cards about “what is 4?” I think it’s an interesting thing to dig into because it probably has implications/lessons for building knowledge webs effectively in a general case. We (Rob and I) have already got a good grasp on the problem of adding new cards that are too large of a logical/conceptual leap away from what is already in solidly in the web. Disjointed information is hard to learn/review. You want things tightly connected. And you want to expand your web in relatively small hops from what you already know. Another issue can come up, and I think is embodied in my struggle to learn “what is 4?” Specifically, I think cards that are “too similar, but a little different” to cards you just learned can end up introducing significant mental interference into reviews. Of course, it’s important to note that this “mental interference” is part of actual learning. But just like you don’t want to make too large a jump from existing, known info in your web to new info, too much interference ultimately raises the difficulty of the cards too much. Ideally, reviews stretch your abilities, they should extend the limits of your knowledge and be somewhat uncomfortable in that sense, but it can go too far. Too much interference is exhausting just like reviewing cards that are disconnected from the rest of the web is exhausting. An important thing to keep in mind when building out webs via cards.
2023-12-31
- Sometimes I talk with folks about their ideas for how to improve the world. Or, more humbly, how they plan to improve their own lives. I’ve noticed a pattern in myself in these situations. In the spirit of “helping” these people achieve their goals, I will propose reasons why their plans aren’t a great idea. You can imagine the simplest form as asking someone, who has come to me with a startup idea they are excited about, “why won’t [big company] just do that?” While I rarely present this question in an adversarial style, I’ve come to realize that this pattern of “helping,” even with a friendly tone, is influenced by factors other than altruism. Simply put, these kinds of questions usually involve me proving something to myself about myself. A typical example of something I’m proving to myself is that I am a person with deep insights about the world. I like to believe I can “predict” the outcomes of many things around me. It’s a part of my own identity and, frankly, ego. It’s tied to beliefs about why I am worthy of respect, attention, love. And that part of me that needs validation regularly shows up in this style of questioning. In other words, when someone shares their idea with me, not only do I want to “help” them, I feel the need to “help” myself. I now find this quite distasteful. It violates the most basic rule of treating others well: treat them how you would want to be treated. And the truth is I don’t like interactions where someone claims they are being helpful while actually serving their own ego. Ok, fair enough. Recently, I’ve been trying to focus more of my “helping” energy in these conversations on identifying why things will work out, and trying to help the person build momentum towards achieving their goal. I’m trying to embrace the mindset that, in the contexts of conversations with friends about their plans, it is not my job to “protect” them from or “teach” them about things like “what if a [big company] copies you”. It is not helpful, in most cases, to protect people from the things that excite them. What is helpful is to contribute to an expansion of their imagination about what is possible, to look for ways to share in the excitement that they have for making a change in their life or the world. Doing that really is helpful! Now, one thing is still a bit challenging. The golden rule does cut both ways. I’m also noticing myself much less interested in “convincing” people that the things I’m interested in are worth pursuing. I’ve noticed that some people I used to interact with regularly have a similar habit to my own of “trying to be helpful” by subtly (or not so subtly) discouraging me from exploring some path I’m excited about. And, now that I see my own ego showing up in these situations, it’s hard to ignore it in others. The challenge is that…well now I have fewer people to share in the excitement! It is more lonely. I don’t really know how to resolve this. Sharing, with many friends I love, reliably feels…kinda bad these days. I am at a bit of a loss for how to carry things forward in those relationships. In the small number of cases where I have tried to explain these ideas to folks I love and trust, I am regularly met with this notion that I am “only looking for ‘yes’ men, to make me feel good about myself.” I don’t think that’s true. To be totally frank, I don’t think that’s particularly charitable interpretation of the ideas here. But that response, somewhat paradoxically, triggers the exact conundrum I feel like I entered the conversation with: I don’t enjoy the process of “convincing” people that my ideas are “right” or “good” or “worthy of charitable interpretations” and addressing this kind of thing feels like it puts me back into a position of “convincing” people of things they have strong (often ego-connected or ego-adjacent) opinions about. So…my response these days is to note that I don’t have a good way forward and to end the conversation until I come up with some resolution here. I will end by noting that maybe it’s just my own ego all the way down. Maybe my desire to have friends that share in my excitement is also just another reflection of my need for validation. Honestly, I don’t know, though I am, at this point, skeptical that the specifics of what I’m looking for are problematic from an ego perspective. Some ego is probably good/healthy/useful, is my current view. Though the actual amount that is good tends to be much lower than what most people, including myself, carry around regularly.
2023-12-30
- I have enjoyed Will & Ariel Durant’s tome on Ancient Greece. I listen to it as an audiobook while I walk Jofi. Today’s section was on Euripides. I found it to be really excellent. Especially in the comparisons between Aeschylus, Sophocles, and Euripides. Durant at one point notes that those poets follow a similar trendline to Italian renaissance painting with Giotto, Rafael, and Michelangelo. The first one establishes the foundations of the relevant art form (Aeschylus with Greek dramatic plays, Giotto with Italian renaissance painting). The next achieves technical perfection (Rafael, Sophocles). The final stretches the limits of the form as an act of tortured genius (Michelangelo, Euripedes). He also notes that a similar trajectory exists in classical music with Bach, Mozart, and Beethoven. Personally, I am insufficiently familiar with any of these artists to judge Durant’s claim, but enjoy the notion that history rhymes like this across different art forms.
- Had a wonderful phone call with Rob today. Should remember to call him more often. Somehow always come away from our calls more excited (about life, doing things, all of it) than when I picked up the phone. An invaluable part of the best friendships.
- Damn, I just hung out with one of Elena’s friends. She was so good at listening that I felt a little embarrassed that I had thought of myself as a “good listener.” Realizing that I’m just ok. Exciting (and humbling) to be learn that I still have a ways to go.
2023-12-28
- I recently added some “visualization” cards for musical chords (e.g. “visualize what chord X looks like on the keyboard”). It’s been an interesting thing to add in this case. These kinds of “visualization” cards aren’t uncommon in my Anki history, having been introduced to me by my Anki guru, Rob, many years ago. I was initially skeptical of them as a card format, but they are actually quite valuable if well structured (which is unsurprising if you remember that the brain is much better at processing visual info vs abstract concepts encoded in text). Anyways, I primed myself for these cards by first creating cards about other related information (e.g. “here’s an image of a chord, what chord is it?”). After mastering those cards, I figured I was ready for the visualization ones. The interesting thing here is that there are multiple “shapes” that you could visualize for a given chord. There’s “root position”, “first inversion”, and “second inversion” that you could test on, and all would have different visualizations for the same chord. When making the cards, I initially just dumped visualizations for all “shapes” into my deck. But I quickly realized that I had much more trouble visualizing the “non-standard” shapes (first/second inversions) than the “standard” form (root position). The difference was so stark that I decided to remove the cards asking me to visualize the inversions for a given chord. They were just too hard at that point. I will add them back after I master the visualization of the root positions of each chord. One of the interesting things from this card was that it really highlighted the difference between when a visualization in my mind’s eye is “clear” vs “hazy”. The root position cards were all “clear” in my mind when I tried to visualize them. But the inversions were all “hazy”, even though the information in each is very similar. Intuitively, I knew that it was possible to have some visualizations be clearer than others for a given topic, but I had never experienced it so viscerally. Very interesting peek inside my mind. I will note, that I was primed for all of the possible “shapes” by existing cards. Aka I had cards that showed me a picture of each inversion and asked “what chord is this”. But I think I consciously/subconsciously handled those by converting them into a “root” form in my mind and then using that to answer the question. The root position cards are thus very heavily traveled in my mind, while the inversions are considered more of an offshoot/not central info. Will be interesting to see how this dynamic shifts (or doesn’t) when I add back in the visualizations of the inversions in a few days.
2023-12-26
- I’ve been talking with a friend about his LLM-based game startup. He sent me a book recommendation for this book called “A Theory of Fun for Game Design”. His recommendation got me very interested because he said “this book reminds me of Finite and Infinite Games,” which currently holds the top spot on my “Most Impactful Books Ever” list. So, I could not resist picking it up. I started reading it last night. It’s quite good, though does not resonate quite as strongly as FIG. It’s currently an 8 to FIG’s 10, so quite good, but falls short of revolutionary. Still, it does contain some absolute
gems of ideas. It draws a strong connection between successful games and learning. I think that’s broadly a good connection to make. I think it answers some of why Anki is interesting to me and less so to others. But, most importantly for this stream of consciousness blog post, it highlights why certain Anki cards/decks are great while others are just ok and others are straight up not enjoyable. And it comes down to learning. Good decks will make learning enjoyable, they contain interesting information and are well structured. The best decks not only make learning enjoyable, but they make me excited to learn more, and in particular they make me excited to do something with the knowledge. My recently created music cards have this quality, as do cards related to art that I made a few years ago. For the art cards, not only were the cards interesting and well structured, they made me excited to go to museums for the first time in my life. They opened a whole new world to explore, and made
me eager to look deeper. The music cards have a similar quality. On their own, they are just solid cards. They contain atomic information with one clear, correct answer, they exhibit a good use of images, and they’re structured in a web where early pieces build on later pieces to some degree. But in the course of studying the cards, I also see new connections (e.g. “ohhhh the relative minor of a major chord can be obtained by moving the 5th up two intervals!”). These realizations make me want to get back on the keyboard and test out this information, to learn how the knowledge “feels” musically, to see how it can help me play songs more easily/faster. It’s awesome! And then I think back to this book I’m reading and I realize, “ohhhh this is what great game design feels like.” There’s one level of game design competence where a player learns the necessary mechanics/rules and works to achieve a goal and the process is generally enjoyable. And then there’s a whole other level of game
design where learning the mechanics and rules makes the player excited not just to achieve intermediate, in-game goals, but to explore previously unknown areas, to learn more mechanics and rules almost as an end in themselves, where it becomes about discovery as much as it is about winning the game. Connecting this game idea to Anki is a really fun framing for Anki that I hadn’t used before. Love when this kind of thing happens.
- The creator of Ruby on Rails compared costs between Heroku and Hetzner + Kamal (the tool he wrote to make deploying to VPS’ easy). Heroku is particularly egregious on pricing, so the difference is like 50x. But even against DO and Render, it’s like 10x cheaper or more to go with Kamal + Hetzner. This is consistent with my own experience migrating away from Render. So far, I have been very happy with the switch (but it is still early days). Commenters on the tweet note correctly that scaling will be more challenging with Hetzner. But what they often fail to account for is that vertical scaling is not as complicated as horizontal scaling, Hetzner + Kamal makes vertical scaling very manageable, and the reduced costs make vertical scaling compelling up to a pretty large level of usage. The cost differential means you will get ~an order of magnitude of extra vertical scaling before you need to look into a cloud provider to handle the explosive growth of your project. Of course, if you structure your application well, Kamal can make horizontal scaling pretty easy too (mostly just adding the IPs of the new web servers or job servers you have to a yaml). Now, there will be a point at which cloud offerings are the way to go. But if you are a small team working on a new project that doesn’t yet have massive usage, you don’t gain that much by going with Render/DO/Heroku at that stage. If Render was 2x the cost of Hetzner + Kamal, that’s about the tipping point where it makes sense to just have it managed. But at 10x the cost, it doesn’t make much sense. Another factor is whether you have particularly complicated infra needs. If you really think you need a special vector DB and Kafka and Mongo and Postgres and Redis to make things go, then it likely makes sense to go hosted. But most apps won’t need that. And those that do almost certainly wont need it on day 1. If you can make it work with Postgres, Redis, and Python web servers, Kamal + Hetzner are a great option. Good chance a big enough computer doing those things will get you where you want to go.
2023-12-25
- So I’m still doing these flashcards to learn musical chords on the keyboard. Elena saw me doing these and asked me “do you think these will make you a better player?” It gave me pause. The truth is that yes, I think these cards make me a better player (as I have noted in previous writings). But the mechanism of “how does this make me better” is a little obscure to me. I find myself reaching for a building metaphor in this case. The cards are kind of like developing a solid recipe for concrete. Playing the keyboard is like building a house. Obviously, the best/most straightforward way to get better at building houses is by building more houses. Just keep building houses. On the other hand, developing an understanding of concrete and ensuring you have a way to really strong recipe will, a few steps down the line, be quite useful for building things more quickly and for enabling the building of certain structures that require a particular type/quality of concrete. Of course, during the actual building of most structures, you don’t wanna spend a ton of time thinking about the details of the concrete you are using. It’s a base level abstraction that needs to be solid/second nature, but it isn’t something that receives a large percentage of attention on the job site. I don’t know if that is really how buildings get made, but that was the metaphor my mind reached for when thinking about “where do these cards fit into my musical journey/practice?” They are foundational. But ideally the knowledge contained in them fades into the background of the actual work when it’s happening.
2023-12-24
- Recently, Elena and I did a board game night with some of her friends. We played a game I like called Skull. It was the second time I had played. And it was the first time for everyone else. This game me somewhat of an advantage, but was mostly just a really interesting view into how people learn to play this game well. The game is a nice mix of luck and strategy. And the strategy part is particularly interesting. Usually, in games where strategy or skill is involved, it isn’t very interesting to play when people have significant skill differentials. But this game is different. It involves skill but also is fun to play with folks of varying skill levels. The thing that makes it interesting is that each iteration of the game is slightly different from previous iterations, no matter the skill level of the people involved. How does this work? Well, the skill of the game is around correctly modeling the thought patterns and subsequent choices of players under uncertainty. If you can accurately predict what people will or won’t do in a given situation you will have an upper hand (tho, even in the best case you are not guaranteed to win, luck plays a noticeable but not overpowering role). The thing is that the model you have to maintain of other players thoughts/expected behaviors has to update with every round. Because each round all players reveal information about how they play, what they are capable of, what risks they take on and avoid. And that information is then fed back into each players model, which changes how they will behave and respond to similar situations going forward. The game is new/fresh at every step because the players involved are constantly growing and developing in their approach and strategy. Just when you think you know when someone is going to zig, they have realized that they always zig at that time, and decide to zag instead, and the surprise of it all is fun and exciting. It’s a great game. So much fun.
2023-12-23
- Follow up to DB migration from Render to Hetzner. Today, I moved the API server off Render. Was surprisingly easy. I even got SSL set up between frontend and backend using LetsEncrypt, which was a thing I had no idea how to do and was always kind of intimidating coming from the frontend world. The truth is, I still only vaguely know how I managed to get TLS/SSL set up, but Kamal configuration was simple/well-documented enough for me to accomplish the task in about 30 mins. Now all that’s left on Render are my cron jobs, but Kamal also has documentation for spinning those up on a VPS, so it’s just a matter of time. In terms of cost savings, I went from $25/month (note, I was actually paying $0 due to some credits I had, but the credits were set to expire in 2 months) for 1 CPU/2GB of RAM to paying $4/month for 2 CPUs/2GB RAM. Pretty sweet! And if/when I ever outgrow this server, I can easily vertically scale or just move back to Render and pay the costs for the fancier stuff
(e.g. autoscaling). The big thing that I retained is simple deployment. I commit to git and run
kamal redeploy
and within 2 mins, my changes are live.
2023-12-22
- I have just done something most people consider inadvisable. I have migrated my database from a managed service provided by a reputable hosting provider (Render, they do great work) onto a VM that I manage myself. Why would I do this? The first reason is that I want to learn about the tradeoffs of this decision (cloud vs manual managing) for myself. I had followed the conventional wisdom when getting started with my most recent web project, and that helped me go from 0 to 1 very quickly. I think that was a good idea at that stage and with my level of expertise. But now, I’m interested in exploring the alternatives. How much effort is it these days to run a server on your own? I’m excited to find out. So far, there seem to be pretty good tools out there when it comes to managing a small number of servers. In particular, I’ve been impressed with Kamal for automating deployments of docker containers to a small number of servers. It seems like a good fit for what I need. The other thing that seems like a good fit is the price. My current usage on Render comes out to $75/month. That’s around the level at which I get a little uncomfortable with the prospect of long-term financial viability for my side projects. I’m also starting to get close to the storage limit on my current Render DB, and the next tier up is an additional $75/month (would take me into $150/month, for a service that has yet to make any money). Oh Hetzner, I can get (significantly) more compute/storage for about $10/month. And that $10/month includes plenty of room to grow with other side projects and things I might add to existing things. That’s really nice. If I can keep the complexity low in terms of deployment and infra management, I think it’ll make sense to just have this be the default going forward. And if it doesn’t work out, I’ll learn some good lessons about computers. Ok, and now, one more thing. I really liked Render. It’s super convenient and well done. I will very likely go back to them for future projects, and certainly if I need more advanced features like autoscaling or whatever. But one thing did irk me: database performance. I guess for $20/month, I expected to get a database that would have pretty fast response times/pretty high throughput for my user requests/batch processing jobs. And I didn’t really get that most of the time. I am not really a database perf expert, but I did seem like what I was seeing was abnormally nerfed performance for what I was asking the server to do. We’re talking about querying a table with ~100k rows and doing bulk inserts of ~1000s of records during batch jobs. Not exactly massive scale. Interestingly, my concerns seem to be somewhat validated with my switch to Hetzner. The DB server I now use has fairly similar hardware specs, but manages to achieve noticeably better throughput on my batch processing jobs (jobs that normally took 10mins to complete now regularly complete in 2 while doing similar amounts of work), and tested about 20% faster for responding to user searches. It’s nice to be able to switch to something that is both cheaper and better than what I was using before. But I wish that my $20/month would have gone farther with Render.
2023-12-13
- I am here to report another significant Anki win. I’ve been trying to learn to play the piano. It is quite challenging. My effort level has been middling, so progress hasn’t been super fast. Recently, I found the motivation to make Anki cards for all the various chords and how you could play them on the piano (e.g. root position, first/second inversion). I started reviewing the cards. Suddenly, my ability to play the piano dramatically increased. In some sense, this isn’t surprising. It’s the same finding from programming, where if you use Anki to drill the basic syntax/core APIs in a language, the fluency with which you write code can increase dramatically. Nonetheless, it’s cool to see it in this domain. My piano teacher has been hammering the idea that I just need to keep practicing songs on the piano as the most important thing to do to improve. I think he’s mostly correct about this, but he underestimates the positive impact of flashcards (and that there is room for both activities in my life). Here’s my conception of what the main benefit of flashcards is at this point. Before doing flashcards, it would take me an incredible amount of time/energy to figure out the chord progression in a given song. A big part of the problem is that even if I found a note that sounded like it was present at a given point in the song, I had trouble figuring out what chords contained that note and what chords would make sense within the context of the rest of the song. Both of these questions are made significantly easier if you know basic chord shapes/structures. Now, after doing the flashcards, I am able to make educated guesses about chord progressions in a fraction of the time that it used to take me. The flashcards have dramatically sped up the inner loop of the rest of my practice. To be clear, I’m overall still pretty slow and inaccurate when it comes to guessing chord progressions. But I’m probably 2x or more improved over where I was just last week. This was from doing flashcards for only 1-2 hours. So, it’s exciting stuff. A classic dopamine hit (stuff I study in flashcards having real world utility). And there’s definitely more juice to squeeze from these cards. Music seems to have a rich set of relationships that map well to atomic question answer cards (e.g. my current cards show an image of highlighted notes on a keyboard and ask what chord it is, but you could extend this to ask for specific notes in the chord, or questions about what chords are relative to a given chord, or what the smallest finger movement would be to go from chord A to B, etc). Having all this knowledge as muscle memory frees up a lot of processing power in the rest of my practice, and makes the whole process more enjoyable (it’s very frustrating to try to learn a song and mostly fail). Lots to look forward to! Oh, I’m also very excited when I figure out a way to encode chord progressions from songs I know into flashcards. I think there’s probably a lot of value that comes from knowing things like “oh, in X song I know, which sounds kinda like this one, the chords go I-V-ii-IV.” Kind of a tough challenge to encode that into a reasonable card or set of cards though. But, I’ve got nothing else going on really, might as well go crazy on this hobby.
2023-11-30
- Well, I guess it’s time. The grand experiment of “trying to make something people want on my own” has been fun. But all good things must come to an end. Now, to be fair, it’s not “over over.” Just slowing down. To make room for more mundane pursuits like “having a normal job” and “continuing to pay rent.” Those are fine things to do, I think, even if not particularly thrilling. Now, I will note, there is still cause for some excitement. I still believe this Generative AI stuff is really cool. But I no longer believe that I am sufficiently prepared, as a single individual, to build a worthwhile business on my own before running out of cash. So, it’s time to look forward. I will continue to build and develop things I’m excited about for my own life. And I’ll be combining that with a job that involves building something interesting alongside other interesting people. It seems like there is no shortage of startups in the generative AI space. Maybe one of them will be compelling. And if I don’t find anything there, I’m confident there are plenty of solid, larger companies doing reasonable enough stuff for me to contribute to. Coming up, I’ll take a few months to build out some more stuff I wish existed in the world and then target a new job in ~March 2024. Next up is to 1) build an app that integrates generative ai tools into anki/srs, 2) revitalize my “what are you wearing today” app and release an Android version of it to showcase my Android skills, and 3) Build a little app with a friend around getting people together in nyc on short notice. Exciting stuff. The future is still bright, though admittedly somewhat less so than I had hoped.
2023-10-17
- What if it took 10 years to achieve something you consider to be worthwhile? Would you pursue it? What if for the first 2 years, it felt like you weren’t getting any closer to the goal? What if, even if you achieved the desired outcome, your quality of life at the end was lower than it would have been had you not taken the leap? How long can you go before you need “to see results”? How long will you persist on something when most people around you don’t believe in the mission itself or the path you are taking to get there? What are you willing to sacrifice just to take a shot at something you believe in?
- I think about the above questions fairly regularly right now. It’s one of the most interesting parts of not having a job and working on my own side project. When I had a job, I never really had to think about these things. I was on a well-defined, well-understood, well-compensated, well-respected path. And that’s a fine path, with its own interesting questions, too. But being on a different path recently has been a breath of fresh air. Challenging, yes. But a test of strength that I currently find worthwhile. An exploration of something deeply human. The desire to build. The experience of coming face to face with an uncertain outcome and future. Going against conventional wisdom, to some extent. I think about quitting my current path almost every day and returning to my old path. What I’m doing feels unsafe compared with the old path. Safety is a primal need, and I can only ignore it for so long. Eventually, I will go back, in all likelihood. But even facing the fear, for as long as I can, is a good exercise, a worthwhile adventure. It is teaching me about the world and about myself, things I don’t think I’d be able to learn on my other path.
2023-10-04
- Back in New York from ~3 weeks in France. Jet lagged. Beautiful to watch the sun rise on NYC.
- A few years ago, I read an introductory book about Karl Marx and Communism. I realized I had always held a pretty negative view of Communism, but that negative position seemed mostly motivated by parroting the opinions of people around me. So, in an effort to form my own opinion on Communism, I picked up an introductory text, which was designed to help average people understand Marx’s ideas. Overall, I came away from it still thinking Communism was bad, but I gained a new appreciation Marx and believe many of his ideas were quite prescient. Anyways, the main point of this post is not that I tempered a strong negative view by exposing myself to the details of the best arguments from the other side. That part is fine, but I’m more interested in talking about a specific idea from the book that stood out to me. At one point, the author is explaining Marxist theory and covers this idea of “worker alienation.” The basic premise, as far as I remember it, is that workers in a capitalist system become treated more and more like machines, and, as a result of the repetitive task completions in their work, they lose a connection between their work and their broader lives. In short, capitalism robs workers of their humanity, and work can and should be a deeply meaningful act for people, but it can’t be that under capitalism given the pressures to minimize costs and maximize production. Marx claims this is a moral atrocity and uses it as a supporting structure in selling his vision of a worker’s utopia. Whew. Ok. The thing is, at the time, I found this a very confusing idea. I didn’t really see what Marx meant by “alienation.” And I’ve come to realize that I didn’t understand it in two big ways. First, I didn’t understand conceptually how “alienation” could apply to someone’s job, and second (more importantly) I didn’t really understand what it would mean to be alienated in general. But recently, I’ve been having this “ahhhh that’s what Marx was talking about” feeling when it comes to alienation. These days, I’ve often been feeling very separated from most things around me. I feel…like an alien! It’s been a visceral experience, and I think alienation is the right word. It just fits. What’s really interesting is how you can read something a few years back, not totally get what it means, then have something happen to you down the line and gain a deeper appreciation for it. The existence of multi-year feedback loops is quite surprising to me. I think this is also a hallmark of “great art” (the meaning changes as you revisit it over time). But anyways…Of course, hopefully I feel less alienated soon! I think it’s mostly downstream of me going through some bigger transitions in my life. I don’t really have a handle on what exactly these transitions are, and that’s uncomfortable. But I think it’s some sort of adult version of when children at some point transition away from playing with teddy bears. What happens there? I don’t really know. It just seems like a thing that people go through. There’s nothing really wrong with teddy bears and there’s nothing really wrong with choosing to play with them or not. But at some point kids seem to reliably not want that, and go through a phase of alienation towards the thought. Maybe that process just keeps happening over and over with different teddy bears.
2023-10-02
- I wonder why I have such a difficultly saying goodbye. Something something thinking a lot about death.
- Revisited some of my highlights from a book I love: Finite and Infinite Games. One of the highlights is about the relationship between stories and experience. In standard logical analysis, experience precedes stories, and in a causal way. First you eat breakfast, then later you tell people the story about it. FIG proposes that this gets the relationship backwards. Stories define the experience. If you told a different story, it would be a different experience. I’m not sure how much I buy this, but it’s an interesting idea. I think I would get behind stories causing the memory of an experience to take a certain form. And through this control of memory, you control the meaning of an experience. But the idea that a story about food could conjure food to experience is too big a leap I think. Furthermore, the idea that without a story to tell about an experience you would not have experienced anything is just too bold. Stories are, of course, important and powerful, and discovering new stories or ways of telling a story will often result in people making a different meaning of their lives. For example, a compelling model for converting to Christianity is that people learn the story of the gospels. This story will offer them a way to reconceptualize the experience of their lives in ways that mimic the experience of Christ. If they choose to center the story of Christ in understanding the experience of their own lives, they become Christians. So the important causal pathway is: experience -> story -> meaning. Still, interesting thing to flip and explore. Big part of what I enjoyed about the book is this kind of thing.
2023-09-30
- I’m still in something of a funk in life. One thing to note that is kind of troubling is that I don’t feel like I have a good answer to “when you imagine a world where you are happy and excited, what is different about that world compared with this world?” I don’t really have an answer to that. Maybe it’s that people are kinder and more curious. I’m not sure that it’s a big problem that I don’t have a good answer. It seems fine to hold an “I’ll know it when I see it approach” to finding the next thing to be excited about. But I also recognize that if I had a good, clear answer to this question, I could lean into my own ability to make change the world around me to bring me closer to that world. I’ll chew on it more, maybe I’ll come up with something good.
- I’m having a hard time figuring out a perf issue with PadDaddy. Maybe the problem is I’m doing like 7 joins in this SQL query. But is 7 a lot? Feels like there’s gotta be places running much bigger queries and getting faster results.
2023-09-29
- I wish more people relied on a “cloud” metaphor when thinking about/discussing ideas instead of a “point” metaphor. The “point” metaphor is, in my experience, the default way of conceptualizing an idea. In short, an idea is a “point” in concept-space. The definition of the idea corresponds to some set of coordinates. If you know the definition, you know the idea. If you know the coordinates, you know the point. Identifying ideas as “points” is, of course, mostly fine and sometimes very useful (true in most cases for cultural defaults). Precision has value. Placing an idea exactly and correctly in concept space is often very powerful (e.g. this is how you know your bridge won’t fall over). Additionally, it is often comforting to have the stability of a specific place you can rely on finding a thing/idea. It feels good to be certain. Of course, there are also notable drawbacks. The “point” metaphor contributes to people attaching their identity to the specific locations of their ideas/definitions. For example, many people have a very specific point in mind when they talk about politically charged topics. The specific-ness of the point has two negative effects. First, it makes it easy to vilify people who don’t seem to share those exact coordinates. Second, it makes it harder to move the coordinates to a different spot if you have new, better information. In many cases it’s hard to even be open to new evidence when you conceptualize an idea as having a highly specific location. Clouds present a better metaphor for avoiding these issues. Clouds maintain the ability to have high confidence in the location of an idea. Some clouds are thick and dense and take up a small portion of the sky. You can still feel confident in knowing what is or is not inside those clouds. You can feel confident in responding when someone asks you about the shape or location of those clouds at a given moment. With that said, clouds do move and change in response to external forces (i.e. the winds of evidence). Remembering this makes it easier to avoid the pitfall of attaching yourself to a specific shape or location of a cloud. Just like it doesn’t make much sense to have a strong opinion about the exact center of most clouds in the sky, it doesn’t make much sense to feel like you have the best knowledge/location of most ideas in concept-space. Furthermore, just like it doesn’t make much sense to want to protect a cloud from the wind, it doesn’t make much sense to avoid evidence that might change your current beliefs. On top of that, you gain powerful abilities to find common ground with people and tactfully identify places of disagreement. While the cloud metaphor retains the ability to decide, definitively, whether points are inside or outside the cloud, you also gain the ability to say things like “oh, that point is in the cloud, but it’s on the edges and is not really close to what I think of as the densest part of the cloud.” This kind of expression, and other variants, gives you tremendous flexibility where a point metaphor is quite rigid. Ok, so the cloud metaphor has various benefits. But, like all metaphors, it has both advantages and disadvantages as a frame. Sometimes you will probably want the point metaphor. Clearly, any conversation that really does depend on nailing the specifics to a high degree of precision (e.g. building a bridge that doesn’t fall over, math, systems engineering, etc), a point metaphor will be more appropriate. Additionally, some beliefs really are foundational for folks, and trying to transition those ideas to an unstable, amorphous blob that floats across the sky can be quite painful/damaging/unhelpful. But in general, it’s my view that these cases should be the exception and not the rule. Strangely, this doesn’t seem to be the case. Kind of a bummer. Would love to live in a world with more cloud-based thinking.
2023-09-25
- Spending time with retired expats is similar to hanging out in New York. Everybody there has chosen to be there.
2023-09-17
- Thinking about media and durability. If you wanted to make a site that would work for the next 20 years, what would you build it around? Say it just needs to serve static content. Markdown files come to mind as sufficiently stable. Would love to extend the stability and accessibility of markdown files to other media types. Easy to write and deploy a markdown file. But what is the equivalent for creating and deploying audio or video? Is there something like that yet? Certainly, we have standard formats that will last ages (mp3/4 or whatever). But the creation and deployment aspect to a personal blog feels underdeveloped relative to text. “Just use YouTube” is maybe part of the solution but that’s not really the vibe I’m going for. Want something more personal, like a blog. Could use YouTube for hosting but want it to be accessible outside of the mega app. Hmmm.
- Went for a wonderful walk along the river. Enjoyed an episode of Philosophize This about Susan Sontag and the perils of over-analyzing things.
- Did some yoga. Grateful to be alive.
2023-09-16
- Stating it here for posterity. A dating app that connects people with American citizenship to people with EU citizenship. Solves many problems. Hopefully someday it exists.
- A while back, I read this PG essay about the idea that places “whisper” messages to people about what is important. He gives some interesting examples. In New York, the city repeatedly whispers “you should make more money”. I found this example, pretty uncontroversial, since everyone talks about how expensive everything is in nyc (e.g. rent, drinks at bars, dining out, etc). He also mentions Cambridge, MA (home of Harvard, MIT) as a place that repeatedly whispers “you should be smarter.” I haven’t spent much time in those places, but certainly wouldn’t be surprised if those ideas were implicit in much of what happens in that particular college town. And then he mentions Silicon Valley, which he claims whispers “you should be more powerful.” This one was a little harder for me to grasp intuitively, but I think it does ultimately line up with the ideas 1) SV is the land of startups, 2) startups are trying to “change the world” and
3) changing the world requires “power.” Overall, I found the essay interesting and an enjoyable read. I’d recommend it, if just for acquainting yourself with this idea that “places can send subtle messages about what you should consider important.” Recently, and the reason I bring this essay up, is that I had a conversation with a friend about the concept of “travel” and I think PG’s idea about “whispered ideas” presents an interesting lens on the topic of travel. Basically, I realized that you can distinguish “travel” from “tourism” using this “whispered ideas” concept. Specifically, you “travel” to a place when you are familiar enough with it to identify the “whispered messages” that place sends to its inhabitants. Travel is the act of going to a place and listening. Tourism, by contrast, is when you take the implicit messages of where you are from and apply them in a new place. You are not really “listening” in that case, and thus not learning about other ways to live (which is
roughly what people seem to think is the highest ideal of “travel” as a concept). Looking at my own experiences visiting faraway lands, I think this perspective is actually pretty consistent with phases of my life where my travels were more “tourism” focused vs more recent phases that were more “travel” focused. In the past, when traveling, I would rush around to places considered “historically important” or “fun” or whatever, and try to cram as many as possible into the time I had. And those experiences were often quite good! With that said, what was going on there does map pretty cleanly to the idea that I was bringing the implicit messages from my life in the US (e.g. “you should have as many experiences as possible to live a fun, meaningful life”) and applying it in a new place, aka tourism. I contrast this with more recent travels. At some point, I stopped really planning events during my travels and took more of a “let things unfold” strategy. Notably, my trip to Indonesia looked
like this. I think that was maybe my first foray into “listening” to my surroundings and letting that guide my travels. Though, I will note that there were still some elements of “we gotta rush to get here at this time or something bad will happen” which made it less “listening” focused (the main “bad thing” was this concept “it will get dark, and it’s supposed to rain, and we don’t know our way around on these mopeds”, which frankly are pretty legitimate concerns). Anyways, the other place that really stands out as a “travel” experience as opposed to a “tourist” experience, is my time in this village in the south of France. I think I’ve been here long enough, and spent enough time metaphorically “listening” to the rhythms of life, that I have a decent grasp on the “whisperings” of this part of the world. The main one is something like “you should slow down” or “there’s no need to rush.” This is a powerful, and often uncomfortable, message when coming from places like New York
or Silicon Valley, that often send the opposite message. But I think that’s also why it’s so important and special to be here. This is the only place I have in my life where I feel comfortable doing nothing at all. There is no “should” here for me. It’s quite liberating, once you settle into it. And I think that kind of captures a lot of my current perspective on what is valuable about travel at all. There’s a lot of power in a whisper, there’s a lot of value in listening.
- Hmm another extension of the “places whisper messages that are important” is applying this to people. Expanding on that is left as an exercise to the reader.
2023-09-11
- More Yudkowski (Rationality: From AI to Zombies). The structure of the book is that he wrote 1 blog post every day for like 200-something days. Then the posts became popular and someone turned them into a book. Now, I’m reading that book. I read roughly 1 of the blog posts per day. I’m trying to write about them to share what I find interesting and help solidify the concepts in my own mind. Today, Yudkowski talks about Bayes’ Theorem. He seems to have a real soft spot for this mathematical idea. And I can see why. He makes the argument that Bayes’ Theorem forms the most compelling/succinct description of the scientific method. Via Bayes’ Theorem, we get a definition of both what a theory is/does and also what constitutes evidence. Yudkowski’s ideas make sense to me. It’s definitely exciting stuff. Makes me want to go read the books Yudkowski cites as foundational (e.g. E.T. Jaynes’ probability books). Ok, so what’s so great about Bayes’ Theorem? Yudkowski argues that it connects “rational inference” to “physical causality”. I take this to mean that it describes how to think about what you see in the world around you in a way that makes sense. It provides both sets of important guardrails around thinking: how to do it properly and how to not do it improperly. Of course, many of the details have to be figured out by the practitioner. But having an overarching framework for thinking, if it really does make sense/work, would be quite a big deal.
2023-09-10
- Reading more Yudkowski (Rationality: From AI to Zombies). Yesterday, I wrote about some of the problems with using “by definition” as part of an argument. Today’s reading produced some more thoughts on that. Yudkowski notes that one function “by definition” often serves in a conversation/argument is to avoid actually spelling out the structure of an argument. And in avoiding this, a person can “win” the argument without really putting in the work. When reading this, I was reminded of situations where I commonly hear people use the term “by definition”. The most salient one that jumped out to me has to do with discussions about systemic racism. In my experience, it’s fairly common in those discussions (which I have learned to avoid due to their consistently unproductive nature) to hear someone say something like “Group X can’t be racist, by definition.” In these cases, the definition in question usually looks something like “racism is when a group in power oppresses a non-powerful group through policies, systems, and institutions designed to privilege those in power at the expense of those not in power.” Interestingly, this definition does not say who can or can’t be racist. That would instead maybe look something like “racism is when Group A does Thing 1 to Group B.” If that was your definition, I’d agree that Group X can’t be racist. If the definition specified that racism has to do with actions of Group A, it would be reasonable to conclude that Group X does not fit into the definition. But the actual definition used in these conversations doesn’t do this. It does not mention specific groups. It doesn’t make sense to claim from the given definition that some group can or can’t be racist. To get to that conclusion, you would have to add in other, implicit, assertions to complete the argument. But making those implicit jumps explicit would potentially open up the argument to reasonable counters, so it’s not politically convenient to do that. It really is an unfortunate fact of life these days that it is often politically inconvenient to reason well. And this is, I think, why politics is so tiresome to so many people. This kind of thing is so pervasive in these discussions, you might even be tempted to say discussing politics is tiresome “by definition.” Now, I’ll add one more thing here. The folks who use “by definition” in these systemic racism discussions are often highly aggravated by any pushback at all about their reasoning (or lack thereof). So, I’ll add, in an effort to head off drama at the pass, that often the “by definition” folks have pretty compelling things to say without resorting to these rhetorical tricks. In the rare substantive conversation about issues of systemic racism, I think folks that are concerned about the issue have many valuable things to contribute. Unfortunately, and this is true of folks of any political persuasion, the interesting things get lost when folks become entrenched in a given position. When you hear people pull out “by definition,” that’s a good time to stop and reflect on whether trenches are being dug, and whether it might be better to come back to the conversation at a different time.
2023-09-09
- I am reading this book on Rationality, Rationality: From AI to Zombies. It’s written by a guy, Eliezer Yudkowski, who is supposedly the founding person of rationality, and also a prominent “AI will kill everyone” person (which has become a popular discussion topic recently). I find his writing to be very interesting. Here’s something I read that I found to be fun to chew on: many disagreements between people stem from using the same label in different ways. Classically, this looks like a “definitions” problem. Yudkowski uses the example of two people who disagree about the answer to the classic riddle “if a tree falls in a forest, does it make a sound.” Disagreements here usually stem from different meanings associated with the word “sound.” If one person takes “sound” to mean “vibrations in the air,” and another takes sound to mean “auditory experiences in the brain,” they will disagree about whether the falling tree creates a sound. If you ask them to define the word “sound” in a non-circular way, and can get the parties to step back from the ego challenge of winning an argument, the disagreement will often evaporate when the definitions are made clear. The thing to note is that, in this case and many others, there’s not much reason to prefer one definition over the other. In fact, if there was a reason to prefer one over the other, that would likely decrease the odds that an argument would even come up, since it would be easier for both sides to agree on definitions implicitly before the conversation. It’s primarily in areas where multiple definitions are actually worthwhile/interesting/valid that disagreements can form. Of course, by the time an argument starts, people will attach their identity/ego to an outcome and then mostly be unwilling to acknowledge the validity of other definitions. I find that recognizing that this kind of thing is a pattern that has been repeated by people for ages helps break the ego attachment: it’s not just me that does this, we can all just let it go and move on. One more thing to note. When people start using the words “by definition,” it is often a sort of “appeal to authority” argument. It is more often used to “win” an argument than to actually develop a more accurate model of the world. If you find yourself or others pulling out the phrase “by definition,” that’s a good time to stop and check whether the discussion is more about identity/ego questions or actually learning about the supposed question at hand. It’s nice to have a catalogue of these kinds of terms as trigger points to help avoid/head off unproductive/unpleasant discussions.
2023-09-07
- I am feeling so withdrawn from things recently. Seems like very few things really give me joy anymore. It was striking to be at Burning Man and find myself suddenly become so engaged with basic activities. Maybe it’s a sign that my life in general is too easy. Burning Man is sort of an artificially created adverse environment, but it does introduce real struggle in certain ways. Maybe I just need to exercise. Maybe I’m misreading this whole thing and only paying attention in this area when I feel particularly listless. Tough to say. Should probably start with the exercise bit.
- I don’t really know what to tell people about Burning Man. I’m not sure I have great words for what was interesting about it to me. I’m also not particularly confident that what was interesting about it to me will be relatable for other people. Makes me a bit uncomfortable talking about it. I’ll try to give an example of what I mean. Recently, I’ve been feeling pretty lost in life. I’m not interested in participating in many of the things I used to enjoy (though, I will note, I do still have some things that I find exciting/worthwhile). Sometimes, I structure my thinking about these base feelings using metaphors. And a common one here is that, in metaphorical terms, I feel like a man wandering through the desert. I struggle to find nourishment. I struggle to quench my thirst for meaning. I don’t know how I ended up in this desert, and I don’t know which way leads me back to the promised land. My days are spent boiling under the hot sun. My nights are spent shivering in cold emptiness. It’s not great, but it is also just a metaphor. According to most/all measurable physical realities, I am fine. Or maybe even great! But this metaphorical structure really is something I find myself coming back to regularly. Ok, fine. I think this isn’t particularly interesting, as my belief is that most people are using metaphors in this way almost all the time. It’s a key part of how we relate to others and ourselves. What is interesting is having the opportunity to make my real physical circumstances more closely align with the metaphors that structure my thinking. And that was something Burning Man allowed me to do. And it was profound. In a very literal sense, I became a man wandering through the desert for extended periods over the last week. Uh oh. Pulling up to the airport. Anyways, if you find yourself carrying around a metaphor to explain your life, it can be fun and interesting to make your physical reality reflect the metaphorical state of your life. Can be helpful for learning or unlearning things I think. Anyways, gotta go!
2023-07-28
- With ChatGPT, computers can now, pretty reliably, tell us about ourselves, at least on a statistical level. This is a meaningful extension of the pseudo-godlike powers that computers currently have. Take Google. Many people I know, treat Google as the primary, and usually sole, authority on “what is true about the world.” If Google tells them something, they will usually believe it, even to the point of making large decisions in their personal life on the basis of that information. I don’t think this is bad, just noting that Google is functionally a God for many people in many domains. But Google is not really a God of what people believe about themselves. Google doesn’t tell us if we are being an asshole in a conversation, or if we are too nice in some other circumstance, etc. ChatGPT has the ability to cross this chasm of capabilities. You would have to give it sufficient data. But then it would be able to answer that category of questions Google mostly doesn’t tackle: stuff about ourselves, as individuals. Being trained on the output of all people would give a ChatGPT-like system sufficient authoritative weight in personal questions. It really would know, on close to an objective level, who you are as a person. That seems big to me.
2023-07-03
- This tweet/thread is pretty good. I think it gets to the heart of some stuff I struggle with in relationships these days. It’s pretty frequent that someone will either initiate an interaction with me or respond to something I’m doing in a way that doesn’t feel good for me. I say “pretty frequent” but I want to clarify that I don’t think it happens more than for a normal person, or that the occurrences are some sort of particularly painful or intense experience. I do think it’s possible I’m more sensitive to this kind of thing than most people, so in that sense I may notice it more often/more acutely. But I think if I could clearly/accurately communicate what I’m talking about, most people would say “oh yeah, that happens to me pretty regularly too”. But it’s hard to communicate it in exact terms. Maybe that would be a good post for another time (what exactly happens in these situations and why do I respond the way I do). But for now, Im more interested in writing about what, in broad terms, I am feeling. And the hard part is it isn’t some huge thing. It is almost always a subtle feeling of tension, akin to saying a joke and someone sort of half laughing. Or getting off the beat on the dance floor with your dancing partner, if you want to be a bit more metaphorical. In the past, I’d be really disappointed when this kind of thing happens. More recently, I am moving in the direction of distinguishing between self/other in a different way, which results in these kinds of miscommunications/misunderstandings being less personal. This is, I think, an improvement. But it has a tradeoff. Namely, though I’m able to see these points of friction as not personal to me, I end up still feeling pretty alienated/isolated/separate from the other person/people involved. It feels like a numbness to these little pain points. But the numbness isn’t super pleasant, it’s just kind of empty. I’m not sure if there’s a better way to avoid a negative reaction when I feel some tension in an interaction without going numb. To bring it back to a dance metaphor, I’d like to be able to continue dancing with someone after my toe gets accidentally stepped on, but I don’t really know how to do that. I currently keep the dance going, but am pretty dissociated. I’d like to find a way to gracefully continue the dance and have both dancers feel connected.
2023-06-04
- I’ve started reading a new book. Once again, it is about how to be a better communicator. I actually think I am a pretty decent communicator. But I once read that you get rich by doubling down on your winners, so here we are. One more self-help book for the man who can’t stop helping himself. The book is, allegedly, a classic. It’s called Nonviolent Communication. And I see why people like it. It’s very good. Reminds me of Difficult Conversations, another book that really helped me improve my ability to have productive conversations in difficult circumstances. Here are some lessons, so far. 1) The difference between “violent” and “nonviolent” communication is that the latter aims to effect change by getting all parties to develop sufficiently strong relationships that everyone knows about and wants to meet the needs of everyone else. Aka a productive conversation doesn’t have as a goal “make someone change their behavior” but rather “create a bond between the individuals that all parties want to maintain.” Potentially a better word here would be “coercive” vs “noncoercive” communication. 2) Nonviolent communication centers around expressing feelings and needs. 3) Expressing feelings is a bit more complicated than you might expect. It’s easy to start what is really a judgment with the words “I feel” (e.g. I feel like you are being an asshole). Red flags in an “I feel” are when those words are followed by the words “that”, “like”, or another person’s. Statements of feeling are about internal states and it’s important to keep them personal. 4) Keeping feelings statements personal is an important reminder that the meaning someone makes of a situation (tied to how they are feeling about things) is largely in their own control. 5) Expressing needs is important for communicating how other people can help you live your fullest life. Withholding this can make it hard for others to know how to support you. Everyone has needs. Ok, that’s enough of that. Pretty quick read. Already like 60% of the way done.
2023-05-31
- Been really enjoying Mura Masa’s music lately. Great stuff. I just moved my things into a new apartment. Got my nice speakers back. They do a much better job with Mura Masa (and similar artists) vs my lil bluetooth speaker.
2023-05-27
- On the subway again. Time to think. One thing I’ve been thinking about recently is how I can make it hard to reach me in challenging situations. Like in rough patches with family, romantic partners, and close friends. One thing I do, that I think is often helpful and healthy, is that I often use time and distance to try and get a reasonable perspective on the issues. One lesson of getting older is that things can feel like a big deal at one point and feel less significant even a short time later. This is especially true in emotionally charged situations. And in those cases, taking time to ride out the big emotional waves independently of others can be helpfu. Specifically, processing alone can help me avoid the common pitfalls of being unable to meaningfully listen to others and center their own emotional state alongside mine. So, in general, I think this practice is pretty useful/good/healthy. Of course, there are tradeoffs, too. Taking time/distance can disrupt standard expectations from others about how difficult situations will be handled. I can end up contributing to a feeling that “this will never be addressed.” And, to be fair, I do get myself into situations where I don’t know how to bring back up a difficult thing after time has passed. That part, waiting to the point of “never” discussing a thing, is a real risk factor and something that I don’t navigate very well. I think part of the problem is that I get afraid of the perspective other people will bring to the conversation after time has passed. The source of this fear, as far as I can tell, is that I notice, in many cases, that the effect of time/distance for me is not the same as it is for them. For me, taking time/distance is about getting to a place where I can construct for myself a reasonable “what happened” story that involves all people involved being good people, doing their best, and still ending up in a difficult situation. The goal is, essentially, to expand my empathy. Without this empathy, I don’t think any conversation will be worthwhile. The hangup then is that after I spend time doing my best to build empathy for everyone involved, I become ready to share that perspective, and I end up receiving signals that others have not been using the time to become more empathetic. This leaves me feeling like a conversation is not worthwhile, so I end up not participating. And then it really does end up not getting addressed. This leaves me wondering if maybe I should change my approach here. Maybe the way I take time/distance in these situations is counterproductive, or should be changed. One thing that’s been on my mind is that I think I’m actually getting pretty good at identifying in realtime when my empathy for others is high vs low. This means I can probably lean more into taking the lead on having conversations about difficult conversations on shorter timescales, and that doing so is likely to be more successful than my historical/current approach. But it’s still an area of active thinking/questioning for me.
2023-04-29
- I recently read about an interesting psychological experiment. It’s that one where a person is asked which of 3 lines is longest. The twist is that they are part of a group, and everyone else responds with their choice first. And the other respondents deliberately give the wrong answer, and they all give the same answer. Then the subject has a choice of whether to say the truth or go along with the group. And the overwhelming majority of subjects (like 75%) choose to go along with the group. My initial reaction was “yeah, that checks out, I’d probably do the same.” And then today, I realized that I was right, and had been doing this kind of thing for ages. Specifically, I used to say that some beers “taste good.” Of course, this has yet to be the real truth of my tongue when it comes to beer. But in college and after, so many social situations centered around “getting a beer” somewhere. And I think I was rightfully concerned that expressing my real experience in that area would not move me closer to my main goal of hanging out with my friends regularly. And so, I just said what everyone else said and went along to get along. Sometimes experiments and real life end up being pretty similar.
2023-04-14
- Woke up this morning and felt a bit lost. Some days are like that I guess. It’s interesting to get older. One of the most interesting things, so far, is that the things your parents would tell you about being an adult start to make a lot more sense. These days I think about them telling me that it’s important, on some basic level, to enjoy what you do. They were clear that it’s not so much that you need to feel deep passionate love for the activity/hobby/thing you’re doing, but it’s important to find it basically enjoyable. Because at a certain point, if you don’t enjoy it, you’ll realize that you don’t really have time for that thing anymore. You’ll just go do other stuff that seems more fun. In my somewhat younger days, I thought that I would be “tough enough” to endure things I don’t enjoy and that thus I could “do anything.” This is similar to the thinking described in the cliche of the investment banker that hates their job but does it for the money. What happened to me is
that as I got older, I realized there’s no actual prize for being “tough enough.” You mostly just end up with a story about your great endurance of suffering. But that begs the question…do you want this story? What was the point of being “tough enough,” originally? To be able to “do anything,” aka be able to do whatever you want. Well, why not just go do the thing you want? That’ll probably involve some amount of toughness and endurance in any case, and at the end you will at least have spent your time doing something you enjoy. And so, waking up today in a world that I built for myself in large part around being a certain kind of “tough,” I’m feeling a bit lost. Interested in exploring more of what I enjoy, while also a bit scared of changing too many things too fast, and then being even more lost. Kind of a tough spot.
- I recently saw a tweet from John Carmack about programming that resonated with my experience. Carmack wrote about the DRY principle, and how he had increasingly moved towards a programming style/approach that allowed for some amount of duplication in logic. He noted that DRY is often taken too far, resulting in mountains of abstraction that make it harder to understand and modify code vs duplicating logic in a handful of places. What’s cool is that I find myself in the same boat as Carmack here. I used to spend a lot of time figuring out ways to share logic that was ultimately duplicated in only two spots. The problem is that this approach ignores another important programming principle: You Ain’t Gonna Need It (YAGNI). In general, YAGNI is about striving for simplicity. For example, applying YAGNI would lead you to postpone adding extra configuration params to a method when that configuration is not immediately needed (e.g. you anticipate you will need it in the future, just not today). When I was earlier in my career as a programmer, it was hard to see how DRY and YAGNI would come into conflict. But after writing enough code where I tried to maximize DRY, only to introduce abstractions that made it harder to reason about the code later, it has become clear that the abstractions associated with DRY are a kind of overhead that should trigger YAGNI concerns. Now, I figure it is substantially better to repeat logic multiple times before extracting anything, because adding another layer of code is often something that doesn’t pay for itself (aka “you ain’t gonna need it”). It’s really cool to see a person I consider a real expert programmer has arrived at a similar conclusion.
2023-04-11
- I was working with my brother on helping him learn to code. We have been working thorugh an introductory online textbook of sorts that focuses on Python. It’s a good resource. It has many example programs that my brother dutifully rewrites and runs in his editor. During one such practice program, my brother indicated that he felt kind of bad that we were spending time on such simple programs. I reassured him that I had no problem with it. And, in fact, spending time on the simple programs was very useful for both of us. You have to write the programs you are capable of writing. By definition, those are the programs you should write. Sometimes those programs are “hello world,” other times it could be something more complicated. I struggle with remembering that idea, “sometimes you really do need to just write the ‘hello world’ program.” And so it was a good reminder of an important idea. In particular, it’s a helpful reminder as I once again try to learn how to make music with a midi keyboard. I am a true novice, which is humbling and often uncomfortable. In that domain, I really do need to practice writing ‘hello world’ programs. Hopefully, I’ll remember this exchange with my brother next time I find myself pushing to do more than I am ready for.
2023-03-21
- I’ve continued reading about the history of civilization. One thing that stands out is how modern/Western/American culture places a much higher value on a human life than people did in ancient times. Lots of people speculate on the reasons for this. The most compelling reason seems to be economics-based (compared with some sort of advancement in morals). The simple idea is that when people figured out that conquered peoples could be effectively put to work as slaves, the practice of slaughtering the losers of a given battle subsided. That’s all pretty fine and unsurprising really. The surprising piece is just how little people valued human life in the past. Sort of hard to get your head around it. One of those things that stands out to me as hard to grasp what was going on there. The most likely answer is “nothing” was going on there, which is pretty consistently the strangest answer in these cases. Anyways, worth noting there are exceptions, in terms of moral clarity seemingly
being the driving factor behind valuing human life more highly. Cyrus and Alexander the Great seemed to take something of a moral stance against slaughtering their enemies, though it’s a bit muddied by the fact that conquered peoples were expected to pay tributes and all that (aka there was a clear economic incentive). But their level of mercy extended beyond what was common from an economic dollars-and-cents perspective at that time. Of course, legend has it, that this approach was also helpful militarily as it lessened the resistance that Cyrus/Alexander faced from opposing forces. I think that’s a pretty good lesson, actually. When you extend mercy, you actually pretty regularly make things easier on yourself, and this translates whether you are conquering Eurasia or dealing with people at home or work.
journal
- PadDaddy features
- Commute times
- Identify coordinates of each listing
- approximate travel times from running partial gmaps api calls
- TODO
- UI
- section for specifying commute time in minutes to destination that is also specified
- section for specifying commute time in minutes to destination that is also specified
- Finding new listings faster
- want to have a thing that checks for new listings
- how to handle listings that go off market then come back?
- keep checking listings if they went off market within 7 days?
- actually only need to keep checking the “in contract” units…
- keep checking listings if they went off market within 7 days?
- how to handle listings that go off market then come back?
- want to have a thing that checks for new listings
- Emails
- button in UI to generate email to the listing
- nice to have because it takes me one step closer to managing process for people
- nice to have because it takes me one step closer to managing process for people
- button in UI to generate email to the listing
- Rate listings among search results
- How would this work?
- A setting?
- Something we calculate on the fly?
- A background process?
- Do a search
- What if the search returns all the results…? Then it’s gonna take a while to return the deal results?
- Could crash the server…it’s not super highly powered…
- Could crash the server…it’s not super highly powered…
- What if the search returns all the results…? Then it’s gonna take a while to return the deal results?
- It adds the search query to a
- Do a search
- A setting?
- How would this work?
- Explain what’s good about a listing
- UI
- Identify coordinates of each listing
- Commute times
2023-03-12
- I am blown away by the power of developing for the web. Comfing from an Android background of many years and having recently published my first solo app on the App Store, development for the web is orders of magnitude better. The speed at which you can iterate and ship software is unbelievable. One big conclusion for me is that any business project I embark on should almost certainly be web-based. You can learn so much more quickly iterating on a web app vs others.
- I have really enjoyed using Svelte JS as the frontend framework for my new app. React would have also been great, but seemed very JS heavy/focused, and I consider myself a beginner JS person. Svelte ends up have a lot of similar structure to React, but puts a greater emphasis on a dev model that is more naturally intuitive to me. Namely, Svelte and React both have a fundamental concept of “components” but React makes component entirely out of JS and Svelte makes components out of all the standard web primitives (html, css, and js). Thus, Svelte maps more cleanly onto my existing model of how the web works. Basically, Svelte was more backwards compatible with my existing brain vs React, and backwards compatability is a huge deal.
- Currently, the app is available here, but I’ll be shipping to prod this week/weekend, so this url may break in the process of going from dev to prod.
2023-03-05
- It’s another morning in the Army. I’ve got my stale coffee and my styrofoam cup. Added a little cream to soften the experience. I find, in these situations, a little softening of the experience can go a long way. Now, I have a little bit of time to myself. Ostensibly, I’m supposed to be working but there’s not much to do. So, figured I’d get some writing done. I’ve been listening to Will Durant’s first volume about the history of civilization. I’ve just finished the first section. In that section, Durant covers life before history aka life before what we know as civilization. I can’t recommend strongly enough that people read or listen to this section. Reading the entire book is a tall order. The audiobook version of volume 1 is 50 hours long. But, you don’t have to listen to all of it. The first 5 hours or so are exceptional. There are many worthwhile lessons in just that section. One that comes to mind is kind of like that one video where Steve Jobs talks about realizing
everything is made up by someone no smarter than you. I like that video. It’s a nice insight, and Steve Jobs had a knack for pitching ideas in a compelling way. This book takes that same pithy insight but delivers it in a different, and in my view more powerful/profound, medium: through a historian who spent many years looking at empirical/physical evidence and describing the simplest story that fits. It’s one thing to watch a video of a nice insight from a smart, successful guy. It really is different when it comes from someone who labored for years, and looked at all the evidence who could find, and he comes back and says the same thing. Jobs delivers an aspirin, and Durant delivers…penicillin? oxycodone? [insert powerful, wonderful drug of choice here]. My power of metaphor didn’t hold up there, but you get the idea. Both are great, but one really slaps. There’s another big, related lesson that pops out from Durant’s work that I want to add. Like before, I will connect it to a good
YouTube video, maybe my all-time favorite: David Foster Wallace’s commencement address to Kenyon College from 2004. In the recording, Wallace talks about how the perspective you adopt towards the things around you is, at its core, a choice. And there is a singular person responsible for that choice: the individual. It’s a classic piece of wisdom, and profoundly well-delivered. Listening to Durant helps see that same wisdom from a different angle. The key move, of course, is to step outside your default perspective (which is, understandably in many ways, completely self-centered) and recognize that all people have their own default perspective constructed in the same way. Namely, our immediate experiences continuously (and somewhat hopelessly) reinforce that idea that we are the center of the universe. But since this idea of universe-centrality occurs in all of us, it actually unites us. Right, yeah, that’s the classic wisdom, but what does Durant have to do with it? Well, Durant’s
telling of history dramatically extends the collection of people with whom you are united. Wallace, in his speech, cites our unity with dead-eyed SUV drivers that share our roads. Wallace wants you to feel unity with people alive today, people you see at the grocery store or in the park. Durant extends it to include people across the centuries and millenia. And, Durant delivers. In many ways, we really are the same. This is, like Wallace points out, one of those things that is both horribly cliche and also deeply profound. What’s great is when you find something or someone that helps get past that cliche so you can clearly see the profound part. And that’s what Durant does in the first section of The Story of Civilization.
I want to include more location stuff…
- Do you?
- Maybe just go with the projection
- And some advice
- Maybe just go with the projection
2023-03-01
- Last time, I wrote (basically) about how, page-for-page, history books contain more useful wisdom (for me) than religious texts. Where does this kind of thing come up? Of course, the answer is “all the time”. That’s not super helpful, so let’s be specific. One area where the wisdom of history comes up over and over is around basic social norms. Let’s say you live in a culture that discourages wastefulness. Doing something considered “wasteful” is met with scorn/criticism. And this response is nearly universal and somewhat independent from the level of wastefulness. For example, let’s say you went to the grocery store and picked up a package of blueberries, but you didn’t realize you had some blueberries already in the fridge at home that need to be eaten. Naturally, your spouse or roommates would be critical of these events. They would, very reasonably in this framing, characterize what happened as wasteful and, thus, bad. You can probably imagine them saying something like “how could you make such a basic error?!?” with more than a hint of frustration and incredulity in their voice. Sure, standard stuff here. What does History have to do with this? Well, History would remind you that, yes, what you did was reasonably considered wasteful by your peers. And yes, for many millenia, wasteful decisions have, on regular occasion, received the criticism and scorn of the community as a consequence. But that’s not all history would tell you. History would remind you that this response is actually just one of many that people/communities have adopted in these circumstances. The criticism and scorn, in this case, are not, in fact, required for a strong, thriving community. History would be very clear about this idea: those responses are a choice. They may be the default choice in your community, but that doesn’t mean it isn’t still a choice. You could choose differently. For example, maybe wasting ~$3 of blueberries, while never laudable or even neutral, does not rise to the level wastefulness that warrants a response as harsh as an incredulous “how could you be so incompetent?” Instead, maybe the response is less absolute and more relative; the level of scorn rises with the level of wastefulness. But that too, is just a choice. It can be the right one or not depending on what you want. It’s up to you. And that’s what History would want you to remember. You don’t have to do things “just because that’s how it’s always been done” or because “this is how I was raised.” It’s not always easy, but you can challenge the defaults and build the life that you want to have. When you start to think like this, it is surprising how often it pops up. And it’s an empowering reminder to realize that it’s (for the most part) all just choices.
2023-02-27
- Some people turn to religious books for guidance on how to live. And I too sometimes find sacred texts to have good wisdom. And yet, for me, the best books on how to live have historically been history books. In both cases (religious texts + history books), the usefulness of the book is pretty closely related to getting me to step outside whatever perspective I’m holding onto before I start reading. Religious books often result in my “looking to the heavens” for a new perspective on things. I often feel smaller in those cases, like I’m part of something much bigger than me. And that can be nice. History books have a slightly different effect. I’m not looking up. I’m looking down. History books put me on the mountaintop overlooking the decisions and outcomes of past people. To be sure, there is still an element of “feeling small/part of something bigger.” But history is less remote than the realm of Gods. It’s the story of real people. People like me. And the thing is they’ve made
all kinds of choices and faced all kinds of scenarios in the past. There’s a lot of wisdom there. It’s really profound stuff.
Apartment decision- Sunlight
- Toren is south-facing
- Beautiful sunsets
- Beautiful sunsets
- Eagle is north facing
- Sunrises, but we’ll be sleeping
- Sunrises, but we’ll be sleeping
- Toren is south-facing
- Space
- Eagle is somewhat bigger, but not in a super material way
- Eagle is somewhat bigger, but not in a super material way
- Cost
- Toren is slightly cheaper
- Toren is slightly cheaper
- Amenities
- Eagle slightly better but not in a super material way
I’m having a lot of trouble and doing a lot of second-guessing myself.
- Eagle slightly better but not in a super material way
- I am moving forward with 150 Myrtle I guess. What are the concerns?
- That I’m gonna lose the really nice amenities
- Yeah, that’s fair, but you’re gonna gain a bunch of sunlight in the apartment and a tub you like
- Ok but I’m also gonna lose a nice bar area to sit for breakfast
- Yeah but you’re gonna enjoy coffee and stuff in direct sunlight
- What if it’s really hot in the apartment?
- Yeah maybe, but it’s about the sunlight
- That I’m gonna lose the really nice amenities
- Ok so you’re worried about amenities, kitchen counter space, green space in the building
- You can put your standing desk in the kitchen area and use as extra counter when needed
- None of these things are really that big a deal…why the anguish? The anguish is completely out of proportion to the magnitude of difference here.
- Realistically, you could flip a coin and just roll with the outcome. I don’t
- You can put your standing desk in the kitchen area and use as extra counter when needed
- Sunlight
2023-02-23
- My dad sent me an email about the train derailment in East Palestine. He noted that the government found that nobody was at fault in a preliminary report. He concluded with “it looks like this is just one of those things that sometimes happens.” This kind of reasoning agitates the skeptic inside of me. Sure, maybe it is just one of those “acts of God.” Those do absolutely happen. Life is surprising. And yet…it feels strangely convenient to say this disaster was nobody’s fault. In particular, convenient for a group with highly concentrated political power (the railroad company). And on the flip side, it seems like a pretty inconvenient conclusion for those whose power is much more diffuse (townspeople exposed to toxic chemicals). Given what seems like pretty clear financial interests on the part of each party there, and significant disparity in political power that can be brought to bare on the situation, I’m left wondering why I would place total faith in what the government says on this subject. How can I know if this is “nobody’s fault” just like the Iraq war was “nobody’s fault?” And that’s the thing. I can’t. What I can do is withhold judgment either way. Maybe this was an act of God. Maybe it was negligence. There’s probably a lot I don’t know.
2023-02-19
- A thought or two on religious texts. I started reading the Bhagavad Gita a few nights ago. It is considered an important text in Hinduism. Some parts are very good, others are less compelling. One thing that really stands out to me, in a grating way, is the high level of certainty with which the book makes extreme claims. An example is in the very first part of the book. A guy is about to go into battle against his cousin. He asks the god on his team whether it’s actually a bad idea to go to war, because even if he wins, he’ll have to kill his own kin in the process. This is, in my view, actually a very good and deep question. Of course, the god on his team says “nah man, you gotta do it” and gives some pretty uncompelling reasons like “nothing that exists can be made to not exist, so don’t worry so much about slaying your relatives.” That is just…not a good answer to the original guy’s question. I’d expect a god to have something better than this tbh. Of course, these kinds of extreme claims are not unique to this religious text. They pop up in basically all of them, as far as I can tell. And that’s kind of what stood out to me this time around. This style, of making extreme, unsubstantiated claims about “the way things are” is just definitional for the genre. Kind of like how newspapers show you the most sensational things going on, religious texts have certain messages that they are incentivized to send. So, really, it wouldn’t be a religious text if it didn’t make extreme claims about how to live life. Then, I thought about it some more and realized this makes some evolutionary sense too. First, I noted that incorporating uncertainty isn’t really necessary for a god figure. They are supposed to have all the answers, among many other powers. But not only is it not necessary, it’s also probably true that incorporating uncertainty into their pronouncements probably makes that god figure historically less likely to have their adherents carry the texts forward through the ages. Why follow the god who isn’t sure where they’re going? Then, in a sort of evolutionary fitness function way, gods that care about uncertainty are not selected to procreate. Kinda interesting. So, yeah, that part of the book is pretty uncompelling. There are other very nice parts and plenty of great ideas. I am enjoying the poetical parts very much. But the dogma sticks out and, in this case, is not even particularly good.
2023-02-14
- We are at the decision point for the next NYC apartment. Two great options here and here. Lucky to have found them. The decision itself has been quite challenging. It’s been a humbling reminder of the power of cognitive biases even if you are consciously working to mitigate them. In particular, it’s humbling to realize that my abilities at mitigating poor thinking are heavily dependent on the size of the decision in question. For small decisions, I think my mitigation efforts are pretty effective. For large decisions, like where to live for the next year+ of my life with my partner, the storm of poor thinking seems to easily overwhelm the levees I put in place to avoid problems. Bummer. Thankfully, as of now, I feel I am mostly on the other side of it. I’ve made a decision (option 1 above). But, to keep the storm metaphor going, I do feel like the levees didn’t hold and I ended up getting very wet. Writing that makes it seem like I must have made a bad decision. Or maybe it indicates I’m concerned that I’ll have a bad time or something. No, that’s not what I mean. Those two options are similar enough that my partner and I would be happy in either, and comparably happy at that. The “wetness” mentioned is not referring to a dissappointing outcome, it’s referring to a disappointing process. The decision process was really not great. I agonized over little details and differences between the two spots, falling victim to the precise bias (contrast effect) that I had written about just a couple weeks ago. I also was overwhelmed at many times by loss aversion for apartments I never lived in. I worried that I “had to act fast” or else I would lose something important and never get it back. I totally lost sight of the fact that this is a market, and one where new things come and go quickly. Now, I still think identifying and moving on compelling apartments quickly is a good idea. But if you get swooped in the course of following a process you think is good, it doesn’t mean you should dramatically alter the process. And certainly you shouldn’t change the process because of fear without any actual evidence that the fear will play out in reality. Those kinds of things play right into the broker’s hand. And that’s a bummer. But it’s also hard to avoid that, especially when the decision feels big. So, yeah, it looks like we’ll end up in a good new spot. But the path to get there showed that the levees I’ve built aren’t even close to strong enough for a real storm.
2023-02-08
- Wrote a week or two ago about my brother wondering if tech is a good career path. Exciting news. I’m now working with him on a new project. Trying to help tenants understand the state of the nyc real estate market. Planning to work with him an hour a day for the foreseeable future. Taught him about
ls
andcd
andssh
yesterday. So fun :)
2023-02-05
- beauty blinds
2023-02-03
- Did something last night I almost never do. I went out to a bar for beers. Shocking stuff, I know. The impetus here was to see old friends. Some coworkers from Wealthfront, my first job, had organized a gathering for folks who live in NYC. Ended up only being two of us there: Scott and Pal. While it would have been great to get a bigger crowd of ex-WFers, seeing these two homies was awesome. A real reminder that Wealthfront was an exceptional place to start my career. Not only was that crew incredibly skilled at work stuff, but also so much fun to be around. Looking back at my time at Wealthfront, there’s a strong sense of “you don’t know you’re in the good ol days when they are happening” vibe. It was a really special time with very special people. I almost dediced not to go last night because bars/beers are not historically a strong suit for my social life and the event was pretty far from home (40 mins by train). But I’m really glad I went. Great times.
- Also, more reflections on NYC apartment hunting and the way cognitive biases can show up. This time, loss aversion. We found a place we are pretty excited about. It’s very nice. I visited it this past weekend and thought it was something like 80th percentile overall. Elena and I talked about it and given our target move-in date is pretty far out, we decided we didn’t need to jump at this one. But then, things changed. On Tuesday, the broker emailed me asking “what did you think of the place?” Interestingly, this triggered a re-evaluation of the apartment. We decided that while we didn’t need to jump at it aggressively, there is some price point at which we would take this place today. So we deliberated and came up with terms we thought we be compelling. The terms ended up being something like 10% off what the unit was going for. Then we sent them to the broker. An interesting thing happened in the course of coming up with terms. We seemed to become more and more attached to the place the more we thought about it. We started envisioning our lives in this new space and how wonderful it would be. Then, loss aversion showed up as the flip side to these positive dreams. We started having thoughts like “oh no, are the terms we sent going to make it so we lose out on this apartment?” And the thought of losing the apartment became heavily conflated with the thought of losing some beautiful future together. We started to doubt our earlier decision to strike a hard bargain with the broker. We found ourselves wondering “maybe we should have just paid the exorbitant fees…”. Thoughts like this gnawed at us. Let’s pause here and reflect on the craziness of this situation. We are exhibiting strong loss aversion, for an apartment we have never lived in and didn’t feel super strongly about after visiting it. I think this is pretty wild. Now, it’s not surprising that there would be some amount of psychological pendulum swinging in these situations. What’s surprising is the magnitude of the swings, and the short timeframe in which these big swings occur. Fortunately, we managed to step outside the loss aversion. We did this by calling it out by name and being explicit about beliefs that push back on the extremeness of our loss-averse ideas. It’s important in any nyc housing search to remember certain key ideas. Here’s one that is helpful: Your happiness is indeed affected, but is not totally dependent, on what apartment you live in. If you doubt this, you are forgetting large swaths of agency you have to build a life that you find compelling. Another one that’s helpful would be: There are literally millions of apartments in this city. If you have a long enough time horizon for your search, you will almost certainly find another that is at least as compelling as whatever you are looking at now. It’s not trivial to remember these things, particularly in the midst of big, psychological pendulum swings. But it is nice to see that as I get older, I seem to be getting somewhat better at recognizing these things and giving myself the time and space to question extreme positions and refocus my attention on foundationally important beliefs.
2023-02-01
- And so begins another search for housing in New York City. And with it comes the requisite parade of cognitive biases. The one that jumps off the page these days is “the contrast effect”: when people compare two things they tend to enlarge the perceived differences between those things. To make this concrete, this is the cognitive bias that comes into play when you look at one place with 1000 sq ft of space and another with 1010 sq ft of space and wonder “but can I be happy in the smaller apartment?” Of course, some differences really do matter, and that’s the rub of the situation. 400 sq ft vs 1000 sq ft will likely have a big impact on how you live. But assigning appropriate weight to the differences can quickly fall apart as you spend more time analyzing a place. The longer you look, the bigger any given difference seems. In the brief period that Elena and I have been looking at places, I’ve already noticed many times where I find myself wondering “but can I be happy if
I have an apartment that is 80% as good in this dimension as the other?” And I completely forget that I’m happy right now in an apartment that is 40% as good as either in that dimension! It’s pretty jarring to realize “oh wow, I’m assigning at least one order of magnitude more importance to this variable than it should have.” And yet, this happens reliably every time I engage seriously with this problem. Brains, man, they are wild.
I had a great idea. Renters need a site that informs them of the actual “state of the rental market.” This can be provided from public data. This is something people will absolutely pay for. Plus you can layer on top helping with negotiations.
Wielding cognitive biases as a weapon in rent negotiations. Asking rent 5k? I’m putting in 4532. Anchoring. Specific numbers seem more thought out.
Alon Sheetrit message
- Hi Mr. Sheetrit,
- I am writing as a prospective tenant for 222 Riverside Dr. #10D. My girlfriend and I are looking for a new apartment and saw a listing for #10D online. I looked up the owner information for the building and am taking a guess based on LinkedIn information that this is your email.
- I visited the unit on Sunday and wanted to make an offer. Unfortunately, the broker has refused to forward the offer to you because I did not want to pay his fee. So, I’m trying to get it to you myself. I figure we can come to an agreement without the broker that is better for both of us. Frankly, the broker has provided very little value so far, both during and after the tour.
- So, what is the offer? The unit is listed for $4,800 / month online. The broker fee means any tenant will actually pay a net rent of almost $5,300. If I can avoid a large broker fee, I can pay you more per month for the unit. I can offer $5,000 / month for a 12 month lease. I’d like to start the lease on Mar 1, 2023. If possible, I’d also like the lease to include an option to extend for another 6 months at $5,200 / month. I’ve included some info about timelines for me and my girlfriend below, but it’s worth noting that we are likely to vacate after 18-24 months to start a family outside the city.
- For some personal background, the tenants would be myself and my girlfriend. We are both in our early 30s and work in tech. I’m a Software Engineer. I’ve been working at Dropbox for the past 3 years and before that at a startup in San Francisco for 5 years. I also have served in the National Guard for the past 11 years, doing one tour overseas in 2018. My girlfriend is a Product Manager. She’s been a PM for 3 years now. She is starting a new role at a fintech startup called Narmi this month. She’s never done anything in the military, which I think is the right call for her. Personality-wise, we are quiet and respectful people. We are more of a “dinner party with 6 friends” kind of couple vs “massive party with the whole neighborhood” kind of couple. We will be joined in the apartment by a furry friend. Jofi is a very friendly and small dog. He’s a 20 lb poodle mix and loves to make friends and explore Riverside Park. We currently live on the Upper West Side, 108th and Broadway, so
he has lots of experience with the northern part of the park. We’d love to stay in this neighborhood for years, but realistically, we want to start a family in the next 2-ish years, so that’s are timeline for how long we’d like to stay in our next apartment. The city has been great, but other places feel like a better fit for the next phase of our lives. We have parents on Long Island and in Seattle, so those are the most likely next stop after our city adventure comes to a close. We’d love to spend the last couple years in #10D, hopefully this can all work out.
- If all this sounds good to you, I’d be happy to provide you with additional documents substantiating my and my girlfriend’s employment and financial stability along with references for you to check about our past rental history. If that all checks out, we would also be happy to move quickly and sign a lease as soon as today on these terms, if that is of interest to you. If you want to change the terms in whatever way, we are happy to explore alternatives as well.
- Thanks,
- Will Clausen
- 206-271-1510
2023-01-31
- I was reading some Yudkowski. He cited an interesting study about people changing decisions. The bottom line is people change their minds less than they think. I’ll probably butcher the specifics somewhat, but that’s fine for the purpose of this blog. The study involved asking people to make some decision about a future course of action. Then, the participants were asked to assign a probability to the idea that they would change their mind and do something different. The 24 participants, on average, said there was a 33% chance they would change their mind. Thus, if their prediction was right, something like 8 out of 24 would end up doing a different thing when the time came to act on the decision. In reality, only 1 out of 24 actually changed their mind. I’m not sure what actual odds you’d give to that outcome, but it does seem surprising. I’m also not sure if this replicated, so could be total nonsense. But the general idea seems kind of sound: we make a decision and change our
minds much less frequently than we expect. Now, to turn it on myself. I’ve been dating Elena for a while. Recently someone (a close individual) asked me “what probability would you assign that you and Elena end up married?” I answered “70-80%”. On the one hand, I was trying to communicate the idea that I was pretty confident Elena and I will get married, but could still be surprised by something down the road. I figure there’s still more stuff for us to learn about each other, and some of that stuff could make it better for us to not to get married. And there’s a very good chance that we will get married. Ok, so combining it all. If I told Yudkowski about my probability, he’d probably respond with “well, based on how most people communicate confidence in future decisions, you are more like 95% certain. You might be the 1 in 24, but you are probably one of the 23 in this case.” The person I was talking to graciously took my response at face value, so I avoided this rationalist
challenge (and I’m glad I did). But it’s also interesting, and a little disconcerting, to see the parallels between my actions and those of the people in the study. I think if I’m being more honest, I’m mostly managing expectations of others by saying 70-80%. I feel like I’d have a lot more explaining to do if I said I was 95% confident in something like a marriage and then it fell through. 70-80% is socially much safer.
- You know how some people describe “hidden gems” of travel? Like how people will talk about “Bali in the 70s” as some sort of utopian travel experience. Who knows if it was actually better than Bali today, but the concept of a “hidden gem” is at least fun to think about. I want to extend the idea to other domains. Specifically, I want to find the “hidden gems” when it comes to healthcare. Where are the places in the world that offer pretty good care at non-absurd prices. The default answer is to say something like “Europe”. And that’s fine. But I don’t that counts as a “hidden gem”. For more background, I’m increasingly conscious that real estate and healthcare are used as chokeholds on the lives of ordinary people in America. I sort of intellectually understood this before, but am increasingly concerned that I will be trapped by one or both of these systems. To become free, you need to build a system that gets you out from under the boot of both of these industries. Real estate is
somewhat tractable by “buying a house”. But healthcare is imo harder. The best approach I have now is to get citizenship somewhere that has solid, govt run care. Looking to the EU is an obvious thing to do (and I am lucky to have stumbled into having a partner that has EU citizenship). But I wonder if there are places elsewhere, like some Caribbean island, that would serve as a good alternative as well. Maybe there’s a place with good quality care that will sell you citizenship for like 50k. Who knows. Would be an interesting thing to look into. I bet the FIRE folks have a lot of thoughts here.
journal
- this is just a dinner
- Be prepared to talk about difficult things
- The facts as I recall them
- Things were fine in the apartment
- Elena didn’t feel super welcome, having a dog, some neutral vibes
- I decided it wasn’t worth working on
- I decided it wasn’t worth working on
- was already too much to go back and forth. I was happier in the uptown apartment
- we can work on that later
- Elena didn’t feel super welcome, having a dog, some neutral vibes
- I wanted to move out, was important to me to take the next step in my relationship
- then I did
- Kept paying rent bc you didn’t have a job and that would impact your apt search
- Took the roomie search on myself
- found pete
- now we are here
- Things were fine in the apartment
- well that went fine. Not sure what I had to worry about. Which makes sense. I don’t have much of a model of what Lucas would be upset about. He mentioned birthday and unplanned move out scar tissue. But those things seem like we’ve already talked about them and are fine. Pretty frustrating tbh. Not sure what more I could do in the move out. Didn’t seem to require almost any effort on his part. And the bday is…whatever.
2023-01-30
- Trying to publish consistently here. Mostly failing lol.
- I continue to find great joy in my daily process of coffee preparation. There is something meditative about it. Feels like I strike a good balance between being engaged and letting a process flow naturally. Some parts are highly mechanical. Others feel more open-ended, things I get to exercise control over and learn from. And then the payoff is very nice too. This is the habit that I complete most consistently and that most consistently brings joy.
2023-01-29
- Recently on Twitter, I’ve seen this meme. It goes something like “we are about to learn that a lot of people’s personalities come from the existence of zero interest rates.” Fun concept. Links two things that seem kind of far apart. But intuitively the link makes sense. In a sort of similar vein, Ive been reading this book about shopping containers. I think you could make a similar statement about the impact of shipping containers. The shipping container really was an economic revolution. And it’s not hard to trace its impact to people’s identities today. But few people make this connection naturally or reach for “shipping container” when looking at ideas that changed the world in the last 100 years. The book is called “The Box” and it’s pretty solid.
2023-01-25
- I want to get back into building things with code. I’ve been in such a malaise over the past few weeks. It’s been hard to write posts here because I don’t have confidence that I can do so safely. The things I would want to share are uncomfortable to transmit in this medium. In these cases, I find it can be interesting to go one meta-level up: talk about why it’s difficult to talk about the difficult thing. This is a common/basic mental jiu-jitsu move that I employ regularly in therapy sessions. So, what’s so challenging here? One thing is that writing these things down feels more permanent, like I’m planting a flag on how I feel, and it would be hard to change where that flag is planted or remove it altogether. It feels like I am bound by what I write. The challenge is that it feels like the ground is moving under me here, so planting a flag anywhere feels like a bad idea. Flags do better on stable ground, if we want to keep leaning into the flag metaphor. The other thing is just
that the subject feels more private and intimate compared with what I normally share in this medium. Even if I did feel like my thinking was stable here, there are still boundaries around what belongs in this medium that I’d have to find a way to cross when talking about this stuff. And I don’t yet have a way forward there. This is all very metaphorical. In somewhat more concrete terms, the subject is about navigating challenges in intimate relationships. I’m not yet at the point where I can “think out loud” on this topic in this space. So, yeah, it is what it is.
- Sitting at a coffee shop rn. It’s raining. Got a nice cappuccino with me while I knock out some flashcards. A card about cognitive biases came up. Specifically, it gave a definition of the availability cascade and asked me to define it. I had forgotten the name, so I marked it as a miss. But the definition stood out to me. It’s an important concept. It’s the idea that beliefs can be self-reinforcing simply by being repeated enough times. Confidence in an idea is correlated with how many times you are exposed to it. Note, it’s not a matter of the belief being actually true or not, though a repeated idea is hopefully correlated with truth (and in a healthy society/information environment that is a generally reasonable expectation). So, repetition alone is enough to make someone believe something more strongly. Lots to digest there. The first thing that comes to mind is the way people talk about the current recession. Now, I want to start by noting that whether this recession is “real” or not is almost not relevant at this point. It’s an idea that has been repeated so many times that it is collectively true, whether or not a perfect view of the economic data would support it. That’s something to pay attention to and it has real world consequences. For example, my brother, based on recent, “recession”-related news about layoffs in the tech industry, asked whether or not tech is still a good career option for him to look at. I can’t help but think that the repetition element is a big one here. The idea of “we are in a recession” has been repeated many more times, and more recently, than other ideas related to his question. Another idea that seems to have a lot of evidential weight but is repeated less often would be “the computer revolution is only beginning, computers will be increasingly important over the next handful of decades.” The fact that this question exists for my brother is, in no small part, attributable to the disparity in repetition of these two ideas in his information environment. And this has real, significant repurcussions. We were talking about a potentially multi-decade decision. Naturally, I stepped in to repeat the bigger/more important truth about computers being a big deal and a bigger deal than the current economic situation. I reassured him that there are still plenty of great career options for him in tech, and that the current recession is not a big deal over the course of a multi-decade career. Unfortunately, I’m just one voice, and my repetition powers are thus limited. Fingers crossed I got through. Ok, changing gears. This bias also made me think about the importance of…flashcards. Anki is, in one framing, an attempt to take advantage of this bias and use it to develop a view of the world that is more highly correlated with reality. Nicely recursive experience there: the system that exploits this idea broadly asks me repeatedly to identify what exactly is going on here. Seeing the recursion at play like this always gives me shivers. Life is crazy. Computers are crazy.
2022-12-25
- I was reading an essay by David Foster Wallace about David Lynch and his movies. It’s interesting because I am not really a movie buff. I’ve never seen a Lynch movie. And yet, I come away from my reading with a real sense of legibility around the greatness/importance of Lynch as a filmmaker. I feel I understand both important things about Lynch and important things about film analysis that I did not understand before. And yet, I still have not seen any of David Lynch’s movies. I don’t really understand anything about them. I have no idea what DFW is really talking about, on an object level. Ok, fine. The most interesting thing here, to me, is the extent to which I ascribe value to the feeling of something that was previously illegible becoming coherently legible, even in the absence of having experienced the thing in question. I cannot assess DFWs analysis for quality, in a serious sense, and yet, after reading it, I feel it is natural to ascribe it very high quality. Why? It made me feel like I understood something opaque and important. Essentially, DFWs writing seduced me into buying whatever he was selling, even though I have no idea what he is really selling. And being seduced is pretty fun and cool. Who cares whether it’s about movies or cars or physics or the character of the human experience. It’s fun to let yourself be seduced, it’s fun to find something so compelling you feel you can’t stop yourself from being seduced by it. This is true even if you have no rational idea what’s going on or if you should care. And, as something of an extension of this idea, it’s interesting to explore the standards you set for being seduced, particularly in areas where you have no a prori depth of knowledge/interest.
2022-11-30
- I’m listening to a good book about time management. It’s called Four Thousand Weeks: Time Management for Mortals The book comes from my friend Rob. I’ll share one thing that’s cool about my setup with Rob before talking more about the book. Rob and I are in the same “Amazon family” so we share all our audiobooks with each other. So this one just showed up at the top of my library one day and I didn’t have to buy it myself! I’d been meaning to check it out and finally found the time this week (so to speak). And it’s pretty good! These days, I’m a little self conscious about picking up “yet another productivity book.” I’m coming to realize that a focus on “productivity” is often a cover for refusing to seriously engage with the idea that there are things in life that would be fun/cool/meaningful to do that I will not do. Fortunately, this is exactly what this book talks about. And it does a good job. Some idea highlights
- There’s a story in the book about Warren Buffett. I think it’s a somewhat well-known story, but I had forgotten some important details. A rando once asked Buffett for advice: “hey Warren, how do I become a successful person like you?” Buffett paused, looked down pensively, stroked his beard, took 3 deep breaths, and then said: “write down the top 25 most important things you want to accomplish in your life. Order them from most important to least important. Look at the top 5 things. Those are the things that should receive all of your attention. Now look at the remaining 20 things. Those are the things you need to not only set aside, but you need to actively build walls to keep them from distracting you. Those 20 things are important enough to look attractive as things to focus on, but they aren’t at the top of the list.” I enjoy these anecdotes, even if they are apocryphal. I had heard this one before but had forgotten the part where you need to not only set aside the lesser
important things but you need to actively defend against them due to their seductiveness.
- There’s a story in the book about Warren Buffett. I think it’s a somewhat well-known story, but I had forgotten some important details. A rando once asked Buffett for advice: “hey Warren, how do I become a successful person like you?” Buffett paused, looked down pensively, stroked his beard, took 3 deep breaths, and then said: “write down the top 25 most important things you want to accomplish in your life. Order them from most important to least important. Look at the top 5 things. Those are the things that should receive all of your attention. Now look at the remaining 20 things. Those are the things you need to not only set aside, but you need to actively build walls to keep them from distracting you. Those 20 things are important enough to look attractive as things to focus on, but they aren’t at the top of the list.” I enjoy these anecdotes, even if they are apocryphal. I had heard this one before but had forgotten the part where you need to not only set aside the lesser
important things but you need to actively defend against them due to their seductiveness.
- Uh oh! I’m out of time for more writing! I liked the stuff about constraints being the thing that makes life’s choices meaningful in the first place! Doing everything would remove a lot of the significance of the things we choose to do with the limited time we have! Exclamation points due to urgency!
2022-11-17
- Been reading an interesting book about marriage. Given that a number of my friends are either already engaged or are seemingly close to that point, I’m surprised that there isn’t more discussion of books like these. There’s a lot of talk about how the marriage decision is a really big one. There’s comparatively less talk about how to prepare for that decision. Personally, it seems like there’s probably at least one good, relevant book on the subject. Probably good to give it a solid read. One that I’ve found that seems to be solid is John Gottman’s The Seven Principles for Making Marriage Work. The title reads like a marketing scam: it’s always “7” of something, rarely 6 or 8. But I’ve found the contents to actually be good! So far, the book has introduced helpful language/frameworks about conflicts in marriage (identifies 4 types of conflict that pop up in a progression that often leads to divorce), provided a workable theory for the foundation of a happy marriage (you have to be actually good friends with your spouse and work to maintain it), and basic tests you can do to evaluate the health of your relationship. These are pretty useful things. I often end up seeing myself, in various ways, being described in the pages of this book. And it’s very nice to have this experience before making a major decision. It’s also pretty relevant for intimate relationships of any kind, deep friendships, family relationships, etc. Highly recommend picking this one up or another in the category. Books are cheaper than divorce!
2022-11-03
- The Elon takeover of Twitter has been pretty interesting, as a window into how people make sense of things going on around them. The big thing seems to be that people see around them the things they want to see. And they are, often, completely blind to things that would challenge their worldview. The result is that they construct their own reality, in many ways. To make it more concrete, the Elonification of Twitter has resulted in many strong opinions being shared on Twitter. You’ll see some people claiming that Elon is a genius. They’ll point out that charging power users for services they get value from is a good business idea. They’ll remark on how he is bringing a rapid pace of change to an organization known for its stability/long product cycles (some would say the product cycle is on the order of years). On the other hand, people will point out that Elon’s moves actually show that he is totally clueless. A rich guy who is incredibly out of touch. He bought a company
for ~$40bn when the market would have valued it at ~$10bn. He is posting internal company chat logs on Twitter to humiliate and attack the previous owners/employees who enforced the contract that he signed. He’s negotiating product pricing changes in public Tweet exchanges with Stephen King. They might note that if Twitter itself is a clown car that fell into a gold mine, Musk is the perfect “clown born in a gold mine” to drive it. Whew, ok. What do we make of this? Well, as usual with particularly intense opinions (though, not always ofc), it’s fairly easy to point out that the people expressing the opinion are exhibiting motivated reasoning. The world looks this way to them because they want it to look this way. Seeing all of these opinions in the same timeline of Tweets is actually helpful in noticing that each of the opinions has some elements of truth to it, but misses other important information. The true parts gives the opinion some sense of legitimacy, and the strident
language makes the ideas feel compelling. But the fact that so many of the views are contradictory highlights that these opinions fail to center other important information. And the choice about what information is excluded seems to neatly line up with which information challenges vs preserves a particular overarching narrative/worldview. The tweets are ultimately subservient to the reality that the tweeter wants to construct. With this in mind, we can expand outwards from this particular situation. We can notice the same phenomena with SJW types, who see systemic racism everywhere they look, or anti-semites, who see nefarious jewish stringpulling all around them. And we can expand it to include ourselves. When someone cuts us off in traffic, they must be an asshole, and not, say, a frantic parent trying to get their child to the hospital. When we fall in love, we see in our partner the perfect fit for us, someone who truly understands our every need and desire. We don’t see the story
of love that we hold onto that requires “perfect fits” for us to feel excited. This gets at, for me, what is really beautiful and profound about Twitter. It shows us a window for looking at other people, which ends up also being a window for looking at ourselves.
Weather report
- next 24, minor impacts to training:
- Low 51 from night til 9am, starts to warm, gets to a High of 67
- Partly cloudy
- 0% chance precipitation
- Wind from the south ~10mph. Could impact M4 quals for longer distance targets/unsupported positions
- Light conditions
- BMNT 0639
- Sunrise 0743
- Sunset 1751
- EENT 1855
- BMNT 0639
- Low 51 from night til 9am, starts to warm, gets to a High of 67
- next 48:
- similar to Fri
- low 60, high 74 in the afternoon
- partly cloudy
- 5% chance of rain, rain more expected Sat night
NYC Marathon
- similar to Fri
- Main disruption will be associated with F Co during Soldiers travel back home post release. Verrazano Bridge will be closed until 4pm. Main body will likely be arriving back at home station around that time, with some admin tasks to knock out. But expect traffic if we release soldiers around 17/1800.
- Race runs north along the east side of manhattan
- !Pasted image 20221103171100.png
- Gets as high as 138th
- Harlem Armory is quite close, at 142nd and 5th ave
- Road closures will be nearby, likely to have minor impact on bus/tac vic transportation
- Majority of route is unaffected. Only last 5 minutes of travel time may need to be updated
- Majority of route is unaffected. Only last 5 minutes of travel time may need to be updated
- Road closures IVO Harlem armory in effect from 8:00am to 6:00pm
- Mitigation is that we are coming from the North, race is coming up from the South. And we are exiting FDR prior to any actual closures. Also, if we are arriving later in the day, maybe traffic/road closures will be less extreme.
- A contingency in cases where Harlem River Drive is congested would be to have buses and TAC vics exit earlier and travel down St. Nicholas Dr to 142, then head east to the Armory
- Travel for Fox Co should not be affected. Planned route would not go through Manhattan in any case. Stays sufficiently far from the marathon.
Notes
- Google File System
- One of the big things that this system seems to do well is managing complexity. Most things attempt to be simple, do one job well, the job that is needed, and nothing else. Master nodes don’t keep track of too much state. They don’t have a complicated persistence system. Lots of data is kept in memory. Keeping things simple allows for the system to end up doing a lot of stuff without becoming overly complex. The pieces compose themselves together nicely.
- The system is built from components that are expected to fail. Common design assumption in distributed systems.
- Access patterns/system requirements seem to be pretty well understood at the outset of the design for GFS (e.g. overall disk space needed, average file size, how clients access files, etc.)
- GFS is optimized for workloads that involve appending data to large files and reading that data sequentially. Other operations (e.g. random reads) are possible, but not expected to perform well.
- Throughput is more important than latency as a metric
- GFS is built to support data processing jobs, not online transaction processing
- Chunk sizes in GFS are 64MB, much larger than typical page in file system. Linux page is 4KB, for example.
- Interesting that GFS mapping from file namespace to chunk handle reveals that the tree metaphor of file spaces is just an abstraction. The data is not stored in some sort of tree. It’s just chunks distributed variously (hopefully to ensure load balancing). The data is flat. The filesystem makes it look stacked.
- How does GFS only store file/chunk namespaces in memory? Doesn’t this risk important data loss in case of crash?
- GFS doesn’t only store file/chunk namespace metadata in memory. It persists this info in a log on disk that is replicated.
- GFS doesn’t only store file/chunk namespace metadata in memory. It persists this info in a log on disk that is replicated.
- When is chunk data rebalanced after a chunkserver failure?
- When the failure is detected after a certain number of missed heartbeats
- One of the big things that this system seems to do well is managing complexity. Most things attempt to be simple, do one job well, the job that is needed, and nothing else. Master nodes don’t keep track of too much state. They don’t have a complicated persistence system. Lots of data is kept in memory. Keeping things simple allows for the system to end up doing a lot of stuff without becoming overly complex. The pieces compose themselves together nicely.
2022-11-02
- A dispatch from the army. It’s like that meme where the GTA guy goes “aw shit, here were go again”. I wish I could elaborate more. But I’ll take it into the meta because the stuff right in front of me doesn’t feel accessible to write/talk about. So, the meta: it’s hard for me to be anything resembling my true self when I’m here. My identity, in ways big and small, is subsumed by what I imagine I am “supposed” to be. Of course, this is by design. And it turns out, it sucks! Well, to be specific it sucks at first. It’s like when you gotta jump into a kinda chilly lake. The immersion process is no fun. And that gets at the challenge of doing this thing part time: I never get past the immersion phase. I do this for a few days, then O put on a uniform, forget my old identity, etc etc
2022-11-01
- Some things are hard to say. I’ve come to realize that, for me, one of those things is “I am hurt.” I feel like I used to be able to say this. I don’t recall having trouble saying this to my mother when I was a young child. At some point, it became hard. There are probably many reasons why it is hard for me now. Some of those reasons are likely about me. Some of those reasons are likely about the world around me. But the important thing to me, right now, is to simply note that this is a hard thing for me to say to people. A first step in remembering now what I used to know then. Maybe this could be a good flashcard.
2022-10-26
- The name of the barista in my favorite coffee shop is Wheeler
- Been reading a book about romanticism, marriage, modern love. I find it quite good and useful. Gives me a lot of stuff to think about in romantic relationships ofc and also generally in long-term, close relationships. One thing that stood out from yesterday’s reading was about the concepts of recognition and prestige. The book contains both a narrative about a fictional couple that represents a standard path of sorts for a modern romance and also commentary about various situations the couple finds themselves in. The narrative piece is pretty standard. A man and a woman fall in love, get married, and start a family. The division of household labor is something they try to split evenly, but they still run into contentious situations. This brings me to the example from last night’s read. The two are getting ready for bed when the wife asks the husband to take on the chore of ironing a duvet cover. The husband responds by calmly saying he thinks it is her responsibility. The wife is exhausted and exasperated that her partner seems to be unwilling to help her when she’s at the end of her rope. The husband is also exhausted and thinks he does pull his weight, based on their existing agreements about chore splitting, and reminds himself that he makes most of the money for the family. Ok, fine. Here’s the thing I like. This example has happened for many, many generations. It will almost certainly happen to me and my friends in our long-term partnerships. This is especially true if I/we don’t spend any time trying to understand and address the underlying cause. So what’s going on here and how do we avoid it? The thing that stands out here is that neither of the people involved expressed any recognition or gratitude for the contributions of the other (and they haven’t been doing that generally). They adopt a common perspective that I see across close relationships broadly: that the contributions of their partner are just them “doing their job,” so they don’t deserve special recognition or praise. Recognition and praise are held back until something important is achieved. To me, that perspective is really limited and sad. What it misses is that adulthood is really all about setting your own definitions of success. The married couple here have adopted definitions of success in their own family that result in neither of them feeling particularly special or valued. Wild choice. This results in them feeling that the work they do is banal and meaningless. Neither parent feels like they are doing prestigious or important work. What a shame. Also, what a misread of history. When it comes to the history of civilization, the broadest and most accurate read would reveal that the only way anything meaningful or good has ever been accomplished by anyone is based precisely on the work that these two people do in their home! There would be no trophies at all, in any domain, without the contributions they each make to building a family. So, where does that leave us? Recognition and prestige are important. It is important to decide consciously, and explicitly, with your partner what you want in this area. Do not cede this territory to the broader culture. Own it yourself and together. Accepting standard cultural frames in this area too reliably leads to resentment, frustration, depression, etc. There are better alternatives. We can choose to recognize and cherish the contributions of friends and family. Even and especially the little things they do. It’s also interesting is to look at how we got to this kind of framing in the first place. There’s a lot to add in that area. But this is already pretty long so I’ll save it for another time. I’ve been sitting in this coffee shop typing on my phone for like 40 minutes and I need to go to work.
2022-10-17
- Damn, subway’s cold today
2022-10-16
- Went to a play yesterday. It had won a Pulitzer Prize. Expectations were high. And then, the play didn’t make much sense to me. But I went with Laura. And that was fun. We went to a bar after. We both ordered drinks we don’t enjoy (beer). And then we talked about the play, and life, and what we hope for, and what we fear. It was wonderful.
- I get the sense that my friends and family feel very “in the dark” about my relationship with my girlfriend. This is mostly intentional. And yet, it’s probably good to at least communicate the basics. I love Elena. We have amazing experiences together. Experiences that make me believe in a long, wonderful future together. It’s going great, and I’m very happy. I think that’s about as much as people really need to know about this. Of course, there is much more to tell. On top of that, I believe sharing is important and good in the right context. It’s just that the right context is pretty narrow for me these days. I think it’s helpful to go into some of reasoning as to why I hold back on sharing more/have limited sharing to pretty specific contexts. Especially, since I used to be much more open about sharing a thing when I felt strongly about it. It really has changed for me. So, why don’t I wax poetic about this great love of mine in casual social situations? The short
answer is: I am very concerned about peer pressure. My friends want me to be happy. I’ve noticed that when I tell my friends about big things I’m excited about, they respond with excitement too. I love this about my friends. I’ve also noticed that my friends’ past excitement becomes a stumbling block, for me, around making changes in my life when my situation changes. It can feel like I’m going to disappoint people and face annoying social repercussions for making changes that are ultimately good for me and others. That’s hard. Furthermore, my friends are human. Sometimes they encourage things for me on a basis of maintaining excitement for something else going on in their life. Often they will not be aware they are projecting like this. The same goes for me. This is a very challenging thing to untangle. Ok, so it’s hard. And I’m now old enough to take seriously the idea that lots of things change, even big important things. Combine all of this and here we are. I’m not currently
comfortable with the idea of accepting implicit, well-intentioned pressure from friends in this area. Of course, I do want to share and wish I had people in my corner to talk to. I recognize I don’t have a great solution for navigating this situation with my friends. The best I can do now is to be more careful about the context in which I will engage with these ideas with others. So, I’m much more muted than before. Maybe that will change in the future. Time will tell. I do enjoy and value the more private conversations I have with friends about the challenges and nuances of big life decisions. There really is an appropriate time and place to dig into this stuff. But it’s usually not a casual affair for me anymore. My friends have both real influence and real biases, and I’m not sure they or I fully understand the extent of those things. So, I tread carefully. Topics like this (e.g. marriage) are things I’d love to talk about at a 1:1 dinner with a nice bottle of wine, or at 1am just
the two of us. Deep communion is the vibe. Not something to bring up in the course of pleasant chit-chat anymore.
poetry
- Some people never really go through
- A loss of faith
- which seems like it would be
2022-10-15
- My Dad recently emailed me on the topic of military service, specifically to comment on whether it is something to recommend to young people. He shared some reasons that his views had evolved over time. He asked me what I thought. This was my response. I publish it here as a record of the ongoing evolution of my thinking about my decision 10+ years ago to join the Army.
- START MESSAGE
- The reasons you bring up for being skeptical that the Army is right for most people seem like good ones to me. I don’t have much to add to them. We don’t seem to care for veterans in a way that reflects well on our society. I would agree that much of the “action” taken in that area seems perfunctory. Our culture does seem obsessed with other things. I suppose we can hold onto some hope that these unfortunate obsessions are only reflective of the loudest parts of our society, and not the values of most Americans. But who knows anymore. On the flip side of all this, I do think that we should continue to be wary of too much lionization of the military. The US government does not always do the right thing. Eisenhower seems to have had something approaching the right level of skepticism about how citizens should think about the military. Seems like the goal is to love the soldier and have some distrust of the establishment, which is my understanding of Ike’s views.
- One thing that’s interesting though, is that my reasons for whether I, or someone else, should be encouraged/discouraged from joining the military is very different from what has been brought up here. I would label what you’ve identified as “strategic”-level concerns. But as someone who was inside this institution, the “tactical” level is what immediately comes to mind when I think about what is a good/productive/healthy decision here. And this “tactical” level gets pretty murky, as it always somehow manages to do.
- Ultimately, I don’t totally know what I would do if I had to go back and make the decision to join ROTC again. Part of me thinks my decision there reflects something good and important. I recall feeling a strong sense of responsibility to my family around contributing to the cost of my education. I recall feeling a strong sense of duty to my community to give back and serve, thanks to having received so many wonderful experiences growing up. Those still strike me as good impulses and values. Living those values still seems like a good thing to try to do. This is true even in the broader context of a society (or maybe just our particular social stratum) that does not seem to place a high emphasis on these same values. Sometimes I have even run into people in our (mostly) liberal elite circles who openly disdain such things as too costly (e.g. would “hold them back” in their career) or as being beneath them (this is rare, but has happened). But the lack of alignment with others is
not, generally, a good reason to change our own values. As that one guy said, “in matters of style, swim with the current. In matters of principle, stand fast.” After almost 30 years here, that does seem like the right idea. I’m glad that I tried to live that idea, even if it has been challenging in many ways.
- Of course, there’s a flip side to feeling good about this decision. At this point, the biggest thorn in my side about the decision is that I committed myself to this project for such a long time. I failed to sufficiently anticipate the extent to which I would change and grow as a person over the course of these last 10+ years. I do consider this to be an error in judgment. I think I was intellectually capable of recognizing that risk at the time (or having it explained to me). I was simply ignorant. Of course, this is understandable. It’s not easy to get a lot of perspective on this kind of issue at age 18. I don’t recall many peers having a particularly well-informed view of this situation at that time. It’s a tough nut to crack, for sure. And, I do wish I had taken this risk more seriously. Not that I really could have done much about it. The Army did not then and does not today offer customized contracts to volunteers. But I wish I had slowed down and made more of an effort to
think through the time aspect of the decision more seriously and get guidance from people with a better perspective.
- Now, there are also other things I think were mistakes in my decisions around ROTC/the Army. I wish I had taken more seriously the importance of community within the Army when choosing my job. I think it was probably a mistake to join the Infantry. Like many mistakes, it was a well-intentioned decision. It was borne of a sincere desire to uphold the Golden Rule: I appreciated others doing the hard work of being an Infantryman, and I did not want to make excuses for myself to take what is conventionally considered a “cushier”/“easier” job. This is a nice and important sentiment. I continue to try and live up to the Golden Rule. And yet, there is more nuance to the situation. By taking the Golden Rule so seriously (and somewhat masochistically), I failed to recognize the extent to which I was effectively isolating myself within this organization. I have never come across a person in the Infantry that espoused a similar reason for choosing this particular job. The vast majority join
the Infantry out of a sincere and extreme sense of patriotism and a (generally mistaken) desire for glory. This doesn’t make them bad people. But it is not really the same “why” that I had. Unfortunately, this has made it hard to form strong social connections in the Army. I have a few solid Army friends, and have met many solid people, but there is nobody that I consider particularly close to me as a result of my service. This has been very hard. And choosing to be an Infantryman likely contributed significantly to the challenge here. Had I chosen another role, I think this situation could have been different. I now have a greater appreciation for the importance of finding the right tribe. And, I think it was a mistake to not recognize that importance earlier and take a broader view about how I could contribute to this institution. I think it would have been better for me and the Army if I had leaned into being a computer person in this sphere, or maybe radios.
- But, you live and learn. I think these are good lessons. I sometimes wish the price had not been so high to acquire them. You know, why can’t life be easy? On the other hand, maybe the high price was helpful for really ensuring I learned the lesson deeply. And maybe being one of the few people in my peer group to have publicly paid a fairly high price in service of our community will contribute to something important down the line. Tough to say. I’ve found I can kind of make whatever I want out of it, when I get to this point in my thinking. It all really does seem to be a “choose your own adventure” story at the core.
- Love, Wm
- END MESSAGE
- One thing I would add here as a postscript. It was challenging to share this with my father in a direct message, so I’ll post it on a public blog readable by strangers. The above description of mistakes may seem somewhat level-headed, circumspect, balanced. This is intentional, it reflects how I want to feel about the experience. It is also a byproduct of time and distance from situations that were actually extremely painful. The social isolation I described above is absolutely not something I would recommend as a good experience for others. It was, in many instances and for extended periods of time, brutal. I think it’s worth noting that much more cumulative time for me has been spent in a state of pain about the above mistakes than has yet to be spent in a state of detached rationality or whistful reminiscence. The above is thus something of a veneer that I project to the world to avoid a situation where people feel the need to directly respond to fairly traumatic experiences that I’ve had. Since this blog has no comment section and is an async comms channel, I have less of a problem being somewhat more open about it.
2022-10-14
- Recently been thinking about the concept of “heartbeats” in relationships. It seems like, for me, intimate relationships have historically involved a consistent, “heartbeat” of some sort of social interaction. Growing up, you’d have many things you could label as heartbeats. With family, the first one that comes to mind is family dinner. With friends, it would be something like time spent playing sports together. As I got older, the structure of life changed, and some relationships had heartbeats that evolved with that changing structure and others have not. For my family, we have a weekly phone call home. For friends, it usually revolves around texts or phone calls or gathering for some shared interest. Work relationships have a professional heartbeat in the form of meetings. One thing that is interesting is looking at how close relationships ebb/flow and thinking about a correlation with the existence or lack thereof of a heartbeat. This isn’t a hardcore stats exercise, it’s
anecdotal, but the correlation seems high. This makes me wonder if we could posit a “heartbeat theory” of intimate relationships: all serious relationships need some sort of heartbeat. Interesting to think through counter examples and implications.
- open questions
- do all intimate relationships/close groups have some sort of social heartbeat?
- what are good ways to navigate changing heartbeats?
- open questions
- Reading an interesting book from Venkatesh Rao again. Well, it’s really a series of blogs. The first one talks about the relationship between group sizes and creative output. The big idea is that a group of 12 similarly skilled individuals will lead to a creative environment that maximizes the potential of each member. Interesting to think about which creative endeavors I have and what groups support them in this context. Definitely don’t achieve anything close to 12 outside of a work context. Also interesting that I’m not sure what the best tools would be to coordinate building and maintaining such a group online. Discord seems popular now. Maybe Twitter. Blogs seem like the default solution 20 years ago, but woefully underpowered now.
2022-10-07
- I recently went to a small town in upstate New York. I was there to see a play. The play was written by a close friend, and it was the first time one of her plays was being professionally staged. It was not an easy thing to attend. It was a 3-hour drive each way. The drive up was after a long day of work. It was totally dark the entire way there. But the play was excellent. And spending time with my friend was wonderful. I’m really glad I went. It was a reminder that supporting and encouraging loved ones in their creative endeavors is important. Recently, I’ve been feeling kind of absent in this respect. I’m hoping to be better about this going forward. To paraphrase Kanye: my friends are dope and they do dope shit. It’s important to remember that and make the effort to support and encourage in ways big and small.
journal
- On “Should”ing
- tl;dr: It is ok to use the word “should” when 1) the thing in question is important to you and 2) you apply the “should” equally to yourself and others.
- For some time, I have made a conscious effort to avoid using the word “should.” I think this is mostly because it has a long history of being associated with bad experiences. “Should” is a word that seems to pop up a lot when dealing with authority figures, as an example. There’s an unfortunate element of control, of constraining someone’s behavior, of projecting a particular value system that is hard to avoid when “should”ing someone. And yet, I am increasingly thinking that my “should”ing embargo is too extreme. Some things really should be done, and others really should not.
- I’ve been chewing on this idea for the last week or so. The chewing started as a result of a trip to upstate New York to see a friend’s play.
- The play was a big deal for my friend.
- It was the first time one of her plays had been staged professionally.
- And, of course, it was excellent.
- It was also, quite a commitment of time to go see it.
- A 3 hour drive, each way.
- On the way home, I thought to myself “showing up for this kind of thing is something I should do more often”
- I caught myself
- The thing that gives me pause about “should”ing myself is that I try to follow the golden rule.
- So, if I “should” myself about something, I should also apply the same standard to others. “Should”ing me is thus equivalent to “should”ing them. And that’s uncomfortable. Who am I to say how someone else should live? Resolving this uncomfortable situation involves putting clearer boundaries on the usage of “should.”
- Here are the boundaries on “should”ing that I think are reasonable today.
- You should not use “should” lightly
- You should not use “should” lightly
- “Should”ing is reciprocal (all shoulds must be applied to you if you want to apply them to others)
- “Should”ing is reciprocal (all shoulds must be applied to you if you want to apply them to others)
- It is ok to use “should” if you could replace it with “it’s important to me” without significant loss of meaning (e.g. “I should go see my friend’s play” -> “It’s important to me to go see my friend’s play”)
- It is ok to use “should” if you could replace it with “it’s important to me” without significant loss of meaning (e.g. “I should go see my friend’s play” -> “It’s important to me to go see my friend’s play”)
- But ultimately, I am more of the mind these days that it’s actually fine to “should” yourself and others and that people are doing this all the time. You don’t have to “should”
- “Shoulding” is equivalent to saying “this is important to me”
- “Shoulding” does not create an obligation. It does create a boundary, but not
- Recently, I took a trip upstate. I went to see a play. But not just any play. It was a play written by a close friend of mine. And this was the first time one of her plays had been staged professionally. Of course, the play was excellent. More importantly, this was a somewhat rare opportunity to support a friend in her creative pursuits. And the trip reinforced for me the importance of doing this kind of thing. It’s important to support your friends in their creative endeavors.
- The idea that “it’s important to support your friends” probably sounds pretty obvious.
- But I think that the simplicity of it masks some of the nuance. What I’m getting at is close to a “should” statement. This is an uncomfortable place for me to go. “Should” statements are risky business for me. I don’t like it when people tell me things I “should” be doing. So, to assuage that, I’ll be explicit that what I’m talking about here is a “should” for myself, and that there is of course nuance around “should” statements.
- You “should” go upstate to see your friend’s play. Or you “should” download your friends app and fiddle with it every once in a while. You don’t have to, it’s even ok to consciously choose not to do this for long periods. And, even still, you really should do these kinds of things.
- tl;dr: It is ok to use the word “should” when 1) the thing in question is important to you and 2) you apply the “should” equally to yourself and others.
2022-09-19
- A few months ago, I went through a difficult patch with a longtime friend. I don’t feel the need to go into specifics here. What I want to focus on is the physical side of stress and anxiety for me (and likely others from what I gather). The issue lasted a few months, with varying levels of intensity. In the most extreme parts, I mostly stopped eating. I lost 10 pounds in two weeks due to a stress/anxiety-induced loss of appetite. It was very severe. It’s interesting to me to think about lessons here. The first one that always comes to mind these days is that what happens to me likely happens to others. If you notice your friend suddenly lose a lot of weight, it’s a good idea to check on them. Of course, this is standard life advice. But it can be helpful to be reminded of it, and from someone you know or someone who puts it into explicit terms. Keep an eye on the physical health/habits of your homies.
2022-09-18
- Read some George Saunders on the plane back from France. Hard to describe, but really powerful stuff. Powerful in that I rarely feel this uncofmortable reading stories. If you are looking to be unsettled, Tenth of December is a good one. I do think it’s a nice window into a side of me that I rarely engage with. Leads to questions like, “what is it about the story that makes me so uncomfortable/unsettled/uneasy.” Almost feels like the stories are about me in some way, some way I don’t fully understand, which makes them pretty challenging to read.
- I had a recent session with my therapist that has led me to an interesting new metaphor I’m trying out: the “gift” metaphor. The metaphor came up when I was sharing with my therapist the ways in which my life was different during my travel to rural France. I noted that when spending time on my side project during my vacation, I tended to be much less intensely focused on “making the most” of my precious hours away from work. This contrasted with my approach when I’m working on my side project at home in New York. At home, I still spend time on my side project, but I try pretty hard to make sure that my time is “efficient.” Sure, pretty normal stuff. But in describing this difference to my therapist I said, “when I’m in France, I give myself the gift of space, space to explore things that are interesting, space to go down rabbit holes, space to have fun when coding.” This led to a productive conversation about why I give gifts to myself in some places but not others. And we decided
that I would try to keep track more explicitly of what gifts I give myself during the day. So, that’s something to look forward to. Also want to spend a few words on what has cool about this metaphor in the last couple days. Basically, being explicit about thinking of choices in a “gift” framing has made me much more generous and compassionate with myself. The relevant insight is that giving a “gift” can be almost anything, not just material things. So, I’ve started doing things like “giving myself the gift of not feeling guilty about sleeping in.” Or whatever little thing comes up. The other nice benefit is that giving myself little things like this makes it easier to feel comfortable giving other people little things. Like on this plane I’m on, the guy behind me does this thing where he grabs my seat when he needs to get up and pulls really hard/aggressively on it. It shakes me pretty good, and can break my focus. My initial reaction is to be a little peeved, as there is no
communication about when this is happening or the effect it might be having on the person sitting in the chair. But then I think to myself, “what if this was an opportunity to give.” Maybe the guy is old and has bad knees and really needs help getting up. Maybe instead of being a little butthurt about this thing, I can give this random guy the gift of compassion in a situation that is often not the most fun for people. The use of the metaphor makes some mental judo (finding compassion for others who are legitimately bothering you) feel easier. And that is cool. Note, I also remind myself it’s fine to not give every gift I can think of when these things come up. It’s fine if this chair shaking is a real problem and I want to address it. And there’s room for the gift metaphor to come up there too.
journal
2022-08-20
- I used to do a lot of flashcards. My reason for doing it was strongly based on a “destination” metaphor. I thought flashcards were “taking me somewhere”. This was manifested in an interesting specific belief. Basically, I thought that when I was 50, I’d finally have the knowledge I needed to “arrive” and do the important things in life that needed to be done. The power of compounding knowledge would take over after many decades and I would be able to handle all of life’s challenges. Of course, this “destination” metaphor at play in my flashcard habit extended beyond flashcards. I thought my whole life was “going somewhere”. I no longer believe my life is “going” anywhere. This is because of some recent updates in my understanding of the role of metaphors in structuring thinking. The idea that “life is a journey” and you have “some place to be” is, of course, metaphorical. Like all metaphors, this helps clarify some things, but obscures others. For me, thinking I had a “destination”
with my flashcards clarified a sense of purpose. It also obscured the ideas that there could be “other destinations” or that maybe that was no “destination” at all. Eventually, even without understanding explicitly this idea about clarity vs obscurity in the foundations of metaphors, I realized that my commitment to flashcards was missing some part of a bigger picture. I didn’t really know what it was, but I knew my flashcard obsession was very likely not taking me where I wanted to go. At that point, I was ready to reconsider the role of flashcards in my life. At first, I stopped doing flashcards entirely. In hindsight, during this phase, I was exploring “other destinations.” Eventually, I realized these “other destinations” were not particularly compelling either. I actually just had more fun creating and studying flashcards than doing other things. So, I started back up with flashcards again. This time, the scope of the habit was severely reduced. Flashcards could no longer take me
to a “promised land”, so I didn’t feel the need to create and review them at all times. But the joy of creating and reviewing flashcards was still real and powerful. And that’s really the only reason you need to do anything. So, here we are. I’m not really sure what the new metaphor is for my flashcard usage. I’m mostly trying to avoid falling into the old thinking around the “destination” metaphor. Maybe something like “dancing” is relevant, who knows. But what’s nice is that I’m sure it will be a big surprise when I figure it out, and it’s exciting to have something to look forward to, even if you aren’t really “going anywhere”.
Notes
- React
- axios
2022-08-13
- I had a wonderful experience recently reading a math book. It was that feeling of seeing unexpected connections, and coming to better understand how I make sense of things around me. I have loved math, in some capacity, for a long time. In grade school, it fed my young ego when I was able to complete the times tables faster than most other kids. That felt good, but is no longer the thing I enjoy about the subject (eventually you run into people who do the times tables faster than you could imagine, and your ego has to find something else to latch onto). In high school, math was an outlet for my ego to feel like a good student, who was filling his role in the right way. Of course, i am no longer in the role of “good student” and I no longer feel this way about math. In college, I began to develop a deeper and genuine love of the aesthetic aspects of math. Theorems began to have resonance in a way that is still hard to describe. The best I can do is to say that theorems started to feel like they had shapes, and the relationships between them felt something like pegs going into properly sized holes. This is still approximately how I feel about my love of math. Recently, I was dabbling in a book about Geometry. It was structured, like many math books, in a pretty challenging way. It stated a theorem upfront, as if it was obvious, and then said “if this isn’t obvious, we’ve included a proof in the back.” Naturally, it’s a little bit of an ego bruise to get sent to the back of the book, but I’ve been down this road before many times and know not to take that too personally. Of course, the proof in the back was also not particularly clear. I had to really chew on it. This chewing is, of course, a necessary and important piece of the art of mathematics. But eventually, I figured out how the proof worked, and it was very satisfying. Then I stopped and asked myself “wait, what just happened there? What did I do to figure this out?” And I realized that I applied some thinking from Computer Science/the tech world to get the clarity I needed to understand the math. Basically, when faced with the ambiguity in the math statements in front of me, I responded by trying to gather as much raw data about the situation as I could, and then seeing if any insights would pop out. The proof in question was, unsurprisingly for a geometry book, all about circles and triangles. I was confused about why various triangles were even created as being relevant to the proof. I was confused until I framed those seemingly random triangles as actually coming from important pieces of data in the problem. So like, a triangle formed with one point in the center of the circle is likely to be helpful in understanding the claim precisely because the center of the circle is an intrinsically important part of the circle. And then looking around for other points/information that would be important intuitively/intrinsically helped frame the statements in the proof in a way that seemed much more intuitive and much more like they were headed in a meaningful direction. And that led to me understanding the whole system. And it was a beautiful moment. Not only did I discover a connection between circles and triangles that I didn’t understand before, but I discovered a connection between computer problems and math problems, and came to have an increased appreciation for the way in which I make connections from seemingly disparate concepts.
2022-08-06
- I grew up in a world with highly stable monetary policy. And I’m not referring to the US economy here. I’m referring to my family. And the monetary policy was “we have no money.” Or more specifically, “the parents have some money, the kids get 25 cents a week.” This was a stable situation all the way up until high school. At this point, the adults running the Fed in my home lost their nerve and inflation began to creep in. My parents were fine with a restrictive monetary policy when it came to buying yet another pack of Yu-Gi-Oh cards. But when I asked for things like occasionally going to the movies with my high school friends, the restrictions felt more draconian than instructive. But, to my parents dismay, the number of reasonable-sounding loan requests seemed to keep increasing. One day I wanted to go to the movies, the next I wanted to grab a smoothie downtown. The inflationary pressure was starting to get out of control. So, my parents, in a master stroke, simulatneously injected liquidity into the system AND raised rates. For historical reference, Greenspan never had the balls for this kind of move. And don’t even get me started on Yellen and Powell, pfft. More specifically, my parents offered to increase my allowance from the 25 cent pittance that had held for almost 15 years, to, I shit you not, 20 whole dollars. But there was a catch. The fed funds rate would go way up. If I took the 20 dollars a week, then I couldn’t come to them and ask for a bailout to go to the movies. If I had been really smart, I would have said “I’ll take the mostly unlimited free funds” over the fixed annuity plan. If I had even basic common sense, I would have negotiated for a higher rate. But I was young and stupid. My eyes bugged out of my skull at the thought of what I could do with 20 whole dollars, and I immediately accepted, believing I had outsmarted the Fed without even trying. Of course, I came to realize that the austerity was real, and the movies cost a lot more when the money doesn’t come from a bailout. Ok ok, that’s all well and good. Why is this coming up now? Well, taking it back all the way to the beginning: I grew up in a world with a highly stable monetary policy. What if that hadn’t been the case? What if my parents had engaged in encouraging greater boom/bust cycles in my financial experience as a youth? I feel like there were probably some good financial lessons I could have learned from those cycles. Maybe would be fun/interesting to explore that space with the next generation, when I am in charge of the Fed.
2022-08-05
- What does it mean to be a poet? To me, it doesn’t really have anything to do with actually writing poetry. Writing poems is an important activity associated with being a poet, but is not the essence of it, at least from my vantage point. The essence of being a poet comes from a refusal to forget certain things. Namely, the refusal to forget that all the other hats people put on are just hats. The business man puts on his business hat and becomes serious about business. But the poet knows, that’s just a hat, that the person underneath is not fundamentally a serious business person any more than the actor on stage is fundamentally Romeo. When people forget that they play a particular role, and could play many others instead, they become serious about things in a way a poet does not and cannot. A poet can play the same roles, and often does play those roles well, but will not be fundamentally serious about them as anything other than a role. This is the essence of being a poet, as I
see it now.
- There are a few different styles of messages that I want to send: tweets, blogs, stories (a la Snapchat), vlogs, podcasts (short/long). I wish this blog could house all of them and make it possible for friends/family to easily follow updates.
Todo
- pack electronics
- Computer
- I’d card
- chargers
- Computer
- haircut
- shave
- Running shoes
- Hat, belt, boots
- pack uniform
- Pack hygiene bag
- Computer stuff
- Uniform stuff
- Hygiene stuff
2022-08-04
- The challenges of remote work culture around social trust resemble similar political problems faced by developing nations as they try to go from low social trust environments (only trust family/friends known for years) to high trust social environments (trust institutions/strangers in given position in addition to family/friends). Easier to trust a colleague to do good work when they are sitting right across from you in the office vs a zoom square. Interesting framing, not sure what it implies for tools would help with building productive remote cultures.
- I wonder to what extent real estate is still a good investment if you could pair it with excellent SEO. Buy some airbnb-type home in a place that has solid tourist facilities, buy up keywords on google to drive tourist traffic, have house prices increase, sell house or keep making rental income, rinse repeat.
journal
- I continue to wonder to what extent we just need new mediums of expression for people to send more important/meaningful messages
- This feels like the kind of thing that could work, but doubtful people would pay for it upfront
- Maybe tie it into a theraputic angle…? People are already willing to pay for that.
- This feels like the kind of thing that could work, but doubtful people would pay for it upfront
- Things to think about
- are people making the kinds of videos that they want to?
- maybe there’s room for an extension of stories that is more like a weekly newsletter
- maybe there’s room for an extension of stories that is more like a weekly newsletter
- how to reach people that don’t have a single way to be reached
- are people making the kinds of videos that they want to?
- Ok, but what if we approach this from the perspective of a garden.
- What things will bloom
- When will they bloom
- What plants will go together
- Ecosystem of connections and stuff (very woo, not defined at all)
- What things will bloom
- It’s annoying that the camera app itself doesn’t allow for programming/routing vids and stuff automatically
- But i guess you can just make an app for that…
- But i guess you can just make an app for that…
- The videos you see on IG rn are seemingly optimized for engagement bait. What else could they be optimized for?
2022-08-01
- Been reading this article about Django. Very good stuff.
- Been thinking a lot about my visit to Monet’s house during my recent Paris trip. Monet’s house showed me a compelling way to live. Showed me that gardens and suburban home life can actually be rich and exciting. Of course, I already knew this in some sense, as my childhood had some similarities here. But always good to be reminded of important things you had known at one point and then had forgotten. There’s more to life than what’s in big cities.
- Interesting tweet: “The peach comic series is really an inside view of the personality type that manages insecurity by nurturing resentments — this is a really good example, demonstrating one’s own superior value by showing how one’s partner fails to manage a problem that does not exist.” Made me think about resentment generally. My own experience with it would indicate it has no discernible upside. People say it is relationship poison and I think that’s generally true. Sometimes I wonder if there isn’t another way to look at it though.
- Is anyone anti-secco?
Notes
- Django For Startup Founders
- Great idea to specify core steps of development for a startup
2022-07-29
- Fukuyama (Political Order and Political Decay) makes a really interesting point about the development path of Germany: given the structure of the Prussian state, Bismarck’s hyper nationalism was likely a requirement to eventually transition Germany toa modern liberal democracy. Befor Bismarck, Prussia was described as “an Army with a country.” There was no real sense of Prussian/German national identity. Bismarck’s succcessful unification of Germany required creating that strong national identity. Unfortunately, strong national identity is a risky game, and in this case led to WWI and WWII. But the bigger point is that there aren’t really that many compelling alternatives to introducing strong nationalism for moving from a clientelistic/patronage-based state to something closer to a liberal democracy.
- Another interesting point in the Fukuyama book is the balance between the importance of individuals vs the importance of systems/institutions. In the examples given, it’s clear that both are critical. Like in the example of the US moving past clientelism, it was super important that Theodore Roosevelt become President when he did for moving the US towards a more meritocratic-based system at the federal level. If McKinley had remained President, we are much less likely to have seen the changes we did at the time we did. Maybe we would have gotten to a better system eventually without Roosevelt, but he, as an individual, really moved the needle. Nice to be reminded that our own individual actions are important on some level, in a world seemingly dominated by powerful institutions (big govt, mega corps, etc).
- Kenneth Rexroth has some really powerful poetry.
- People have been recently talking about how a society’s drug of choice plays a big role in what that society does. So like, America for a long time has had coffee (caffeine) and alcohol as “drugs of choice.” And people point out that much of modern life in the US probably wouldn’t be structured the same (e.g. working all day in an office) if we had different drugs of choice. And the drugs of choice are changing, of course. These days, Adderall/amphetamines seem to be rising (at least among whatever bubble I am in). Psychedelics also seem to be rising. Nicotine has been falling for a while. Alcohol and Coffee still very strong, of course. This has now been a long preamble to my main point: I wonder to what extent a society’s dominant fabrics reflect/influence the way that society functions. I just saw a woman walk by on the streets of New York. She was, in my view, extremely typical, in that she was covered nearly from head to toe in spandex. Made me think about fabrics.
- The Propher by Gibran is excellent. The line “when you are in love, you should not say ‘God is in my heart’ but rather ‘I am in the heart of God’” is an absolute banger. Gonna be so sick when I find the time to drop that one with Elena: “time spent with you is time spent in the heart of God”. Gotta have the lube ready after that one. Will save for the most special of occasions.
- Jokes aside, the book is full of bangers like this, and I’m only like 10% through it. If you could competently deploy these lines in a romantic setting, you’d be very dangerous. Counterparty would resonate so hard they’d spontaneously combust.
- Advice day. I rarely ask my friends/family for advice. I rarely ask them directly “based on what you know of my goals, what do you think I should change in my life to increase my chances of achieving my goals?” Or maybe even more fundamentally “what goals do you think I should have/what goals do you think i should give up?” Of course, there are good reasons not to ask these questions. But I do wish there was a venue at some time for these questions to be raised and answered. So, I’d like to institute an annual Advice Day. On this day, I request that my friends consider and answer those questions (or related ones of interest in any particular way). Tentative date: Aug 8. That’s the birthday of the Patron Saint of Advice, my mother.
2022-07-13
- Metaphors We Live By Notes
- Was reading more about metaphors.
- We typically rely on more clearly delineated (or defined, relative to nearby concepts) concepts (in/out) as metaphors for less well-delineated concepts (emotional state, social group)
- We say “Harry is in love”, where “in” does the metaphorical lifting in the statement. We don’t typically use “love” as a metaphor target.
- We say “Harry is in love”, where “in” does the metaphorical lifting in the statement. We don’t typically use “love” as a metaphor target.
- This makes a lot of sense. Metaphor is generally used to increase clarity of understanding. And clarity is dependent on hard, clear contrasts/boundaries.
- Some interesting counterexamples exist ofc. War is used metaphorically a lot. Very few people, particularly in the US, have any first hand experience with it. In that sense, it’s surprising that it could be particularly well-delineated/defined. What I think this example shows is that even though people don’t have as clear an understanding of what the experience of being in a war is like (compared with being “in the kitchen” or even “in” some emotional state), that since war is itself the among the most extreme imaginable states, you can get away with it being poorly defined. It’s kind of like “infinity” in that sense. You don’t need to know what infinity is really like to know that it’s “more”/“bigger” than the other numbers/its metaphorical neighbors. So, to summarize, things being well delineated can come from them having either a relationship with a hard, physical experience (which provides the hard boundaries) or it embodies an intense/extreme state
- Another interesting thing was the idea that people use the same metaphor with different conceptual meanings.
- Was reading more about metaphors.
2022-07-01
- One way of seeing the importance of metaphor is to relate it to databases. In general, metaphors are to language and thought what joins are to databases. Metaphor helps communicate about one idea/experience in terms of another, helping with understanding the original idea. They connect two experiences and provide an interesting lens through which to view those experiences. Joins in databases are similar, connecting data from different parts of the database to provide a more interesting view into the meaning/value of that data. Now, think of what joins enable in applications. Nearly every interesting feature of modern applications relies heavily on joins. The links between the data are typically just as important/interesting on an application level as the original data on its own. I lean towards thinking metaphors are similar here too. The choice of metaphor when communicating about an idea is a big deal. It tells you not just about the way in which two ideas connect but also about the way the person structures their thoughts, and it does so in a way that can lead to accurate generalizations. For example, people that tend to use a “war” metaphor for arguments will be more likely to use similarly adversarial approaches in other interactions (e.g might refer to sexual experiences as “conquests”). The choice of metaphor is typically not random/one-off to the situation, and tells you something more general about the mental models someone relies on regularly.
2022-06-29
- Illegibility is the origin of hostility. Can be seen at multiple scales. Heated arguments between people, typically over non-fundamental ideas, almost always boil down to a lack of understanding between the two people. The position of the other is illegible, and if it were legible, there would be no argument (in vast majority of cases). At the societal level, we have war. The illegibility here is easier to see. At the base of it, soldiers do not understand the humanity of soldiers from the other side. The humanity of the other is again illegible here. But it can also be internal to a society. Government officials have often felt threatened by parts of society that are illegible. An example would be what goes on in slums, places often considered on the fringe or outside the bounds of normal society. The illegibility in this case creates concern and leads to policies to improve legibility. Fear isn’t the only reason to resolve illegibility. Sometimes it is reasonably clear that improving legibility can lead to a positive outcome that isn’t necessarily zero-sum. New relationships/cooperation between people is a form of reducing illegibility to advance teh interests of all involved. But it is worth remembering that if you find yourself in a hostile situation (as either the initiator or recipient), illegibility is a central concern in the situation.
2022-06-23
- Started reading Chomsky’s, “Manufacturing Consent”. Very good so far. Highlighting the extent to which media is massively centralized (highlights that 9 total companies control basically every newspaper, movie studio, TV station, radio station, etc). I didn’t personally think the consolidation had been so extreme, but turns out I guess it has. The main effect Chomsky notes is that there is no serious dissent from standard elite narratives. There is certainly no voice given to anything resembling “the people.” Instead, the people are treated as a bewildered herd, needing to be coralled by “correct ideas” about the way the world is. There is no room for uncertainty in these narratives about who is good and who is bad. And largely the distinction exists to protect/further the interests of the elites, regardless of what the people would do if given a real choice. Chomsky cites several, pretty damning examples of double standards in US media. The book came out in 1988, so the examples
are from the prior couple decades. Noteworthy ones include things like coverage of the Indonesian dictator Suharto. Evidently, Suharto led a massive genocidal purge of political enemies in the 60s. But since the political enemies were (allegedly) communists, the US and its media covered the genocide in a favorable light. Now, important to note here, communism sucks. One of the many reasons Communism sucks is because those regimes seem to regularly do these purges of political enemies. Ultimately, the purges are bad. Doesn’t matter whether it’s the tankies doing them or the forces of capitalism or any other -ism, purges are bad. So, obviously it sucks that the US and mega media cos at the time covered the political genocide of 1 million people as if it was a minor, acceptable, “cost of doing business.” And critically, the media coverage of this political purge differed so wildly from that of other purges mentioned (e.g. vietnam after the war) that it pretty clearly discredits the
coverage of these events by leading US media institutions. So, ok, can’t trust the NY Times. What else is new? Well, I think what’s new is this book challenges me to extend the scope of things where I don’t trust NY Times (or WSJ, or Fox News, or CNN, etc). I already recognized the conflict of interest when it comes to NY Times covering the social problems of FB, so it was easy to ignore their reporting there. But it’s still hard to view other areas of coverage as similarly suspect, particularly coverage of international affairs. Take the Uighur genocide in China. On the one hand, I think the genocide is happening, and the CCP is awful, and coverage of the issue is super important. On the other hand, Chomsky would point out that we are extremely unlikely to get unbiased information on this issue from sources like NY Times or WSJ or Fox News or CNN etc. No matter which major media institution you pick, be it one with a left or right bias, each one has a pro-American-elite bias that
pervades its coverage. So, the coverage about international affairs becomes hard to believe as being informational at all. What else are they going to tell us other than “CCP is bad”? This lack of informational value in international affairs coverage is, of course, a problem that has come up before. It’s well-documented that Vietnam coverage was a total sham. The media tries to spin this as being entirely the fault of the government (“McNamara lied!”), hoping people will ignore that it is, in fact, the job of the media to root out these lies and hold the government accountable. “Well, eventually, the media did do that”, someone might say. And yeah, kind of, but even that standard would force you to recognize that there can be massively long stretches where the media is simply wrong on hugely important issues, yet they will print their stories as if they are almost completely certain that they are true. And they will present uncertainty in a light that favors a narrative that serves
elite US interests. With that in mind, it increasingly looks like these media institutions are not actually serious about “the truth,” they are serious about “controlling the narrative.” People often recognize this reality in media orgs that have a different left vs right political bias than their own personal preference. Chomsky makes a compelling case that this “controlling the narrative goal” in favor or US-elite worldviews is present everywhere, no media org is immune. Furthermore, since all of the major US media orgs have a pro-American-elite bias, you can’t even diversify your news diet to escape the bias, at least when it comes to thing where the elite are united. Diversifying your news sources can maybe help reduce bias on issues where the elite are actually competing (think something like abortion), though even then, it’s likely still an extremely narrow set of options being discussed, but it won’t do anything for issues where elites are united (think something like increasing
military spending). So…yeah. I dunno. Obviously, we shouldn’t trust the government. Also obviously, we shouldn’t trust the people responsible for holding the government accountable. I guess mostly the people to trust are those with real skin in the game (family, friends, etc).
- Note, this was written before Twitter, so not sure what Chomsky thinks about that (presumably it is a big deal, but maybe recent censorship stuff is a reminder that control of the medium is still held by small number). I do think it’s clear that Chomsky would advocate for a media landscape with numerous voices, even if most of those voices are garbage. The reason current media orgs can “manufacture consent” is that there are so few of them that the folks in charge can coordinate effectively to prop up elite narratives for the masses. Adding more sources reduces that ability to coordinate, which reduces the ability to manufacture opinion, which maybe somewhat increases ability for individual people to have their actual opinions represented in major discussions. Whether Twitter/the Internet actually do that is another question (whose answer is “probably no” given the huge centralization of Internet platforms).
2022-06-22
- Have been reading a very interesting set of Blogs in Crash Early, Crash Often. Particularly enjoying this one I’m in now, which directly references Carse’s Finite & Infinite Games (my book of the year 2021, and likely book of the decade, if history is a guide). There are lots of ideas in the blog post. Some of the more interesting is how there is an interplay between which finite/infinite games people solve/fail to solve in their own lives and parenting. The blog points out that one model of parenting is that people do their best to solve the relevant finite/infinite games they can, and hand off those they can’t to the next generation. Each generation goes through this process, and solving infinite games in particular is challenging enough that there is always enough failure cases that result in the production of the next generation. And then this concept itself sustains the infinite game of life itself, whose only goal is to keep playing (aka keep having kids). That’s probably
pretty hard to follow, even if you have read Finite & Infinite Games, and probably impossible to follow if you haven’t. So really, just think of it like this. As usual these days for me, the idea of interestingness here comes from the connection of two/more seemingly unrelated things. In this case, it’s parenting/evolution and finite/infinite games. Previously, finite/infinite games lived in my head as individual pursuits, something that I as an individual have to work through on my own. But this blog does a nice job of modeling these games in a way that seems more inclusive of me being a member of an ecosystem. Cool stuff.
waywt
- Things to build:
- improved search
- improve UI
- improve UI
- improved ability to share posts
- improved ability to organize info/posts
- tags
- tags
- take photos
- brand info stuff
- brand links
- brand links
- monitoring/visibility
- improved search
2022-06-20
- Ideas of the week
- spent the weekend upstate. Didn’t really use Instagram or Twitter. Felt like the days were almost endless. Interesting feeling.
- Increasingly feeling like I need more variance in diet. Not so much in terms of nutrition/ingredients, but more in terms of quantity. Restrictions followed by blow-outs was an interesting/worthwhile system. Seems good to push more in that direction.
- Face-to-face time with people in SF a reminder that the medium is the message and F2F interactions carry a particular intensity that can’t yet be replicated online. I increasingly think audio is a big problem with online interactions. So hard to really get into the flow of conversation when it is not fully spatial. Audio coming from single source (speakers) is seemingly what blocks this flow bc if you don’t fully wait for someone to finish speaking, there isn’t enough information to parse old vs new speakers. In person it is easy.
- spent the weekend upstate. Didn’t really use Instagram or Twitter. Felt like the days were almost endless. Interesting feeling.
2022-06-16
- Went to an in-person offsite gathering with my coworkers. It was really great.
2022-06-11
- Ideas of the week
- You see what you want to see
- Thinking about how to structure living situation
- App release
- Finished David Foster Wallace interview book
- Misc other reading notes
- You see what you want to see
- You see what you want to see
- This week, I got frustrated. This happens, at some point, just about every week. Pretty normal. This time (there were several times tbh, but I will focus on one), it had to do with the amenities/living situation in my gf’s apartment. I was cooking dinner for the two of us, pasta with carrots, brocolli, chicken. Very healthy. Unfortunately, I got in a situation where I felt I needed some prep bowls that did not exist. This, combined with being hungry, triggered a pretty intense bout of frustration. I started looking around at the apartment and seeing all kinds of things that weren’t up to my liking. I won’t list them here, for the sake of conflict avoidance with people I care about. The interesting thing happened only when I paused this tour of apartment inadequacies. I noticed that it’s not at all a surprise that I can find so many inadequate things when I go around looking for things that aren’t exactly the way I want them to be. So, I decided to see what would happen if,
instead of looking for bad things, I started looking for things I thought were good, or at least good enough. Doing this did not cause my frustration didn’t dissolve immediately, but it did slowly bring my back to a more balanced emotional place. Of course, this whole “you see what you want to see” thing is going on all the time. Thought about that quite a bit. Big areas where it comes up seem to be, and are worth trying to actively monitor would be: interpersonal relationships, politics, religion, sex, music, art.
- This week, I got frustrated. This happens, at some point, just about every week. Pretty normal. This time (there were several times tbh, but I will focus on one), it had to do with the amenities/living situation in my gf’s apartment. I was cooking dinner for the two of us, pasta with carrots, brocolli, chicken. Very healthy. Unfortunately, I got in a situation where I felt I needed some prep bowls that did not exist. This, combined with being hungry, triggered a pretty intense bout of frustration. I started looking around at the apartment and seeing all kinds of things that weren’t up to my liking. I won’t list them here, for the sake of conflict avoidance with people I care about. The interesting thing happened only when I paused this tour of apartment inadequacies. I noticed that it’s not at all a surprise that I can find so many inadequate things when I go around looking for things that aren’t exactly the way I want them to be. So, I decided to see what would happen if,
instead of looking for bad things, I started looking for things I thought were good, or at least good enough. Doing this did not cause my frustration didn’t dissolve immediately, but it did slowly bring my back to a more balanced emotional place. Of course, this whole “you see what you want to see” thing is going on all the time. Thought about that quite a bit. Big areas where it comes up seem to be, and are worth trying to actively monitor would be: interpersonal relationships, politics, religion, sex, music, art.
- Thinking about how to structure living situaiton
- I’m coming up on a decision point about whether to keep living in my current apartment or move to another situation. I had kind of assumed that I would just keep my current situation. It seems like an insanely good arbitrage, one that almost anyone would ride out as long as it’s reasonable. But then I had some convos that reminded me that my circumstances (e.g. being in a serious relationship) have meaningfully changed. The fact that I didn’t actively see this and revisit the apartment decision was a reminder that I am probably living according to some life script and not embracing reality in a way that reflects who I am/what I individually want/need/etc. So, it’s time to revisit this situation. It’s a daunting thing to explore tbh, but that’s mostly just a statement that actually living according to your own script is a daunting thing. It’s also interesting that reflecting critically on the living situation comes into potentially dangerous territory around “seeing what you look
for.” Like when I ask myself “what are things that could be better about my current living situation,” I’m starting from a point of reference that kind of assumes something is wrong. Now, I do think that it’s important to sometimes take that point of reference with things, helps avoid stagnation. And, I do think there’s a good amount that is stagnating around my current place. One of my primary goals with getting this huge, expensive Manhattan apartment was to have it be a very social space. I’m not really pushing in a social direction anymore though, or at least not pushing in that direction in a way that revolves around having a big apartment. Various reasons. But this realization is enough to question the validity of the current situation for me. Like, if I’m not using this space to host parties and gatherings, why am I spending significant resources on it? It’s a great place to live, and there’s value in that, but I don’t intuitively expect that the value is high enough
relative to the best alternative options to justify continuing on that path. There’s a lot here still to unpack, and I’ll be ruminating on it for the next few weeks I think. The current best alternative would revolve around either 1) living alone in a substantially different part of the city that exposes me to different way of life (e.g. closer to parks so that running is easier, closer to museums to encourage more engagement with art, closer to more friends to try and cultivate a more regular social vibe) or 2) living with Elena and making progress on long-term compatibility questions. It’s likely that both of those options would involve me moving into a “less nice” apartment, but the question is whether having a nicer apartment is the optimization I’m looking for. Of course, there’s other stuff in my current apartment that is part of the optimization scheme too, I just don’t know how to cleanly talk about it in this medium.
- I’m coming up on a decision point about whether to keep living in my current apartment or move to another situation. I had kind of assumed that I would just keep my current situation. It seems like an insanely good arbitrage, one that almost anyone would ride out as long as it’s reasonable. But then I had some convos that reminded me that my circumstances (e.g. being in a serious relationship) have meaningfully changed. The fact that I didn’t actively see this and revisit the apartment decision was a reminder that I am probably living according to some life script and not embracing reality in a way that reflects who I am/what I individually want/need/etc. So, it’s time to revisit this situation. It’s a daunting thing to explore tbh, but that’s mostly just a statement that actually living according to your own script is a daunting thing. It’s also interesting that reflecting critically on the living situation comes into potentially dangerous territory around “seeing what you look
for.” Like when I ask myself “what are things that could be better about my current living situation,” I’m starting from a point of reference that kind of assumes something is wrong. Now, I do think that it’s important to sometimes take that point of reference with things, helps avoid stagnation. And, I do think there’s a good amount that is stagnating around my current place. One of my primary goals with getting this huge, expensive Manhattan apartment was to have it be a very social space. I’m not really pushing in a social direction anymore though, or at least not pushing in that direction in a way that revolves around having a big apartment. Various reasons. But this realization is enough to question the validity of the current situation for me. Like, if I’m not using this space to host parties and gatherings, why am I spending significant resources on it? It’s a great place to live, and there’s value in that, but I don’t intuitively expect that the value is high enough
relative to the best alternative options to justify continuing on that path. There’s a lot here still to unpack, and I’ll be ruminating on it for the next few weeks I think. The current best alternative would revolve around either 1) living alone in a substantially different part of the city that exposes me to different way of life (e.g. closer to parks so that running is easier, closer to museums to encourage more engagement with art, closer to more friends to try and cultivate a more regular social vibe) or 2) living with Elena and making progress on long-term compatibility questions. It’s likely that both of those options would involve me moving into a “less nice” apartment, but the question is whether having a nicer apartment is the optimization I’m looking for. Of course, there’s other stuff in my current apartment that is part of the optimization scheme too, I just don’t know how to cleanly talk about it in this medium.
- App release
- I pushed a new version to the app store today. Feels good to ship. Important health metric, probably the most important really. Somewhat less exciting is that the updates in the app don’t really feel super significant given a 2-week dev cycle. Updates include new search functionality (added ability to search by brand name and username, but brand name search has some rough UX edges). Also showing brands associated with a post, where the info comes from my assistant doing the labeling work. Eventually clicking on one of those brands will take you to a specific page for the brand where you can see popular posts featuring that brand, posts you’ve liked that have that brand in them, what kind of clothes people commonly wear from that brand (e.g. shoes vs jackets, based on what people post from that brand). And a new page that shows the posts you’ve saved along with stats about what brands are in those liked posts. I guess that maybe seems like a lot of stuff, but it doesn’t feel like it
given a 2-week dev cycle. O h well, it was fun to work on and that’s a more important metric for project health than visible progress. It is worth noting that I had a number of infra challenges with one of my cron jobs, which took up a lot of my time on the project. Kind of an interesting issue, but ultimately not the problem I want to be spending time on. The cron job kept running out of memory during execution. Originally, I thought it had something to do with loading a 200MB ML model into a VM with 512MB of memory and then trying to feed large images into the model, which is roughly what I think the problem was originally. But then I realized there were issues where the file system in the cron job wasn’t stable (it kept deleting the ML model, forcing the job to download it every time), so I had to put the script into a docker image to stabilize the files that are included in the environment. But even that didn’t solve the memory problems. I still haven’t fully solved it, but
eventually was like “just run it on the biggest machine they offer, it’s not gonna be that expensive,” which is the right optimization at this point, and works well enough.
- I pushed a new version to the app store today. Feels good to ship. Important health metric, probably the most important really. Somewhat less exciting is that the updates in the app don’t really feel super significant given a 2-week dev cycle. Updates include new search functionality (added ability to search by brand name and username, but brand name search has some rough UX edges). Also showing brands associated with a post, where the info comes from my assistant doing the labeling work. Eventually clicking on one of those brands will take you to a specific page for the brand where you can see popular posts featuring that brand, posts you’ve liked that have that brand in them, what kind of clothes people commonly wear from that brand (e.g. shoes vs jackets, based on what people post from that brand). And a new page that shows the posts you’ve saved along with stats about what brands are in those liked posts. I guess that maybe seems like a lot of stuff, but it doesn’t feel like it
given a 2-week dev cycle. O h well, it was fun to work on and that’s a more important metric for project health than visible progress. It is worth noting that I had a number of infra challenges with one of my cron jobs, which took up a lot of my time on the project. Kind of an interesting issue, but ultimately not the problem I want to be spending time on. The cron job kept running out of memory during execution. Originally, I thought it had something to do with loading a 200MB ML model into a VM with 512MB of memory and then trying to feed large images into the model, which is roughly what I think the problem was originally. But then I realized there were issues where the file system in the cron job wasn’t stable (it kept deleting the ML model, forcing the job to download it every time), so I had to put the script into a docker image to stabilize the files that are included in the environment. But even that didn’t solve the memory problems. I still haven’t fully solved it, but
eventually was like “just run it on the biggest machine they offer, it’s not gonna be that expensive,” which is the right optimization at this point, and works well enough.
- David Foster Wallace interviews
- I finished the book of interviews with David Foster Wallace. This is the first physical book I’ve finished in years. And it was great. I gorged myself on it. The main themes were on the insidious effect of TV/advertising, which makes sense given the that the interviews were from late 90s-early 2000s. And I think the points Wallace made apply even more so these days. Funnily enough, even though I just finished the book yesterday, it’s a little hard for me to summarize it effectively. Obviously, Wallace was preoccupied with addiction. And he talks a lot about how addiction (conventionally to something like drugs) and things like religious devotion are actually very similar structurally. I guess the big idea is that people are going to worship something, we all do, whether it’s drugs, or God, or money, or material things, or TV, or Google, etc. I think this resonated strongly with me. I think this little app I’m making can be understood as a manifestation of a sort of worship
of/addiction to computers. There’s more nuance there than that, but I think it is a framing that leads to some interesting ideas, good meat on that bone. And I’d personally recommend that others take time to see if they can frame their actions in a “worship”-y way. And then go from there.
- I finished the book of interviews with David Foster Wallace. This is the first physical book I’ve finished in years. And it was great. I gorged myself on it. The main themes were on the insidious effect of TV/advertising, which makes sense given the that the interviews were from late 90s-early 2000s. And I think the points Wallace made apply even more so these days. Funnily enough, even though I just finished the book yesterday, it’s a little hard for me to summarize it effectively. Obviously, Wallace was preoccupied with addiction. And he talks a lot about how addiction (conventionally to something like drugs) and things like religious devotion are actually very similar structurally. I guess the big idea is that people are going to worship something, we all do, whether it’s drugs, or God, or money, or material things, or TV, or Google, etc. I think this resonated strongly with me. I think this little app I’m making can be understood as a manifestation of a sort of worship
of/addiction to computers. There’s more nuance there than that, but I think it is a framing that leads to some interesting ideas, good meat on that bone. And I’d personally recommend that others take time to see if they can frame their actions in a “worship”-y way. And then go from there.
- Misc other reading ideas.
- I’ve been continuing to read and enjoy the work of Venkatesh Rao (both book form and on Twitter). The stuff I read from him recently (a book/essay collection called “Crash Early, Crash Often”) made an interesting point about Maslow’s hierarchy. Basically he notes that you need different skills to navigate different points of the hierarchy (seems good). And importantly, at the top of the pyramid, the self-actualization step, what you really need is imagination. I thought this was interesting. I had not previously connected imagination and self-actualization. In questions about things like “finding the real you,” the idea of honesty with yourself and courage and all that are pretty obvious. But it was less obvious that imagination comes to play an important role. When I reflected on what Rao had written, though, I found that it resonated pretty strongly. I think you can see it most clearly when adding the framing of life scripts that I’ve been thinking about a lot recently. Many people are doing things because they think it will fit some implicit narrative of their life. For example, there are a whole slew of things that middle-class Americans will and won’t do that mostly serve to signal their inclusion in and reinforce their identity as members of that class of people (e.g. buying Toyota but not Mercedes cars, even if they can afford the latter). This “life scripts” idea applies to all of us, of course. I have my own scripts. But the thing is, you can’t really self-actualize if you spend too much time following established life scripts for a generalized, “average X” person (where “X” could be “middle-class” or “hipster” or “American” etc). You need imagination to come up with new life scripts to follow that more accurately capture your “real self” (put in quotes here because it’s a bit of a stereotype, but really it’s a serious endeavor at the top of Maslow’s pyramid). Also, imagination isn’t just for coming up with entirely new scripts, it is necessary for reframing existing scripts. You can still choose to shop at Uniqlo instead of Gucci, which might look like a standard middle-class thing to do, but if you internally apply some imagination the meaning of that action can materially change. This is the same muscle as what I was working on above in the “you see what you want to see” section. There, the availability bias threatened to hijack the meaning I was making of a given situation . I had to work pretty hard to come up with (“imagine”) alternative views that were more aligned with who I am trying to become as a person. Without a little imagination, you won’t be able to come up with those alternative views, and you will not thrive at the top of Maslow’s hierarchy. According to Rao, you’ll either be forced to go back down to a lower Maslow level or you’ll end up like the tortured artist and kill yourself. Pretty dramatic there, and who knows about that, but interesting idea.
2022-06-05
- This is a brief life update for the homies
- Things are pretty good, overall. A friend recently told me about a saying her family uses when they are just hanging around, chilling, doing nothing: “if this isn’t nice, I don’t know what is.” And I feel like my life could be described like that. Alternatively, in what I consider the least-good-but-still-reasonable framing of how I’m doing, it’s kind of like the title of a poem I read recently called “I’m pretty comfortable, but I could be more comfortable.” The poem is just a sequence of statments like “the edge of my sleeve is damp.” It was quite nice, and resonated with me a lot about how I conceptualize things most of the time (even when I recognize that “if this isn’t nice, I don’t know what is” is actually a more reasonable framing). So, yeah, in the least-good-but-still-reasonable case (considered from the perspective of normal, American person), I’m pretty comfortable, but I could be more comfortable. Things are pretty good.
- So, what’s going well? I’m doing a bit better with exercise. I’m getting more into yoga, which I think is the right call for hleping recover from/prevent future issues like my shoulder problem/hamstring tightness/achilles strain. I went for a run yesterday, the first one since getting covid a couple weeks ago, and it was brutal. But at least I got out there. I’ve been eating pretty healthy and sleeping well. I’m happy in my relationships with friends, families, and my partner.
- One big thing that’s going well is this new app. Here’s what I mean by that. First, it feels like I’m actually making progress towards having a useful tool for making fashion purchases. This is a long-standing problem in my life (though I am now old enough and have seen enough solutions to “long-standing problems” to know that even if I had a perfect solution to this one, I’d still find a way to be dissatisfied with some other part of life). And it’s cool that I have the feeling of making progress towards a real solution. Second, building the app just feels great. When I am working on the app, time disappears, I’m in what in pop-culture is referred to as a “flow state”. I was recently reading an interview with David Foster Wallace where he said the same thing happens to him when he’s writing fiction (more on DFW later). And that is sick, even if the output (an app to help me find/buy better clothes) doesn’t resolve the most pressing concerns in my life. THIRD (but wait,
there’s more), it is looking like I’ll be able to use the app to spend more time with my brother. This one feels the most exciting of the three, as it addresses a much bigger, long-standing problem: I wish I was closer with my brother. It looks like I’ll be able to hire my brother over the summer (at an extremely reasonable wage) to work with me on this thing. I also love the way it resonates with the idea of challenging normal life scripts. Most people wouldn’t even think to hire their brother as a means of killing many birds with one stone (1. spending time together, 2. helping him learn job skills that open up more options for him outside the brutal job market of academia, 3. accelerating development of interesting features in the app at pretty minimal cost since I’m competing against grad student wages). It feels like a huge win.
- Speaking of the most pressing concerns, let’s shift gears to that. Things aren’t all great. Seeing as I am still alive, there are still challenges and frustrations and whatnot. As usual, I continue to have the persistent, cosmic background radiation of existential dread about life. You can think of this as whispers of questions in the back of my head like “Am I spending my time in a way that’s consistent with an understanding that someday I will die?” These thoughts are pretty normal for me on the day-to-day level, and are mostly manageable. But sometimes the volume is turned up on these questions and it can feel very tough. The recent thing that cranked the volume was reading the interviews with David Foster Wallace. I don’t have enough time here/sufficient writing skill/sufficient mental clarity in this area to really explain why this happened/tends to happen when I encounter the output of exceptional artists. The short version (lacking in many important details/caveats/nuance)
is: great art shows me a way to live that more fully embraces the idea that someday I will die. The dissonance between seeing that way of life from the artist, contrasted with the way I structure my own life, is challenging to reconcile. A concrete effect is that it leads me to ask questions like “damn, should I quit my job?” or “is making a fashion app really the artistic expression that I feel needs to exist in the world?” These can get heavy. But the intensity does wane over time (for better or worse), which I bring up so as to mitigate any concerns whoever is reading this might have about me. I am fine. And it’s not as if the answers to the “heavy” questions are cut-and-dry. But wrestling with those questions is challenging. And this section is about challenges.
- Ideas that piqued my interest:
- the medium is the message. I mentioned above some of the challenges around the meaning I’m currently making of life (e.g. “is what I’m doing really meaningful? how do I know/how could I find meaning if it’s not there right now”). There’s another, challenge about these challenges (a meta-challenge, if you will), which is that it can be hard to talk about these meaning-type challenges with people. It’s hard to tell your boss, for example, “hey, is the work we do here important?” And in large part, i think that meta-challenge comes back to the idea that “the medium is the message.” Most mediums I typically use to communicate aren’t appropriate for the kinds of messages that I would want to send about meaning and whatnot. Hard to broach the subject over text, for example. Fortunately, there are other mediums (like this blog, or, more conventionally therapy. One way of conceptualizing the value of therapy is that it is a medium that supports the exchange of messages that cannot be
exchanged in other mediums, and the exchange of messages is valuable in that it helps resolve challenges, mostly by revealing 1) you aren’t actually alone and can send these messages to someone and 2) the messages you want to send aren’t actually as damning as you think)
- the medium is the message. I mentioned above some of the challenges around the meaning I’m currently making of life (e.g. “is what I’m doing really meaningful? how do I know/how could I find meaning if it’s not there right now”). There’s another, challenge about these challenges (a meta-challenge, if you will), which is that it can be hard to talk about these meaning-type challenges with people. It’s hard to tell your boss, for example, “hey, is the work we do here important?” And in large part, i think that meta-challenge comes back to the idea that “the medium is the message.” Most mediums I typically use to communicate aren’t appropriate for the kinds of messages that I would want to send about meaning and whatnot. Hard to broach the subject over text, for example. Fortunately, there are other mediums (like this blog, or, more conventionally therapy. One way of conceptualizing the value of therapy is that it is a medium that supports the exchange of messages that cannot be
exchanged in other mediums, and the exchange of messages is valuable in that it helps resolve challenges, mostly by revealing 1) you aren’t actually alone and can send these messages to someone and 2) the messages you want to send aren’t actually as damning as you think)
- There’s more here, but I have to go dancing with friends. If this isn’t nice, I don’t know what is.
journal
- Things are pretty good, overall. A friend recently told me about a saying her family uses when they are just hanging around, chilling, doing nothing: “if this isn’t nice, I don’t know what is.” And I feel like my life could be described like that. Alternatively, in what I consider the least-good-but-still-reasonable framing of how I’m doing, it’s kind of like the title of a poem I read recently called “I’m pretty comfortable, but I could be more comfortable.” The poem is just a sequence of statments like “the edge of my sleeve is damp.” It was quite nice, and resonated with me a lot about how I conceptualize things most of the time (even when I recognize that “if this isn’t nice, I don’t know what is” is actually a more reasonable framing). So, yeah, in the least-good-but-still-reasonable case (considered from the perspective of normal, American person), I’m pretty comfortable, but I could be more comfortable. Things are pretty good.
- Things to pack
- electronics
- computers
- chargers
- kindle
- computers
- hygiene kit
- ergonomics
- wrist wraps
- wrist pad
- wrist wraps
- bookes
- clothes
- shirts
- shoes
- running
- walking
- running
- socks
- fitness
- no-show
- normal
- fitness
- pants
- sweater
- shirts
- jackets
- hat
- sunglasses
- sunscreen
- shirts
- food
- ginger
- p
- ginger
- electronics
2022-06-01
- Some thoughts on financial risks of American healthcare system
- I routinely read on Twitter about people who have received outrageous medical bills. Predictably in these tales, the insurance companies dodge and avoid doing anything about it. Sometimes, the person has some luck and they manage to stalk the right person on LinkedIn and that employee helps them from the inside. Many times, the person just has to foot the bill or run away from collections people forever and have their credit score destroyed.
- This situation seems like a real risk when dealing with our existing healthcare system. I wonder if there’s a way to mitigate the risk using some clever financial engineering tricks.
- One thing that comes to mind would be “what if I, as a person, simply had no assets that could be claimed in some sort of medical bankruptcy proceeding”. Maybe this could be accomplished through putting all your assets in a trust or something. Then, at least you could defend against a real bankruptcy scenario. I’m not sure if there is any structure that would work like this, but it seems worth exploring.
- Obviously, such a situation doesn’t resolve the problem of having my credit score destroyed. Nor does it resolve the massive headache it would be to deal with this kind of problem. But at least you wouldn’t go broke, and that would be something.
- Just some morning thoughts. Hope y’all are having a great week.
- I routinely read on Twitter about people who have received outrageous medical bills. Predictably in these tales, the insurance companies dodge and avoid doing anything about it. Sometimes, the person has some luck and they manage to stalk the right person on LinkedIn and that employee helps them from the inside. Many times, the person just has to foot the bill or run away from collections people forever and have their credit score destroyed.
2022-05-24
- I made some updates to my blog. Pretty excited about it. Have long wished for a way to do Anki hands-free/eye-free (e.g. on the subway, while driving). Feels like I took a step towards that today. Can now have highlights read to me from my blog using built-in text-to-speech on phone. It doesn’t work great, but it’s good enough. I love a few things about it. First, it worked right out of the box with my previous set up (all highlights on single page). I just turned on text-to-speech controls, put the highlights page in reader mode, and turned on TTS. The reading is mostly ok, but does have some rough edges in that it doesn’t really stop enough at the end of a highlight, so it seems like the highlights blur together. If you’ve read the source article recently enough, this isn’t a huge deal, but is pretty annoying. The other issue was that since highlights for all sources (articles/books/etc) were on a single page, the TTS would just immediately start reading highlights from the next
source without a break. This was a bigger issue and was enough for me to rework the structure of the page generation so that highlights from a single source now have their own page. I updated the main highlights page to mostly focus on listing sources rather than highlight content. This makes it easier to find old sources, and jump into highlights for a specific source more easily. Excited to have this be part of my morning routine, like when making coffee or eggs, just turn on the highlights from the previous day for a few mins and get reminded of what I’ve been reading that was interesting. Love that it also puts the highlights into a new medium, which helps with picking out stuff that you wouldn’t notice in text/flashcard form, and thus is good for creating a strong connection with the information. Exciting stuff!
- A décision that is wise in the context of scarcity can become unwise in the context of abundance. This is a profound idea.
- Hierarchy is downstream of scarcity. An interesting idea. Certainly there are many cases where hierarchy serves to allocate resources considered scarce, it removes the ability for certain individuals to decide what to do and how to do it, and moves that decision making ability into the hands of others, generally a smaller group.
- “College is a waste” is wrong. College is not about learning,
2022-05-08
- I tend to think of myself as an “independent thinker,” a “weirdo,” a “barbarian in citizen’s clothing”. I do things other people don’t, I like things other people don’t, I see the world in a way others, generally, don’t seem to. Of course, this isn’t a unique characterization, many other people think this independent-mindedness applies to them. And also it’s really a matter of degrees. I conform at various times and not at others. The imemediate reaction to this kind of thing is to ask something like “ok, sure, but what makes you think you are different in a way that’s different from everyone else?” When I think about this question, I think a compelling answer lies in my childhood. My closest companion from birth, my earliest peer role model, is someone on the spectrum. When you grow up loving someone on the spectrum, you learn to love things that others don’t, to see things in a different light from most folks, to be open to things when others are closed. Naturally, this is a
generalization, and these ideas have their limits. You can’t put on the citizen’s clothes without giving up some amount of your inner barbarian. But it’s this experience from my youngest days that I think separates me most from others. I internalized that there are things most people will not see, often won’t even know to look for. Of course, this lens must be applied to myself, too. There are things I don’t see, there are things I don’t know to look for. And I wouldn’t know this without having gone through various experiences that showed me that the limits I see in the world around me are often limits of my own vision and not the limits of the world.
- You ever play a game with others and someone gets way too into the game and does something extreme? And then you or someone else is like “woah dude, it’s just a game.” I think that’s a really interesting thing. The person playing the game in an extreme way has forgotten, in some sense, that the game is voluntary. Why else would they take it so far as to anger others? So, to that person, the game really isn’t a game, it’s serious. The thing is, prior to the extremeness in question, it’s almost always the case that the other players were also approaching the game from a place of seriousness. In almost all cases, the other players were doing their best to win, and assuming specific roles/behaviors consistent with the rules of the game. And in those actions, they too were forgetting the voluntary nature of the game, they themselves didn’t know “woah dude, it’s just a game.” Only when things got sufficiently serious did they remember that it wasn’t serious at all. Fun little
paradox.
Fueguia 1833, The Spirit
Todo
- buy something?
- chocolate?
- khiels?
- wine
- chocolate?
- eat something
- finish getting dressed
- workout a little
- shower/shave
- pack
Perfumes
- Fuegia, The Spirit
2022-05-07
- Continue to think a lot about the idea that “the medium is the message.” Last night, I went to a church for a concert. On my way out the door, I thought about how the environment of a church (the medium) influences the type of message that can be conveyed with the concert. Themes of sacredness/holiness/etc will come through, almost no matter what music is played. Even if the music isn’t designed to evoke those feelings, the setting will ensure an interplay between the musicians intentions and the intentions of the medium. And this applies to basically everything. You cannot go somewhere without being in some kind of medium, and that medium will influence the messages that get sent. This blog is, obviously, a medium. I am much less inclined to publish these thoughts, in this format, on my Instagram story, or on Twitter, due to the perceived capabilities/limits of those mediums (media, technically, sure). So yeah, I continue to be thinking about the power of the medium. And usually,
it’s in the context of “what kind of medium do I want to be spending more time in? what media do I want to spend less time in?” Certain friends/family are increasingly coming up as “media I want to spend more time in.” Twitter/Instagram as “media I want to spend less time in.” Nature also coming up as a medium I’d like to spend more time in. I haven’t spent much time reflecting on the how of switching media. Why is it hard to switch (or in some cases easy)? What does it mean for a medium to suck you in? Presumably the answers here are less generalizable than the original idea of “the medium is the message.” It seems to involve in a large degree the individuals psyche and various securities/insecurities they feel. But it’s hazy, illegible to me how exactly these things fit together, other than in the broadest of strokes.
- Last night, after the concert, I was walking away from the Church, and someone commented on how the music was “too repetitive”. The music in question is a little hard to describe (lots of layered vocals, reminiscent of a church choir), but it was indeed repetitive. What struck me is that this critique was so fundamental, that the person didn’t seem to realize they were critiquing the medium and not the message. And I think this is often an important distinction: are you criticizing the medium or the message? The repetitiveness in question here does not seem like it is something this song does that other songs in the same genre would not do. it’s not a distinguishing feature of this message (song), it’s a feature of the medium (genre of music). But when you go to a concert and end up critiquing the medium, that’s more a statement that you didn’t know what you were getting into vs the message being low quality, in general. It’s like someone going to a forest and saying “I don’t get
the beauty here, too many trees for me.” Like, yes, that’s not even wrong, but it misses the for…well you get the idea. Of course, this critique is something I have heard many times, often about electronic music. And, of course, I have in the past made critiques in the same way (and will likely continue, as this knowledge is not fully integrated yet). But I do think that when I find myself compelled to make a critique like this, that the framing of “medium” vs “message” is useful for turning attention away from external forces acting on me and towards the idea that my critique is a reflection of something important about myself, something important about my own limitations as a person. If I don’t like a song, well, maybe that song is bad. If I don’t like a genre of music, then there’s probably something about me that’s limited vs a whole genre of music being “bad.” Of course, every critique we make (or idea we have) reflects something about us, and is not some objective truth about the
world around us. That’s what having an idea is, it’s something about you. The framing of “medium” vs “message” is a nice way to approach the question of “and what does your idea say about you.”
- Ok, “the medium is the message.” This is part of what excites me so much about computers these days. Still so much room to run with computers as a medium. Like, any time you develop an app, you are creating a medium, which supports/hinders certain types of messages. One of the main bummers of the largest, centralized content/social media platforms is that they restrict innovation in the most popular mediums of expression. Twitter feels like it’s a place for particular kinds of messages (and not others) for a few reasons. One is the structure of the protocol, of course (280 char limit in a tweet). But another is that the way the information is presented, aka the order/UI structure of the feed. But now, imagine a world (the one Jack sometimes talks about) where Twitter the company provides merely 1 feed experience out of hundreds. In that world, Twitter, the company, is mostly providing a protocol (data storage/transmission), and not providing a feed service. This would fundamentally
change the medium, and would thus change what messages are sent/received in different feed approaches.
- Ok, there’s still room to run around computers as a medium of expression. I’m building a little app right now. What kind of messages do I want to encourage? How should the medium be structured to encourage those messages? I don’t really know, but these questions are top of mind rn.
2022-04-26
- There’s this idea that the NY Times is an important, authoritative source of information. What people often don’t appreciate is the extent to which that idea was created as a byproduct of a world lacking abundance of information/other sources. Scarcity of information creates the sense that the source of information is authoritative. The idea that the NY Times (and other legacy media institutions) are broadly authoritative was always an extreme idea. But the extremeness is hard to see in a world where information is scarce. And if the idea takes hold before the scarcity is removed, it can persist for a long time through sheer momentum. But it doesn’t change the fact that the things that change people’s lives (science, technology, religion, philosophy, art) are often either covered in extremely poor quality or simply not covered at all in favor of focusing on some event of passing importance, typically about the executive branch of the US federal government. But if you step back a
bit, it’s very obvious that Newton, Einstein, and Darwin are orders of magnitude more important than Bush, Obama, and Trump, and yet the information diet of most NY Times readers would have you conclude the exact opposite. How many NT Times readers could even tell you how Einstein changed our view of how the universe works? The idea that the President’s schedule is more important than who we are and where we are going as a species is bonkers. They could probably give you a light perspective on the importance of Darwin, missing the bigger picture on the ways in which Darwin pops up on a daily basis in extremely deep ways to influence their behavior and the behavior of those around them.
- These ideas taken almost unchanged from The Revolt of the Public by Gurri
- These ideas taken almost unchanged from The Revolt of the Public by Gurri
- The thing that elites are right about is that most people are too weak/tired to avoid manipulation. Most people are consuming the information equivalent of Doritos chips, rather than steamed brocolli. Folks generally don’t act like they have the stomach for being healthy. So, the elites say, the NY Times may not be a great place to put authority, but it will be better for the masses to treat it as an authority than to turn to Youtube or Reddit, at least on average. Yeah, maybe.
2022-04-22
- watching Phoebe bridgers. Genius
- This person is a rockstar, and sings about…well these things.
- The thing is, you really should have been here. I don’t “should” much, because it shows a lack of imagination about the way things could be. But sometimes you see things that you couldn’t imagine. And you should have been here.
- This person is a rockstar, and sings about…well these things.
- an interesting thing about python having a package for everything, is that it makes me kind of indignant when there isn’t a package for what I want, which makes me want to go make that package. “What do you mean there isn’t a library that maps rgb to Pantone color name? This cannot stand!”
- Update, there is, in fact, already a library that takes an rgb and maps it to the nearest Pantone color
2022-04-21
- The rise and fall of Egypt/Persia/Rome/etc feel like topics that more people should be thinking about. Refutes the idea that “progress” is linear. Ribbonfarm has an interesting theory about this that boils down to civilization grows strong through smart people writing down their ideas, which catch on and are codified into social norms enforced by lesser minds, which is good until the ideas become outdated in some way, and but the civilization is old and fat and doesn’t produce sufficiently smart people to update the rules, so the civilization gets taken by the barbarians. Right, sure. But is there a way to break the cycle? Would be interesting to get more detail on this process, but I’m not sure where to look. Maybe Gibbon. Maybe Durant.
To do
- packing
- Clothes
- Shorts
- Shirts
- Pants
- Sweater
- jacket
- Running clothes
- Socks
- Shoes
- Shorts
- hygiene
- Electronics
- Passes
- sunscreen
- Clothes
2022-04-19
- Sampa the Great has some Lauryn Hill energy (Final Form)
2022-04-15
- When surprising things happen, it triggers us to critically examine the stories we had and try to fit the experience into the existing story. Very painful when we can’t fit the new experience into the existing story. Have to come up with a new story. Really throws people for a loop. Destabilizing.
- Is it better to go through this destabilizing experience or not? To some extent it depends, I wonder if there are general rules here tho.
- inspired by listening to a friend talk about a sudden breakup in a long-term relationship. Heard a lot of anguish about the story of the relationship and roles therein being false. Seemed like my role was to be a sounding board for ways to revise the story to incorporate this new, painful info.
- Is it better to go through this destabilizing experience or not? To some extent it depends, I wonder if there are general rules here tho.
- The medium is the message
- Only certain types of work get done in a corporate office
2022-04-14
- Reading the Elton John bio was interesting. He put out so much music. 31 albums. Then I was reviewing music cards in Anki and saw The Rolling Stones had similarly released just a ton of albums. There’s big gaps in my knowledge of these things, but it feels like major artists don’t put out as large a volume of music anymore. I wonder if that’s true and if so, what it means. Something better to do?
2022-04-13
- Just wrote up a data pipeline in an evening. Pretty fun!
- Pipeline extracts color information from outfits that are part of my WAYWT app. Idea being that part of developing a strong sense of style/personal aesthetic involves learning about color/palettes.
- First step was to collect the building blocks. I needed some software that I didn’t want to write (bc it would be pretty complicated). Specifically, I needed software to remove the background from an image automatically, and I needed software that would extract colors from an image, ordered by importance. I would combine these things to extract the important colors from the outfit. Fortunately, I found a couple python libraries just for this. Did some initial testing, and they worked pretty great.
- Next step was to connect to the database. I ported over the code where I was testing the libraries and made it use the results of my tests to provide data for the database. This was actually pretty seamless. And I was able to start sending data to my database, at a rate of like 4 outfits / minute.
- Unfortunately, I have like 20k outfits in my database rn, so 4/min just wasn’t going to cut it from a throughput perspective. It needed to be faster. The default way to speed things up would be to use more processors. And I knew the workload could easily be run on more processors without any major synchronization issues (the work involved in determining the colors for a given outfit is independent of the work for any other outfit). The problem was only that I didn’t really know how to do this kind of thing in Python. A little Googling showed me that my best option was to use the
multiprocessing
library. Refactoring my code to use themultiprocessing
library took a little care/effort and I biffed parts of it around accessing variables in proper scopes (each processor should have its own set of vars, generally). But it wasn’t super hard to fix the issues. Once it was working, I jumped from handling ~4 outfits/min to ~20/min, which makes the overall problem much more tractable (should complete in ~10 hours of execution vs 50 before).
- The major lesson in the whole experience is that simplicity is king. I was able to make lots of progress on the problem precisely because I didn’t do too many complicated things. Writing my own code to remove the background from images would be complicated and take me a lot of time. Writing my own code to extract colors from an image would probably be a bit less complicated than removing the background, but still much more complicated than I could reasonably accomplish in an evening. Each of the tools I chose to use had extremely simple APIs, which made it possible to hook everything together in a short period, and make quick fixes when I made mistakes. Of course, this lesson on the importance of simplicity is taught to me over and over again when building things. Accidental complexity is the kiss of death for these side projects. Must avoid it like the plague.
- Pipeline extracts color information from outfits that are part of my WAYWT app. Idea being that part of developing a strong sense of style/personal aesthetic involves learning about color/palettes.
- I’m a bit shocked by the absolute dominance of tones/muted colors in the dataset. ~10x more outfits seem to use charcoal than pink, and if you compare navy to pink, it’s still 5x in favor of navy. Either people don’t like colors, or (more likely) my color extraction process doesn’t pick up accent colors very well.
- Almost nothing in life gives me the energy to stay up late the way coding does. Absolutely intoxicating.cating.
- I should probably invest in learning javascript for real
- Saw a comment on HN about “bread winner conversations”. Made me think some stuff.
- Still need to get my WAYWT app out the door. Some things I would like to do before launch
- Get the UI for searching posts in a basic working state
- Make it possible to post to the subreddit directly from the app, alternatively, create a private post
- Add even a little bit of error handling to the app,
- Add metrics/alerting to the app
- Set up GitHub actions CI pipeline
- Get the UI for searching posts in a basic working state
2022-04-12
- Anki review thoughts
- Are the Strokes just basically the Ramones if they did a bunch of Ketamine?
- Zara Larsson reminds me of Ariana Grande, especially on “WOW”
- Are the Strokes just basically the Ramones if they did a bunch of Ketamine?
- This is Internet culture. It is not culture in the sense that it is something people do. It is culture in the sense that it is something we do with each other. Everything we put out contributes to an ongoing conversation. We are not individuals talking to ourselves. We are a people talking to each other. This is Internet culture.
- The medium is the message
- Feels like something I should internalize more fully, only slowly coming to grips with the power of this idea. Seems like one of those ideas that will become increasingly fundamental. Need some sort of kata to reinforce it.
- One thing that’s nice is that computers reinforce this idea nearly every time I use them. Computers are so flexible, they support the existence of many different media (/mediums), that you can more easily see the impact of the medium on the messages etc.
- One framing of life is that you are constantly choosing what medium to exist in. Your choice of medium(s) heavily influences the person you become. Kind of like that saying “you are the average of the 5 people you spend the most time with,” a similar thing could be said about what kind of mediums you spend time in. Can maybe see the impact clearly by considering metaphors. The media/mediums you choose heavily influence the metaphors you use when thinking about the world.
- Important media (/mediums) in my life:
- Anki
- books
- friends
- my apartment
- the gym
- Twitter
- TV/movies
- Anki
- Other media
- games
- netflix
- cable news
- corporate meetings
- email
- video chats
- snapchat
- instagram stories
- concerts
- house parties
- bars/restaurants/dinner table
- bathtubs
- etc
- games
- Feels like something I should internalize more fully, only slowly coming to grips with the power of this idea. Seems like one of those ideas that will become increasingly fundamental. Need some sort of kata to reinforce it.
2022-04-11
- We have to keep talking
- Talking is for people, silence is for the Gods
- Talking is for people, silence is for the Gods
- Genuinely bummed how much better of a person I seem to be on adderall. There are, of course, some things that become worse about me. But it does seem like most aspects improve pretty noticeably. What is up with that?
- This sounds a lot like a framing problem. “Better” in what frame of reference? Presumably the frame that is dominant in the world around you. Did you choose that frame? What are the tradeoffs that come from that frame? What other frames are possible?
- Even if you walk away from those questions above with a preference for the dominant frame vs alternatives, still worth remembering that there is likely gray area you don’t see clearly. Things change. Be open, not judgmental.
- Even if you walk away from those questions above with a preference for the dominant frame vs alternatives, still worth remembering that there is likely gray area you don’t see clearly. Things change. Be open, not judgmental.
- This sounds a lot like a framing problem. “Better” in what frame of reference? Presumably the frame that is dominant in the world around you. Did you choose that frame? What are the tradeoffs that come from that frame? What other frames are possible?
- Continually reminded that composition is extremely powerful. Tools that can be easily composed via simple, clean APIs create huge leverage. Things requiring tight integration, in the weeds details work, can also create leverage, but it’s generally harder to get there.
- The older I get (and more financially secure), the more likely I am to communicate to my friends that I like what they are doing by actually buying the things they take time to create. Very powerful, especially the first time you do it, and usually isn’t super expensive (~$20).
- What would be an interesting experiment to run? What would be an interesting thing to see in the world? What would be an interesting thing to learn about myself?
- Can be kind of a hard problem because we tend to ignore/resist data that challenges things we think must be true. Which then makes it hard to even see that these things exist and could be explored.
- Can be kind of a hard problem because we tend to ignore/resist data that challenges things we think must be true. Which then makes it hard to even see that these things exist and could be explored.
- Blockcode: A visual programming toolkit
The code style is procedural, not object-oriented or functional. We could do the same things in any of these paradigms, but that would require more setup code and wrappers to impose on what exists already for the DOM.
- There are a few programming paradigms (e.g. procedural, object-oriented, functional, maybe more). I wish I had a better sense of the tradeoffs of each kind. I can come up with some of the most obvious ones (things that mostly affect how a single file is structured), but have much less of a sense for tradeoffs that come from deep usage of each (other than procedural, I suppose).
- There are a few programming paradigms (e.g. procedural, object-oriented, functional, maybe more). I wish I had a better sense of the tradeoffs of each kind. I can come up with some of the most obvious ones (things that mostly affect how a single file is structured), but have much less of a sense for tradeoffs that come from deep usage of each (other than procedural, I suppose).
- Anki review thoughts
- Rumours is one of those albums that is absolutely full of bangers
- Queen, so fun
- Weird to think that Radiohead’s “Creep” came out the year I was born…
- Drunk Drivers/Killer Whales is a great song to shout along to
- Rumours is one of those albums that is absolutely full of bangers
- things to try
journal
2022-04-10
For the finite player in us freedom is a function of time. We must have the time to be free. For the infinite player in us time is a function of freedom. We are free to have time. A finite player puts play into time. An infinite player puts time into play.
- Zeng Fanzhi is an interesting guy. What happened to him? Feels like the communists wouldn’t like him very much.
- Picasso’s Les Demoiselles D’Avignon was influenced by Ingres’ The Turkish Bath
- Humpfest film thing was really good :)
- An interesting thing in Elton John’s memoir is that he seems to have concluded that trying to change people is generally a waste of time/energy. Comes from the way he talks about his relationship with his mom. Interesting because this is a bit surprising given his optimistic character/songs.
journal
- Elena doesn’t like my blog
- Elena doesn’t like reading
2022-04-09
- I feel like I need to learn more math