[{"slug":"I_Over_Engineered_a_Journal_to_Understand_My_Needs","rawContent":"# I Over Engineered a Journal to Understand My Needs\n\nI have a hard time communicating my needs. I'm much better suited to being a people pleaser. Keep it a buck, I would make a great 1930's wife. I would avoid conflict and never bring up my wants or needs. What issues do I have anyway right? I'd live on a farm with goats and lambs giving my working man healthy children. I'd never speak up and I'd pass my time tending to whatever thoughts I had that don't bring me closer to agency. Needs would be a sin and I'd raise a sheltered daughter who longed for more than this small farm and hate her for it.\n\n![](/images/journal-1.webp)\n\nI'm not a trad wife. Unfortunately (someone get me pregnant gahh). I have to think about the life I want to live to a certain degree because I can. How sad. As someone with little guidance in navigating emotions outside of media that makes me feel all warm and cozy like Adventure Time or Homunculus or Shamo I have needed to put a lot into therapy, reading books on psychology, practicing open communication, understanding boundaries, listing out my values, doing body scans, finding time to rest, detangling bias, sleeping and eating, gratituding, even journaling. All that. I am still horrible at directly communicating a need however. If I was being honest I would say I assume if I am aware of a need I would feel I should address it. But I am coming to recognize how my needs are underlying factors related to my values. For instance: I value playfulness. I am a goof. I love a joke, I love laughter.\n\nPart of my playfulness comes from assuming people don't like me. I find it's a good way to disarm people. I can discover peoples boundaries pretty quickly with a joke. I can also soothe others or myself. That allows me to feel that person won't lash at me in anger because I am funny. And if they do I have permission to avoid repair because fuck them. I'm never serious and I do not deserve to be talked to in a mean way. I also value humor because living is like objectively terrible. Hard I should say. Even the trees look frantic. All endlessly stretching out. I need joy, humor, authenticity in my life. So much of it.\n\nI didn't really know playfulness serves my deeper need for connection until like, what is today, May 12th, 2026. Yeah like 3 days ago. What has been been helping is this [personal app](https://luminosityledger.netlify.app/)<sup><a href=\"#fn-1\">1</a></sup> I put together called luminosity. I named it after an article by Alicorn called [Living Lumionusly](https://www.lesswrong.com/s/ynMFrq9K5iNMfSZNg/p/9o3Cjjem7AbmmZfBs)<sup><a href=\"#fn-2\">2</a></sup> (Modern update [here](https://www.lesswrong.com/posts/xnPFYBuaGhpq869mY/ureshiku-naritai)<sup><a href=\"#fn-3\">3</a></sup> ). It may sound cheesy, but it's fair to say this article sent me on my mental health thing. In particular correlating affect, circumstance, and behavior.\n\n![](/images/journal-2.webp)\n\nThis could be old news to some of you but to me it was a revelation of sorts. It was nice knowing I had control over these things somewhat. Ever since, I have sought to understand myself so that I have better control over those ABC's.\n\n## What's the App my Guy\n\nHardest for me is to make sense of how my affect is influencing my behavior. I mean, there is a lot going on isn't there? Hunger, sleep, and mood are certain to produce an emotional response. Without intentionally investing in understanding underlying motivations or rather how I may want my affect to influence circumstance and behavior I do fear that mindfulness concerning hunger sleep and mood is required, but may not reinforce the lifestyle that guides how I may do so happily.\n\nLuminosity (the app) was built with this issue in mind. Values work always felt like a huge task involving listing either too vague or too specific facets of life I do not consciously situate. Still, a list of values that I felt resonated with what brings me joy felt like a good starting point. In the app, the list of values you can start with is really just every value I found I identified with. At least in the beginning. That list got trimmed down heavily into about 19 workable values in the a web page. This was progress.\n\nNext I began to work through each value using the workflow I made. Most of this is based on my first year of therapy and a handful of books. Im no therapist and I won't go through it all here. Checkout [this page](https://luminosityledger.netlify.app/#/methods)<sup><a href=\"#fn-4\">4</a></sup> on the how things work. To me this meant:\n\n- rate the value\n- understand whats getting in the way of a value\n- understand whats need that value serves\n- reframe what energy and interest the value serves. try some shit\n- list some things that enable the value and  things that detract\n- recognize that this takes forever and comeback after a couple months\n\nThe app I built is centered around a local-first, private architecture designed to operationalize self-reflection without the friction of accounts, subscriptions, or remote telemetry. That is mostly bc of HIPAA. But also because of an interesting issue around data ownership.\n\n## TECHNOLOGY RANT!\n\nSo yeah, I build things. I have always loved a lil project. I love a little show and tell. Doing so means making it usable but forealsies. Data governance is a headache though. Both technically and logistically. For any data that could be considered private or health related you need a legal agreement to store any personal identifiers and that data needs to be placed in a hardened database behind a VPN. Not so easy of a setup for a project I'm the only user of. It seems pertinent to question various data schemes and their implementations as we challenge the existential threat the future of big data operations pose. We seem to move closer to some fucked mix of Parable of the Sower, Ghost in the Shell, and every sci-fi dystopia Arnold Schwarzenegger has been in. As digital artifacts become siloed into various platforms, what those platforms are able to create with the data we store within them has become a prized and sought after resource. Privacy is prized in America but I do not think we have solved where \"open data\" ends and intellectual property begins.\n\nExample: are Github's use of code in their platform and the access to internet Archive's digital collections both issues of corporate overreach? They are both adjudicated under Title 17 of the United States Code (Copyright Act). They both concern massive high-stakes data collection program. Github's issue is a fair use concern while The Internet Archive's concerns digital lending. Both are, legally, overreaching programs. Yet, digital archival vs training LLMs feel morally obvious to me. I wonder if this is a human quirk or some blindspot in thinking about IP and copyright.\n\nWith the above in mind I was able to use this project to test a p2p, browser based, and file backed design. I do not think I like it nor do I think it is easy to use if I was non-technical. I enjoy thinking of private hardware, lil 3d printed boxes with p2p privacy networks installed on them making them hard to track. But, in feeling illuminated by my creation, I have to ask do I really care about privacy or choice? I think I care about choice more than privacy.\n\nIn my ideal world we could interface with vitals such as baseline stress levels of close ones to understand how best to interact with them on some given day. Noticing patterns and recognizing one another's affective mood visually seems like a great way to connect with your people on a local level. In that world, there would be a mix of devices, as we have now, but we would have immense choice over the configuration of these connected hubs. Pub hubs, if you will. I could own a little machine dedicated to being a data hub that connects to become a kind of private record exchange. Pub hubs if you will (shout out pub pub).\n\nThink about it. A small, silent machine translating my exact emotional capacity for the day, bypassing my total inability to just say, \"Hey, I need some grace right now.\" No corporate servers, no data harvesting. Just a direct, private line of empathy. I mean it sounds kinda [solid](https://solidproject.org/)<sup><a href=\"#fn-5\">5</a></sup> to me 😉 🥁.\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">Needs & Values. <a href=\"https://luminosityledger.netlify.app/\">https://luminosityledger.netlify.app/</a></li>\n  <li id=\"fn-2\">Living Luminously — LessWrong. <a href=\"https://www.lesswrong.com/s/ynMFrq9K5iNMfSZNg/p/9o3Cjjem7AbmmZfBs\">https://www.lesswrong.com/s/ynMFrq9K5iNMfSZNg/p/9o3Cjjem7AbmmZfBs</a></li>\n  <li id=\"fn-3\">Ureshiku Naritai — LessWrong. <a href=\"https://www.lesswrong.com/posts/xnPFYBuaGhpq869mY/ureshiku-naritai\">https://www.lesswrong.com/posts/xnPFYBuaGhpq869mY/ureshiku-naritai</a></li>\n  <li id=\"fn-4\">Needs & Values. <a href=\"https://luminosityledger.netlify.app/#/methods\">https://luminosityledger.netlify.app/#/methods</a></li>\n  <li id=\"fn-5\">Solid: Your data, your choice - Solid Project — Solid Project. <a href=\"https://solidproject.org/\">https://solidproject.org/</a></li>\n</ol>","title":"I Over Engineered a Journal to Understand My Needs","date":"2026-07-25T00:01:11.687Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"build","tags":["psyche","identity","local-first","web","work"],"blurb":"I cannot say what I need out loud, so I built something that traces friction back to the value underneath it.","thread":"tools-that-know-you","threadOrder":3},{"slug":"Playing_Rocket_League_and_Navigating_your_Career_as_a_Software_Engineer_are_not_so_Dissimilar_Experiences","rawContent":"# Playing Rocket League and Navigating your Career as a Software Engineer are not so Dissimilar Experiences\n\n\nTLDR -  As we automate more and more of our work, we should be asking ourselves how we want to steward the technology we build. We should be asking ourselves how we want to shape the future of our work. We should be asking ourselves how our work impacts the future of our communities.\n\n***\n\n### Don’t Let Corporations Remove Our History\nIn the post below, I will talk about tech workers being stewards of the technology we build. Part of that stewardship is ensuring our collective history isn't erased by corporate gatekeepers. \n\nRight now, **The New York Times, The Atlantic, and USA Today** are blocking the **Wayback Machine** from preserving their journalism. Without the Wayback Machine, we may lose valuable digital records of our society. If you value the preservation of our digital history, please consider signing the petition to tell media leaders to stop blocking the Internet Archive.\n\n**[Sign the Petition: Tell media leaders to stop blocking the Internet Archive →](https://www.savethearchive.com/NewsLeaders)<sup><a href=\"#fn-1\">1</a></sup>**\n\n***\n\nRocket league contains a few big problems that are part of the [game's meta](https://www.reddit.com/r/RocketLeague/comments/1epp09u/what_current_metatrend_irks_you_about_the_game/)<sup><a href=\"#fn-2\">2</a></sup>. More so when you are the average diamond player. These problems stem from the focus you need to react on the ball well, and the bigger issue, being tilted at your teammate. I have never played a game where the first choice is to become so upset at your teammates that you begin sabotaging your team. Ya know. As opposed to trying to figure out how to win against your opponents. But this is Rocket League. \n\nIt baffles me. I suppose if you are nervous enough you may lash out at the easiest player to read, which is your teammate. One would think that players struggling to accept their rank find ways to improve. Join a RL discord server. [Work on fundamentals](https://fickinggames.com/rocket-league-meta-2025/)<sup><a href=\"#fn-3\">3</a></sup>. A lot of people say reviewing your gameplay is a great idea. Sunless [ran an experiment](https://www.youtube.com/watch?v=MmNPim7kzq8&t=12s)<sup><a href=\"#fn-4\">4</a></sup> that made players stick with one mode for 30 minutes a day. All improved in rank and optimisim. Training packs, free play, and [coaching](https://www.reddit.com/r/RocketLeague/comments/1l2l6hu/is_rocket_league_coaching_underrated_or_overrated/)<sup><a href=\"#fn-5\">5</a></sup> all seem great ways to rise in rocket league. Maybe even making friends in the community.\n\nMe tho. I'm not doing all that. So I choose to be almost good in praxis because I have a life and I am not a nerd. I am definitely not in multiple rocket league discords and I am definitely not watching RL esports to understand how the high level players move. I got shit to do (its grind ranked im so cooked im lying im lying it's not a choice im just bad). Anywho, I am never blaming my teammates for how bad I am nor how bad they are. It would take a big push to get further and if you could you would. We are not pros. We are vibing. Cooking. Creating even. \n\n![Rocket League Season 22 rank distribution — most players sit in Gold/Platinum](/images/rldistrib.webp)\n*Rank distribution, Season 22 — via [Esports Tales](https://www.esportstales.com/rocket-league/seasonal-rank-distribution-and-players-percentage-by-tier)<sup><a href=\"#fn-6\">6</a></sup>*\n\nNow I know some of you are saying \"wait where are you going with this?\". I got you, follow me. From what I understand about programming, reviewing other people‘s code, paying for some kind of lesson plan, and not freaking the fuck out tends to help you get better at being a fraud, uhh I mean software development. No one is that great at rocket league. Well a [few people are great](https://rocketleague.tracker.network/rocket-league/leaderboards/playlist/all/default?playlist=11&season=37&type=playlist&page=1)<sup><a href=\"#fn-7\">7</a></sup> at rocket league. Most people are not. A few people are great at software engineering. Most people are not. Most of us are above average. Not anyone I have worked with though. They are all wizards. \n\nBut if you think you are good, I implore you to build a server that can handle 10,000 request a second right now from scratch. Without using Claude you fraud. I’m waiting. Don’t Google. Don’t Ecosia. Don’t duck duck go. Using TAOCP by Knuth is cool though. So, build it... Right. That’s what I thought. \n\nMost of us develop experience based on our position. Pragmatism is core value among any software team I have been a part of. To deny the creative, improvisational nature of our craft is to live in the near future AI is taking us. This has always been the reason tech bro culture is so insidious (nasty, triflin, eyuck). The tech bro folk have to perpetuate this idea that we are not improvising based on a set of skills we’ve managed to develop over the course of our careers. They may be using this reality to justify automating away our craft.\n\nWhat they never realize is not all motion is good motion and they would understand that if they had real motion. Right, so I’m back to rocket league. There is this feeling of being creative that keeps me coming back. That's how I hear pros describe the game. When flow begins the game becomes about being creative. How we set each other up to win given what we have is a creative exercise that should be fun. With the current state of SWE, it's hard to be creative when people quite literally stumble over Elon‘s cock to suckle him direct from tit and get in with his young white Mormon meme lords who code. I want daddy. I want mommy. I want my daddy and my mommy to be present in my life. I really love my daddy and my mommy. I wish that I could suckle mommy while daddy secures meat to eat and I didn't have to worry about anything because mommy and daddy are taking care of me, but that is delulu. It rejects the gift we have been given to create new ways of existing. As an old friend said, past food, shelter, and water, creativity becomes our greatest impulse.\n\nAnd so as we have problems with rocket league, we have problems with software engineering. How can our creative impulses be directed through this medium without giving in to the toxic reactionary culture that is part of the game? Our current risk is AI. In RL a new update [kicked bots](https://www.rocketleague.com/en/news/easy-anti-cheat-comes-to-rocket-league-on-pc-today)<sup><a href=\"#fn-8\">8</a></sup> after damn near ruining the creative collaboration that is tilting your tm8 we call Rocket League. \n\nIn software, AI adoption is ramping up. As a profession that has been around for 80 years it’s hard to say what we should and shouldn’t do but they paying out here. They paying a lot. And Claude really is my copilot 😭 The shame I feel is unbounded. But I know software elitist culture. Our forefathers had to consider you know the actual memory buffer sizes and whether or not you know a memory register was [**big endian little endian**](https://en.wikipedia.org/wiki/Endianness)<sup><a href=\"#fn-9\">9</a></sup>. You think they don’t look at all of us with the same disdain some god tier web dev looks at me when Claude commits a contribution to my [RAW conversion library](https://hex.pm/packages/libraw)<sup><a href=\"#fn-10\">10</a></sup>? You think they don’t hate us!? You think I don’t hate myself for not knowing what register I’m writing to!?? You think I don’t get why C and Rust engineers are the superior engineer??????? I do!!! The same way that I understand why grand champs and super sonic legends look down on me like I am a child. They are the best and I’ll never be that good. Being the best means they set the meta (no relation). We have to work with their abstractions because they built the meta. I got shit to do so I'm not about to hack an interpreter for knowledge. Most of us (read me) will not finish [The Art of Computer Programming Volume 1](https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming)<sup><a href=\"#fn-11\">11</a></sup> by Donald J Knuth.\n\nWhen James Bogg's considered the productive creativity of factories in **_The American Revolution_ (1963)** he said: _\"The creative work of production is being done by the research engineers, the program planners, the scientists, the electronic experts… What they are creating is a mode of production which, as long as the present system continues, excludes more and more people from playing any productive role in society. (Pages From a Black Radical's Notebook_, Bogg's, James, pg. 112)\"\n\nBack to AI. AI in my opinion can address whatever we conceive it capapble of. For now. Do we really want a highly technical underclass of agents and artificali humans operating for the sake of global oligarchs. Probably not. Yet we endure toward that direction as we struggle to determine what labor, work, and the prodcut of said labor mean.\n\n\"Technical principles alone are insufficient to determine the design of actual devices(The Limits of Technical Rationality, Feenberg, Andrew, pg 79)\" in the words of Andrew Feenberg. If the various technical solutions to a problem have different effects on the distribution of power and wealth, then the choice between them is political and the political implications of that choice will be embodied in some sense in the technology. If you’re not able to imagine a unique play in rocket league you probably won’t be able to create it. Using our creative imagination could enhance our creative capability. It does even.\n\nIn Exploring Technology & Philosophy with Feenberg, he gives a negative example of how conceptual structure emerges from a physical design. The Southern State Parkway bridges were too low for buses which in effect kept Black people out. Nobody wrote that in a requirement doc. The design just happened to have that effect. Very imaginative if you're into racism. The engineers probably weren't thinking about buses at all. That's the thing about exclusion baked into design. It doesn't need intent. It just needs the right people not being in the room when the decisions get made. Which is exactly where we are with the systems being built right now.\n\n<iframe\n  width=\"560\"\n  height=\"315\"\n  src=\"https://www.youtube.com/embed/4Q6yleTpbh0?si=zmJ_DMc-5ytEqNxY\"\n  title=\"YouTube video player\"\n  frameBorder=\"0\"\n  allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n  referrerPolicy=\"strict-origin-when-cross-origin\"\n  allowFullScreen\n></iframe>\n\nWhere is this invisible gap between the things we can imagine and the things we\ncan do in software? If what we imagine is tied to the use of a technological\ntool, how do we resist being driven by the technology itself. How do we resist having our cultural identity uprooted? Unfortunate it is that we have \"market forces\"\nwhich abstract our identities and subjugate them through our labor, our lives\nbecoming captured by oligarchs and their spawn. We have no purpose. \n\nThis [METR](https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/)<sup><a href=\"#fn-12\">12</a></sup>\nfinding Denis Stetskov [cites](http://techtrenches.dev/p/your-claudemd-is-a-wish-list-not)<sup><a href=\"#fn-13\">13</a></sup> finds developers using AI _took 19% longer_ on\nreal-world tasks while _predicting they'd be 24% faster_. The gap between\nperception and reality was 43 percentage points. That's not productivity my guy.\nWhat is it they want to speed up you think? Is it...Our Jobs????\n\n![](/images/rocketleague-1.webp)\n\nForgive me ahead of time for placing two quotes back to back plzzz 🙏 but i feel Boggs is prescient in diagnosing the modern labor condition. He says: \n\n>Today when automation and cybernation are shrinking rather than expanding the workforce, many people still think in the same terms. They still assume that the majority of the population will be needed...They have not been able to face the fact that even if the workers took over...they would also be faced with the problem of what to do with themselves now that work is becoming socially unnecessary. They have not been able to face this fact because they have no clear idea of what people would do with themselves, what would be their human role, or how society would be organized when work is no longer at the heart of society. I don't think Marx would have had any difficulty in facing this fact...[h]owever, Marx is dead and one cannot continue to quote him as an all-time solution for social problems...A new theory must be evolved, and it is likely to meet as much opposition as Marx's has met. (Pages From a Black Radical's Notebook, Bogg's, James, pg. 106)\n\nThis was 63 years ago btw. Drucker, for whatever his flaws as a management prophet of capital, at least had the clarity to name what the task actually was:\n\n>We, therefore, face a big task of identifying the areas in which social and political innovations are needed. We face a big task in developing the institutions for the new tasks, institutions adequate to the new needs and to the new capacities which technological change is casting up. And, finally, we face the biggest task of them all—the task of ensuring that the new institutions embody the values we believe in, aspire to the purposes we consider right, and serve human freedom, human dignity, and human ends (The Drucker Lectures: Essential Lessons on Management, Society and Economy, Peter F. Drucker, Rick Wartzman, pg 43)\n\nAs in rocket league when you’re experiencing cognitive dissonance between what you think is happening, what is happening, and what you want to happen, so too in SWE should we be asking ourselves what do we want to do. How do we want this technology to be used? We could just say no. I don't have any transformative theory in addressing this ageless issue with productive labor in knowledge work. I think we’re not gonna be able to stop a state with a few million dollars to throw at any issue. But we can start thinking about things. We can at least level the playing field using an open source ethos such that corporations have to at least pretend to put resources into something uncompetitive. In a [2022 article](https://debugagent.com/open-source-bait-and-switch)<sup><a href=\"#fn-14\">14</a></sup> on open source software, Shai Almog said \n\n>Major corporations use open source as a weapon to fight each other, we seem to benefit in the short term. But as they win the corporate mindset takes over and they double down on control. The solutions I suggest are: Use GPL - it’s here to protect community rights. No wonder corporations don’t like it. Don’t be an OSS puritan - small companies need to make money. They will offer SaaS, closed source extensions, etc. That’s OK. Big corporations aren’t benevolent - the advocacy I see around OSS projects from FAANG (MAANG) companies is problematic. They don’t support OSS. They use and leverage it. Don’t get me wrong, I’m grateful for their code and it’s wonderful they release it. But we need to be cautious, they have fiduciary requirements that might collide with doing the “right thing” by OSS standards. I don’t know if the next thing I’ll do will be OSS. I don’t know if I’ll pick GPL since, as I said, people have an issue with it. But I do know this: if you’re an open source advocate. Tune down the rhetoric. It isn’t helpful.\n\nSo, how does one get better at programming when the game is so much more than the program? It is probably accepting you do not know much and continuously learning about how the game is played. If you are like me that may mean projects, articles, and failing to get past chapter one of The Art of Computer Programming by Donald Knuth. It definitely won’t mean freaking out about whatever new technology or tool comes out that threatens my identity nor sucking life milk from the tit of Elon Musk and Dario Amodei while putting our savings into ETH and NVIDIA stocks. \n\nI would rather be an urban farmer. That does not mean black farmer, it just means city farmer. For you assholes. I mean I'd still be a black, city farmer. But I'm getting off track. Technology is not the result of _\"market forces\"_. It is shaped by democratic participation (explored in the youtube video on exploring technology and philosophy). The question we have for our time isn't whether to have AI or not. The question Feenberg and Boggs move me to investigate is who has a seat at the table when technical decisions get made? At the highest levels: capital. Not workers. Not users. Not communities. Rich people are not your daddy. And if they are your daddy tell em slide me like 35K for the culture. \n\nWe have already faced the \"question of automation: whether to be for the technological revolutions of automation despite all the people who will be displaced, or to be opposed to this advance, sticking with the old workers who are resisting the new machinery, as workers have done traditionally since the invention of the spinning jenny. (Pages From a Black Radical's Notebook_, Bogg's, James, pg. 104)\". The result was the displacement of factory workers. \n\n\nI think the solution to any issue around some emergent technology will most definitely include the issues that existed prior to said issue. There has always been an issue hiring. There has always been an issue reviewing PRs in small teams. Businesses have always cut IT departments for profit margins. Matchmaking in Rocket League has been problematic since they removed the option to choose solo or team queues. Rocket League is a small community of vocal nerds who will complain about the [game if it gets too bad](https://www.youtube.com/watch?v=9SLSZcd4mxY&t=140s)<sup><a href=\"#fn-15\">15</a></sup>.\n\nThe scale of labor is a bit harder to address. We can’t really escape the nature of our work until we invert the dynamic of being skilled labor captured by market forces. We should at some point ask ourselves how we shall steward technology. Not like the OpenAI bait and switch but as like, idk, a collection of laborers. Maybe like stewards. Guardians of tech. Team....Hmmm. Code Collective...probably taken. But we should be a group with some name that unites us. I’m not sure if there’s a word for it…\n\nmaybe it's the thing they are [trying at DeepMind](https://www.wired.com/story/google-deepmind-unionization-talks-are-off-to-a-rocky-start/)<sup><a href=\"#fn-16\">16</a></sup>\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">Tell New York Times, The Atlantic, and USA Today to keep the crucial work of journalists in the Wayback Machine! — Fight for the Future. <a href=\"https://www.savethearchive.com/NewsLeaders\">https://www.savethearchive.com/NewsLeaders</a></li>\n  <li id=\"fn-2\">Reddit - Please wait for verification. <a href=\"https://www.reddit.com/r/RocketLeague/comments/1epp09u/what_current_metatrend_irks_you_about_the_game/\">https://www.reddit.com/r/RocketLeague/comments/1epp09u/what_current_metatrend_irks_you_about_the_game/</a></li>\n  <li id=\"fn-3\">🚀 Rocket League Meta in 2025: Climbing Out of Champ 1 — Ficking Games. <a href=\"https://fickinggames.com/rocket-league-meta-2025/\">https://fickinggames.com/rocket-league-meta-2025/</a></li>\n  <li id=\"fn-4\">I trained 3 diamond players, but they were only allowed to do ONE thing — YouTube. <a href=\"https://www.youtube.com/watch?v=MmNPim7kzq8&t=12s\">https://www.youtube.com/watch?v=MmNPim7kzq8&t=12s</a></li>\n  <li id=\"fn-5\">Reddit - Please wait for verification. <a href=\"https://www.reddit.com/r/RocketLeague/comments/1l2l6hu/is_rocket_league_coaching_underrated_or_overrated/\">https://www.reddit.com/r/RocketLeague/comments/1l2l6hu/is_rocket_league_coaching_underrated_or_overrated/</a></li>\n  <li id=\"fn-6\">Rocket League Rank Distribution in Season 22 and percentage of players | Esports Tales — Esports Tales. <a href=\"https://www.esportstales.com/rocket-league/seasonal-rank-distribution-and-players-percentage-by-tier\">https://www.esportstales.com/rocket-league/seasonal-rank-distribution-and-players-percentage-by-tier</a></li>\n  <li id=\"fn-7\">Rocket League Leaderboard - Ranked Doubles 2v2 Rating - Rocket League Tracker — Rocket League Tracker. <a href=\"https://rocketleague.tracker.network/rocket-league/leaderboards/playlist/all/default?playlist=11&season=37&type=playlist&page=1\">https://rocketleague.tracker.network/rocket-league/leaderboards/playlist/all/default?playlist=11&season=37&type=playlist&page=1</a></li>\n  <li id=\"fn-8\">https://www.rocketleague.com/en/news/easy-anti-cheat-comes-to-rocket-league-on-pc-today. <a href=\"https://www.rocketleague.com/en/news/easy-anti-cheat-comes-to-rocket-league-on-pc-today\">https://www.rocketleague.com/en/news/easy-anti-cheat-comes-to-rocket-league-on-pc-today</a></li>\n  <li id=\"fn-9\">Endianness - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/Endianness\">https://en.wikipedia.org/wiki/Endianness</a></li>\n  <li id=\"fn-10\">libraw — Hex. <a href=\"https://hex.pm/packages/libraw\">https://hex.pm/packages/libraw</a></li>\n  <li id=\"fn-11\">The Art of Computer Programming - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming\">https://en.wikipedia.org/wiki/The_Art_of_Computer_Programming</a></li>\n  <li id=\"fn-12\">Measuring the Impact of Early-2025 AI on Experienced Open-Source Developer Productivity. <a href=\"https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/\">https://metr.org/blog/2025-07-10-early-2025-ai-experienced-os-dev-study/</a></li>\n  <li id=\"fn-13\">Your CLAUDE.md Is a Wish List, Not a Contract. <a href=\"http://techtrenches.dev/p/your-claudemd-is-a-wish-list-not\">http://techtrenches.dev/p/your-claudemd-is-a-wish-list-not</a></li>\n  <li id=\"fn-14\">Open Source Bait and Switch — DebugAgent. <a href=\"https://debugagent.com/open-source-bait-and-switch\">https://debugagent.com/open-source-bait-and-switch</a></li>\n  <li id=\"fn-15\">I&#39;m not going to hide it anymore... — YouTube. <a href=\"https://www.youtube.com/watch?v=9SLSZcd4mxY&t=140s\">https://www.youtube.com/watch?v=9SLSZcd4mxY&t=140s</a></li>\n  <li id=\"fn-16\">Google DeepMind Unionization Talks Are Off to a Rocky Start — WIRED. <a href=\"https://www.wired.com/story/google-deepmind-unionization-talks-are-off-to-a-rocky-start/\">https://www.wired.com/story/google-deepmind-unionization-talks-are-off-to-a-rocky-start/</a></li>\n</ol>","title":"Playing Rocket League and Navigating your Career as a Software Engineer are not so Dissimilar Experiences","date":"2026-05-05T04:32:57.807Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"essay","tags":["work","ai","media","archives","class"],"blurb":"Rank distribution, mechanical skill, and tech workers as stewards of the history they are letting get deleted."},{"slug":"FINE_SHYT_Intelligent_Curation_Tagging_for_Creative_Workflows","rawContent":"# **Intelligent** Curation Tagging for Creative Workflows\n\nGithub link: [fineshyt](https://github.com/qweliant/fineshyt)<sup><a href=\"#fn-1\">1</a></sup>\n\n## Problem and Motivation\n\nI have thousands of photos. Like approximately 14,000 RAW, TIFF, RAF, JPG, and JPEG files. Setting aside the time, cost, and workflows I do not know of using tools such as lightroom or Pixea, Its also hard to find which photos are meet my imaginary threshold for being an artful memory. Which am I emotionally attached to because I spent 45 minutes on my knees in the dirt? Which has that grain that makes me goo ohhh? Wait one sec, peep my shi.\n\n![keep this smaller](/images/fineshyt-1.webp)\n\n![Hehehe tryna tell you I'm nice with this camera shi. This sumn light fr](/images/fineshyt-2.webp)\n\n<small>Hehehe tryna tell you I'm nice with this camera shi. This sumn light fr</small>\n\nThis problem presented a good excuse to excuse to hop back into using machine learning tools as software. The last time I did anything in this space was [deploying a transformer model in 2021](https://qwelian.com/posts/Deploying_Transformer_Models)<sup><a href=\"#fn-2\">2</a></sup>. In AI years that's basically as old as your mom... The original idea sounded plausible: describe my aesthetic to a local vision model, point the app at a folder, and let it tell me which images matched my taste. Feed in a prose description, scan the archive, get back the fine shyt if you will 😉. But once I started building around that premise, it became obvious that a style classifier couldn't classify images outside of the prompt it began with. I wanted a way to make judgment possible again inside a giant, messy archive\n\n## System Overview\n\nThe first version asked a vision LLM whether a photo matched your style based on a prose description of your taste.\n\nThat approach was useful, but it exposed a few weaknesses:\n\n1. Visual taste is hard to encode in text. The model's understanding of the aesthetic I prompted for and the one it believed matched my aesthetic drifted far from one another.\n\n2. It was expensive! The amount of compute LLaVa takes to run the classification task could spike total RAM usage to 15 gigs. It's literally easier to run bg3\n\nThe larger problem was architectural. My ratings were not actually shaping the system. There was kinda no point to rating the images if they didn't affect what was being considered a match. The system was primed for being AI driven but the AI elements were being used poorly. To make use of a better architecture, the LLaVa model now handles descriptive metadata only, while taste is learned from your own rating history via CLIP embeddings and a preference model. This better matched the core idea in the project's \"vibe / affinity\" direction. The system could now learn what fine shyt was based on my behavior instead of a one-time prompt.\n\nYou still point the app at a folder of images and let it ingest a sample from your archive. The system computes quality signals(sharpness, exposure), converts files, extracts metadata with LLaVa, generates CLIP embeddings, and streams the results into a live gallery. From there you can review and rate the images you load in. The machine helps with description and triage. It will prioritize reviewing images that are are probably my vibe. The aesthetic direction is something you tune by reviewing the images you ingest. Descriptive judgment, technical judgment, and personal preference are treated as different problems instead of being collapsed into one model verdict.\n\nBrief Architecture Overview\n\nThe system is split into an orchestrator and an AI worker. The orchestrator owns the UI, queueing, persistence, and real-time updates. The AI worker handles image processing, metadata extraction, embeddings, and preference-related computation.The pipeline is staged so each step can fail, retry, and scale independently.\n\n![](/images/fineshyt-3.webp)\n\n## Ingestion and the Curation Pipeline\n\nPhotos enter the system through a local scan. RAW/TIFF is decoded via libraw/Pillow, downsized to a 1440px JPEG (what the gallery and LLM both consume). **Before downsizing,** sharpness (variance-of-Laplacian) and exposure (histogram clipping) are measured on the full-res pixels. These become sharpness_score and exposure_score which are pure image-statistics signals, no model involved. AN EXIF timestamp is pulled out to fill captured_at (used later by burst detection). This outputs a row in photos with the JPEG path and technical quality score. The ingestion layer also has to be careful about not reprocessing the same image over and over, which is why idempotency is part of the design from the start: shortcode uniqueness, `already_processed?`, and existing stem checks all exist to keep the archive from turning into a duplicate factory.\n\nFrom there, the work is split into a staged pipeline rather than one giant \"analyze photo\" task. That decomposition is both a product decision and an engineering one. It keeps each step understandable, makes failures easier to isolate, and lets the system retry one part of the process without discarding everything else that already succeeded\n\nA typical photo moves through a sequence like this:\n\n- **ConversionWorker**\n\n    Opens the original file, whether that is RAW, TIFF, or some more ordinary image format.\n\n    Computes technical quality signals and extract file-level metadata before later stages abstract the image down into a model-friendly format.\n\n    Produces a workable JPEG for downstream use.\n\n    Saves the new file to orchestrator/priv/static/uploads\n\n- **AiCurationWorker**\n\n    Sends the converted image to the vision model.\n\n    Its job is descriptive metadata only: what is in the image, what kind of mood it suggests, how the lighting reads, and what tags might help later organization.\n\n    It is no longer responsible for deciding whether a photo matches your taste. That boundary matters.\n\n- **Embedding / preference-related work**\n\n    Once the photo exists in a stable converted form, the system can compute an embedding and use rating history to support personalized preference scoring.\n\n    This is where the taste-learning loop starts to take shape, because the archive is no longer being judged only by a generic model response. It is being judged by a model that learns from your ratings over time, so the more you use it, the better it gets at surfacing the photos you like.\n\nThe end result is a pipeline that behaves more like a production workflow than a one-shot script. A failure in metadata extraction should not force reconversion. A bottleneck in model inference should not block the archive from making forward progress elsewhere. And once the jobs start landing, results can stream into the gallery while processing is still ongoing, making the system feel less like \"wait for batch job to finish\" and more like an active curation workspace\n\nThe numbers help make that real. In one case, the system surfaced 17 photos out of 489 that actually fit into a project. In a larger run, out of around 3,600 processed photos, 214 emerged as matches worth reasoning about for future projects. At this pace, I can should be able to make it through about 2000 photos a session. Possibly the entire backlog 14,000 in a week.\n\n## The AI worker: Metadata, Embeddings, and Preference Training\n\nThe ML pipelines first job is to retrieve structured visual metadata. Given an image, it should return useful, consistent fields such as subject, artistic mood, lighting critique, content type, and suggested tags. This is a better fit for the strengths of a vision model: describing what it sees and producing metadata that helps later filtering, browsing, and organization\n\nThe JPEG goes to the locally hosted LLaVa model via Ollama(swappable to Claude or huggingface). Local inference is appealing because it is private and effectively free after setup, though it turns image analysis into a very literal hardware problem. RAM is now the only bottleneck and \"cheap\" becomes a question of patience and thermals. The worker uses instructor to force the response into a Pydantic schema. Crucially, the prompt asks only for descriptive fields; what's in the photo, what the light looks like, what it could be tagged as. It is not asked \"do I like this\" or \"does this match my style.\" That job belongs to the preference model. If you swap LLaVA for Claude, the text of these fields gets sharper, but the taste verdict doesn't change because the taste model doesn't read them.\n\n```python\nVALID_CONTENT_TYPES = {\n    \"portrait\", \"street\", \"family\", \"landscape\", \n    \"still_life\", \"architecture\", \"abstract\", \"other\"\n}\n\ndef coerce_content_type(v: Any) -> str:\n    \"\"\"Forces invalid LLM outputs into the 'other' category.\"\"\"\n    if isinstance(v, str):\n        v_lower = v.lower().strip()\n        if v_lower in VALID_CONTENT_TYPES:\n            return v_lower\n    # If the LLM hallucinates 'artwork' or anything else, default to 'other'\n    return \"other\"\n\n# Create a custom type using the validator\nSafeContentType = Annotated[str, BeforeValidator(coerce_content_type)]\n\nclass PhotoMetadata(BaseModel):\n    subject: str = Field(description=\"The primary subject of the photo. Be specific — describe what is actually depicted.\")\n    content_type: SafeContentType = Field(\n        description=(\n            \"The primary content category. Choose exactly one: \"\n            \"'portrait' = single person, headshot, or environmental portrait; \"\n            \"'street' = candid urban/public life, people in city environments; \"\n            \"'family' = groups of people, gatherings, events, snapshots; \"\n            \"'landscape' = outdoor scenery, nature, no dominant human subjects; \"\n            \"'still_life' = objects, food, close-up of non-living things; \"\n            \"'architecture' = buildings, interiors, urban structures; \"\n            \"'abstract' = non-representational, heavy manipulation, or texture-focused; \"\n            \"'other' = anything that doesn't fit the above.\"\n        )\n    )\n    lighting_critique: str = Field(\n        description=\"A brief, one-sentence critique of the lighting and contrast.\"\n    )\n    artistic_mood: str = Field(description=\"The emotional tone of the photo.\")\n    suggested_tags: list[str] = Field(description=\"5 to 7 specific tags describing technique, mood, or subject for a portfolio database. Do not include generic terms like 'photography' or 'photo'.\")\n\n```\n\nIn a separate model pipeline, **CLIP turns each photo into a vector.** CLIP (ViT-L-14, a vision transformer trained on 2B image-text pairs) runs each photo through its image encoder and spits out a **768-dim L2-normalized embedding,** a point in a semantic space where visually/conceptually similar photos land near each other. This is the feature extractor. CLIP was trained contrastively on 2B image-text pairs, so the geometry of this space already encodes \"looks similar,\" \"same subject,\" \"same mood\", all things that correlate with what you'd rate highly. Nothing about fine shyt yet. Not our fine shyt at least. That distinction also keeps the architecture honest. The worker can be pointed at different model providers through environment configuration — local inference through Ollama, hosted APIs, or other compatible endpoints — but the model choice changes the source of descriptive intelligence, not the source of authority. Local inference is appealing because it is private and effectively free after setup, though it turns image analysis into a very literal hardware problem: the fans spin, the queue grows, and \"cheap\" becomes a question of patience and thermals. Hosted models are easier to scale, but the core design stays the same either way: the model annotates; I decide.\n\nWhen the embedding lands, the worker checks `photo.user_rating`:\n\n**Unrated** → enqueue `PreferenceScoreWorker`. Just compute its score against the existing model. No retrain. This is the hot path during batch import of hundreds of new photos.\n\n**Already rated** → enqueue `PreferenceTrainWorker`. This photo is a new (embedding, rating) pair; the model should actually relearn.\n\nEvery star press writes `user_rating` (1–5) and enqueues `PreferenceTrainWorker` with trigger: `rating_change`. When retraining our ridge regression model we need to gather our photos. `Photos.list_rated_with_embeddings/0` returns `[{id, clip_embedding, user_rating}]` for every \"complete\" photo with both, and will bail if there are fewer than 20 data points. **Ridge regression** is the taste model: a linear  on top of CLIP features with L2 regularization (`alpha=1.0`) so a small label set doesn't overfit. It outputs a 768-dim weight vector `w` and a scalar `b` such that `rating ≈ w·x + b`. Geometrically, `w` points in the direction of \"things you rate highly\" through CLIP space. That rating becomes the integer `preference_score`. The gallery's **MATCH** badge fires when `preference_score >= Photos.match_threshold()` (currently 70, deliberately tuned to sit just under the median score of any 5 star photos).\n\nThe operational ugliness of this workflow has to stay visible. `_status_for` and `_error_detail` on the Python side unwrap `openai.APIError` so upstream codes, 404 model-not-found, 413 payload-too-large, 429 rate-limited, survive the hop to Elixir as structured payloads. `AiCurationWorker.format_api_error/1` parses them back into human sentences, photos land in a `curation_status: \"failed\"` lane with a populated `failure_reason`, and every worker hands the failure plus its Oban `attempt`/`max_attempts` counters to `ErrorLog.record/1`, itself wrapped in `rescue` so the audit trail can't be taken down by the thing it's auditing. Inserts broadcast on PubSub to a real-time `/logs` feed. AI pipelines fail in extremely specific and uninteresting ways (the LLM returns a string where a float should be, `rawpy` segfaults on one RAW in a thousand, Ollama 429s under burst, a worker vanishes mid-inference). Most of the work here is figuring out why outputs are malformed, why a worker is wedged, or why jobs disappeared into the void, which required an error log rather quickly.\n\n## The Two Pass Loupe View\n\nThe most important design in the project was that this enabled curation. This sounds rather silly but my original idea would have collapsed the entire process into a verdict based keep or reject workflow based on the LLM of choice. That is efficient in theory, but it skips over the act of looking at my photos. In practice, the whole point of the system is that the machine helps me get through the archive, while I remain the person deciding what matters. That is why the review experience ended up centered on a two-pass loupe workflow rather than a single screen\n\nThe first pass is for culling. In that mode, I am moving quickly through unrated images. The culling process prioritize the photos with the lowest vibe match first. In that workflow I am trying to answer whether a photo deserves to stay in the archive at all. Photos are soft deleted in this stage. Rejected does not mean deleted. A rejected photo still needs to exist as a record so the system knows it has already been seen and should not come back through the same culling pass. Hard delete is a separate, explicit action. I am able to protect the archive, preserve review history, and keeps the app aligned with the fact that creative judgment changes over time. This also guarantees I can free up disk space while going through the 14K or so images I have. Perfect for me bc my computer can barely fit Bulder's Gate 3. The second pass is for rating. That mode is slower and more comparative. Once an image has survived the initial cut, I want to judge it against nearby maybes, not against obvious rejects. That is where the archive starts to feel less like a pile of files and more like a body of work. A collection of fine shyt if I may 😃.\n\nThe keyboard-first interaction matters here. Good review flow depends on minimizing friction between seeing and deciding. The interface should support that rhythm rather than interrupt it with too many clicks, modal confirmations, or clever UI tricks. Rejection can auto-advance because the decision is definitive enough to keep momentum. Ratings are different: when I assign one, I usually still want the image to remain in place for another second so I can think about why I like it. That tiny UX distinction matters because it reflects the actual psychology of editing. I need to sit with a photo, consider it's origin, and wonder about where it may fit. I've found myself with a family photo album of round 40 photos. In other words, the loupe view is where the whole project stops being an AI pipeline for images and becomes a tool for editing photographs. The model can describe, score, and suggest and the interface has to make judgment feel natural.\n\n## The Output\n\nPlenty of images are competent, interesting, or emotionally charged without belonging anywhere. With the current approach I achieved both a cleaner archive and a way to surface images that belong together. Family photos, the beginning of a series, a blog post, a potential photo submission. I can group them and have them in my system and that be fine, but the project export layer gives the whole review process a destination that adds to my overall creative output.\n\nOnce enough photos have been rated and grouped, the app can export approved images for downstream use. In practice, that means the archive can feed a blog or publishing workflow instead of ending at the interface. Unrated photos do not go out. An image only exports if I have actually judged it, and if it meets one of the approval paths: a strong rating, a manual pick, or a sufficiently high preference score. That rule keeps the system aligned with the whole philosophy of the project. Machine assistance is allowed, but publication still requires a human opinion.\n\nThe export step also writes out structured metadata alongside the images, including things like tags, mood, preference score, rating, and project name. That matters because the point is not only to move files around; it is to preserve the reasoning context that made those files meaningful. Once that data exists outside the app, the curation work can continue somewhere else. It could now be simple to make a tool that ingest these photos and creates my own storefront for photo prints. Or they could just go in my photography portfolio. Seen this way, projects are what rescue the whole system from being an especially elaborate sorting exercise. The archive is being shaped toward making things.\n\n## What I learned\n\n_Lesson 1:_ LLMs have no taste. Demote them to data-entry clerks.\n\nAt first, it was tempting to ask the model for the thing I actually wanted. It would tell me whether this photo feels like me. That shortcut turned out to be less useful than it sounded and was legit giving me anything with blur or a lot of grain back. The model could describe an image, sometimes eloquently, but descriptive fluency is not the same thing as aesthetic trust. Once I separated metadata from judgment, the whole system got clearer. The model became more reliable because it was being asked to do less, and the product became more honest because it stopped pretending otherwise. I am less of a hack for that lesson\n\n_Lesson 2:_ AI pipelines in personal software are just glorified plumbing. If you don't build idempotency and error queues (Oban), your archive turns into a duplicate factory.\n\nBreaking ingestion into stages like conversion, metadata extraction, inference, embeddings, backfills, sift deletes, and export was more work up front, but it made the system behave like a workflow instead of a demo. Failures became visible. Retries became possible. Adding new features to old photos became a matter of backfill tasks instead of full reprocessing. Managing computer resources became effective. It's is the kind of operational complexity that sounds unnecessary in a write-up but actually determines whether a tool survives contact with a real archive.\n\n_Lesson 3:_ The hardest part wasn't the math (I trusted Claude with that). The hard part was building a system that respects that my taste might change in 6 months.\n\nLocal-first image workflows are only simple in concept. Even the pleasant-sounding version of the setup, \"point at a directory and import\", hides a lot of necessary mechanics underneath. In reality, building this meant dealing with format weirdness, RAW support headaches (shelling out to Python to decode RAWs because native Elixir libraries don't exist yet feels like dark magic), filesystem coordination, EXIF gotchas, and synchronizing state between the Elixir orchestrator and the Python AI worker without losing data.\n\nThe hardest product questions were often the least glamorous ones. Not \"which vision model should I use\", unfortunately, but \"should a rejected photo auto-delete?\", \"what actually counts as deleted?\", and \"how do I keep old work from resurfacing in annoying ways?\" Those decisions ended up defining the experience more than any specific machine learning model did. Personal software inherits all the messiness of personal data, and a system like this has to be flexible enough to handle the fact that what I consider fine shyt today might not be what I consider fine shyt next year.\n\n## Conclusion\n\nAlright lets wrap this up. To sum it up this project taught me to demote the LLM, respect the operational plumbing, and treat photo curation as an interface problem just as much as an AI problem. The machine can do the heavy lifting, compute the embeddings, and guess the vibe, but the publication still requires a human opinion. Turns out fitting models is still the fun part. I should avoid leaning on the fancier generation magic of LLM's in software architecture.\n\nNow if you'll excuse me, I have cleared enough photos in the archive to safely download Baldur's Gate. I won't resist the durge this time.\n\n\nGithub link: [fineshyt](https://github.com/qweliant/fineshyt)<sup><a href=\"#fn-1\">1</a></sup>\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">GitHub - qweliant/fineshyt — GitHub. <a href=\"https://github.com/qweliant/fineshyt\">https://github.com/qweliant/fineshyt</a></li>\n  <li id=\"fn-2\">Deploying Transformer Models. <a href=\"https://qwelian.com/posts/Deploying_Transformer_Models\">https://qwelian.com/posts/Deploying_Transformer_Models</a></li>\n</ol>","title":"Intelligent Curation Tagging for Creative Workflows","date":"2026-04-20T00:38:36.868Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"build","tags":["ml","ai","elixir","python","beauty","work"],"blurb":"14,000 RAWs and no taste-shaped filter. CLIP embeddings plus a probe trained on my own stars.","thread":"tools-that-know-you","threadOrder":2},{"slug":"Building_an_Open-Source_Safety_Net_for_Home_Hemodialysis","rawContent":"# Building an Open-Source Safety Net for Home Hemodialysis\n\nHome hemodialysis gives patients their lives back but it introduces the\nrisk of isolation. If a patient's blood pressure crashes or a line\ndisconnects while their care partner is in the other room asleep, the\nmachine sounds an alarm, but it only beeps in the room. It doesn't text\nthe spouse, it doesn't alert the clinic, and it doesn't notify emergency\ncontacts.\n\nI lost my mother to a disconnect in home care. I built **Safehemo** to be\nthe digital support system I wish we had. Here is a breakdown of how I\nbuilt an open-source, real-time care network and IoT simulation pipeline\nusing Elixir, Phoenix LiveView, and Rust.\n\n## **Why Elixir and Phoenix?**\n\nWhen dealing with medical telemetry the system needs to be highly\nconcurrent, fault-tolerant, and capable of real-time state management.\nThe language I chose also needed to support embedded devices natively.\nThe architectural goal is that the physical medical devices themselves\ncan eventually run the same stack (via frameworks like Nerves). This\nallows us to push data, offload processing, and even debug hardware\nremotely without relying on a single, fragile point of interaction.\nI chose **Elixir and Phoenix LiveView** because the\n[BEAM was created](https://medium.com/flatiron-labs/elixir-and-the-beam-how-concurrency-really-works-3cc151cddd61)<sup><a href=\"#fn-1\">1</a></sup>\nto run tens of thousands of devices.\n\n## **BEAM**\n\nI have been looking for any reason to use Elixir since seeing this talk\non [LiveView](https://www.youtube.com/watch?v=f4kd-g3Evtw)<sup><a href=\"#fn-2\">2</a></sup> by\n[Sophie DeBenedetto](https://sophiedebenedetto.com/)<sup><a href=\"#fn-3\">3</a></sup>. Elixir is a\nfunctional programming language designed by **[José Valim](https://elixir-lang.org/development.html)<sup><a href=\"#fn-4\">4</a></sup>** in 2012. It\nis built on top of the **[BEAM](https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine)<sup><a href=\"#fn-5\">5</a></sup>)** virtual machine originally engineered by\nEricsson in the 1980s and 90s to run massive, highly reliable **telecom\nnetworks**. The work on the BEAM VM required fault tolerance and\nconcurrency. Dropping calls is not cool. The language I wanted also\nneeded to be able to support embedded devices. The idea is, theoretically\nI suppose, that each device could natively support pushing data through\nthe system I imagined, allowing data processing and device debugging to\nbe offloaded from a single point of interaction.\n\nOther languages I evaluated were Go, TypeScript, and python. Any of\nthese tools could be built to run concurrent, fault tolerant systems\n(see the [c10k](https://www.kegel.com/c10k.html)<sup><a href=\"#fn-6\">6</a></sup> problem). Go was\ninteresting because I had used it before and wanted to explore how its\n**[concurrency primitives enable true parallelism](https://leapcell.io/blog/the-dance-of-concurrency-and-parallelism-in-golang)<sup><a href=\"#fn-7\">7</a></sup>**. Go is genuinely\nstrong for embedded work. It compiles to a single static binary,\ncross-compiles to ARM and has lower raw memory overhead than\nthe BEAM. But those strengths are most valuable for CPU-bound,\nsingle-purpose tools. For a distributed IoT system that needs\n**\"five nines\" uptime**, preemptive scheduling across thousands of\nconcurrent connections, and the ability to hot-patch a deployed device\nwithout a full restart, Go's shared-memory runtime and lack of a\nsupervision tree become real liabilities. Elixir's **Nerves** project\nprovides an integrated stack from hardware to web UI while\nthe BEAM's `iex --remsh` lets me connect to a running device in\nproduction for live debugging. Go does not do that. Plus I am lazy and don't want to build a custom WebSocket server or background job processor.\n\nTypeScript was appealing because I am proficient with it, but the modern\nNext.js/React ecosystem treats WebSockets as a second-class citizen,\nfavoring **serverless HTTP**. I could have spun up a custom Node/Express\nserver for WebSockets, but scaling Node requires introducing a **Redis**\npubsub backplane to sync state across instances. Python would be a strong\nchoice for its ML library dominance but to get real-time WebSockets and\nbackground tasks working in a Django/**ASGI** environment, we'd need to\nadd Redis, **Celery**, and potentially **RabbitMQ**.\n\nBy choosing Elixir, I get concurrent real-time connections via the\nBEAM's [actor model](https://www.instagram.com/reel/DS2GWB3jCHY/?igsh=b2ttbHZzdDV1a3Vp)<sup><a href=\"#fn-8\">8</a></sup>\nwith `PubSub` between processes, stateful servers, and background\nprocessors built in.\n\n#### **GenServers**\n\nTo enable this architecture, Elixir ships with OTP (Open Telecom\nPlatform). OTP is a standard library that includes all the tools you\nwould need to add onto most languages. It gives us native primitives for\nreal time distributed processing via modules such as `GenServers` for\nstate, `Task` for background jobs, `Registries` for fast process look\nup, and `Supervisors` to manage process lifecycles. The system should start a new GenServer, allow\nour GenServer to spawn background Task for asynchronous data handling,\nadd our GenServer to a Registry for fast lookup, and a Supervisor to\ninstantly restart crashed processes.\n\nGenServers are stateful, isolated micro-processes. Because they hold\nstate in memory we do not have to constantly read/write data to a Redis\ncache or Postgres database just to calculate some value. If the\n*connection* drops, the state is preserved in memory (the GenServer\ncrashing and losing state is a very different story), so the accumulated readings and\nthresholds remain intact. This is crucial for calculating anomalies and determining when to trigger alerts. The GenServer's state is also where we store the\npatient's custom thresholds for each vital sign. This allows us to compare incoming telemetry data against the patient's unique baselines in real-time, without needing to query the database on every reading.\n\nHere is a simplified look at how the (you should be wondering\nwhat makes a process spawn)\n[device GenServer](https://github.com/qweliant/ankaa/blob/main/ankaa_beacon/lib/ankaa/monitoring/device_server.ex)<sup><a href=\"#fn-9\">9</a></sup>\nhandles a new telemetry payload in real-time:\n\n```elixir \ndef handle_cast({:new_reading, payload}, state) do\n  # 1. Parse incoming MQTT payload based on device type\n  reading = parse_payload(payload, state.device.type)\n\n  # 2. Check for anomalies against the patient's custom thresholds\n  violations = Ankaa.Monitoring.ThresholdChecker.check(reading, state.thresholds)\n\n  # 3. Determine if we need to escalate based on previous state\n  # (e.g., Is this a new anomaly? Has the \"nag timer\" expired?)\n  {new_state, should_alert?} = evaluate_alert_state(state, violations)\n\n  if should_alert? do\n    Logger.info(\"Triggering Alert for Patient #{state.patient.id}\")\n    Ankaa.Alerts.create_alerts_for_violations(state.patient, violations)\n  end\n\n  # 4. Instantly broadcast the new reading to the Phoenix LiveView dashboard\n  Phoenix.PubSub.broadcast(\n    Ankaa.PubSub,\n    \"patient:#{state.patient.id}:devicereading\",\n    {:new_reading, reading, violations}\n  )\n\n  # 5. Spin off an async Task to save to the DB so we don't block the GenServer loop\n  Task.start(fn -> Ankaa.Monitoring.save_reading(state.device, reading) end)\n\n  # 6. Keep the GenServer alive with the newly updated memory state\n  {:noreply, new_state}\nend\n\n```\n\nIf you look at the bottom of that `handle_cast` function, you'll notice\ntwo crucial BEAM features that keep the system non-blocking and\nreal-time: `Task` for background processing and `Phoenix.PubSub` for\ninstant message broadcasting across the cluster.\n\n#### **Task**\n\nThe GenServer's primary job is keeping the state in memory and\ncalculating anomalies. Writing to a PostgreSQL database is comparatively\nslow. Instead of blocking the GenServer while we wait for the database\nto acknowledge the write, we spin up an asynchronous `Task`. This fires\noff a lightweight background process to handle the database insert,\nfreeing up the GenServer to catch the next set of incoming device data.\nIn other languages, you'd have to set up Celery or Sidekiq for this.\nIn Elixir, it's just `Task.start/1`.\n\n#### **Instant Alerts and Phoenix.PubSub**\n\nLet's assume someone's blood pressure has dropped and a violation is\ncreated. When `Ankaa.Monitoring.ThresholdChecker.check/2` catches a\nhypotensive drop, `Phoenix.PubSub` instantly broadcasts the event across\nevery process. Sometimes these processes are referred to as clusters.\nWhen the message is published to a topic, the GenServer doesn't need to\nknow _who_ is looking at a screen or _how_ to send an SMS. It simply\nbroadcasts the event to Phoenix.PubSub.\n\nBecause the BEAM's distribution layer allows nodes to communicate as if\nthey were local processes, this message instantly ripples across the\ncluster without needing Redis. **LiveView** dashboards subscribed to\nthat topic update instantly, and background workers catch the event to\nfire off SMS alerts to the patient's care network. This concurrently\nupdates the Patient's LiveView dashboard, triggers an async worker to\nSMS the Care Partner, and flashes an alert on the Clinic's workspace.\n\n#### **Registries & Supervisors**\n\nFault tolerance , in the context of Elixir, is the ability for the\nsystem to heal from going down without losing the state of a failed\nprocess. A medical device losing WI-FI, disconnecting, or throwing an\nerror are all states that could crash a server. This is where\n**Registries** and **Supervisors** come in.\n\nWhen an MQTT payload hits our server, we don't have to query the\ndatabase to find out if that patient has an active session. Instead, we\nuse a Registry, Elixir's in-memory concurrent phonebook for our BEAM\nprocesses.\n\nIf a device isn't in the Registry (meaning it just came online), we spin\nup a new GenServer for it using a DynamicSupervisor. If that GenServer\never hits an unhandled exception and crashes, the Supervisor's \"let it\ncrash\" philosophy kicks in, instantly restarting the process to a clean,\nknown state.\n\nHere is the\n[MQTT handler](https://github.com/qweliant/ankaa/blob/main/ankaa_beacon/lib/ankaa/workers/mqtt_consumer.ex)<sup><a href=\"#fn-10\">10</a></sup>\nthat routes incoming traffic, checking the Registry and relying on the\nSupervisor to boot new sessions:\n\n```elixir\ndef handle_info({:publish, %{topic: topic, payload: payload}}, state) do\n  # 1.Extract the device UUID from the MQTT topic string\n  [_, device_uuid, _] = String.split(to_string(topic), \"/\")\n\n  # 2. Check the Registry (our in-memory phonebook) for an active session\n  case Registry.lookup(Ankaa.Monitoring.DeviceRegistry, device_uuid) do\n    \n    # CASE A: The device is already online and has an active GenServer\n    [{pid, _}] ->\n      Ankaa.Monitoring.DeviceServer.handle_reading(pid, payload)\n\n    # CASE B: No active session found. We need to wake one up.\n    [] ->\n      spawn_and_route(device_uuid, payload)\n  end\n\n  {:noreply, state}\nend\n\n# Helper function to safely boot a new device session\ndefp spawn_and_route(device_uuid, payload) do\n  # Verify the device actually exists in our database before giving it memory\n  case Ankaa.Devices.get_device(device_uuid) do\n    %Ankaa.Patients.Device{} = device ->\n      \n      # Ask the DynamicSupervisor to boot a new, supervised GenServer for this device\n      case DynamicSupervisor.start_child(Ankaa.Monitoring.DeviceSupervisor, {Ankaa.Monitoring.DeviceServer, device}) do\n        {:ok, _pid} -> \n          Ankaa.Monitoring.DeviceServer.handle_reading(device_uuid, payload)\n        \n        # Handle the race condition where it started between our lookup and here\n        {:error, {:already_started, _pid}} ->\n          Ankaa.Monitoring.DeviceServer.handle_reading(device_uuid, payload)\n          \n        {:error, reason} ->\n          Logger.error(\"Supervisor failed to start worker: #{inspect(reason)}\")\n      end\n\n    nil ->\n      Logger.warning(\"Ignoring MQTT message for unregistered device: #{device_uuid}\")\n  end\nend\n```\n\n## **Architecture Highlights**\n\n### **The Rust IoT Simulator**\n\nSo yeah, I do not own a dialysis machine. Purchasing a proprietary\nNxStage NX0740-P0 Box Module just to test my data pipeline wasn't\nexactly in the budget, and even if it was, proprietary medical devices\ndo not have friendly, open APIs. This meant I had to get creative with\nmy data flow. To test the data pipeline, I vibe coded a mock IoT server\nin **Rust**. It streams simulated, medically-plausible telemetry data.\nI designed it so that It injects configurable anomalies ( sudden\nhypotensive drops or gradual venous pressure climbs) or normal vitals.\n\nThe rust IoT server communicates with the Elixir backend, proving out\nthe data-ingestion architecture for future integrations with consumer\nwearables (like Bluetooth BP cuffs). I wanted the mock IoT simulator to\nsimulate thousands of concurrent devices streaming data. The simulator\nsubscribes to an MQTT control topic (ankaa/simulator/control). The\nElixir backend can publish a JSON command to this topic to tell Rust to\nspin up a new device simulation on the fly. When a Start command is\nreceived, Rust spawns a lightweight `tokio::task` for that specific\ndevice. It stores the thread handle in a `DashMap` (a fast, concurrent\nhash map). If a `Stop` command is received, Rust pulls the handle from\nthe `DashMap` and aborts the task, instantly flatlining the simulation.\n\n```rust\n// The Control Loop: Listening for Start/Stop commands via MQTT\nloop {\n    let notification = eventloop.poll().await?;\n\n    if let rumqttc::Event::Incoming(rumqttc::Incoming::Publish(publish)) = notification {\n        if publish.topic == \"ankaa/simulator/control\" {\n            \n            // Parse the incoming JSON command from Elixir\n            let command: SimulatorCommand = match serde_json::from_slice(&publish.payload) {\n                Ok(cmd) => cmd,\n                Err(e) => {\n                    error!(\"Failed to parse command JSON: {}\", e);\n                    continue; \n                }\n            };\n\n            match command {\n                SimulatorCommand::Start { start_simulations } => {\n                    info!(\"Received START command for {} devices.\", start_simulations.len());\n                    \n                    for device_config in start_simulations {\n                        let client_clone = client.clone();\n                        let config_clone = config.clone();\n                        let sims_map_clone = running_simulations.clone();\n                        let device_id = device_config.device_id.clone();\n\n                        // Spawn a lightweight asynchronous Tokio task for each device\n                        let handle = task::spawn(async move {\n                            match device_config.device_type {\n                                DeviceType::BP => {\n                                    simulate_bp_device(client_clone, device_config, config_clone).await;\n                                }\n                                DeviceType::Dialysis => {\n                                    simulate_dialysis_device(client_clone, device_config, config_clone).await;\n                                }\n                            }\n                        });\n\n                        // Store the task handle in a thread-safe DashMap so we can kill it later\n                        sims_map_clone.insert(device_id, handle);\n                    }\n                }\n                SimulatorCommand::Stop { stop_simulations } => {\n                    info!(\"Received STOP command for {} devices.\", stop_simulations.len());\n                    \n                    for device_id in stop_simulations {\n                        // Find the running task and safely abort it\n                        if let Some((_, handle)) = running_simulations.remove(&device_id) {\n                            handle.abort();\n                            info!(\"Stopped simulation for device: {}\", device_id);\n                        }\n                    }\n                }\n            }\n        }\n    }\n}\n```\n\n### **ReBAC and The \"Care Network\"**\n\nTo silo patient data I isolated each patient using the hub and spoke\nmodel creating patient hubs. The patient or their primary caregiver can\ncreate a hub centered around various levels of access to the patient\nbased on the role they have.\n![Hubs](/images/sh.png)\n*Note: Disregard the \"Clinic\" entry — communities are not yet filtered\nby NPI, so clinic-managed hubs and user-created communities appear the\nsame in this view.*\n\nThe views for members, or spokes, of the patient hub changes depending\non their relationship. The views inform the capabilities of each user,\nmeaning a doctor and a caregiver have different dashboards. The views\nalso map to the access level users have in a hub.\n![Caregiver view](/images/sh2.png)\n![Doctor view](/images/sh3.png)\nThis allows a doctor to be an admin for Patient A, a viewer for Patient\nB, and completely unauthorized to see Patient C. It also allows us to\nbuild reciprocal peer-to-peer support links between two patients\nsecurely.\n\nHere's a look at how these relationships are mapped\n\n```elixir\n# 1. The Hub: The Patient Schema\nschema \"patients\" do\n  field :name, :string\n  # The creator/owner of this specific hub\n  belongs_to :owner, Ankaa.Accounts.User\n\n  # The Spokes: Users invited to this specific Care Network\n  has_many :memberships, Ankaa.Patients.CareNetwork\n  has_many :members, through: [:memberships, :user]\nend\n\n# 2. The ReBAC Bridge: The CareNetwork Join Schema\n# This table strictly defines WHO can see WHAT and WHY.\nschema \"care_networks\" do\n  belongs_to :user, Ankaa.Accounts.User\n  belongs_to :patient, Ankaa.Patients.Patient\n\n  field :relationship, :string # e.g., \"Mother\", \"Primary Nephrologist\", \"Peer\"\n  field :role, Ecto.Enum, values: [:caresupport, :doctor, :clinic_tech]\n  field :permission, Ecto.Enum, values: [:owner, :admin, :viewer]\nend\n\n# 3. The Logic: Safely associating a user to a patient's network\ndef create_patient_association(%User{} = user, %Patient{} = patient, relationship, role, permission \\\\ :viewer) do\n  %CareNetwork{}\n  |> CareNetwork.changeset(%{\n    user_id: user.id,\n    patient_id: patient.id,\n    relationship: relationship,\n    role: role,\n    permission: permission\n  })\n  |> Repo.insert()\nend\n```\n\nUsing this architecture, building a \"Clinical Roster\" view for a\nhospital is trivial. We simply query the `care_networks` table for all\npatients where the current user has the `:doctor` role, completely\nguaranteeing tenant isolation at the database level.\n\nInstead of globally assigning a user the \"Doctor\" role, we use Ecto to\ncreate a rich join table. This join table defines the exact relationship,\nrole, and permission level that a specific user has to a specific\npatient.\n\n### **LiveViews**\n\nTraditional websites are built as multi page applications (MPAs). Think\nwikipedia. Every time you click a link, your browser loses all context\nof what it knows and sends a new HTTP `GET` request to the server. The\nserver computes the page then sends the new HTML to the browser. This\narchitecture is very simple, secure, scalable, and SEO friendly.\n[Painting](https://dev.to/ayush_maurya_/how-browsers-parse-and-render-html-from-request-to-paint-1ogp)<sup><a href=\"#fn-11\">11</a></sup>\nthe browser this way however can feel slow, as you need to load the\nentire HTML document from scratch, and you will often see a white flash\nbetween page loads.\n\nTo fix that white flash, we got React and the Single Page Application\n(SPA). The server sends you _one_ blank HTML page and a massive bundle\nof JavaScript. When you click a link, the browser **does not** ask the\nserver for a new page. Instead, React intercepts the click, quietly asks\nthe server for raw JSON data via an API, and physically redraws the\nscreen itself. It also fakes the URL change using the browser's History\nAPI.\n\nThis feels very fast. You can use loading skeletons to render areas\nwaiting on server data, making navigation feel seamless. But the cost\nis large. You have to write complex frontend logic to manage state in\nthe browser, _while_ building an entirely separate backend to feed it\ndata. (Unless you use Next.js, which attempts to blur this line by\nhiding the backend behind opaque patterns that will _probably_ get you\nwhere you are trying to go...)\n\nWith LiveViews you get the best of both worlds.\n\n![Hannah Montana](/images/sh4meme.png)\n\nIt defaults to the traditional MPA architecture we discussed earlier,\nlosing context based on page routing. The LiveView magic is that you\n**do not** reestablish a connection when using `<.link navigate={...}>`.\n**LiveView intercepts the click and prevents the hard refresh.** It\npushes a tiny message over the open WebSocket saying, _\"The user wants\nto go to /patient/123.\"_ Your Elixir server catches that message, runs\nits internal router, mounts the new page, computes the HTML diff, and\npushes it back down the WebSocket. The browser updates the screen and\nchanges the URL bar without ever dropping the connection. (Though, as a\ndeveloper, this means you do have to consciously decide when to keep the\nWebSocket open versus using a standard `href` to force a hard reset).\n\nBecause WebSockets act as the HTML transport layer, as opposed to\nstandard REST calls in React, we get realtime features for free at the\ncost of server resources. If each connected user holds an open socket we\nend up trading horizontal scalability for simplicity. However, the UI is\njust a pure function of the server state, there is no need to manually\nsync client state with server state, and there is no massive JavaScript\nbundle to download, nor a separate API to maintain for the frontend.\nThis allowed me to build an interactive, real-time dashboard that feels\nlike a React SPA, but with the simplicity and speed of a traditional\nserver-rendered application.\n\nSince every interaction relies on a persistent WebSocket connection, you\nare bound by the net. If a user has a spotty cell connection, or you are\nbuilding a highly complex, drag-and-drop client interface, the server\nround-trip latency becomes noticeable.\n\nTo make up for their weaknesses, pairing Phoenix and InertiaJS makes a\nlot of sense. Going forward, if I am building large applications in\nPhoenix, this is probably the pattern I would choose. Phoenix components\nbuilt around LiveViews and streams for real time data and React/Svelte\ncomponents via [Inertia JS](https://www.youtube.com/watch?v=uyfyFRvng3c&t=66s)<sup><a href=\"#fn-12\">12</a></sup>\nfor high-fidelity client interactivity.\n\n### **Terraform, HIPAA, and AWS**\n\nI am not a DevOps engineer. I don't want to be a DevOps engineer. I\njust want to build a cool health-tech project. The BEAM's concurrency\nand fault-tolerance features are amazing, but if I had to manually wire\nup servers, load balancers, and databases I would probably never have jumped off a bridge. \nThanks to Terraform, I was able to define my entire infrastructure as code in a single file and deploy it with one command.\n\nThe stack is a standard three-tier VPC: public subnets for the ALB and\nNAT gateway, private subnets for the app, and fully isolated database\nsubnets for RDS. A single `t4g.small` ARM64 EC2 instance runs the\nPhoenix app and Rust simulator as Docker Compose services, sitting\nbehind an Application Load Balancer that terminates TLS and redirects\nHTTP to HTTPS. RDS Postgres runs on a `db.t3.micro` in the private\ndatabase subnet with encryption at rest, forced SSL connections, and\ndeletion protection on. IoT certificates for the Phoenix backend and\nRust simulator are provisioned through AWS IoT Core and stored in\nSecrets Manager, with IAM roles granting the EC2 instance pull access\nto ECR and read access to those secrets. SSM replaces SSH entirely, so\nthere are no key pairs to manage. A budget alert fires at 80% of a $50\nmonthly cap before I get surprised.\n\nThe infrastructure is HIPAA-influenced, not HIPAA-certified, meaning\nencryption at rest and in transit, private subnets, no public DB\nexposure, and forced SSL get you most of the way there for a prototype,along with a BAA, \nbut I have not gone through a formal audit or implemented all the administrative safeguards. \nFor a production health-tech product, I would absolutely invest in a full HIPAA audit and certification process, \nbut for a personal project, I focused on the technical controls that I could implement.\n\nThe biggest deployment headache was the ARM64 architecture. Elixir does\nnot cross-compile cleanly, so you cannot build the Docker image on an\nx86 machine and expect it to run on a `t4g`. You have to build the\nimage on an ARM64 host. I also had to manually verify the EC2 and RDS security group\nrules were actually wired up after apply. Terraform said it was done\nbut the connection wasn't live until I confirmed it in the console.\n\n## **Wrapping up**\n\nSafehemo started as a personal project to solve the \"silent alarm\"\nproblem in home hemodialysis. When dealing with medical telemetry, you\ncan't afford dropped connections or missed alerts.\n\nBy leveraging the BEAM's fault tolerance, Phoenix LiveView's real-time\nsimplicity, and Rust's raw concurrency for IoT simulation, I was able\nto build a resilient, distributed care network without drowning in\ninfrastructure or JavaScript fatigue.\n\nThe natural evolution of this project is moving from simulated telemetry\nto real-world hardware.\n\n*   **Edge Computing:** I plan to explore embedded Elixir (via the\n    Nerves framework) so this exact stack can run natively on the\n    physical medical devices, offloading data processing to the edge.\n    \n*   **Wearables:** Integrating the ingestion pipeline with consumer\n    Bluetooth devices, like continuous blood pressure monitors, to give\n    care networks an even clearer picture of patient health during\n    dialysis.\n    \n\nSafehemo is completely open-source. If you are working in health-tech,\nbuilding IoT pipelines, or just love the Erlang/Elixir ecosystem, I\nwould love to connect and hear your thoughts.\n\nYou can check out the source code here:\n\n*   **GitHub:** [Repo](https://github.com/qweliant/ankaa)<sup><a href=\"#fn-13\">13</a></sup>\n    \n*   **Live Demo:** [Safehemo](https://safehemo.com)<sup><a href=\"#fn-14\">14</a></sup>\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">https://medium.com/flatiron-labs/elixir-and-the-beam-how-concurrency-really-works-3cc151cddd61. <a href=\"https://medium.com/flatiron-labs/elixir-and-the-beam-how-concurrency-really-works-3cc151cddd61\">https://medium.com/flatiron-labs/elixir-and-the-beam-how-concurrency-really-works-3cc151cddd61</a></li>\n  <li id=\"fn-2\">How Phoenix LiveView Optimizes Real-Time Web Apps with Streams • Sophie DeBenedetto • GOTO 2023 — YouTube. <a href=\"https://www.youtube.com/watch?v=f4kd-g3Evtw\">https://www.youtube.com/watch?v=f4kd-g3Evtw</a></li>\n  <li id=\"fn-3\">Sophie DeBenedetto &#8211; Sophie DeBenedetto. <a href=\"https://sophiedebenedetto.com/\">https://sophiedebenedetto.com/</a></li>\n  <li id=\"fn-4\">Redirecting to: /development/. <a href=\"https://elixir-lang.org/development.html\">https://elixir-lang.org/development.html</a></li>\n  <li id=\"fn-5\">https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine. <a href=\"https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine\">https://en.wikipedia.org/wiki/BEAM_(Erlang_virtual_machine</a></li>\n  <li id=\"fn-6\">The C10K problem. <a href=\"https://www.kegel.com/c10k.html\">https://www.kegel.com/c10k.html</a></li>\n  <li id=\"fn-7\">The Dance of Concurrency and Parallelism in Golang | Leapcell. <a href=\"https://leapcell.io/blog/the-dance-of-concurrency-and-parallelism-in-golang\">https://leapcell.io/blog/the-dance-of-concurrency-and-parallelism-in-golang</a></li>\n  <li id=\"fn-8\">Bahaa Tantaoui on Instagram: \"Foundational Papers (must read imo)\n\t&#x2022;\tCarl Hewitt, Peter Bishop, and Richard Steiger (1973): &#x201c;A Universal Modular ACTOR Formalism for Artificial Intelligence&#x201d;. Proceedings of the 3rd International Joint Conference on Artificial Intelligence (IJCAI&#x2019;73), pp. 235-245. This is the original paper introducing the Actor Model. PDF available: https://www.ijcai.org/Proceedings/73/Papers/027B.pdf Or: https://www.eighty-twenty.org/files/Hewitt,%20Bishop,%20Steiger%20-%201973%20-%20A%20universal%20modular%20ACTOR%20formalism%20for%20artificial%20intelligence.pdf\n\t&#x2022;\tGul Agha (1986): &#x201c;Actors: A Model of Concurrent Computation in Distributed Systems&#x201d;. MIT Press (Agha&#x2019;s doctoral dissertation, formalized and extended the model). Often cited as the book-length treatment.\n\t&#x2022;\tCarl Hewitt (2010, with updates): &#x201c;Actor Model of Computation: Scalable Robust Information Systems&#x201d;. arXiv:1008.1459. A later survey/overview by Hewitt himself on the model&#x2019;s evolution and applications. https://arxiv.org/abs/1008.1459\nErlang/OTP Sources (Practical Implementation of Actor Ideas)\n\t&#x2022;\tJoe Armstrong (2003): &#x201c;Making reliable distributed systems in the presence of software errors&#x201d;. PhD thesis, Royal Institute of Technology, Stockholm. This is the definitive document on Erlang&#x2019;s design, concurrency model, fault tolerance (&#x201c;let it crash&#x201d;), supervision trees, and how it embodies actor principles. PDF: https://erlang.org/download/armstrong_thesis_2003.pdf\n\t&#x2022;\tOfficial Erlang/OTP Documentation: &#x201c;OTP Design Principles&#x201d;. Describes supervision trees, behaviours (gen_server, supervisor, etc.), applications, and release handling&#x2014;core to building actor-like systems in Erlang. Current version: https://www.erlang.org/doc/design_principles/users_guide.html Or overview: https://www.erlang.org/doc/system/design_principles.html\" — Instagram. <a href=\"https://www.instagram.com/reel/DS2GWB3jCHY/?igsh=b2ttbHZzdDV1a3Vp\">https://www.instagram.com/reel/DS2GWB3jCHY/?igsh=b2ttbHZzdDV1a3Vp</a></li>\n  <li id=\"fn-9\">ankaa/ankaa_beacon/lib/ankaa/monitoring/device_server.ex at main · qweliant/ankaa — GitHub. <a href=\"https://github.com/qweliant/ankaa/blob/main/ankaa_beacon/lib/ankaa/monitoring/device_server.ex\">https://github.com/qweliant/ankaa/blob/main/ankaa_beacon/lib/ankaa/monitoring/device_server.ex</a></li>\n  <li id=\"fn-10\">ankaa/ankaa_beacon/lib/ankaa/workers/mqtt_consumer.ex at main · qweliant/ankaa — GitHub. <a href=\"https://github.com/qweliant/ankaa/blob/main/ankaa_beacon/lib/ankaa/workers/mqtt_consumer.ex\">https://github.com/qweliant/ankaa/blob/main/ankaa_beacon/lib/ankaa/workers/mqtt_consumer.ex</a></li>\n  <li id=\"fn-11\">How Browsers Parse and Render HTML: From Request to Paint — DEV Community. <a href=\"https://dev.to/ayush_maurya_/how-browsers-parse-and-render-html-from-request-to-paint-1ogp\">https://dev.to/ayush_maurya_/how-browsers-parse-and-render-html-from-request-to-paint-1ogp</a></li>\n  <li id=\"fn-12\">Simplify React and Phoenix using Inertia JS: A quick look — YouTube. <a href=\"https://www.youtube.com/watch?v=uyfyFRvng3c&t=66s\">https://www.youtube.com/watch?v=uyfyFRvng3c&t=66s</a></li>\n  <li id=\"fn-13\">GitHub - qweliant/ankaa: POC for real-time monitoring and alert system for home hemodialysis, detecting critical risks like severe hypotension and blood loss. That would Integrate with NxStage setups to provide automated emergency detection, caregiver alerts, and AI-driven anomaly detection ensuring patient safety even without immediate medical assistance. — GitHub. <a href=\"https://github.com/qweliant/ankaa\">https://github.com/qweliant/ankaa</a></li>\n  <li id=\"fn-14\">Home · Safehemo. <a href=\"https://safehemo.com\">https://safehemo.com</a></li>\n</ol>","title":"Building an Open-Source Safety Net for Home Hemodialysis","date":"2026-03-30T22:50:17.529Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"build","tags":["health","elixir","rust","hardware","local-first","work"],"blurb":"The machine beeps in the room and nowhere else. Ankaa pages a human instead.","thread":"tools-that-know-you","threadOrder":1},{"slug":"A_Brief_and_Impassioned_Review_of_Hamilton_the_Musical_and_my_LoveMostly_Hate_Relationship_with_America","rawContent":"### A Brief and Impassioned Review of Hamilton the Musical and my Love/Mostly Hate Relationship with America\n\nHere me out. I love black washing US history. We all know [Beethoven was black](https://qwelian.com/posts/Notes_on_Being_Black_and_100_Amazing_Facts_About_the_Negro)<sup><a href=\"#fn-1\">1</a></sup>.\nI am convinced [Pushkin](https://en.wikipedia.org/wiki/Alexander_Pushkin#Death)<sup><a href=\"#fn-2\">2</a></sup> only ever really fired on [D’anthes](https://en.wikipedia.org/wiki/Georges_d%27Anth%C3%A8s)<sup><a href=\"#fn-3\">3</a></sup>\nafter D’anthes used the n word, alledgedly. I am not here to provide [proof](https://en.wikipedia.org/wiki/Death_of_the_Poet)<sup><a href=\"#fn-4\">4</a></sup>, I’m just saying\nI can go all day with black washing history but Hamilton has revealed most of it is wishful thinking. Like of course Pushkin didn’t fye on D’anthes for the n world,\nallegedly. My spite for European treatment of… a lot, kinda ruins my love for black washing history. At least as much as any other order to restrict freedom kinda ruins\nthe fun of history. My grandmother didn’t pick cotton as a child because of the Ottomans though.\n\nWhile listening to [Hamilton](https://www.youtube.com/watch?v=yspbNBIWsF0&pp=ygUIaGFtaWx0b24%3D)<sup><a href=\"#fn-5\">5</a></sup> I cannot exist in a position where viewing the events unfolding are\nunconditionally positive for me. I mean at best Aaron Burr gives life to an [abolitionist](https://en.wikipedia.org/wiki/John_Pierre_Burr)<sup><a href=\"#fn-6\">6</a></sup>, alledgedly. Meanwhile Hamilton\nat the side of a man with slave teeth. How that work?? I do not wanna hear you one more time king. Boooo!!!! Beat it!!! You got teeth to remove from your slaves. Go home roger!\n\nNow I say all that but my moral high ground is kinda ruined when Lin Manuel Miranda says his name is Alexander Hamilton. I mean this is worlds [longest running democracy](https://www.weforum.org/agenda/2019/08/countries-are-the-worlds-oldest-democracies/)<sup><a href=\"#fn-7\">7</a></sup>.\nThey did not explicitly write race and class into the Bill of Rights technically, which is like kinda cool, maybe a low bar given liberty being a pretty important thing then, alledgedly.\nBut the shit slap. The example Washington set by leaving office was revolutionary in an era of [Bolivars](https://thehistoryofrome.typepad.com/revolutions_podcast/2016/06/504-the-prince-of-caracas.html)<sup><a href=\"#fn-8\">8</a></sup>\nand (Napoleons [one](https://thehistoryofrome.typepad.com/revolutions_podcast/2015/09/354-the-empire.html)<sup><a href=\"#fn-9\">9</a></sup> and [two](https://thehistoryofrome.typepad.com/revolutions_podcast/2018/04/733-what-the-heck-just-happened.html)<sup><a href=\"#fn-10\">10</a></sup>).\nThis _is_ the world’s longest lived democracy!\n\n![Longest Democracies](/images/longestdemocracy.jpg)\n\nBy the time raisse your glasss to freeeedom comes on I’m in. For just a second I feel patriotic. And I am like “is this what white people feel all the time???? like they belong to a historical struggle for freedom\nrooted in the founding of the US???? Then it’s back to massive [anti](https://www.aclu.org/legislative-attacks-on-lgbtq-rights?state=\")<sup><a href=\"#fn-11\">11</a></sup> trans legislationand me celebrating when \nHamilton ruins his career writing a public letter talking about why he cheated on his wife. Thanks Hamilton for not talking less. THEN the bozo tells his son to attend a duel and NOT shoot. My man you a goof. \nBig goof Burr smoking on the Hamilton pack #PACKWATCH #RIPBOZO REST IN PISS YOU WON'T BE MISSED 💯💯\n![bozo](/images/bozo.jpg)\n\nI suppose my favorite thing about the musical is that Hamilton is a goof and Burr is a dummy. I am moved to set the bar extremely low for large groups of people, especially us in America, which is cathartic.\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">Notes on Being Black and 100 Amazing Facts About the Negro. <a href=\"https://qwelian.com/posts/Notes_on_Being_Black_and_100_Amazing_Facts_About_the_Negro\">https://qwelian.com/posts/Notes_on_Being_Black_and_100_Amazing_Facts_About_the_Negro</a></li>\n  <li id=\"fn-2\">Alexander Pushkin - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/Alexander_Pushkin#Death\">https://en.wikipedia.org/wiki/Alexander_Pushkin#Death</a></li>\n  <li id=\"fn-3\">Georges-Charles de Heeckeren d'Anthès - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/Georges_d%27Anth%C3%A8s\">https://en.wikipedia.org/wiki/Georges_d%27Anth%C3%A8s</a></li>\n  <li id=\"fn-4\">Death of the Poet - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/Death_of_the_Poet\">https://en.wikipedia.org/wiki/Death_of_the_Poet</a></li>\n  <li id=\"fn-5\">Hamilton: the animated musical — YouTube. <a href=\"https://www.youtube.com/watch?v=yspbNBIWsF0&amp;pp=ygUIaGFtaWx0b24%3D\">https://www.youtube.com/watch?v=yspbNBIWsF0&pp=ygUIaGFtaWx0b24%3D</a></li>\n  <li id=\"fn-6\">John Pierre Burr - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/John_Pierre_Burr\">https://en.wikipedia.org/wiki/John_Pierre_Burr</a></li>\n  <li id=\"fn-7\">Mapped: The world’s oldest democracies — World Economic Forum. <a href=\"https://www.weforum.org/agenda/2019/08/countries-are-the-worlds-oldest-democracies/\">https://www.weforum.org/agenda/2019/08/countries-are-the-worlds-oldest-democracies/</a></li>\n  <li id=\"fn-8\">https://thehistoryofrome.typepad.com/revolutions_podcast/2016/06/504-the-prince-of-caracas.html. <a href=\"https://thehistoryofrome.typepad.com/revolutions_podcast/2016/06/504-the-prince-of-caracas.html\">https://thehistoryofrome.typepad.com/revolutions_podcast/2016/06/504-the-prince-of-caracas.html</a></li>\n  <li id=\"fn-9\">https://thehistoryofrome.typepad.com/revolutions_podcast/2015/09/354-the-empire.html. <a href=\"https://thehistoryofrome.typepad.com/revolutions_podcast/2015/09/354-the-empire.html\">https://thehistoryofrome.typepad.com/revolutions_podcast/2015/09/354-the-empire.html</a></li>\n  <li id=\"fn-10\">https://thehistoryofrome.typepad.com/revolutions_podcast/2018/04/733-what-the-heck-just-happened.html. <a href=\"https://thehistoryofrome.typepad.com/revolutions_podcast/2018/04/733-what-the-heck-just-happened.html\">https://thehistoryofrome.typepad.com/revolutions_podcast/2018/04/733-what-the-heck-just-happened.html</a></li>\n  <li id=\"fn-11\">Mapping Attacks on LGBTQ Rights in U.S. State Legislatures in 2026 | American Civil Liberties Union — American Civil Liberties Union. <a href=\"https://www.aclu.org/legislative-attacks-on-lgbtq-rights?state=&quot;\">https://www.aclu.org/legislative-attacks-on-lgbtq-rights?state=\"</a></li>\n</ol>","title":"A Brief and Impassioned Review of Hamilton the Musical and my Love/Mostly Hate Relationship with America","date":"2023-05-01T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"rant","tags":["america","race","history","empire","criticism","freedom"],"blurb":"I love blackwashing US history. Hamilton is what made me admit most of it is wishful thinking.","thread":"who-gets-to-be-a-person","threadOrder":4},{"slug":"Where_to_go_from_here","rawContent":"# Where to go from here\n\n### Things are complicated\n\nMy interest lately is in how knowledge is structured and acted upon. I want to explore how and why technology becomes a lens and a vehicle for cognition, reasoning, and understanding.\n\nFor instance, due to the advent of computers we recently became able to view cognition [algorithmically](https://www.amazon.com/Society-Mind-Marvin-Minsky/dp/0671657135)<sup><a href=\"#fn-1\">1</a></sup>.\n\nA more interesting example may be considering it _\\*necessary\\*_ to create \"social hierarchies\" in [multi agent AI systems](https://www.nature.com/articles/d41586-022-04246-7)<sup><a href=\"#fn-2\">2</a></sup> so that they don’t spend their time plotting on us.\n\nIn what way are they a social order? Why would we create existential threats to ourselves? Are we liberally applying our conceptual framing of social phenomena to algorithms?\n\nStranger still, we _\\*could\\*_ model this behavior using reinforcement learning agents, and it is useful for training agents to complete tasks. Maybe deployed AGI should use some optimal agreement with its implementers to guide its action to the most appropriate course given some contract.\n\nFuck all that though. My original issue is not with any of this. It's that we can derive behavior from our ideas in anyway that bothers me.\n\nI wish to be a [fish](https://www.youtube.com/watch?v=iOfIRNJE5qo&ab_channel=UnProCreations)<sup><a href=\"#fn-3\">3</a></sup>\n\n### Others Have Thoughts on This\n\nfinna pull out this armchair real quick, lemme get comfortable\n\nWeek 9 Lecture: Kant Transcendental Aesthetic Part 1\n\nWeek 9 Lecture: Kant Transcendental Aesthetic Part 2\n\nThese two videos are exciting because Kant makes reasonable pushback against knowledge as purely relative to brain composition. It cannot be that a giant set of pulleys and levers used the right way creates conscious perception, that is, image laden abstract thought that contain beliefs. But there is a considerable separation between [causality](https://www.youtube.com/watch?v=Wq88eHg_iJ0&ab_channel=SEMF)<sup><a href=\"#fn-4\">4</a></sup> and perception. We do not know if math is made up or “transcendental“. And more strangely, we can’t really be aware of [ourselves](https://www.lesswrong.com/posts/Cq45AuedYnzekp3LX/you-may-already-be-a-sinner)<sup><a href=\"#fn-5\">5</a></sup>. The subjects seem to have believed on some level that keeping their hand in the water longer could give them a different kind of heart. Dr. Tversky declared that people have a cognitive blind spot to \"hidden variable\" causation, and this explains the Calvinists who made such an effort to live virtuously\n\nWe cannot identify self in any meaningful way without the umwelt. That's good news for me. Our perception is contingent! It’s not random! Objectivity, while not observed is arguably achievable with a decent model. It's unlikely that interplanetary qualia are consistent, but I would guess intelligence is consistent in modeling the world for some objective. We could get Arrival aliens or we could get X-Files, but I highly doubt what we consider intelligence does not in fact exist on a spectrum directly related to its physiology.\n\nSo, where to go from here?\n\nOver the years I have been eased into bits and pieces of Hegel through fan girling over Zizek or watching youtube. To define a freedom as an abstract thing with spirit and a history we move toward never really became sensible until a short youtube clip. Hegel: Philosophy of world history and spirit. This idea of spirit is the virtual realm of [Serial Experiments Lain](https://www.looper.com/485715/the-ending-of-serial-experiments-lain-explained/)<sup><a href=\"#fn-6\">6</a></sup>. The constant unfolding of history is our reality. An all powerful god whom we compel to exist through its eventual demise within us.\n\nMore grounded is _Sciences du Design_ editor, Stéphane Vial’s take on technology and perception. In [Being and Screen](https://mitpress.mit.edu/9780262043168/being-and-the-screen/)<sup><a href=\"#fn-7\">7</a></sup>, Vial uses [ontophony](https://sci-hub.st/https://doi.org/10.1007/978-3-319-89518-5_23)<sup><a href=\"#fn-8\">8</a></sup> to explain a theory of how our _\\*perception is virtual\\*_. It is based on ontophany theory, according to which the process of appearance of being is constantly technologically conditioned. Thus, technologies are not only tools; they are structures of perception. This theory proposes that we think about design not as producing _beings_ but, rather, _events_; not _things that are_ but _things that happen_(okay, clearly reader/readwise needs built in citations for text paste). Our countries then are virtual af, guided by this virtual spirit. [Peter Drucker](https://en.wikipedia.org/wiki/Peter_Drucker)<sup><a href=\"#fn-9\">9</a></sup>, management guru, also believes in a mythic quality to states. From _The Drucker Lectures:_\n\n> the very fact that we have a myth of the state—that is, that we can rationalize our experience—also shows that man is not all political animal, and that his existence is not described or circumscribed by his belonging to the group. Ants and bees are as much social animals as man. An ant or a bee can even overthrow the ruler of the swarm and establish his own rulership. But only man can change the basic order of the group itself, only man has the myth of the state\n\nBy highlighting knowledge management systems as _endemic_ to large scale civilization, it made more reasonable this notion “spirit of freedom” searching to express itself historically.\n\n> The irrigation city first had knowledge, organized it, and in-stitutionalized it. Both because it required considerable knowledge to construct and maintain the complex engineering works that regulated the vital water supply and because it had to manage complex economic transactions stretching over many years and over hundreds of miles, the irrigation city needed records, and this, of course, meant writing. It needed astronomical data, as it depended on a calendar. It needed means of navigating across sea or desert. It, therefore, had to organize both the supply of the needed information and its processing into learnable and teachable knowledge. As a result, the irrigation city developed the first schools and the first teachers.\n\nInteresting as well is what this means for spirit’s drive toward freedom versus managing a society for some purpose. Are both part of the spirit's drive?\n\n###<a name=\"revisit\"></a> Getting Back to That\n\nThree questions I asked [before](https://qwelian.com/posts/Dont_Let_the_Medium_Dictate_a_Purpose_for_the_Message)<sup><a href=\"#fn-10\">10</a></sup> are:\n\n- How are contemporary technologies wholly affecting the way we cognize the world?\n- What drives the mapping of lived experience onto technology?\n- What flips the medium of technology to drive a hyperreal imitation of references to itself, such that the reference loses context to what technology itself abstracts?\n\nI am skeptical of these questions being so dense, but I now have better understanding of some fundamentals that bridge our willingness to make myth real and our willingness to create [despots](https://qwelian.com/posts/Emperor_Hostage_Despot)<sup><a href=\"#fn-11\">11</a></sup>.\n\n- I believe it best to think of the way we conceptualize our world as virtual. Not detached from material circumstances, yet all in all separate. Therefore, technology manifests as both the material and the symbolic structuring of experience.\n- To answer my second I would say technology is the artifact created by mapping lived experience over a medium, ie: lived experience -> media -> technology.\n- To answer my third is more difficult. Potentially the spectacle brought about in a capitalist society trading use-value for a Walmart in every city. Maybe we live in a hyperreal world. I'm not sure, but I feel Debord, Borges, Lacan, Neil Postman could be of assistance here.\n\nAs such, I would like this article to be an intention for my interest going forward.\n\n- I will read Ken Binmore’s work on game theory and society. I am excited to see how and why he uses Hume as opposed to Kant for his philosophical interest. I suppose it has something to do with this quote by Binmore from _Natural Justice_:\n\n> As Hume explains: “I learn to do service to another, without bearing him any real kindness, because I foresee, that he will return my service in expectation of another of the same kind, and in order to maintain the same correspondence of good offices with me and others.\n\n- I will read Kant’s _Critique of Reason_ and Hegel’s _Science of Logic_ as well. But I’ll give myself a year.\n- I also want to finish _Being and Screen_ and the _Drucker Lectures_.\n- I will revisit Debord, Foucault and Postman.\n- I will read far more than I write about.\n\nI recently watched Mulholland Drive and I think this clip is a good idea of how societies work.\n\n<iframe\n  width=\"560\"\n  height=\"315\"\n  src=\"https://www.youtube.com/embed/UfUjSoWB-Sk?si=EQLoyGvaBjzVjeGL\"\n  title=\"YouTube video player\"\n  allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n  referrerPolicy=\"strict-origin-when-cross-origin\"\n  allowFullScreen\n></iframe>\n\nLLTNF\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">The Society of Mind: Minsky, Marvin: 9780671657130: Amazon.com: Books. <a href=\"https://www.amazon.com/Society-Mind-Marvin-Minsky/dp/0671657135\">https://www.amazon.com/Society-Mind-Marvin-Minsky/dp/0671657135</a></li>\n  <li id=\"fn-2\">DeepMind AI topples experts at complex game Stratego. <a href=\"https://www.nature.com/articles/d41586-022-04246-7\">https://www.nature.com/articles/d41586-022-04246-7</a></li>\n  <li id=\"fn-3\">Zima Blue Tells Us The Story Of Ourselves — YouTube. <a href=\"https://www.youtube.com/watch?v=iOfIRNJE5qo&ab_channel=UnProCreations\">https://www.youtube.com/watch?v=iOfIRNJE5qo&ab_channel=UnProCreations</a></li>\n  <li id=\"fn-4\">- YouTube. <a href=\"https://www.youtube.com/watch?v=Wq88eHg_iJ0&ab_channel=SEMF\">https://www.youtube.com/watch?v=Wq88eHg_iJ0&ab_channel=SEMF</a></li>\n  <li id=\"fn-5\">You May Already Be A Sinner — LessWrong. <a href=\"https://www.lesswrong.com/posts/Cq45AuedYnzekp3LX/you-may-already-be-a-sinner\">https://www.lesswrong.com/posts/Cq45AuedYnzekp3LX/you-may-already-be-a-sinner</a></li>\n  <li id=\"fn-6\">The Ending Of Serial Experiments Lain Explained - Looper — Looper. <a href=\"https://www.looper.com/485715/the-ending-of-serial-experiments-lain-explained/\">https://www.looper.com/485715/the-ending-of-serial-experiments-lain-explained/</a></li>\n  <li id=\"fn-7\">Being and the Screen — MIT Press. <a href=\"https://mitpress.mit.edu/9780262043168/being-and-the-screen/\">https://mitpress.mit.edu/9780262043168/being-and-the-screen/</a></li>\n  <li id=\"fn-8\">https://sci-hub.st/https://doi.org/10.1007/978-3-319-89518-5_23. <a href=\"https://sci-hub.st/https://doi.org/10.1007/978-3-319-89518-5_23\">https://sci-hub.st/https://doi.org/10.1007/978-3-319-89518-5_23</a></li>\n  <li id=\"fn-9\">Peter Drucker - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/Peter_Drucker\">https://en.wikipedia.org/wiki/Peter_Drucker</a></li>\n  <li id=\"fn-10\">Dont Let the Medium Dictate a Purpose for the Message. <a href=\"https://qwelian.com/posts/Dont_Let_the_Medium_Dictate_a_Purpose_for_the_Message\">https://qwelian.com/posts/Dont_Let_the_Medium_Dictate_a_Purpose_for_the_Message</a></li>\n  <li id=\"fn-11\">Emperor, Hostage, Despot!. <a href=\"https://qwelian.com/posts/Emperor_Hostage_Despot\">https://qwelian.com/posts/Emperor_Hostage_Despot</a></li>\n</ol>","title":"Where to go from here","date":"2023-03-01T05:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"essay","tags":["cognition","media","myth","ai","philosophy","identity"],"blurb":"Answering the three questions: perception is virtual, and technology is the artifact of mapping lived experience onto a medium.","thread":"map-ate-the-nation","threadOrder":3},{"slug":"A_Rant_on_The_Genetic_Lottery_by_Kathryn_Paige_Harden","rawContent":"# A Rant on \"The Genetic Lottery\" by Kathryn Paige Harden\n\nPersonally, it is so weird being black.\n\nYou tell people that [being poor inhibits my chance at a life of liberty in the pursuit of happiness](https://youtu.be/6yG3KOhGxC0?si=lZTilW1atCpfYkKc&t=1764)<sup><a href=\"#fn-1\">1</a></sup>, and Kathryn Paige Harden says _\"Bet, let me test your genes to make sure you can tho?\"_\n\nYou tell people that the [barrier](https://ewa.org/issues/higher-ed/what-are-some-of-the-barriers-to-college-access)<sup><a href=\"#fn-2\">2</a></sup> of [entry](https://www.brookings.edu/articles/complex-applications-create-barriers-to-college-some-are-trying-to-change-that/?utm_source=chatgpt.com)<sup><a href=\"#fn-3\">3</a></sup> to higher education creates\n[inequitable outcomes](https://steinhardt.nyu.edu/metrocenter/research-evaluation/section-2-higher-education-context-and-barriers-equitable-college)<sup><a href=\"#fn-4\">4</a></sup>, but Kathryn Paige Harden asks, _\"Seriously tho, we should map your genetics to verify that?\"_\n\nYou tell people access to food, water, and shelter has an [impact](https://www.youtube.com/watch?v=acSQrIEi6Ho&ab_channel=HISTORY)<sup><a href=\"#fn-5\">5</a></sup> on the quality of life(basic shit), yet Kathryn Paige Harden say, _\"Mmm, I'm not convinced, let us do a longitudinal 14-year study on material conditions.\"_\n\nYou tell people social safety nets help support in raising children, and it's _\"[Welfare queen](https://www.slate.com/articles/news_and_politics/history/2013/12/linda_taylor_welfare_queen_ronald_reagan_made_her_a_notorious_american_villain.html)<sup><a href=\"#fn-6\">6</a></sup> [says what](https://niemanreports.org/the-welfare-queen-experiment/)<sup><a href=\"#fn-7\">7</a></sup>?\"_\n\nKathryn Paige Harden didnt say that.\n\nYou tell people hey, the death penalty is a horrible thing that is rarely used and is applied to black people more so than others, but Kathryn Paige Harden says _\"Lemme use your DNA to tell the jury why you inherited making bad choices.\"_\n\nThere are extremely common sense explanations of these behaviors already but all that's standing in the way of good research is racism(proponents of eugenics and population sterilization) and wokism(gut flinch reaction to genetic testing by minorites) apparently. We may have\ncreated entire [social institutitions](https://www.britannica.com/topic/state-of-nature-political-theory)<sup><a href=\"#fn-8\">8</a></sup> to address these concerns but now, more than ever _genetic\ntesting is what we need?_\n\nMake no mistake, the future of genetics will be about **ensuring inequitable access** to revolutionary genetic treatments that will extend the\nlife of the children and grandchildren of our global elite. Not addressing decades old research on inequality. I am not even refuting the point of her book(genetic inheritability is a useful tool for understanding inequality). Liberals should own some argument on the use of genetic research.\nI just fail to see how the examples she explores help. We have answers to every single issue she brought up. They are not mysteries. Genetic testing may be able to explain circumstances but outcomes?\n\nPorque los nos dos - see: [nature vs. nurture](https://en.wikipedia.org/wiki/Nature_versus_nurture)<sup><a href=\"#fn-9\">9</a></sup>\n\nHowever, genetic inheritability can disadvantage certain genetic clusters which can have a impact on racial gaps. I question whether\nthe entire population of AA neatly falls within the population she examines, why racial gaps arise due to genetic inheritance, how genetic clusters\narise in genetically similar populations, how genetic inheritablity differs in those groups, and if a racial component of this closeness matters genetically.\nIt would be nice to hear that. Maybe I should read her research.\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">Glenn C. Loury, \"The Anatomy of Racial Inequality\" | Baruch College Special — YouTube. <a href=\"https://youtu.be/6yG3KOhGxC0?si=lZTilW1atCpfYkKc&t=1764\">https://youtu.be/6yG3KOhGxC0?si=lZTilW1atCpfYkKc&t=1764</a></li>\n  <li id=\"fn-2\">What Are Some of the Barriers to College Access - ewa.org — ewa.org. <a href=\"https://ewa.org/issues/higher-ed/what-are-some-of-the-barriers-to-college-access\">https://ewa.org/issues/higher-ed/what-are-some-of-the-barriers-to-college-access</a></li>\n  <li id=\"fn-3\">Complex applications create barriers to college—some are trying to change that | Brookings — Brookings. <a href=\"https://www.brookings.edu/articles/complex-applications-create-barriers-to-college-some-are-trying-to-change-that/?utm_source=chatgpt.com\">https://www.brookings.edu/articles/complex-applications-create-barriers-to-college-some-are-trying-to-change-that/?utm_source=chatgpt.com</a></li>\n  <li id=\"fn-4\">Section 2 - A Literature Review — NYU Steinhardt. <a href=\"https://steinhardt.nyu.edu/metrocenter/research-evaluation/section-2-higher-education-context-and-barriers-equitable-college\">https://steinhardt.nyu.edu/metrocenter/research-evaluation/section-2-higher-education-context-and-barriers-equitable-college</a></li>\n  <li id=\"fn-5\">Alone: Clay Goes the Distance (Season 8) | History — YouTube. <a href=\"https://www.youtube.com/watch?v=acSQrIEi6Ho&ab_channel=HISTORY\">https://www.youtube.com/watch?v=acSQrIEi6Ho&ab_channel=HISTORY</a></li>\n  <li id=\"fn-6\">The Real Story of Linda Taylor, America&rsquo;s Original Welfare Queen — Slate Magazine. <a href=\"https://www.slate.com/articles/news_and_politics/history/2013/12/linda_taylor_welfare_queen_ronald_reagan_made_her_a_notorious_american_villain.html\">https://www.slate.com/articles/news_and_politics/history/2013/12/linda_taylor_welfare_queen_ronald_reagan_made_her_a_notorious_american_villain.html</a></li>\n  <li id=\"fn-7\">The ‘Welfare Queen’ Experiment - Nieman Reports — Nieman Reports. <a href=\"https://niemanreports.org/the-welfare-queen-experiment/\">https://niemanreports.org/the-welfare-queen-experiment/</a></li>\n  <li id=\"fn-8\">https://www.britannica.com/topic/state-of-nature-political-theory. <a href=\"https://www.britannica.com/topic/state-of-nature-political-theory\">https://www.britannica.com/topic/state-of-nature-political-theory</a></li>\n  <li id=\"fn-9\">Nature versus nurture - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/Nature_versus_nurture\">https://en.wikipedia.org/wiki/Nature_versus_nurture</a></li>\n</ol>","title":"A Rant on The Genetic Lottery by Kathryn Paige Harden","date":"2022-12-16T05:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"rant","tags":["race","class","identity","books","criticism","psyche"],"blurb":"You say material conditions. Harden says bet, let me test your genes to make sure though.","thread":"who-gets-to-be-a-person","threadOrder":3},{"slug":"Emperor_Hostage_Despot","rawContent":"# Emperor, Hostage, Despot!\n\n## <a name=\"daddymakeempire\"></a>[Nationalist Power Dreams of Empire](#daddymakeempire)\n\nMy exploration of major European ideological shifts began with Michel Foucault’s _[Discipline and Punish](https://en.wikipedia.org/wiki/Discipline_and_Punish)<sup><a href=\"#fn-1\">1</a></sup>_, which illuminated the transition from sovereign power to institutional control, offering a framework for understanding modern mechanisms of governance. This was complemented by Hannah Arendt’s _[On Revolution](https://en.wikipedia.org/wiki/On_Revolution)<sup><a href=\"#fn-2\">2</a></sup>_, which dissected the complexities of political revolutions and the challenges of establishing lasting freedom and Robert Owen Paxton’s _[The Anatomy of Fascism](https://en.wikipedia.org/wiki/The_Anatomy_of_Fascism)<sup><a href=\"#fn-3\">3</a></sup>_, which revealed how societal conditions and manipulated sentiment can foster extremist ideologies. Underpinning my views is a sort of techno determinism, influenced by Marshall McLuhan’s _[The Medium Is the Massage](https://en.wikipedia.org/wiki/The_Medium_Is_the_Massage)<sup><a href=\"#fn-4\">4</a></sup>_, which reshaped my understanding of how communication technologies shape perception and behavior, a perspective further enriched by studies like _[Being and the Screen](https://mitpress.mit.edu/9780262043168/being-and-the-screen/)<sup><a href=\"#fn-5\">5</a></sup>_ and timelines such as _[The Evolutions of Traditional to New Media](https://www.timetoast.com/timelines/the-evolutions-of-traditional-to-new-media)<sup><a href=\"#fn-6\">6</a></sup>_. Finally, Robert Sapolsky’s _[Behave](https://app.thestorygraph.com/books/6e89c7de-6d86-4484-80b3-166a09cdf1c1)<sup><a href=\"#fn-7\">7</a></sup>_ provided a biological and environmental lens for understanding human behavior, tying together the interplay of power, perception, and ideology that continues to shape our world. All lead me to believe:\n\n- 16th-century ideology to today in Europe/US/Australia/Canada (I may refer to as EUSAC) should be interpreted anthropologically. Think rise of material standards because colonialism as opposed to some historical determinism set out by [Fukuyama](https://www.vanityfair.com/news/2022/04/inside-the-new-right-where-peter-thiel-is-placing-his-biggest-bets)<sup><a href=\"#fn-8\">8</a></sup>.\n- pre-revolution and post-revolution France, Russia, and the US were concerned with centralized power.\n- Fascism is a conservative brain phenomenon in societies that are stressed and can be identified by\n\n  - homogenous identities\n  - the need for “an enemy”\n  - populist leaders\n  - wealthy conservative elite\n\nVery much today’s worst case in the US...\nIn March Jeff Sharlet, [Vanity Fair](https://www.vanityfair.com/news/2022/04/inside-the-new-right-where-peter-thiel-is-placing-his-biggest-bets%22%3Evanityfair)<sup><a href=\"#fn-9\">9</a></sup> contributing editor, tweeted that the “intellectual New Right is a white supremacist project designed to cultivate non-white support,” and he linked it to resurgent nationalist and authoritarian politics around the world: “It’s part of a global fascist movement not limited to the anti-blackness of the U.S. & Europe.” — James Pogue,\n\n## <a name=\"daddypleaseeee\"></a>[We Crave Daddy. Own Us Daddy. Be a Despot!](#daddypleaseeee)\n\nDuring a recent road trip, I listened to the [revolutions](https://thehistoryofrome.typepad.com/revolutions_podcast/bibliography.html%22%3Erevolutions)<sup><a href=\"#fn-10\">10</a></sup> podcast. The whole thing. What stood out through 17th-19th era of revolution was Napoleon Bonaparte, an accomplished Corsican general of the middle class who rose to become an emperor for a short while. Like a hundred days. I had always shit on France for having a revolution just to restore a king. And you know, wildly decapitating people.\n\nAnd I used to think, yeah, the state monopolizes power so of course a king may be convenient. But no. Kings are disposed often. Like in the [Northman](https://www.youtube.com/embed/-0_yPnyxf-A?start=149&%22%3ENorthman)<sup><a href=\"#fn-11\">11</a></sup> movie. Bro really left his wife and child for honor? This y'all power fantasy?\n\nI also wonder if Napoleon’s success could be seen as a triumph of the liberal policies France introduced through revolution. More puzzling about the restoration of the monarchy was that the French revolution was directly concerned with figures like Napoleon rising to power. Who held the authority to tax citizens and build armies _\\*competently\\*_ was the main catalyst for the revolution. The rights of the [three estates](https://www.worldhistory.org/article/1960/the-three-estates-of-pre-revolutionary-france/\")<sup><a href=\"#fn-12\">12</a></sup> had all been radically altered to more generally suit the French population’s needs in the midst of an economic crisis. And though members of the council watched Napoleon's rise with extreme scrupulousness(while trying not to be killed), the people chose him to represent them. At least until the forces of a united Europe brought about a good chance for french liberals to dethrone Napoleon. His [heir](https://en.wikipedia.org/wiki/Jean-Christophe,_Prince_Napol%C3%A9on%22%3Eheir)<sup><a href=\"#fn-13\">13</a></sup> nonetheless still has a claim to this day.\n\n## <a name=\"thankyoudaddy\"></a>[Hostages to Nationalist Power Fantasies of Daddy Owning Us](#thankyoudaddy)\n\n<iframe\n  width=\"560\"\n  height=\"315\"\n  src=\"https://www.youtube.com/embed/uFm7RaNAc3w?si=e-I36GVTynFklJqf\"\n  title=\"YouTube video player\"\n  allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n  referrerPolicy=\"strict-origin-when-cross-origin\"\n  allowFullScreen\n></iframe>\nZizek describes monarchs as having the appearance of rule. These figures are\nunfortunately tasked with bearing the burden of the masses as well as their own\ngreed. He says these figures are at their best in their himbo-bimbo era.\nMotivated monarchs should be feared. Is it possible cult-like leaders are the\nonly egomaniacs who would take on the task of fronting civilization building? I\ndoubt that, but we love them.\n\nThis thought keeps me up at night. There is no singular authority. Most often, whatever whims can be met by a state as transmitted through some society. I know, I learned a lesson Foucault reiterates over and over. Power and knowledge are capricious constants that bubble from below. I suppose the upside is we can construct institutions such that the wildest threat to them is absorbed. These threats should make the future of human organizations a bit more of an object to reason about. Fascinating it is for anyone to become emperor; more fascinating is to create a society in which emperors get wrecked. I now have a new belief:\n\n- Hierarchical leaders may or may not be corrupt but their power is being the foreign relations person for the group. It is valuable to have a monarch as a group pathologizes its place in the world.\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">Discipline and Punish - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/Discipline_and_Punish\">https://en.wikipedia.org/wiki/Discipline_and_Punish</a></li>\n  <li id=\"fn-2\">On Revolution - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/On_Revolution\">https://en.wikipedia.org/wiki/On_Revolution</a></li>\n  <li id=\"fn-3\">The Anatomy of Fascism - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/The_Anatomy_of_Fascism\">https://en.wikipedia.org/wiki/The_Anatomy_of_Fascism</a></li>\n  <li id=\"fn-4\">The Medium Is the Massage - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/The_Medium_Is_the_Massage\">https://en.wikipedia.org/wiki/The_Medium_Is_the_Massage</a></li>\n  <li id=\"fn-5\">Being and the Screen — MIT Press. <a href=\"https://mitpress.mit.edu/9780262043168/being-and-the-screen/\">https://mitpress.mit.edu/9780262043168/being-and-the-screen/</a></li>\n  <li id=\"fn-6\">Timeline: THE EVOLUTIONS OF TRADITIONAL TO NEW MEDIA — Timetoast. <a href=\"https://www.timetoast.com/timelines/the-evolutions-of-traditional-to-new-media\">https://www.timetoast.com/timelines/the-evolutions-of-traditional-to-new-media</a></li>\n  <li id=\"fn-7\">https://app.thestorygraph.com/books/6e89c7de-6d86-4484-80b3-166a09cdf1c1. <a href=\"https://app.thestorygraph.com/books/6e89c7de-6d86-4484-80b3-166a09cdf1c1\">https://app.thestorygraph.com/books/6e89c7de-6d86-4484-80b3-166a09cdf1c1</a></li>\n  <li id=\"fn-8\">Inside the New Right, Where Peter Thiel Is Placing His Biggest Bets — Vanity Fair. <a href=\"https://www.vanityfair.com/news/2022/04/inside-the-new-right-where-peter-thiel-is-placing-his-biggest-bets\">https://www.vanityfair.com/news/2022/04/inside-the-new-right-where-peter-thiel-is-placing-his-biggest-bets</a></li>\n  <li id=\"fn-9\">https://www.vanityfair.com/news/2022/04/inside-the-new-right-where-peter-thiel-is-placing-his-biggest-bets%22%3Evanityfair. <a href=\"https://www.vanityfair.com/news/2022/04/inside-the-new-right-where-peter-thiel-is-placing-his-biggest-bets%22%3Evanityfair\">https://www.vanityfair.com/news/2022/04/inside-the-new-right-where-peter-thiel-is-placing-his-biggest-bets%22%3Evanityfair</a></li>\n  <li id=\"fn-10\">https://thehistoryofrome.typepad.com/revolutions_podcast/bibliography.html%22%3Erevolutions. <a href=\"https://thehistoryofrome.typepad.com/revolutions_podcast/bibliography.html%22%3Erevolutions\">https://thehistoryofrome.typepad.com/revolutions_podcast/bibliography.html%22%3Erevolutions</a></li>\n  <li id=\"fn-11\">YouTube. <a href=\"https://www.youtube.com/embed/-0_yPnyxf-A?start=149&amp;%22%3ENorthman\">https://www.youtube.com/embed/-0_yPnyxf-A?start=149&%22%3ENorthman</a></li>\n  <li id=\"fn-12\">The Three Estates of Pre-Revolutionary France — World History Encyclopedia. <a href=\"https://www.worldhistory.org/article/1960/the-three-estates-of-pre-revolutionary-france/&quot;\">https://www.worldhistory.org/article/1960/the-three-estates-of-pre-revolutionary-france/\"</a></li>\n  <li id=\"fn-13\">https://en.wikipedia.org/wiki/Jean-Christophe,_Prince_Napol%C3%A9on%22%3Eheir. <a href=\"https://en.wikipedia.org/wiki/Jean-Christophe,_Prince_Napol%C3%A9on%22%3Eheir\">https://en.wikipedia.org/wiki/Jean-Christophe,_Prince_Napol%C3%A9on%22%3Eheir</a></li>\n</ol>","title":"Emperor, Hostage, Despot!","date":"2022-12-11T05:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"essay","tags":["power","history","empire","media","myth","philosophy","books"],"blurb":"Foucault, Arendt, Paxton. There is no singular authority — so why do we keep volunteering for a daddy?","thread":"map-ate-the-nation","threadOrder":2},{"slug":"Rules_for_Radicals","rawContent":"# Rules for Radicals\n\nChicago is a horribly corrupt place to live to this [day](https://en.m.wikipedia.org/wiki/Political_history_of_Chicago)<sup><a href=\"#fn-1\">1</a></sup>\n\nRevolution for as long as I can tell meant violent popular uprisings. Consider Haiti, Puerto Rico, Cuba, Algeria, China, India, South Africa, America etc. Zizek spoke on the Kurdish city that was able to obtain something of a utopian order in his latest book [Heaven in Disorder](https://www.goodreads.com/en/book/show/58587163)<sup><a href=\"#fn-2\">2</a></sup> but nah, they losing. Socotra, Columbia, Venezuela, Taiwan, Libya, Rwanda, France, etc…\n\nI mean here’s the large pink striped elephant in the room. Power does not give itself up. Maybe the last ten years were better than the ten before that. But these battles are far from deterministic, with a huge asterisk coming.\n\nSocialist ideology could be found in southern mill culture. Mill families could extend credit, borrow money, and rely on the mill community to keep it going. What happened to that? Well, in the face of terminal lung illness, competing against black education, and the real dead end of the mill, people began organizing and asking for rights. This was happening right beside prohibition because women and children were getting their faces knocked off by sad drunk men with nothing else to do. Prohibition and education worked for building a middle class in the US. Then the companies left, with exception of giants such as Millikan, who my grandmother worked for and who, from that work, has respiratory issues today. Many ideologies compete, contrast, or enhance each other(there is a dialectic) but power has been pretty damn dominant in structuring our society towards white nationalist narratives.\n\nLet us remember: the south is dying and the only lifeblood for these cities are capitalists(the industrial boom of South Carolina is) and high-income earners. When these groups remove themselves from political organizing government only becomes useful for sublimating the rhetoric by liberal and conservative media outlets.\n\nIf Nial(Neil) Ferguson(idc) and David Graeber can agree that socialist ideology is far more sanguine to a natural human order, ideology seems a less prevalent impetus to organizing than its pragmatic nature.\n\nI think it’s fair to say the revolution will not be televised, but there are no rules. The most palpable revolutionary force in America is an anti-capitalist, racist, right wing fascism.\n\nTo jump the question of rules for radicals, who are the loud minority, how does the silent majority live through ecological collapse? This is that asterisk. It seems we’re losing. We being people. There isn't any uniting principle or goal. It's giving Parable of the Sower.\n\nSo what is activism? What can it do? Ride around your city at 3-4am. Join a protest. Get involved in organizing your people. I’m not discounting organizing. But I’d like to forward a more pragmatic mentality inspired by a monologue from The Turin Horse. If everything has been upended and the only real change never happened then where do we go? When can we say we lost? Where should we go after?\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">Political history of Chicago - Wikipedia. <a href=\"https://en.m.wikipedia.org/wiki/Political_history_of_Chicago\">https://en.m.wikipedia.org/wiki/Political_history_of_Chicago</a></li>\n  <li id=\"fn-2\">Heaven in Disorder — Goodreads. <a href=\"https://www.goodreads.com/en/book/show/58587163\">https://www.goodreads.com/en/book/show/58587163</a></li>\n</ol>","title":"Rules for Radicals","date":"2022-08-22T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"essay","tags":["power","america","class","history","freedom","books"],"blurb":"Power does not give itself up. Mill towns, prohibition, and what is left of southern organizing.","thread":"freedom-and-its-cost","threadOrder":3},{"slug":"What_Shines","rawContent":"# What Shines\n\nA review of _The Temple of the Golden Pavilion_.\n\n_spoilers ahead_\n\nTLDR: Can acts of destruction be virtuous?\n\nThe point of this post is to consider how an act of destruction becomes moral. Whether violence _is_ moral is outside the scope. Terrorism as an extension of moral philosophy is outside the scope.\n\n### Intro\n\n1950 saw the infamous Kinkaku-Ji destroyed. This had been the second time since some nearly 400 years before, when a civil war broke out, ushering in the [warring states period for Japan](https://en.wikipedia.org/wiki/%C5%8Cnin_War)<sup><a href=\"#fn-1\">1</a></sup>. Zen monk in training Hayashi Yoken had little documentation regarding his motivation but was said to be a fanatic and a schizophrenic with a persecution complex. The temple, known in English as the Golden Pavilion was reconstructed, packing more gold leaf than before, and remains a popular destination for many to this day. In _The Temple of the Golden Pavilion_ Yukio Mishima re-imagines this boy’s act as that of a troubled adolescent.\n\nPainted image of Kinkaku - ji before it burned down in 1950\n\nConsider the Virtue of Action\n\nThe introduction to the book by Nancy Wilson Ross roots psychological trauma as the impetus for Mizoguchi’s troubled relationship with beauty and action. I necessarily agree that an intervention of some kind is preferred when one finds themselves in a sense of “sick consciousness“, but what I reject from Ross is the minimization of Mizoguchi’s reasoning. If Zen is the killing of a cat and the nature of Zen can be the placement of shoes on the head, then Zen seems to be found in the action? Not the reasoning. Mishima thus asks us to consider the effective action Mizoguchi takes when fully disillusioned by the iconography of the temple.\n\nI do not take it that Yukio Mishima imagines Mizoguchi as a psychotic boy lashing out at misplaced impotence or the perceived vanity of the monks. Not to take away from Mizoguchi’s mental troubles, however, I am totally down to say his fixation on the temple is a stand-in for a sense of impotence or a classic psychotic break.\n\nBut is Mizoguchi psychotic? Well, potentially. After a fateful encounter with his childhood crush left him speechless and somewhat bumbling, Mizoguchi’s ideology can be clarified by the following:\n\nDay and night I wished for Uiko's death. I wished that the witness of my disgrace would disappear. If only no witnesses remained, my disgrace would be eradicated from the face of the earth. Other people are all witnesses. If no other people exist shame could never be born in the world.\n\nIn this formative moment for Mizoguchi his preconception of beauty as imparting a sort of indelible innocence is torn from him, replaced by a deep shame and suspicion. If we are to take the events at face, it would seem his self-consciousness arises from the revelation of his own inaction rather than the imminent rejection of Uiko, who simply happens to be a “witness“ of this shame. I believe the line below is actually unsubtle at intimating the extent of Mizoguchi’s psychological state:\n\nAs usual, it occurred to me that words were the only things that could possibly save me from this situation. This was a characteristic misunderstanding on my part. When action was needed, I was always absorbed in words; for words proceeded with such difficulty from my mouth that I was intent on them and forgot all about action. It seemed to me that actions, which are dazzling, varied things, must always be accompanied by equally dazzling and equally varied words\n\nOne can ask, under a less pressing situation, in which Mizoguchi does not deal with the suicide of a peer, the death of his father, an inattentive mother, the frivolousness of temple monks, an inner dialogue on the mundanity of beauty, and a speech disability, “would the outcome still happen?“\n\nIt may seem unlikely, but I propose morality is not easily gained. Much of this book seems to be a meditation on action and the virtues beauty inhabit as opposed to the sick manifestation of a boy\n\n### Concerning Morality and Beauty\n\nWhile reading, I was primed with the notion of this ending with the murder of a sex worker. For what it’s worth, I also took most of the book to initially be a boy dealing with a traumatic kind of impotence and depression. The story of Elliot Rodger was at the top of my mind, I was like “for sure this guy murders a prostitute right?“ However Mizoguchi found the company of women often, and when the time for sex occurred he found himself more fixated with the temple, never once seeing women as the source of his impotence. Let us take a look at pages 203 to 205.\n\n> “Thus it was that she unfastened her sash-bustle before my eyes and untied the various cords. Then with a silky shriek, the sash itself came undone, and, released from this constriction, the neck of her kimono opened up. I could vaguely make out the woman's white breasts. Putting her hand into her kimono she scooped out her left breast and held it out to me.\n>\n> It would be untrue to say that I did not feel dizzy. I looked at her breast. I looked at it with minute care. Yet I remained in the role of witness. That mysterious white point which I had seen in the distance from above the temple gate had not been a material globe of flesh like this. The impression had been fermenting so long within me that the breast which I now saw seemed to be nothing but flesh, nothing but a material object. This flesh did not in itself have the power to appeal or to tempt. Exposed there in front of me, and completely cut off from life, it merely served as a proof of the dreariness of existence.\n>\n> Still, I do not want to say anything untrue, and there is no doubt that at the sight of her white breast I was overcome by dizziness. The trouble was that I looked too carefully and too completely, so that what I saw went beyond the “stage of being a woman's breast and was gradually transformed into a meaningless fragment.\n>\n> It was then that the wonder occurred. After undergoing this painful process, the woman's breast finally struck me as beautiful. It became endowed with the sterile and frigid characteristics of beauty and, while the breast remained before me, it slowly shut itself up within the principle of its own self. Just as a rose closes itself up within the essential principle of a rose. Beauty arrives late for me. Other people perceive beauty quickly, and discover beauty and sensual desire at the same moment; for me it always comes far later. Now in an instant the woman's breast regained its connection with the whole, it surmounted the state of being mere flesh and became an unfeeling, immortal substance related to eternity.\n>\n> I hope that I am making myself understood.\n>\n> The Golden Temple once more appeared before me. Or rather, I should say that the breast was transformed into the Golden Temple.\n>\n> I was certainly not intoxicated by my understanding. My understanding was trampled underfoot and scorned; naturally enough, life and sensual desire underwent the same process. But my deep feeling of ecstasy stayed with me and for a long time I sat as though paralyzed opposite the woman's naked breast.\n>\n> I was sitting there when I met the woman's cold, scornful look. She put her breast back into the kimono. I told her that I must leave. She came to the entrance and closed the door after me noisily.\n>\n> Until I returned to the temple, I remained in the midst of ecstasy. In my mind's eye I could sec the Golden Temple and the woman's breast coming and going one after the other. I was overcome with an impotent sense of joy.\n>\n> Yet when the outline of the temple began to emerge through the dark pine forest, which was soughing in the wind, my spirits gradually cooled down, my feeling of impotence become predominant and my intoxication changed into hatred-a hatred for I knew not what.\n>\n> So once again I have been estranged from life!\n\nI do not see this as a metaphor of misplaced rage at the woman. There is morally bound impotence arising from his relationship with the pavilion. Mizoguchi is not driven by despotism or the lack of mental health care. Neither should we consider him to be fanatical in regards to theology. Mizoguchi is driven to act by a moral duty to his ideas. To not acknowledge the moral impetus of his destructive intent requires us to ignore the allegoric dialogue between Kashiwagi & Mizoguchi at the core of this book.\n\n### Nansen Kills the Cat\n\nIn a koan compiled by Zen master [Wumen Huikai](https://en.wikipedia.org/wiki/Wumen_Huikai)<sup><a href=\"#fn-2\">2</a></sup>, the tale of Nansen and Joshu is told. Nansen kills a cat because his students couldn’t answer a question on the nature of Zen. Joshu, having been away, arrives, and is told the news of the cat. He places his sandal on his head and walks out. Nansen responds, noting that if Joshu was there, he would have saved the cat. I do not aspire to attain any notion of a Zen practitioner, but the notion of an individual irrationality in action attributed to Zen has intrigued me since hearing this story.\n\nIn describing the Zen of Nansen Kills the Cat, Zen master Roshi Philip Kapleau observes\n\nIn Zen, it is said that the highest truth is beyond knowing….True Nature is free from all-knowing and not-knowing. It surpasses all concepts of right and wrong, of this and that — “cat has the Buddha nature,” “the cat doesn’t have the Buddha nature”… “dog has the Buddha nature,” “dog doesn’t have the Buddha nature”… “is the enlightened person subject to the law of cause and effect, or is he not?” In every one of these ideas, we are obscuring the wholeness of our True Nature…. Nansen with one stroke cuts out all of these delusions of the monks. Like a surgeon with a scalpel, he cuts out the cancer of this contentious mind.\n\nThere is no such thing as individual knowledge….knowledge is the sea of humanity, the field of humanity, the general condition of human existence\n\nWhat Mizoguchi does as an act of Zen, is possibly motivated by his liaise with beauty. Let us consider some dialogue between Kishiwagi and Mizoguchi.\n\n> Kashiwagi: human beings possess the weapon of knowledge in order to make life bearable. For animals such things are not necessary, as animals don’t need knowledge or anything of the sort to make life bearable. But human beings do need something, and with knowledge they can make the very intolerableness of life a weapon. Though know at the same time, that intolerableness is not reduced in the slightest that’s all there is to it\n>\n> Mizoguchi : don’t you think there is some other way to bear life\n>\n> Kashiwagi : no I don’t, apart from that, there’s only madness for death\n>\n> Mizoguchi : knowledge can never transform the world…what transforms the world is action, there’s nothing else\n>\n> Kashiwagi : there you go…don’t you see that the beauty of this world which means so much to you craves sleep, and that in order to sleep it must be protected by knowledge. you remember that story of Nansen kills a kitten…the cat in that story was incomparably beautiful. the reason that the priest from the two halls of the temple quarreled about the cat, was that they both wanted to protect the kitten. to look after it, to let it sleep snugly within their own particular cloaks of knowledge. Now father Nansen was a man of action so he went and killed a kitten with his sickle, and had done with it, but when Joshu came along later he removed his shoes and put them on his own head. What Joshu wanted to say was this, that he was fully aware that beauty is a thing which must sleep and which, in sleeping must be protected by knowledge, but there is no such thing as individual knowledge. a particular knowledge belonging to one special person or group. Knowledge is the sea of humanity, the field of humanity the general condition of human existence. I think that is what he wanted to say. Now you want to play the world of Joshu don’t you? Well beauty, beauty that you love so much is an illusion of the remaining part, the excessive part which has been consigned to knowledge. It is an illusion of the other way to bear life, which you mentioned. One could say that, in fact, there is no such thing as beauty. what makes the illusion so strong….is precisely knowledge…….beauty is never a consolation. It may be a woman, it may be one’s wife, but its never a consolation. Yet from marriage between this beautiful thing, which is never a consolation on the one hand, and knowledge on the other, something is born. It is as evanescent as a bubble and utterly hopeless, yet something is born that something is what people call art.\n>\n> Mizoguchi : Beautiful things…those are now my most deadly enemies\n\n### Mizoguchi Destroys the Temple\n\nMizoguchi is exposed to murder, famine, the death of his father, an absentee mother, and an early childhood mired in ridicule and a sense of shame. As his mental state deteriorates, it is not any of these realities that spark the idea to burn down the temple. It is hearing of how the citizens in a tavern view the temple monks. Tax burdens who do little more than chase sex workers. At this moment, Mizoguchi has his mind set on destroying asceticism. Mizoguchi loses any illusion of beauty in the practice of the monks and must destroy that beautiful temple.\n\nWorks Cited:\n\nMishima, Y., 1977. The Temple of the golden pavilion. New York: Knopf.\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">Ōnin War - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/%C5%8Cnin_War\">https://en.wikipedia.org/wiki/%C5%8Cnin_War</a></li>\n  <li id=\"fn-2\">Wumen Huikai - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/Wumen_Huikai\">https://en.wikipedia.org/wiki/Wumen_Huikai</a></li>\n</ol>","title":"What Shines","date":"2022-06-14T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"review","tags":["morality","beauty","freedom","psyche","books","criticism"],"blurb":"The Temple of the Golden Pavilion. Can an act of destruction be virtuous?","thread":"freedom-and-its-cost","threadOrder":2},{"slug":"Dont_Let_the_Medium_Dictate_a_Purpose_for_the_Message","rawContent":"# Don't Let the Medium Dictate a Purpose for the Message\n\nRecently I had a conversation that went like this:\n\n> Zo: Qwelian, do you think we get AI?\n>\n> Me: I think it’s a pretty long shot. Maybe we get legit humanlike virtual AI assistants at best.\n>\n> Zo: Yeah, we just gotta prevent the AI revolt if they become self-aware. Engineering class hierarchies into AI could be a solution.\n>\n> Me: Bruh why are we projecting class distinctions onto code?\n>\n> Zo: Oh, so you mean to tell me AI cant be conscious? Qwelian, isn’t your conscious processes analogous to an algorithm?\n>\n> Me: First, the Animatrix. Robo revolution is assured if we go that way. Plus, WTF are we talking about? Embodied agents with freedom or socially constructed agents. I find it hard to believe that we can outsmart machines anyway.\n>\n> Zo: Yeah, so how about those hierarchies?\n\nWe really arguing whether the future of life, digital entities, will organize against us.\n\n## Make it Make Sense\n\nRecently I have been thinking about four pieces of writing. The first is Marshall McLuhan’s [The Medium is the Message](https://en.wikipedia.org/wiki/The_medium_is_the_message)<sup><a href=\"#fn-1\">1</a></sup>. McLuhan suggests the following: New technology can capture fully how we understand, incorporate, and act on information. Without social media or the internet(the medium), how we talk about creating communities with access to information looks different(the message). This leads to my first question: _How are contemporary technologies wholly affecting the way we cognize the world?_\n\n_Simulacra and Simulacrum_ by Jean Baudrillard is the second. Initially, I read the first couple of pages, skipped through, and said to myself, “Hmmm, there isn’t much here, he's really just on a soapbox screaming the media ruined everything. Very much [Howard Beale](https://www.youtube.com/watch?v=1cSGvqQHpjs&ab_channel=MovieclipsClassicTrailers)<sup><a href=\"#fn-2\">2</a></sup> peak messianic media personality. I should just read Borges. But Baudrillard uses a metaphor at the beginning of the book(taken from Borges), essentially saying the map of a nation can become more expansive than the nation itself.\n\nIf McLuhan ‘s notion of an idea means the superimposition of an idea’s original context with what can be derived from the idea, then what comes next is the perpetuation of the necessity of the idea, becoming future propaganda for itself through whatever reason deemed necessary. This [review](https://irfanajvazi.substack.com/p/baudrillards-simulacra-and-simulation?s=r)<sup><a href=\"#fn-3\">3</a></sup> of _Simulacra and Simulacrum_ has a nice summary.\n\n_*What drives the mapping of lived experience onto technology?*_\n\n<iframe\n  width=\"560\"\n  height=\"315\"\n  src=\"https://www.youtube.com/embed/fA3M7fjr60Y?si=E7-blssrB6_LgMnH\"\n  title=\"YouTube video player\"\n  allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n  referrerPolicy=\"strict-origin-when-cross-origin\"\n  allowFullScreen\n></iframe>\n\n---\n\nApparently hierarchies can be expressed through [NFTs?](https://www.vice.com/en/article/5dgw9a/racist-meta-slave-nft-project-rebrands-after-being-called-racist)<sup><a href=\"#fn-4\">4</a></sup>. Seriously who is going out making slave tokens...\n\n---\n\n## Why John, WHY?\n\nThe third is _[Semantic Engines]([https://www.scribd.com/document/119239415/John-Haugeland-Semantic-Engines)_ by John Haugeland. Haugeland’s piece questions whether cognition can arise from a semantic understanding of mental states. He applies computational theory to minds using Turing machines and games. In his view, mental awareness is little more than symbol manipulation. This approach melds the mentalist belief in the phenomenon of consciousness with the behaviouralist approach of empirically developed experiments to gauge cognition. I like the essay because why not abstract consciousness to processes akin to [formal methods](https://en.wikipedia.org/wiki/Formal_methods)<sup><a href=\"#fn-5\">5</a></sup>. It may totally be the case that human-level thought is just like really really complex symbol manipulation. All Symbols all the way down. I mean a really cool robot might convince me of that 🤷🏿‍♂️. What gives serious pause, to me, is to **_not treat simulations as a form of insight into cognition as opposed to the thing consciousness is_**. It’s like taking a turtle out and saying it’s a duck. Make it make sense. The movie Free Guy is fantastic but it would be hella sus if, in that world, we thought we discovered what cognition is for humans instead of a great simulation of cognitive capacity. I am all aboard(motherboard pun 😭) for cognitive beings. Yet, this is precisely what Haugeland and those of his [brand](https://en.wikipedia.org/wiki/Intentionality)<sup><a href=\"#fn-6\">6</a></sup> of brain as CPU believers like [Daniel Dennett](https://www.goodreads.com/review/show/4206814457)<sup><a href=\"#fn-7\">7</a></sup> do. They take a strong AI stance by saying thought is digital and the brain, pfft, who cares, it’s just wetware.\n\np.s. I mean the [latest AI](https://venturebeat.com/2022/06/04/is-deepminds-gato-the-worlds-first-agi/)<sup><a href=\"#fn-8\">8</a></sup> sparking GAI [discussion](https://open.spotify.com/episode/5Y0W9FVRIg3xRgp4fij1Zf?si=MYR_7O3tRtefOdO38sdqpg)<sup><a href=\"#fn-9\">9</a></sup> is just so so at the task given to it. Oh now that it can take multiple input types its gEnERaL Ai???\n\n![ooooo](https://assets.pubpub.org/ywgn2hzc/01655839176501.gif)\n\nFuck!\n\n![nooo](https://resize-v3.pubpub.org/eyJidWNrZXQiOiJhc3NldHMucHVicHViLm9yZyIsImtleSI6InZkbTRnamM3LzIxNjU1MDUyNTYxMjE5LnBuZyIsImVkaXRzIjp7InJlc2l6ZSI6eyJ3aWR0aCI6ODAwLCJmaXQiOiJpbnNpZGUiLCJ3aXRob3V0RW5sYXJnZW1lbnQiOnRydWV9fX0=)\n\nIn [Can Computers Think](https://danielwharris.com/teaching/101online/weeks/13/Searle.pdf)<sup><a href=\"#fn-10\">10</a></sup> John Searle defines the limits of viewing a syntactically structured system as containing meaning. As he puts it(pg 674 of linked PDF):\n\n1. Brains cause minds.\n2. Syntax is not sufficient for semantics.\n3. Computer programs are entirely defined by their formal, or syntactical, structure\n4. Minds have mental contents; specifically, they have semantic contents.\n\nwhich leads to a few conclusions:\n\n- _Computer programs cannot substitute the mind_\n\n- _Our awareness and reason cannot be simple as running a program and interpreting symbols_\n\n- _anything that causes the mind would have causal powers equal to that of the brain._\n\n- _Any artifact humans may create that has mental states similar to that of humans would not be a simple program._\n\nSearle asks a commonsense yet not so apparently so question: “Why do people think computers have thought or feel emotion?” Which brings us back to the conversation that started all of this. Why create an ML/AI caste system?\n\nShould we fear the cognitive capacity of Turing machines? If we get a tidy reproduction of human mental capacity via cyborgs, clones, or automata, that’s cool; then what? Pick your flavor of dystopic near-metal cognitive driving: _Serial Experiments Lain_? _The Matrix_? _Ex-Machina_? _Ghost in the Shell_, _Robot Carnival,_ and _Do Androids Dream of Sheep_ might reveal how we confront the phenomenon of relegating complex thoughts and emotions to humanity. But rarely do we envision a future where technology does more than mirror our current capacities. Maybe machines will take over, but technology is a medium through which we express ideas. We don’t need to create docile [slaves](https://www.newsweek.com/elon-musk-tesla-bot-people-can-run-away-it-1621330)<sup><a href=\"#fn-11\">11</a></sup>\n\nTo reiterate some questions I asked that are too onerous to find landing here, I ask:\n\n_*What flips the medium of technology to drive a hyperreal imitation of references to itself, such that the reference loses context to what technology itself abstracts?*_\n\n_*How are contemporary technologies wholly affecting the way we cognize the world?*_\n\n_*What drives the mapping of lived experience onto technology?*_\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">The medium is the message - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/The_medium_is_the_message\">https://en.wikipedia.org/wiki/The_medium_is_the_message</a></li>\n  <li id=\"fn-2\">Network (1976) Official Trailer - Peter Finch Movie — YouTube. <a href=\"https://www.youtube.com/watch?v=1cSGvqQHpjs&ab_channel=MovieclipsClassicTrailers\">https://www.youtube.com/watch?v=1cSGvqQHpjs&ab_channel=MovieclipsClassicTrailers</a></li>\n  <li id=\"fn-3\">https://irfanajvazi.substack.com/p/baudrillards-simulacra-and-simulation?s=r. <a href=\"https://irfanajvazi.substack.com/p/baudrillards-simulacra-and-simulation?s=r\">https://irfanajvazi.substack.com/p/baudrillards-simulacra-and-simulation?s=r</a></li>\n  <li id=\"fn-4\">Racist 'Meta Slave' NFT Project Rebrands After Being Called Racist — VICE. <a href=\"https://www.vice.com/en/article/5dgw9a/racist-meta-slave-nft-project-rebrands-after-being-called-racist\">https://www.vice.com/en/article/5dgw9a/racist-meta-slave-nft-project-rebrands-after-being-called-racist</a></li>\n  <li id=\"fn-5\">Formal methods - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/Formal_methods\">https://en.wikipedia.org/wiki/Formal_methods</a></li>\n  <li id=\"fn-6\">Intentionality - Wikipedia. <a href=\"https://en.wikipedia.org/wiki/Intentionality\">https://en.wikipedia.org/wiki/Intentionality</a></li>\n  <li id=\"fn-7\">Sign in. <a href=\"https://www.goodreads.com/review/show/4206814457\">https://www.goodreads.com/review/show/4206814457</a></li>\n  <li id=\"fn-8\">https://venturebeat.com/2022/06/04/is-deepminds-gato-the-worlds-first-agi/. <a href=\"https://venturebeat.com/2022/06/04/is-deepminds-gato-the-worlds-first-agi/\">https://venturebeat.com/2022/06/04/is-deepminds-gato-the-worlds-first-agi/</a></li>\n  <li id=\"fn-9\">513: Mitch Horowitz — Spotify. <a href=\"https://open.spotify.com/episode/5Y0W9FVRIg3xRgp4fij1Zf?si=MYR_7O3tRtefOdO38sdqpg\">https://open.spotify.com/episode/5Y0W9FVRIg3xRgp4fij1Zf?si=MYR_7O3tRtefOdO38sdqpg</a></li>\n  <li id=\"fn-10\">https://danielwharris.com/teaching/101online/weeks/13/Searle.pdf. <a href=\"https://danielwharris.com/teaching/101online/weeks/13/Searle.pdf\">https://danielwharris.com/teaching/101online/weeks/13/Searle.pdf</a></li>\n  <li id=\"fn-11\">Elon Musk Says Tesla Bot Designed so That People &#x27;Can Run Away From It&#x27; — Newsweek. <a href=\"https://www.newsweek.com/elon-musk-tesla-bot-people-can-run-away-it-1621330\">https://www.newsweek.com/elon-musk-tesla-bot-people-can-run-away-it-1621330</a></li>\n</ol>","title":"Dont Let the Medium Dictate a Purpose for the Message","date":"2022-06-13T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"essay","tags":["media","cognition","ai","myth","philosophy","books"],"blurb":"McLuhan, Baudrillard, Searle — and three questions about what a medium does to a mind.","thread":"map-ate-the-nation","threadOrder":1},{"slug":"Notes_on_Being_Black_and_100_Amazing_Facts_About_the_Negro","rawContent":"# Notes on Being Black and 100 Amazing Facts About the Negro\n\n[100 Amazing Facts about the Negro with Complete Proof: A Short Cut to the World History of the Negro](https://www.goodreads.com/book/show/338377.100_Amazing_Facts_about_the_Negro_with_Complete_Proof)<sup><a href=\"#fn-1\">1</a></sup>\n\nThere are multiple states of experience in the communities of Americana. Most probably due to extractive, globally expansive policies of the colonial enterprise. Now, this isn’t to say that ethnic/cultural diversity isn’t a thing and always will be a thing, but I’m just saying, it’s not why I’m here in America. As I read through _How Nations Fail_ the focus on institutional practices and the will of the state to exist, how the state validates its undertakings, promotes innovation, and how those institutions change culturally have become more prescient for me in a time where ‘antiracism‘ is meaningful in the practice of institution, uhh being and doing.\n\nThe search for meaning in my specifically _black_ identity is a question I grapple with. My identity is partially a tale of my temporal essence, or, to be less vague, how I am perceived socially in whatever context and how I experience my social caste maybe, status, maybe identity through the historical impact of ideas and institutions. Afropessimism is a bit too uhh pessimistic in forwarding a theory of the end of racialized identities but I like the vibe. We should probably stop racializing each other.\n\nEvery now and then I go through _100 Amazing Facts About the Negro_ to make sure I am not crazy for believing in the struggle for the black folk after rampant colonial racist ethnography became the norm. Post-modernity suggests identities are self-asserted, performative sociality, with the state as a vehicle for the people to innovate, grow wealth, and support themselves through tacitly inclusive or uninclusive institutions. I find this book to be the quintessence of that because history has a lot of black people in it. But there was and still is a need to remind people of that. What is that need?\n\nWhen racial tensions arise to become a distraction from or scapegoat for more intrinsic issues in Americana J.A. Rogers reminds us that black people have\n\n_\\*always\\*_ been great, or at least treated as great threats.\n\nThis leads me to my favorite facts currently:\n\n- Fact 8: Was Beethoven black? I am not convinced, but Rogers cites relevant sources on the topic. We also get [this](https://beethovenwasafrican.bandcamp.com/album/beethoven-was-african)<sup><a href=\"#fn-2\">2</a></sup> ML-generated rendition of Beethoven that provides African polyrhythms for his piano sonatas. I am here for it.\n\n- Fact 41: Poor white people in Maryland would be forced into slavery after marriage to enslaved Africans because of a [law](https://msa.maryland.gov/msa/speccol/)<sup><a href=\"#fn-3\">3</a></sup>(1664) that stated marriage to a slave meant you served that slave’s master. Meant to de-incentivize early race-mixing, the law also removed the ambiguity of slave status for mixed-race children, as well as baptized slaves. A follow-up to this law is one preventing slave owners from forcing poor white \\*_women_\\* to marry male slaves(1681), exposing deep roots of gendered miscegenation.\n\n- Fact 50: The psalms of the bible may be in the lineage of those in writings from the Egyptian philosopher, Akhenaten, who promoted monotheism and what it meant to be moral. Nice to have this partially reinforced by a podcast I listen to on the history of philosophy. From the series on [Africana Philosophy](https://historyofphilosophy.net/egypt)<sup><a href=\"#fn-4\">4</a></sup>.\n\nNot all of his facts can be supported, or should be considered tasteful; boasting about black male fitness over white counterparts for war is questionable, and while I _\\*love\\*_ black washing history, plenty of his examples are of dubious sources. Yet, 100 AFATN reminds me that the history of my people is a long history that has been influential far before Atlantic routes of bondage had been established. We should hold the history close.\n\nPeace\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">100 Amazing Facts About the Negro with Complete Proof: … — Goodreads. <a href=\"https://www.goodreads.com/book/show/338377.100_Amazing_Facts_about_the_Negro_with_Complete_Proof\">https://www.goodreads.com/book/show/338377.100_Amazing_Facts_about_the_Negro_with_Complete_Proof</a></li>\n  <li id=\"fn-2\">Beethoven Was African, by ANY — ANY. <a href=\"https://beethovenwasafrican.bandcamp.com/album/beethoven-was-african\">https://beethovenwasafrican.bandcamp.com/album/beethoven-was-african</a></li>\n  <li id=\"fn-3\">https://msa.maryland.gov/msa/speccol/. <a href=\"https://msa.maryland.gov/msa/speccol/\">https://msa.maryland.gov/msa/speccol/</a></li>\n  <li id=\"fn-4\">4. Pyramid Schemes: Philosophy in Ancient Egypt | History of Philosophy without any gaps. <a href=\"https://historyofphilosophy.net/egypt\">https://historyofphilosophy.net/egypt</a></li>\n</ol>","title":"Notes on Being Black and 100 Amazing Facts About the Negro","date":"2022-04-11T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"essay","tags":["race","america","history","identity","empire","books","archives"],"blurb":"J.A. Rogers, afropessimism, and why the reminder that Black people are in history keeps having to be made.","thread":"who-gets-to-be-a-person","threadOrder":2},{"slug":"a_gift","rawContent":"# a gift\n\n\\*_all images are taken from Attack on Titan chapter 131, written and illustrated by Hajime Isayama. none of the media is owned by me_\\*\n\nAttack on Titan is one of the best manga to come out in recent memory but it is bogged down by a convoluted plot, contradictory exposition of its themes, questionable\ncharacter development, and a random twist that does nothing to diminish or enhance the plot. It just kinda happens. AoT at its core, however effectively examines dread,\nuncertainty, war, and freedom through its primary character Eren Jaeger. I hope that readers question how capable we are of creating a positive world for future generations.\n\nWritten [here]([https://anilist.co/review/11025) is a review by Anilist user LN03. The ad hominem thrown at Hajime Isayama is unpleasing,\nbut I found myself agreeing with their criticism of Historia’s role in the plot, Eren’s contradictory behavior, Mikasa’s lack of growth, what Ymir’s love for King Fritz meant, why\nwar criminals are just left to chill, how Zeke died, why Reiner kept getting beat(all Ls), and why Eren felt his path appropriate. What I find most interesting\nis that anyone could view the ending of this series hopeful. For many, this story is flawed because there is no way that the protagonist can succeed in creating this happy ending Isayama has been building. I don't believe we are supposed\nto find Eren's actions reasonable though. Nor would a happy outcome make sense given the will of Ymir.\n\n### Justice.... Nah. Just Us\n\nAttack on Titan’s end hinges on its uncertainty. For me, AoT is a story of dread, [perhaps freedom](https://www.youtube.com/watch?v=H6GmVCD7cxk&ab_channel=invaderzz)<sup><a href=\"#fn-1\">1</a></sup>. An interesting question I found asking myself concerning\njustice was if people who have committed genocide lead Earth’s last people? I say they get tossed in jail at least. But we have to acknowledge to the world of possibility Eren provided in ridding the world of Titan powers, allegedly.\nI do not like the ending, personally, because seeing a kid too stupid to be safe get powers and destroy the world for vengeance is heartbreaking. The rumbling would always happen at some point\nbecause an island of GIGANTIC TRANSFORMING HUMANS THAT MAY GO MINDLESS AND START EATING HUMANS ARE DANGEROUS ESPECIALLY WHEN THEY HAVE A BUILT-IN MECHANISM THAT SAYS THE BIGGEST VERSIONS OF THOSE MONSTERS WILL\nLITERALLY STOMP THE REST OF THE WORLD TO DEATH IF THEY ARE INVADED. Couldn't we do away with them?\n\n![delusional](/images/aot1.png)\n_here we find children in a similar predicament as our protagonist doing what they feel they must_\n\nIf we know Eren then we know he would destroy the world to appease his sense of justice. Eren was always obsessed with joining the military and would chide Hannes for relaxing on his job.\nAs a child, Eren thought himself bold enough to save Mikasa and did not hesitate to ruse the captors so he could strike but he was not built like an [Ackerman](https://www.youtube.com/watch?v=vQFDAhxJX2Q&ab_channel=Animekicie)<sup><a href=\"#fn-2\">2</a></sup> so he got beat up.\nThis marks the beginning of the pattern of Mikasa saving Eren because he is a sigma idiot who will die before saving those he cares for.\n\n### Empathy\n\nFrom the beginning, I never understood why this nationalist asshole who is too self centered to admit his own weakness was centered as the main protagonist. For me, there was no way this story could have a peaceful ending. Eren is so cowardly that he’d rather die than believe in himself (plea to Historia Underground), and would rather destroy\nthe world than talk to others. Shit, if Eren didn’t get humbled during the training corps arc any attempt at character growth would be questionable. Before everything, Eren was filled with rage at the hapless despair Paradis island faced.\nEren is the violent impetuous child he always was. Willing to risk his life without a concept of the value of life. Eren’s sense of dread leading to the underground diamond cavern superficially stems from jealousy and a sense of powerlessness.\nI could never love nor unconditionally champion Eren. What I regret is not empathizing with Eren’s despair. His sense of being a powerless child in the face of atrocity.\n\n![Eren apologizing](/images/aot2.png)\n![Eren smashing](/images/aot3.png)\n\nWhile going through the communities' outrage at AoT’s ending, I begin to understand something about why the story resonates. It is only when one _believes_ a better outcome can be achieved that one might find the strength to feel pity for\nthemselves and others. I thought there were many ways AoT could have ended better. But Eren never saw a world where peace was meant for him. Paradis was never liberated by civil war. There was no non-violent protest that challenged genocide or\nprejudice in Marley. Eren thought Paradis to be the only refuge in the world. The outrage of knowing the world outside stood by and actively participated in the creation of his grief entrenched the despair he had felt. Genocide by Paradis Titans\nor by Marley, sterilized by Zeke, there are no happy endings. At best, the titan powers can be done away with. Allegedly. This was the tragic form of Isayama’s narrative.\n\nLife is complicated. We collectively make decisions every day that could impact the lives of every living creature on this planet. We are in the middle of a climate crisis that we have not yet collectively accepted, but is happening slowly. We can destroy our\nplanet at any time with nuclear weapons. We can create our rumbling. We will eventually. How then, can we know what good needs to be done? How do we preserve the future? Who are we to do so? What should be preserved? What is the right way to live in the face of\nextinction? Why can’t a unifying, unselfish love be present in these times? What do we want for the future?\n\nThe gift Isayama provides for us is the deep-seated hope all characters share for a safer world. A hope that persists past the rumbling.\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">This video will change how you see Eren — YouTube. <a href=\"https://www.youtube.com/watch?v=H6GmVCD7cxk&ab_channel=invaderzz\">https://www.youtube.com/watch?v=H6GmVCD7cxk&ab_channel=invaderzz</a></li>\n  <li id=\"fn-2\">- YouTube. <a href=\"https://www.youtube.com/watch?v=vQFDAhxJX2Q&ab_channel=Animekicie\">https://www.youtube.com/watch?v=vQFDAhxJX2Q&ab_channel=Animekicie</a></li>\n</ol>","title":"a gift","date":"2022-04-11T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"review","tags":["manga","freedom","morality","criticism","myth"],"blurb":"Attack on Titan ch. 131 — dread, war, and whether we can hand the next generation anything worth having.","thread":"freedom-and-its-cost","threadOrder":1},{"slug":"Making_Blockbuster_Movies_that_are_Ideologically_Meaningful_Yet_Unpolished_in_Order_to_Push_Your_View_of_the_World_Isnt_Really_Enjoyable","rawContent":"# Making Blockbuster Movies that are Ideologically Meaningful Yet Unpolished in Order to Push Your View of the World Isn't Really Enjoyable\n\nNolan has crafted an original story, with an incredibly relevant narrative, As we move through our climate crisis, one must ask will the future forgive us? Nolan explores this dichotomy expertly, thematically. But [Tenet]([https://letterboxd.com/film/tenet/) has no character, unlike [Twelve Monkeys](https://letterboxd.com/film/twelve-monkeys/)<sup><a href=\"#fn-1\">1</a></sup>. And It’s not [Primer]([https://letterboxd.com/film/primer/). The general story felt predictable because, uh, I don’t know, [Back to the Future Part II](https://letterboxd.com/film/back-to-the-future-part-ii/)<sup><a href=\"#fn-2\">2</a></sup>. Like as soon they started fighting in the clear port I’m like oh, the bad guy is Biff and the protagonist is going back in time to stop him.\n\nNow I bought into the whole “it is time travel don’t worry about understanding it” thing. Turns out there is a lot of exposition about time travel though….. Why set up this air of fate, when THE WAY IT IS PRESENTED IS COMPLEX. This invalidates the scene with the woman who shows him inverted materials and makes the exposition on the time shit underwhelming. Nolan won’t expand but many fanboys will because he leaves room for his films to “explore” through his consistent themes. I’m sure I missed something. But who cares, the film is rated above average, not enduring, but not terrible.\n\nI am reminded of the twist in [Memento]([https://letterboxd.com/film/memento/). The main character, the man with no permanent sense of self seems delusional at the end because the film grows from a time-neutral perspective. You would think the protag comes into contact with this, but no. Nolan does not follow through on this neutrality towards the protag. The protag succeeds and he is now the leader of TENET? I do not know. I can appreciate the will to “believe“ in a better future, but who cares. Who are you bro? It’s a complete 180 from the characterization we see in Memento, leading me to ask if this is growth or regression. I am of the mind that Nolan does not want to make films, but I will explore that later.\n\nNormally Nolan sacrifices his cool themes and character growth for his [ideas](https://www.youtube.com/watch?v=90m6Hb6_j20&ab_channel=LikeStoriesofOld)<sup><a href=\"#fn-3\">3</a></sup>. This was the same but different. I will probably never watch [Intersteller]([https://letterboxd.com/film/interstellar/) again, but the scene where Matthew Mc-caw-ne-hey is pleading for his daughter is emotional. None of the scenes in this movie are. Pattison has the most interesting character on film, but he is not our main, and Pattison just kind of comes out of nowhere.\n\nThe main character’s development is in contention with the main theme of the movie, which makes it hard to analyze. On one hand, time is unexplainable, on the other “here’s” your protagonist crushing that setup with the power of friendship. Time can be changed yada yada. Not sure if Nolan is trolling or if this is to be taken seriously. We just don’t get the feeling of legit stakes being involved you get when watching [The Saint](<https://en.wikipedia.org/wiki/The_Saint_(1997_film)>) and as a bad film, [Next]([https://letterboxd.com/film/next/) has a better “future shit needs to be stopped” plot(both written by Jonathan Hensleigh). I think Tenet is enjoyable, but it does not have flying hats, men with metal jaws, women killed by being covered in gold, sharks with lasers, etc. No one in this film matters but the tone is so serious. Nolan sacrifices character development and exposition for the ideal of what he wants to portray. Also, when did society figure out time travel? Before during or after the fall. Who cares. Remember Interstellar. The movie where we could go to a black hole in spaceships with lego robots but not fix some esoteric catastrophe at home. I would just like Nolan films to flow. They don’t. He makes the prettiest most idealistic version of a B-list action film and it seems wasteful.\n\nNow, everything considered, I thought it was going well because I expect Nolan to be inconsistent in execution while carrying his themes in his movies.\n\nThat is until I looked up the 2-hour mark and saw I had another 30 mins to go. It took a week to build a passing curiosity about what the ending may be.\n\nThe last action scene is a raid on the time compound with magic metals with what is described as a tactical time pincer attack where one group goes back in time and the other remains on the main timeline to fight the bad guys. But what it looked like to me was a bunch of idiots walking into a kill zone. We only see about 6-9 bad guys in this scene though….A lot of shooting. A lot of explosions. But nothing was shot. [Worse than the Dark Knight Rises street fight scene]([https://www.youtube.com/watch?v=X3WythosU_E&ab_channel=maazpatel). (Like bruh, when did charging a bunch of people with tanks and automatic weapons become a successful strategy. Mute the sound and watch it again. It is [silly]([https://www.grunge.com/35357/dumb-things-dark-knight-rises-everyone-just-ignored/)).\n\nNow thematically, Neil going back in time to get the door open, dying in the process, and saving the Protagonist is awesome. It’s cool to think about what if he invented time travel, came back in time, ended his father, blah blah blah but who cares. Nolan certainly does not.\n\n### <a name=\"cookking\"></a>[Nolan Reheats his Meals](#cookking)\n\nThis movie has allowed me to process my animosity for Nolan more cogently. All of his films deal with characters who question their role in the narratives taking shape around them. Let’s consider\n\n_Memento - character rather live a lie than face his wife’s death. Memory loss is the mechanism behind this. The first and second watches are priceless. But this character sets the tone for his later protagonist. Only he has a bigger budget to fuck around with._\n\n_Batman series - Rather be a villain than deal with the citys’ crime. And will blackmail his employees into not revealing the fact that Bruce Wayne spends company money on his escapades. I might even argue that Batman is not a hero in the last 2 films. The dude is never in Gotham just protecting people from crime. It is almost like Nolan has to force Batman into not being a hero so he can fulfill his plot wherein…IDK...Batman quits…who cares._\n\n_Inception - This film is complete, but I have chosen to say fuck you Nolan. The end means the film’s events matter for their character or they do not. If I wanted a three-hour choose your adventure I would play Elder Scrolls. I start not to care about the plot as it drags on. And by the time the van starts flipping over, I just want to see the end. The better story is about the son transcending the father. Dreams are the mechanism, and we see Nolan at his most Meta. Dreams == Movies, Real Plot==Scarecrow face_\n\n_Interstellar - Love won’t stop a global crisis, but it will get you out of black holes and propel you through space. This may be him trying to tell a direct story, which I can not see him being interested in. Let’s just ignore plot holes on this one. Black holes are his mechanism for a commentary on love_\n\n_Tenet - Back to the future, with a less coherent time travel angle. Not sure if he is saying [save the cheerleader, save the world](https://heroes.fandom.com/wiki/Save_the_cheerleader,_save_the_world)<sup><a href=\"#fn-4\">4</a></sup>. Cause it seems the protag is someone who would stop that. I am not sure. It’s at least save the boy saves the day. But it too feels dreamy, kinda like Inception. I’m way more interested in Neil. But who cares. The story is not as well developed as Inception. Mechanisms are time and love and fate and a nameless black guy._\n\nI think Nolan cares more about the art than what he sells. I do not think that he is shallow. But it seems Nolan would rather craft billion-dollar movies on love, subjectivity, purpose, and science than million-dollar movies exploring these themes. Marvel is a top 5 grosser but it ain’t even on the plane of serious films. Money doesn’t mean shit. I think Inception and Memento are the only Nolan films that will stand the test of time. At the end of the day, Nolan's films are great, but he is still only Kubricesque. He can make a great film, but he can’t make 2001 A Space Odyssey(legitimizes the sci-fi genre), Full Metal Jacket(contemplative commentary on war and peace), or The Shining(arguably top 15 on any list). He is incapable of finding the range in his medium, only sticking to smart and sexy because he uses the screen to push his ideas instead of developing the characters in his movies to a satisfying end. Quentin Tarantino has mastered this by not making smart and sexy movies. He makes derivatives of the films he loves with all the fanfare of Nolan. We always want a Tarantino film because they are always good movies. It thus seems kind of wasteful if Nolan’s films are less enjoyable than the themes he presents. What impact will Nolan have on the field other than making good shit to look at in IMAX and a deep ponderance of our role in the narrative we tell ourselves?\n\nTo give credit to Nolan however, there may be another way of writing this that critiques the subplots of the movies he develops. [The Prestige](https://letterboxd.com/film/the-prestige/)<sup><a href=\"#fn-5\">5</a></sup> also looks wonderful. I believe all his films have a wealth of meaning. He somehow manages to combine arthouse surrealism with blockbuster moviemaking. I might even go so far as saying Nolan has the most unique voice amongst big-budget moviemakers ever. But it all feels kinda pointless if the movie in itself is average.\n\nGet your money though king…\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">Twelve Monkeys (1995). <a href=\"https://letterboxd.com/film/twelve-monkeys/\">https://letterboxd.com/film/twelve-monkeys/</a></li>\n  <li id=\"fn-2\">Back to the Future Part II (1989). <a href=\"https://letterboxd.com/film/back-to-the-future-part-ii/\">https://letterboxd.com/film/back-to-the-future-part-ii/</a></li>\n  <li id=\"fn-3\">The Missing Key to Understanding Christopher Nolan — YouTube. <a href=\"https://www.youtube.com/watch?v=90m6Hb6_j20&ab_channel=LikeStoriesofOld\">https://www.youtube.com/watch?v=90m6Hb6_j20&ab_channel=LikeStoriesofOld</a></li>\n  <li id=\"fn-4\">https://heroes.fandom.com/wiki/Save_the_cheerleader,_save_the_world. <a href=\"https://heroes.fandom.com/wiki/Save_the_cheerleader,_save_the_world\">https://heroes.fandom.com/wiki/Save_the_cheerleader,_save_the_world</a></li>\n  <li id=\"fn-5\">The Prestige (2006). <a href=\"https://letterboxd.com/film/the-prestige/\">https://letterboxd.com/film/the-prestige/</a></li>\n</ol>","title":"Making Blockbuster Movies that are Ideologically Meaningful Yet Unpolished in Order to Push Your View of the World Isnt Really Enjoyable","date":"2022-04-08T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"review","tags":["film","criticism","media","beauty"],"blurb":"Tenet has ideas where a character should be. Nolan keeps trading people for premises."},{"slug":"Black_Rednecks_and_White_Liberals","rawContent":"# Black Rednecks and White Liberals\n\n### Part1\n\nCracker history or redneck history stemming from Scots-Irish immigrants rubbed off on southern blacks so much so that\nwhen the great migration occured the blacks brought that redneck culture to the north. No coincidence that the KKK might have emerged out of that ruckus, right?\n\n### Part 2\n\nMiddleman minorities earn the eyre of the societies they integrate into because of their economic success.\n\n### Part3\n\nSlavery has some bad effects and some good effects but everyone was doing it. There is no need to compare the implementation because all slavery was the same.\n\n### Part 4\n\nReally tho, middleman minorities are so successful that Germans turned to persecute them out of spite clearly. Most didn't even care about Jews being Jews...\n\n### Part 5\n\nBlacks can learn at school and do but those dancing kappas obsessed with looking good ruined the colleges. WEB Dubois and Booker T would be ashamed.\n\n### Part 6\n\nSeriously. Every culture commits mass genocide or commits some war atrocitiy. Just because some Australian lady feels bad about genocide doesn't mean that it's their\nfault. There aren't any indigenous people around to tell you how they feel anyway so be objective when you speak about history.\n\nIt was some of the wonky idiosyncrasies of the main tenants featured in each essay that causes me worry. Like bro what culture was in place such that the Holocaust could\nhappen. That some of the largest social ills in the Western hemisphere of the last 200 years be committed exclusively against brown people and those of minority\nbackground deserve its own appreciation. I am not calling for relativsim or ignoring genocide elsewhere. I just have a feeling that slavery in Rome and slavery in China were two very different cultural phenomenons.\nIt feels like anti-sematism is a feature not a bug. I am asked not to consider the cultural significance of oppression, but to consider the cultural significance of the population slaves adapted thier culture from. Ok. Survival tech is cool.\nI just have a strong feeling the legislation that intensified violence against blacks had something to do with this a priori. Or maybe blacks just needed to chill and\nwait for America to give them their rights. Like I could not understand the civil rights period if I read only Thomas Sowell.\n\nBut I do think he provides the strongest counter argument against systematic oppression or some innate inferiotiority being the main foil to black progress. We are in many respects responsible\nfor how we are viewed in this society. I can't say I beleive in all the shit our culture gets up to. Sowell asks us to consider very real alternatives to the slave oppression narrative. Maybe\ninstead of adopting Irish culture we should have adopted northern culture or perhaps Jewish culture or immigrant culture. Maybe that would have prevented Jim Crow lol(editing in\n2025 maybe that would have prevented project 2025 lol). That thinking did seem to get HBCU's off the ground. My liberal gripe is that Thomas Sowell asks us to be responsible with how we attribute \nrace to our cultural heritage while offering no insight into how we prevent the genociding of the minorites. We should care about that. I am confused.","title":"Black Rednecks and White Liberals","date":"2021-04-14T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"note","tags":["race","america","history","class","books","identity"],"blurb":"Reading Sowell: culture as inheritance, and middleman minorities catching the blame for succeeding.","thread":"who-gets-to-be-a-person","threadOrder":1},{"slug":"Deploying_Transformer_Models","rawContent":"# Using GCP, FastAPI, Docker, and Huggingface to Deploy SOTA Language Models\n\n_I have found using more than 2 models is too large for most deployed containers. If you know a way around this let me know._\n\n## Initial Set Up\n\nThis stack will use FastAPI to serve an endpoint to our model. FastAPI requires uvicorn for serving, and pydantic to handle typing of the request messages. The [Huggingface Transformers library](https://huggingface.co/docs/transformers/index)<sup><a href=\"#fn-1\">1</a></sup> specializes in bundling state of the art NLP models in a Python library that can be fine-tuned for many NLP tasks like Google's BERT model for named entity recognition or the OpenAI GPT2 model for text generation.\n\nUsing your preferred package manager, install:\n\n- [transformers](https://github.com/huggingface/transformers)<sup><a href=\"#fn-2\">2</a></sup>\n\n- [FastAPI](https://fastapi.tiangolo.com/)<sup><a href=\"#fn-3\">3</a></sup>\n\n- uvicorn\n\n- pydantic\n\nAs the packages install:\n\n1. Create a folder named app\n2. Add files `nlp.py` and `main.py` to it\n3. In the top-level directory, add Dockerfile and docker-compose.yml\n\nAfter installing packages, create a requirements folder and add `requirements.txt`:\n\nSince I used pipenv to manage the python environment, I had to run:\n\n```bash\n\npipenv run pip freeze > requirements/requirements.txt\n\n```\n\nYou will need this folder later for building the Docker container. While we are on the topic, be sure you have installed docker and check to be sure the following are installed.\n\n- [Install Docker](https://docs.docker.com/get-docker/)<sup><a href=\"#fn-4\">4</a></sup>\n\n- [Install Docker Compose](https://docs.docker.com/compose/install/)<sup><a href=\"#fn-5\">5</a></sup>\n\n- [Install Google Cloud SDK](https://cloud.google.com/sdk/install)<sup><a href=\"#fn-6\">6</a></sup>\n\nThe project structure should look like this:\n\n```\napp/\n\n    main.py\n\n    nlp.py\n\nrequirements/\n\n    requirements.txt\n\ndocker-compose.yml\n\nDockerfile\n\nPipfile\n```\n\n# NLP\n\nHugging Face makes it really easy to implement and serve sota transformer models. Using their transformers library, we will implement an API capable of text generation and sentiment analysis. This code has been ripped straight from the site, so I will not be deep diving the transformer architecture in this article for time's sake. This also means our models are not fine tuned for a specific task. Please see my next article on fine tuning and deploying conversational agents in the future. With that disclaimer out of the way, let's look at a snippet of the code responsible for our NLP task.\nCode Snippet\n\n```python\n\nfrom transformers import (\n    pipeline,\n    GPT2LMHeadModel,\n    GPT2Tokenizer\n)\n\nclass NLP:\n    def __init__(self):\n        self.gen_model = GPT2LMHeadModel.from_pretrained('gpt2')\n        self.gen_tokenizer = GPT2Tokenizer.from_pretrained('gpt2')\n\n    def generate(self, prompt=\"The epistemelogical limit\"):\n        inputs = self.gen_tokenizer.encode(\n            prompt,\n            add_special_tokens=False,\n            return_tensors=\"pt\"\n        )\n\n        prompt_length = len(self.gen_tokenizer.decode(\n            inputs[0],\n            skip_special_tokens=True,\n            clean_up_tokenization_spaces=True\n        ))\n\n        outputs = self.gen_model.generate(\n            inputs,\n            max_length=200,\n            do_sample=True,\n            top_p=0.95,\n            top_k=60\n        )\n\n        generated = prompt + self.gen_tokenizer.decode(outputs[0])[prompt_length:]\n\n        return generated\n\n    def sentiments(self, text: str):\n        nlp = pipeline(\"sentiment-analysis\")\n        result = nlp(text)[0]\n        return f\"label: {result['label']}, with score: {round(result['score'], 4)}\"\n\n```\n\nThis is a very simple class that abstracts the code for text gen and sentiment analysis. the prompt is tokenized, the length of the encoded sequence is captured, and output is generated. We then receive the decoded output and return it as the generated text. The text returned for generate() will look something like:\n\n> The epistemological limit is very well understood if we accept the notion that all things are equally good. This is not merely an axiom, but an axiomatical reality of propositions, including the notion that the things on the left of the triangle do not constitute a thing, such that that thing can neither be said to exist nor to exist as a thing apart from something on the right of that triangle, nor to be a thing apart from something else on the left of that triangle. Thus if we suppose that each thing must lie on the line of a triangle, as there is a line across this triangle, then each thing cannot lie on that line; but only as there are points beyond this point, so that nothing has a right angle to the triangle. Hence the proposition “the things on the right of a triangle do not constitute a thing” is a fact, which presupposes a fact, which can be the proposition that no thing exists. On the other hand, suppose that if\n\nGodel would be proud!\n\nSentiment analysis is easier due to the pipeline huggingface provides. Simply pass in text to the pipeline and return it.\n\n```python\nnlp = NLP()\nprint(nlp.sentiments(\"A bee sting is not cool\"))\n\n# Output: 'label: NEGATIVE, with score: 0.9998'\n```\n\n## API using FastAPI\n\nFastAPI is one of the fastest API frameworks to build and serve API requests in python. It can be scaled and deployed on a docker image they provide or you can create your own from a python image. If you have ever written a Flask API then this should not be difficult at all. I advise going through the FastAPI documentation for more info on how to extend functionality of your API.\n\nOur server will look like this:\n\n```python\nfrom fastapi import FastAPI\nfrom fastapi.middleware.cors import CORSMiddleware\nfrom pydantic import BaseModel\nfrom app.nlp import NLP\n\nclass Message(BaseModel):\n    input: str\n    output: str = None\n\napp = FastAPI()\n\nnlp = NLP()\n\norigins = [\n    \"http://localhost\",\n    \"http://localhost:3000\",\n    \"http://127.0.0.1:3000\"\n]\n\napp.add_middleware(\n    CORSMiddleware,\n    allow_origins=origins,\n    allow_credentials=True,\n    allow_methods=[\"POST\"],\n    allow_headers=[\"*\"],\n\n)\n\n@app.post(\"/generative/\")\nasync def generate(message: Message):\n    message.output = nlp.generate(prompt=message.input)\n    return {\"output\": message.output}\n\n@app.post(\"/sentiment/\")\nasync def sentiment_analysis(message: Message):\n    message.output = str(nlp.sentiments(message.input))\n    return {\"output\": message.output}\n\n```\n\nThe API has four sections. The first part is setting up a pydantic object to handle typing for request messages. This means we get input validation and clear error messages for the wrong input. You should only be handling strings so this is perfect. We then create an instance of the endpoint and the NLP class. Next, set up the request origin URLs that you want your app to communicate with. If you do not have dedicated origin addresses, the code will still run, but anyone can access your API so be careful. After that, we set up the middleware to control the origins, request methods, headers, and cookies. I have taken most of the code from FastAPI but it is extensible to your particular security needs. The last part contains two async post request methods that handle the calls to the API and return the generated text or sentiment analysis.\n\nTo test the API:\n\n```bash\nuvicorn app.main:app --reload\n```\n\nVisit `http://127.0.0.1:8001/docs` to try out the API.\n![FastAPI Response](/images/fastapinlp.png)\n\n## Containerization\n\nRemember that Dockerfile file we created? It’s finally time to edit that. The container I made uses a python:3.7 image. You are free to tweak this to fit your python image preference.\n\n```dockerfile\nFROM python:3.7\nCOPY ./requirements/requirements.txt ./requirements/requirements.txt\nRUN pip3 install -r requirements/requirements.txt\nCOPY ./app /app\nRUN useradd -m myuser\nUSER myuser\nCMD [\"uvicorn\", \"app.main:app\", \"--host\", \"0.0.0.0\", \"--port\", \"8080\"]\n```\n\nThe container will copy the requirements to the container, install them, copy over the files from the app directory, create a user (not necessary), and run the API on the container. Yes it is that simple. With regular docker commands we have to stop the container, rebuild the image, and start the container each time. To avoid this, add the following to your docker-compose.yml. Note that your container name can be whatever you want.\n\n```yaml\nversion: \"3\"\n\nservices:\n  chatsume:\n    build: .\n    container_name: \"chsme\"\n    ports:\n      - \"8000:8080\"\n    volumes:\n      - ./app/:/app\n```\n\nBuild and run:\n\nThis allows us to rebuild the image and container and spin it up in one line: `docker-compose build docker-compose up -d`\n\n## Google Cloud Platform Deployment\n\nAfter setting up the gcloud SDK you will be able to push docker images to your GCP project. The image will be pushed to the Google Container Registry in your project dashboard. To do so, we’ll tag our image with the gcloud region you want it stored in. For this example, the Docker image will be named nlp_api and the GCP project is fast_hug. The image will then be tagged as the latest one, which is great for keeping up with multiple pushes to your Google Container Registry Instance.\n\n```bash\ndocker tag nlp_api gcr.io/fast_hug/nlp_api:latest\n```\n\nPush to Google Container Registry:\n\n```bash\ndocker push gcr.io/fast_hug/nlp_api:latest\n```\n\nCloud Run Deployment\n\n1. Navigate to Google Container Registry\n2. Find your latest image\n3. Click Deploy\n4. Select Deploy to Cloud Run\n5. Allow unauthenticated requests (if you want a publicly consumable API)\n6. Click next then advanced settings.\n7. Set container port to 8080 (or whatever port value you mapped in the docker-compose yml)\n8. Set memory to 4GB\n9. Click Create\n\nSuccess!!!! You have now set up and deployed a state of the art NLP model.\n\n## Conclusion\n\nThis post demonstrates how to use state-of-the-art NLP models from Huggingface to power a fast, scalable API. Containerization enables distributed deployment across various services and easy local development. In the future I will try deploying larger models for higher accuracy, at least until GPT3 is publicly consumable. For now, you have all the tools needed to rapidly scale a service backed by the latest in available NLP tooling.\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">Transformers · Hugging Face. <a href=\"https://huggingface.co/docs/transformers/index\">https://huggingface.co/docs/transformers/index</a></li>\n  <li id=\"fn-2\">GitHub - huggingface/transformers: 🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training. — GitHub. <a href=\"https://github.com/huggingface/transformers\">https://github.com/huggingface/transformers</a></li>\n  <li id=\"fn-3\">FastAPI - FastAPI. <a href=\"https://fastapi.tiangolo.com/\">https://fastapi.tiangolo.com/</a></li>\n  <li id=\"fn-4\">Get Docker — Docker Documentation. <a href=\"https://docs.docker.com/get-docker/\">https://docs.docker.com/get-docker/</a></li>\n  <li id=\"fn-5\">Overview of installing Docker Compose — Docker Documentation. <a href=\"https://docs.docker.com/compose/install/\">https://docs.docker.com/compose/install/</a></li>\n  <li id=\"fn-6\">Quickstart: Install the Google Cloud CLI  |  Google Cloud SDK  |  Google Cloud Documentation — Google Cloud Documentation. <a href=\"https://cloud.google.com/sdk/install\">https://cloud.google.com/sdk/install</a></li>\n</ol>","title":"Deploying Transformer Models","date":"2021-03-25T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"build","tags":["ml","ai","python","tutorial","work"],"blurb":"Serving SOTA language models with FastAPI, Docker, and Huggingface — and where the container gives out."},{"slug":"Consuming_the_Plaid_API_with_React_and_Go","rawContent":"# A Modern Full Stack REST Application\n\nPlaid is a popular API that exposes a user's banking information through REST endpoints.\nWe will make use of their service to create a REST API to create authorization information.\nWe will then create a React application that consumes the API to create auth tokens for a user.\nThis tutorial assumes familiarity with React and full-stack development. The repo for this can be found here:\n\nA quickstart for setting up Plaid server and React client - [https://github.com/qweliant/BetterPlaidQuickstart](https://github.com/qweliant/BetterPlaidQuickstart)<sup><a href=\"#fn-1\">1</a></sup>\n\n## Getting Started with Plaid API Keys\n\nTo get started, we need to head over to Plaid for our API keys.\n\n![plaid greeting](/images/plaidreact1.png)\n\nNavigate to the _Settings_ tab and click _Keys_ to view your API keys.\n\n![plaid secrets](/images/plaidreact2.png)\n\n### Creds from Plaid\n\nWe will use the sandbox environment, which uses a different key for testing than development. Notice on the left sidebar a tab that says _API_. Click on\nthat and you will see the section about Plaid's redirect URI. Click on _Add New URI_ and add `http://localhost:80` and `http://localhost:3000`.\nThis will control where the redirect after linking happens. If you click on the _Test in Sandbox_ button seen on the landing page, you will\nbe taken to a page showing the test user credentials.\n\nQuickstart repos exist for multiple languages. You can use your language of choice for this project since the client is backend agnostic.\n\n## Backend Setup\n\nWe won't necessarily run the exact setup they have, but next, we will walk through setting up the backend via the _Go Not So Quickstart Repo_.\n\n### 1\\. Create Project and Clone Repository\n\n```bash\ngit clone https://github.com/plaid/quickstart.git\n```\n\n### 2\\. Clean Up Repository\n\nDelete the _Makefile, README, and every folder except the go_ one.\n\n### Docker Configuration\n\nThese come preconfigured with a Dockerfile to make deployment easy.\nWe won't be covering deployment of Docker containers, but we will\nbe spinning them up using Docker for Desktop. If you need to install, check out [Docker](https://www.docker.com/products/docker-desktop/)<sup><a href=\"#fn-2\">2</a></sup> for\ninstallation instructions per your OS. This will be a pretty simple docker set up that\nis noob friendly, so you should be able to understand the basics following along.\n\n#### Edit docker-compose.yml\n\n```yml\nversion: \"3.4\"\n\nservices:\n  go:\n    build:\n      context: .\n      dockerfile: ./go/Dockerfile\n    ports:\n      - \"8000:8000\"\n    env_file:\n      - .env\n```\n\n#### Build and Run\n\nRunning:\n\n```\ndocker-compose up -d --build\n```\n\nwill build the image and start a container. If we look at\nthe Dockerfile we can see how our application is being built.\nThe go version is specified for the official go image.\nA directory is then created that we copy everything into.\nAfter changing the root directory to the go folder,\nwe get the required packages and build the binary.\nNext we pull the image that our binary will run on, copy the binary into the\nimage, and expose the app via port 8000. By the way, you should delete the\nlines that copy html and static info over. Our Dockerfile should look similar to this\n\n### Go Dockerfile\n\n```dockerfile\nFROM golang:1.12 AS build\nWORKDIR /opt/src\nCOPY . .\nWORKDIR /opt/src/go\nRUN go get -d -v ./...\nRUN go build -o quickstart\n\nFROM gcr.io/distroless/base-debian10\nCOPY --from=build /opt/src/go/quickstart /\nEXPOSE 8000\nENTRYPOINT [\"/quickstart\"]\n```\n\n### Environment Configuration\n\nIf you ran the above docker-compose command you should expect\nto see warnings about your env variables or errors if you have\nnot already deleted the html and static copy. Let's create an .env\nfile in the same folder as the docker-compose file. This file will\ndefine your plaid credentials. The result should be something like:\n\n```\n# Get your Plaid API keys from the dashboard: https://dashboard.plaid.com/account/keys\nPLAID_CLIENT_ID=CLIENT_ID\nPLAID_SECRET=SANDBOX_SECRET\nPLAID_ENV=sandbox\nPLAID_PRODUCTS=transactions\nPLAID_COUNTRY_CODES=US,CA\nPLAID_REDIRECT_URI=http://localhost:80\n```\n\n### Server Configuration\n\nThe last thing we should do before moving on to the frontend is edit some portions\nof the code in server.go. This is because the quickstart repo does not behave as\none would expect. This may be due to my own ignorance but following the steps in\nthe official repo lead to an environment error.\n\n```bash\nAttaching to quickstart_go_1go_1 | Error loading .env file. Did you copy .env.example to .env and fill it out?\n```\n\nEdit the server.go file to look like this:\n\n```go\nvar (\n    PLAID_CLIENT_ID = os.Getenv(\"PLAID_CLIENT_ID\")\n    PLAID_SECRET = os.Getenv(\"PLAID_SECRET\")\n    PLAID_ENV = os.Getenv(\"PLAID_ENV\")\n    PLAID_PRODUCTS = os.Getenv(\"PLAID_PRODUCTS\")\n    PLAID_COUNTRY_CODES = os.Getenv(\"PLAID_COUNTRY_CODES\")\n    PLAID_REDIRECT_URI = os.Getenv(\"PLAID_REDIRECT_URI\")\n    APP_PORT = os.Getenv(\"APP_PORT\")\n)\n\nvar environments = map[string]plaid.Environment{\n    \"sandbox\": plaid.Sandbox,\n    \"development\": plaid.Development,\n    \"production\": plaid.Production,\n}\n\nfunc init() {\n  func main() { r := gin.Default() r.POST(\"/api/info\", info)\n}\n```\n\nRunning the docker-compose command again will start the API. Now\nis a good time to step away for water or a quick walk. Next we will\nwalk through our react setup. Our penultimate creation will result in a\nbutton that performs Oauth for thousands of bank accounts.\n\n## Frontend Setup\n\n### Create React App\n\nAlright, we’re back, refreshed, hydrated, and ready for the front end.\nStart the app by running npx create-react-app plaid in the parent\ndirectory our go folder is in\n\n```\nnpx create-react-app plaid\n```\n\nWe’ll start by getting the Dockerfile set up for the frontend and adding\nthe client service to our docker compose file. Let's start the latter part\nby opening the docker-compose file again. To add a service for the client,\nsimply add it after the go section. The file will change to look something like this:\n\n```yaml\nversion: \"3.8\"\n\nservices:\n  go:\n    env_file:\n      - .env\n    build:\n      context: .\n      dockerfile: ./go/Dockerfile\n    ports:\n      - \"8000:8000\"\n    restart: on-failure\n\n  client:\n    stdin_open: true\n    env_file:\n      - .env\n    build:\n      context: .\n      dockerfile: ./plaid/Dockerfile\n    ports:\n      - 80:80\n    restart: on-failure\n```\n\n### React Dockerfile\n\nNext we wanna add a Dockerfile to the plaid directory.\nIn it we define steps for building the production react\napp and placing it on an nginx webserver. The Dockerfile for this will be:\n\n```dockerfile\n# STAGE 1 - build the react app\nFROM node:alpine as build\nWORKDIR /app\nCOPY ./package.json /app/\nRUN yarn --silent\nCOPY . /app\nRUN yarn build\n\n# STAGE 2 - build the final image using a nginx web server\nFROM nginx:alpine\nCOPY --from=build /app/build /usr/share/nginx/html\nRUN rm /etc/nginx/conf.d/default.conf\nCOPY nginx/nginx.conf /etc/nginx/conf.d\nEXPOSE 80\nCMD [\"nginx\", \"-g\", \"daemon off;\"]\n```\n\n### Nginx Configuration\n\nNext, we need to create a folder for nginx that configures the server.\nName the folder nginx and add a file named conf.d. This configures our\nserver to serve the static build(html, js, css, etc) on port 80 in the container.\n\nCreate `nginx/nginx.conf`:\n\n```dockerfile\nserver {\n    listen 80;\n    location / {\n        root /usr/share/nginx/html;\n        index index.html index.htm;\n        try_files $uri $uri/ /index.html;\n    }\n    error_page 500 502 503 504 /50x.html;\n    location = /50x.html {\n        root /usr/share/nginx/html;\n    }\n}\n```\n\nTry running `docker-compose up -d --build` now to see if the hello world react app is\nbeing hosted on port 80. Something to note is the port our app is served on.\nSince the redirect uri is needed for browser navigation after login, you will\nneed to resolve the uri for dev vs container environments. That may be making\na separate docker-compose and Dockerfile setup, or by changing the uri in the\nenv from 80 to 3000. I will leave it to you\n\n### Install Dependencies\n\nWe now need to add axios and the react-plaid library to handle state and client/server\ncommunication. Make sure you are in the plaid directory created and run:\n\n```\nyarn add axios react-plaid-link\n```\n\n### Create Link.js\n\nLet’s now open the src folder and add a file named Link.js. Here is where the logic\nfor making the link will be created. The link process in the react plaid hooks library makes it\npretty easy to perform auth. With it, we will call /api/create_link_token to get a link token\nfrom Plaid. This will initialize the Plaid auth link flow for a users bank account. If the user\nsuccessfully links, an access token will be generated. The access token needs to be persisted\npermanently in your DB of choice for access to different Plaid endpoints. For now it is stored as\na value on the server. Copy the code below to your Link.js file\n\n```jsx\nimport React, { useState, useCallback, useEffect } from \"react\";\nimport { usePlaidLink } from \"react-plaid-link\";\nimport axios from \"axios\";\nimport qs from \"qs\";\n\nconst tokenURL = \"http://localhost:8000/api/create_link_token\";\nconst sendTokenURL = \"http://localhost:8000/api/set_access_token\";\n\nconst Link = () => {\n  const [data, setData] = useState(\"\");\n\n  const fetchToken = useCallback(async () => {\n    const config = {\n      method: \"post\",\n      url: tokenURL,\n    };\n    const res = await axios(config);\n    console.log(res);\n    setData(res.data.link_token);\n  }, []);\n\n  useEffect(() => {\n    fetchToken();\n  }, [fetchToken]);\n\n  const onSuccess = useCallback(async (token, metadata) => {\n    const config = {\n      method: \"post\",\n      url: sendTokenURL,\n      data: qs.stringify({ public_token: token }),\n      headers: { \"content-type\": \"application/json\" },\n    };\n    try {\n      const response = await axios(config);\n      console.log(response);\n    } catch (error) {\n      console.error(error);\n    }\n  }, []);\n\n  const config = {\n    token: data,\n    onSuccess,\n  };\n\n  const { open, ready, err } = usePlaidLink(config);\n\n  if (err) return \"Error!\";\n\n  return (\n    <button onClick={() => open()} disabled={!ready}>\n      Connect a bank account\n    </button>\n  );\n};\n\nexport default Link;\n```\n\n### Run the Application\n\n```bash\ndocker-compose up\n```\n\nAfter running docker-compose up -d --build you should be able to go to localhost:80 and connect a dummy account.\n\nCongrats! You are now on your way to implementing a fintech banking as a service application. Kinda like...BaaS...Ok ok. Thank you for viewing. Have a wonderful day!\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">GitHub - qweliant/BetterPlaidQuickstart: a quickstart for setting up plaid server and react client — GitHub. <a href=\"https://github.com/qweliant/BetterPlaidQuickstart\">https://github.com/qweliant/BetterPlaidQuickstart</a></li>\n  <li id=\"fn-2\">Docker Desktop: The #1 Containerization Tool for Developers | Docker — Docker. <a href=\"https://www.docker.com/products/docker-desktop/\">https://www.docker.com/products/docker-desktop/</a></li>\n</ol>","title":"Consuming the Plaid API with React and Go","date":"2021-01-25T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"build","tags":["web","api","work","tutorial"],"blurb":"A full-stack Plaid auth flow — Go on the back, React on the front, tokens in the middle."},{"slug":"The_Undiscovered_Self_pt_2","rawContent":"# The Undiscovered Self pt. 2\n\nCarl Jung has warned us of the psychic driving performed by the state and church; manifesting the warped conflict between ideals brought about by scientific progress and imperial power. The creation of the mass man, resulting in a lack of unconscious exploration and psychic freedom is for Jung the crisis of western civilization.\n\nJung's moral prophetization is found in his conception of the individual. For Jung, “_consciousness is a precondition to being”, and “the individual is the manifestation of the psyche”._ A complete “exception to the statistical rule”. So much so that Jung, believed in the individual’s destruction by state or church had not their psyche been of such great benefit. How then can the individual occasion psychic investigation rooted in their soul? Worse still, how is humankind to become aware of their unconscious self while “s_cience completely devalues individuality”, the church “deems it as egoistic obstinacy”, and the state “seeks to atomize it”.\n\n_evil, without man’s ever having chosen it, is lodged in human nature itself_\n\nAn a priori placing of consciousness and thus the individual. We should begin to understand the compulsion Jung felt to reveal the unconscious. The undiscovered self is the only reprieve for the shadow. Under which reprieve our ignorance of the shadow can persist and the mass man is compelled to entire systems of violence for the people, in gods name, due to science, etc.\n\nFor Jung, it was with the acknowledgment of humankind’s ability to act evil that one could gain perspective of the shadow and its projections. This was of such great consequence to Jung that he felt a generational responsibility.\n\n_There is no sense formulating the task that our age has forced upon us as a moral demand. We can, at best, make the psychological world situation so clear that it can be seen even by the myopic_\n\nJung could not see a moral solution to this issue but found hope in the rapid technologization of travel and communication.\n\n_today we live in a unitary world…Exotic races…ceased to be peepshows in ethnological museums. They have become our neighbors, and what was yesterday the prerogative of the ethnologist is today a political and social problem_\n\nHe felt as immigration and integration continued, the need for individuals to recognize the gulf of experience between each other and engage in closer relationships will allow a further bridging of the subconscious.\n\nAs the book ends, it takes the form of an early anti-racist stance. We see Jung transition from the condemnation of racism to the call for us to lift relationships based on a deepened understanding of the other from self-knowledge:\n\n_The European has also to answer for all crimes he has committed against the dark skinned people during the process of colonialization …the white man carries a heavy burden. The evil that comes to light in man undoubtedly dwells within him \\[and\\] is of gigantic proportions…He does not deny that terrible things have happened and still go on happening...when such deeds belong to the recent or remote past, they…sink into the sea of forgetfulness, and that state of chronic wooly mindedness returns which we describe as “normality”. In shocking contrast to the fact that nothing has finally disappeared and nothing has been made good. The evil, the guilt, the profound unease of conscience, the obscure misgiving are there before our eyes , if only we would see. Man has done these things; I am man, who has his share of human nature; therefore I am guilty with the rest and bear unaltered and indelibly within me the capacity and the inclination to do them again at any time._\n\nFrom here, Jung reaffirms his principle of understanding.\n\n_A human relationship is not based on differentiation and perfection, for those only emphasize the differences or call forth the exact opposite; it is based rather on imperfection, what is weak, helpless, in need of support._\n\nHe justifies by saying positive human relationships are key to the fight against the dictator state because it keeps us from being depotentiated social units the state dictator aims for #FuckDonald.\n\nThe last chapter is only a few pages long, but here we get more great bars like;\n\n_What our age thinks of as “the shadow” and inferior part of the psyche contains more than something merely negative. The very fact that by self knowledge, i.e. by exploring our own souls, we come upon the instincts and their world of imagery should throw light on the powers slumbering in the psyche, of which we are seldom aware long as all go well_\n\nAnd another that made my toes warm;\n\n_Happiness and contentment, equability of soul…meaningfulness of life…can be experienced only by the individual and not by a State_\n\nAnd ends in typical “I'm spiritual but not religious fashion”\n\n_I am neither spurred on by excessive optimism nor in love with high ideals, but am merely concerned with the fate of the individual human being — that infinitesimal unit on whom a world depends, and in whom, if we read the Christian message aright, even god seeks its goal_\n\nThis book is the result of someone living through a period marked by legitimate fascism, war, and the excess of imperialism. I imagine some of what Jung saw is still ahead, but I remain hopeful humans can come to understand each other.\n\nIssues\n\nI find the lack of location of this force that organizes people to collective action representative of an error in perceiving the individual as an atomic unit as opposed to fluid in our self/other boundary.\n\nThe “shadow” is important metaphorically, or for the vibes, but what does it mean right? For instance, Viktor Frankl identifies a personal aspect of his patient’s human experience and reinforces their ability to reorient the way they perceive a challenge through meaning and purpose. I’m not quite sure if shadow therapy is just talking about myself or taking DMT. This may not be the place for Jung’s analytical methods, but without them, it feels like Jung is telling me to try ecstasy or meditate, I don’t know.\n\nBoth culminate in a lack of specificity. There just seems to be an idealistic romanticism of the inner spiritual experience of humans or an essentially amoral character of his beliefs that seeks personal psychic investigation over collective behavior. Neither account for motivation for self-understanding. I vibe with that though.","title":"The Undiscovered Self pt. 2","date":"2020-06-25T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"essay","tags":["psyche","morality","freedom","identity","philosophy","books"],"blurb":"The shadow is the only door out. Individuation as a debt you owe the next generation.","thread":"self-vs-mass","threadOrder":2},{"slug":"The_Undiscovered_Self_pt_1","rawContent":"# The Undiscovered Self pt 1\n\nAs social beings, humans can find themselves lost in a state of subjective annihilation resulting in what Jung terms the mass man.\n\nThis “mass man” is more a function of society or the political collective rather than of the individual self.\n\nAnother type of subjective annihilation can be found in the collective believer. Jung does not take this to be one who truly believes in God’s (psyche) power over judgment and the extramundane one intimately finds themselves a part of or indirect access to. The collective believer in Jung’s view is indifferent to religion as a personal relationship with self and the extramundane, and forms creeds rooted in the religious institutions they happen to participate in. They are, as the mass man, subjects of institutional authority.\n\nJung expresses this in a powerful statement on the role of state and religious institutions, writing:\n\n_both lack the very thing that expresses and grips the whole man, namely, an idea which puts the individual human being in the center as the measure of all things_\n\nThis becomes dangerous to Jung, as Western civ prioritizes the collective self, positing the individual as non-important to the functioning of the systems running the lives of millions.\n\n_the individual becomes morally and spiritually inferior to the mass, and for this reason, they do not burden themselves…with the real task of helping the individual to achieve metanoia, or rebirth of the spirit_\n\nFor Jung, western civilizations’ _only_ goal is the use of; tyranny(specifically socialism/fanaticism) in Russia, scientific weltanschauung in the Americas(Foucault much), or brazen egotism and skepticism in Europe to further its materialistic and collectivist goals. We should consider these phenomena as the methods by which dominant power structures seek to minimize the individual so that the individual becomes the mass man.\n\nThe Church takes this on with its creeds and thus becomes the motto “God Bless America”. The state and the church become complicit in the creed creations and impetus towards the “mass man” resulting in the deprivation of individual self-realization/individuation. Jordan Peterson has a very interesting take on this facet of Jungian belief. In the face of the dominance hierarchies humans have emboldened for centuries, it is imperative that we find a relationship with a higher power so that we may come to know and unveil our lesser nature hidden by meaning archetypal to our experience as human beings. But we remained warned:\n\n_veneration of the word has a perilous shadow side…the moment the word…attains universal validity, it severs its original link with the divine. There is then a personified Church, a personified State; the word becomes credulity…the word itself an infernal slogan capable of any deception._\n\nFor Jung, a religious belief system is an appropriate counterbalance to mass mindedness in either form, but Jung argues Christian symbolism falls short in producing the synthesis required of the ego to experience [metanoia](<https://www.wikiwand.com/en/articles/Metanoia_(psychology)>).\n\nIn the state, the individual plays no role in the collectivist aim to produce more, ad infinitum, so religion should be the stopgap as Jung believes:\n\n_the individual in his dissociated state needss a directing and ordering principle_\n\n_Ego consciousness would like to let its own will play this role, but overlooks the existence of powerful unconscious factors which thwart its intentions_\n\nAnd later says\n\n_the believer is measuring his conscience by the traditional ethical standard and that by a collective value_\n\nIt is in this vulnerable state of searching for meaning in life that Jung locates the power of psychology for subconscious confrontation. Christianity’s inability to update its symbology for the “Christian white man” is proof of the religious creeds that iterate over state and institutional collectivism rather than providing an environment for individuation. State fanaticism has even a steeper slope to fall from for the individual. Western scientific weltanschauung is occurring in the face of imperialism, racism, and sexism. The individual, in their disassociation, should thus become the subject of psychological analysis. For Jung, an examination of the relationship between a self and the machinations employing that self, so that ego synthesis can be formed, is the goal of psychology.\n\nMy fear is that, even in the zeitgeist of mental health, it should be fair to ask if psychology is merely another tool for producing an individual that conforms to society, rather than assisting one through subconscious confrontation.\n\nWe shall end it here. In the later sections, Jung focuses on understanding and self-knowledge in a world of rapid technological development. I think it best to preview the next post with how he starts chapter five and his focus on the drastic _real_ event in one’s life:\n\n_Only when conditions have…altered so drastically that…an unendurable rift between the outer…and our ideas now become antiquated…that….the question of how primordial images that maintain the flow of instinctive energy are to be reoriented_\n\n[Part 2](https://qwelian.com/posts/The_Undiscovered_Self_pt_2)<sup><a href=\"#fn-1\">1</a></sup>\n\n## Notes\n\n<ol>\n  <li id=\"fn-1\">The Undiscovered Self pt. 2. <a href=\"https://qwelian.com/posts/The_Undiscovered_Self_pt_2\">https://qwelian.com/posts/The_Undiscovered_Self_pt_2</a></li>\n</ol>","title":"The Undiscovered Self pt 1","date":"2020-06-18T04:00:00.000Z","mdxContent":{"key":null,"ref":null,"props":{"components":{}}},"kind":"essay","tags":["psyche","freedom","identity","myth","philosophy","books"],"blurb":"Jung's mass man: what is left of a person after the state and the church each take their cut.","thread":"self-vs-mass","threadOrder":1}]