[{"data":1,"prerenderedAt":7201},["ShallowReactive",2],{"blog-post-/blog/2026/04/epc-missouri-2026":3,"blog-sidebar-posts":254},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"pubDate":10,"draft":6,"body":11,"_type":248,"_id":249,"_source":250,"_file":251,"_stem":252,"_extension":253},"/blog/2026/04/epc-missouri-2026","04",false,"","EPC Missouri 2026","Notes from the conference, lived experience, Kansas City, and why we might not be back next year.","2026-04-05",{"type":12,"children":13,"toc":239},"root",[14,22,55,67,71,78,111,114,120,125,137,140,146,177,180,186,195,206,211,225,228,234],{"type":15,"tag":16,"props":17,"children":19},"element","h1",{"id":18},"epc-missouri-2026",[20],{"type":21,"value":8},"text",{"type":15,"tag":23,"props":24,"children":25},"p",{},[26,28,34,36,45,47,53],{"type":21,"value":27},"This was our ",{"type":15,"tag":29,"props":30,"children":31},"strong",{},[32],{"type":21,"value":33},"third year",{"type":21,"value":35}," at the ",{"type":15,"tag":37,"props":38,"children":42},"a",{"href":39,"rel":40},"https://www.epcmissouri.org/",[41],"nofollow",[43],{"type":21,"value":44},"EPC Missouri",{"type":21,"value":46}," conference. I ",{"type":15,"tag":37,"props":48,"children":50},{"href":49},"/blog/2025/06/early-episode-psychosis",[51],{"type":21,"value":52},"wrote about the 2025 conference",{"type":21,"value":54}," when the material was still new to us. A lot of the program felt familiar, and there was enough overlap with last year that it’s probably our last trip. That’s not a knock on the organizers; it’s just where we are. We’ve heard the talks, we’ve had the conversations, and repeating the same beats doesn’t add much for us anymore.",{"type":15,"tag":23,"props":56,"children":57},{},[58,60,65],{"type":21,"value":59},"Most of our ",{"type":15,"tag":29,"props":61,"children":62},{},[63],{"type":21,"value":64},"team",{"type":21,"value":66}," made it this year, which was a welcome diversion. I’m always happy to hang with them outside the office. We’re fairly close as it is, but a trip still means different conversations and a better sense of who people are away from the office.",{"type":15,"tag":68,"props":69,"children":70},"hr",{},[],{"type":15,"tag":72,"props":73,"children":75},"h2",{"id":74},"food",[76],{"type":21,"value":77},"Food",{"type":15,"tag":23,"props":79,"children":80},{},[81,83,88,90,95,97,102,104,109],{"type":21,"value":82},"The ",{"type":15,"tag":29,"props":84,"children":85},{},[86],{"type":21,"value":87},"first two years",{"type":21,"value":89},", the food was a genuine perk: well done, satisfying, something to look forward to between sessions. This year, our third, was a big step down. Lunch was a ",{"type":15,"tag":29,"props":91,"children":92},{},[93],{"type":21,"value":94},"bagged lunch",{"type":21,"value":96}," instead of the kind of meal we’d gotten used to; one year we had ",{"type":15,"tag":29,"props":98,"children":99},{},[100],{"type":21,"value":101},"Kansas City BBQ",{"type":21,"value":103},", which felt right for Missouri and for a long day of sitting and listening. This year’s bags weren’t in the same league. Breakfast was worse: hardly anything compared with the ",{"type":15,"tag":29,"props":105,"children":106},{},[107],{"type":21,"value":108},"full spread",{"type":21,"value":110}," we got last year, more like coffee and a few thin offerings than a real morning spread. Small thing in the grand scheme, but it matched the overall “less than before” vibe.",{"type":15,"tag":68,"props":112,"children":113},{},[],{"type":15,"tag":72,"props":115,"children":117},{"id":116},"lived-experience",[118],{"type":21,"value":119},"Lived Experience",{"type":15,"tag":23,"props":121,"children":122},{},[123],{"type":21,"value":124},"“Lived experience” was everywhere on the agenda: in panels, in keynotes, in how people framed their stories. I get why. Personal narrative matters, especially in mental health spaces where policy and care can drift far from what it’s actually like day to day.",{"type":15,"tag":23,"props":126,"children":127},{},[128,130,135],{"type":21,"value":129},"My hang-up is narrower: ",{"type":15,"tag":29,"props":131,"children":132},{},[133],{"type":21,"value":134},"everyone who is alive has lived experience.",{"type":21,"value":136}," It isn’t a special category that only applies to people with a mental illness or disorder. We all carry a history of stress, joy, trauma, routine, luck, and choice, and that shapes how we show up. When “lived experience” is used almost synonymously with “lived experience of mental illness,” it can sound like the rest of us are spectators. We aren’t. The distinction still matters clinically and in advocacy, but the language sometimes flattens the obvious: life is the shared baseline.",{"type":15,"tag":68,"props":138,"children":139},{},[],{"type":15,"tag":72,"props":141,"children":143},{"id":142},"postpartum-psychosis",[144],{"type":21,"value":145},"Postpartum psychosis",{"type":15,"tag":23,"props":147,"children":148},{},[149,151,161,163,168,170,175],{"type":21,"value":150},"Not everything on the schedule felt like a rerun. One session that landed for me was on ",{"type":15,"tag":37,"props":152,"children":155},{"href":153,"rel":154},"https://my.clevelandclinic.org/health/diseases/24152-postpartum-psychosis",[41],[156],{"type":15,"tag":29,"props":157,"children":158},{},[159],{"type":21,"value":160},"postpartum psychosis",{"type":21,"value":162},": how often it’s ",{"type":15,"tag":29,"props":164,"children":165},{},[166],{"type":21,"value":167},"underreported",{"type":21,"value":169}," or ",{"type":15,"tag":29,"props":171,"children":172},{},[173],{"type":21,"value":174},"overlooked",{"type":21,"value":176}," next to other perinatal mood issues, and how easy it is for systems (and families) to miss it until something breaks. I’m glad it was on the program. Even when the rest of the week felt thin, that kind of topic is why these conferences still matter: naming gaps in recognition and pushing them into the room.",{"type":15,"tag":68,"props":178,"children":179},{},[],{"type":15,"tag":72,"props":181,"children":183},{"id":182},"kansas-city",[184],{"type":21,"value":185},"Kansas City",{"type":15,"tag":23,"props":187,"children":188},{},[189],{"type":15,"tag":190,"props":191,"children":194},"img",{"alt":192,"src":193},"Kansas City, 2026","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/kc2026.webp",[],{"type":15,"tag":23,"props":196,"children":197},{},[198,204],{"type":15,"tag":37,"props":199,"children":202},{"href":200,"rel":201},"https://www.visitkc.com/",[41],[203],{"type":21,"value":185},{"type":21,"value":205}," is a strange place. The streets weren’t crowded; getting around was easy in a way big cities usually aren’t. It almost felt too quiet, like the bustle was somewhere else, or on pause.",{"type":15,"tag":23,"props":207,"children":208},{},[209],{"type":21,"value":210},"During the week, a lot closes early. After sessions, we’d look for something to do and hit a wall of locked doors and last-call hours. We’re not night-owl club people, but “find dinner or entertainment after eight” shouldn’t feel like a scavenger hunt. It did.",{"type":15,"tag":23,"props":212,"children":213},{},[214,216,223],{"type":21,"value":215},"One night we went to ",{"type":15,"tag":37,"props":217,"children":220},{"href":218,"rel":219},"https://greenladylounge.com/",[41],[221],{"type":21,"value":222},"Green Lady Lounge",{"type":21,"value":224}," and sat in the dim light listening to live Kansas City jazz. That was the highlight: music, a room that felt intentional, and a break from wandering empty sidewalks. Weird city, good memory.",{"type":15,"tag":68,"props":226,"children":227},{},[],{"type":15,"tag":72,"props":229,"children":231},{"id":230},"see-you-maybe-not",[232],{"type":21,"value":233},"See You, Maybe Not",{"type":15,"tag":23,"props":235,"children":236},{},[237],{"type":21,"value":238},"If the program diversifies or we have a reason to reconnect with the community in person, we might reconsider. For now, though, we’ve checked the box three times. The conference was fine; the repetition wasn’t. Onward.",{"title":7,"searchDepth":240,"depth":240,"links":241},3,[242,244,245,246,247],{"id":74,"depth":243,"text":77},2,{"id":116,"depth":243,"text":119},{"id":142,"depth":243,"text":145},{"id":182,"depth":243,"text":185},{"id":230,"depth":243,"text":233},"markdown","content:blog:2026:04:epc-missouri-2026.md","content","blog/2026/04/epc-missouri-2026.md","blog/2026/04/epc-missouri-2026","md",[255,472,699,1047,1453,1811,2084,2354,2523,2704,2942,3153,3361,3630,3728,4038,4517,4921,5334,5584,5784,5948,6287,6859,7030],{"_path":256,"_dir":257,"_draft":6,"_partial":6,"_locale":7,"title":258,"description":259,"pubDate":260,"draft":6,"body":261,"_type":248,"_id":469,"_source":250,"_file":470,"_stem":471,"_extension":253},"/blog/2025/05/captain-picard","05","Star Trek","Why Star Trek is the best sci-fi franchise","2025-05-26",{"type":12,"children":262,"toc":466},[263,269,275,280,288,293,426,445,450,453,463],{"type":15,"tag":16,"props":264,"children":266},{"id":265},"why-star-trek-is-the-greatest-sci-fi-franchise",[267],{"type":21,"value":268},"🖖🏽 Why Star Trek is the Greatest Sci-Fi Franchise",{"type":15,"tag":72,"props":270,"children":272},{"id":271},"make-it-so-how-picard-shaped-my-worldview",[273],{"type":21,"value":274},"Make it So: How Picard Shaped My Worldview",{"type":15,"tag":23,"props":276,"children":277},{},[278],{"type":21,"value":279},"Captain Jean-Luc Picard. More than just a Starfleet captain, he was a scholar, a diplomat, a philosopher. His blend of intellect and integrity profoundly shaped my view of the world.",{"type":15,"tag":23,"props":281,"children":282},{},[283],{"type":15,"tag":190,"props":284,"children":287},{"alt":285,"src":286},"Captain Jean-Luc Picard","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/Picard-9oKK4setvPF2l6ZsG5OvLRbEuYYcEb.webp",[],{"type":15,"tag":23,"props":289,"children":290},{},[291],{"type":21,"value":292},"Here are some key ways Captain Picard has influenced my thinking:",{"type":15,"tag":294,"props":295,"children":296},"ul",{},[297,353,380,397,416],{"type":15,"tag":298,"props":299,"children":300},"li",{},[301,306,308,315,317,324,326,333,335,342,344,351],{"type":15,"tag":29,"props":302,"children":303},{},[304],{"type":21,"value":305},"Understanding Diverse Perspectives:",{"type":21,"value":307}," Picard constantly championed dialogue over conflict, even with formidable adversaries like the ",{"type":15,"tag":37,"props":309,"children":312},{"href":310,"rel":311},"https://memory-alpha.fandom.com/wiki/Borg",[41],[313],{"type":21,"value":314},"Borg",{"type":21,"value":316},". His traumatic experience as ",{"type":15,"tag":37,"props":318,"children":321},{"href":319,"rel":320},"https://memory-alpha.fandom.com/wiki/Locutus_of_Borg",[41],[322],{"type":21,"value":323},"Locutus of Borg",{"type":21,"value":325}," (see ",{"type":15,"tag":37,"props":327,"children":330},{"href":328,"rel":329},"https://memory-alpha.fandom.com/wiki/The_Best_of_Both_Worlds_(episode)",[41],[331],{"type":21,"value":332},"\"The Best of Both Worlds, Part I\"",{"type":21,"value":334}," and ",{"type":15,"tag":37,"props":336,"children":339},{"href":337,"rel":338},"https://memory-alpha.fandom.com/wiki/The_Best_of_Both_Worlds,_Part_II_(episode)",[41],[340],{"type":21,"value":341},"\"Part II\"",{"type":21,"value":343},") underscored the importance of seeking deeper understanding. ",{"type":15,"tag":37,"props":345,"children":348},{"href":346,"rel":347},"https://memory-alpha.fandom.com/wiki/Portal:Main",[41],[349],{"type":21,"value":350},"Memory Alpha",{"type":21,"value":352}," details numerous instances of his successful diplomacy.",{"type":15,"tag":298,"props":354,"children":355},{},[356,361,363,370,372,378],{"type":15,"tag":29,"props":357,"children":358},{},[359],{"type":21,"value":360},"Upholding Justice and Principles:",{"type":21,"value":362}," Picard's unwavering stand for justice in ",{"type":15,"tag":37,"props":364,"children":367},{"href":365,"rel":366},"https://memory-alpha.fandom.com/wiki/The_Drumhead_(episode)",[41],[368],{"type":21,"value":369},"\"The Drumhead\"",{"type":21,"value":371}," against fear and hysteria is a vital lesson. His quote, ",{"type":15,"tag":373,"props":374,"children":375},"em",{},[376],{"type":21,"value":377},"\"With the first link, the chain is forged...\"",{"type":21,"value":379}," serves as a powerful reminder of freedom's fragility.",{"type":15,"tag":298,"props":381,"children":382},{},[383,388,390,395],{"type":15,"tag":29,"props":384,"children":385},{},[386],{"type":21,"value":387},"Resilience and Acceptance:",{"type":21,"value":389}," Picard offered a profound perspective on failure with his famous line, ",{"type":15,"tag":373,"props":391,"children":392},{},[393],{"type":21,"value":394},"\"It is possible to commit no mistakes and still lose. That is not weakness; that is life.\"",{"type":21,"value":396}," This outlook frees us to persevere through setbacks.",{"type":15,"tag":298,"props":398,"children":399},{},[400,405,407,414],{"type":15,"tag":29,"props":401,"children":402},{},[403],{"type":21,"value":404},"The Prime Directive and Cultural Sensitivity:",{"type":21,"value":406}," One of Picard's most profound lessons regarding the Prime Directive came in ",{"type":15,"tag":37,"props":408,"children":411},{"href":409,"rel":410},"https://memory-alpha.fandom.com/wiki/Who_Watches_The_Watchers_(episode)",[41],[412],{"type":21,"value":413},"\"Who Watches The Watchers\"",{"type":21,"value":415},". When facing the Mintakans, a proto-Vulcan society, Picard delivers a moving speech to Nuria, acknowledging the profound impact Starfleet's accidental exposure had on her people and expressing deep regret for violating their cultural integrity. This moment underscores his commitment to respecting other civilizations' development, even when it is personally painful.",{"type":15,"tag":298,"props":417,"children":418},{},[419,424],{"type":15,"tag":29,"props":420,"children":421},{},[422],{"type":21,"value":423},"Humble and Collaborative Leadership:",{"type":21,"value":425}," Picard's willingness to admit when he was wrong and to seek counsel were powerful leadership traits. He wasn't afraid of vulnerability, fostering a collaborative environment with his crew.",{"type":15,"tag":23,"props":427,"children":428},{},[429,434,436,443],{"type":15,"tag":37,"props":430,"children":432},{"href":346,"rel":431},[41],[433],{"type":21,"value":258},{"type":21,"value":435}," paints a picture of a man constantly striving for self-improvement and understanding, consistently upholding the ideals of the ",{"type":15,"tag":37,"props":437,"children":440},{"href":438,"rel":439},"https://memory-alpha.fandom.com/wiki/Federation",[41],[441],{"type":21,"value":442},"Federation",{"type":21,"value":444},". He believed deeply in humanity's potential and the importance of pushing boundaries – not just in space, but in thought and understanding.",{"type":15,"tag":23,"props":446,"children":447},{},[448],{"type":21,"value":449},"In a world that often feels chaotic and uncertain, the steady and thoughtful example of Captain Jean-Luc Picard remains a guiding light. He inspires me to approach challenges with reason and compassion, to stand firm for what is right, and to never cease exploring the vast and fascinating universe, both externally and within myself.",{"type":15,"tag":68,"props":451,"children":452},{},[],{"type":15,"tag":23,"props":454,"children":455},{},[456,461],{"type":15,"tag":373,"props":457,"children":458},{},[459],{"type":21,"value":460},"In the future, I'll explore specific episodes from all of Star Trek; usually a recent one that I've watched",{"type":21,"value":462},".",{"type":15,"tag":68,"props":464,"children":465},{},[],{"title":7,"searchDepth":240,"depth":240,"links":467},[468],{"id":271,"depth":243,"text":274},"content:blog:2025:05:captain-picard.md","blog/2025/05/captain-picard.md","blog/2025/05/captain-picard",{"_path":473,"_dir":257,"_draft":6,"_partial":6,"_locale":7,"title":474,"description":475,"pubDate":476,"draft":6,"body":477,"_type":248,"_id":696,"_source":250,"_file":697,"_stem":698,"_extension":253},"/blog/2025/05/my-first-post","My First Post","My first blog post! I built this blog using Nuxt and added cool view transitions.","2025-05-19",{"type":12,"children":478,"toc":693},[479,485,490,523,544,549,555,560,613,687],{"type":15,"tag":16,"props":480,"children":482},{"id":481},"welcome-to-my-blog",[483],{"type":21,"value":484},"Welcome to My Blog",{"type":15,"tag":23,"props":486,"children":487},{},[488],{"type":21,"value":489},"This is going to be my thoughts on anything and everything. It's mainly a way of playing with website building.",{"type":15,"tag":294,"props":491,"children":492},{},[493,498,503,508,513,518],{"type":15,"tag":298,"props":494,"children":495},{},[496],{"type":21,"value":497},"💻 Building websites",{"type":15,"tag":298,"props":499,"children":500},{},[501],{"type":21,"value":502},"🖖🏽 Star Trek",{"type":15,"tag":298,"props":504,"children":505},{},[506],{"type":21,"value":507},"✈️ Airplanes",{"type":15,"tag":298,"props":509,"children":510},{},[511],{"type":21,"value":512},"🧠 Mental Health",{"type":15,"tag":298,"props":514,"children":515},{},[516],{"type":21,"value":517},"📰 Politics",{"type":15,"tag":298,"props":519,"children":520},{},[521],{"type":21,"value":522},"🎹 Music",{"type":15,"tag":23,"props":524,"children":525},{},[526,528,535,536,543],{"type":21,"value":527},"I built this website using ",{"type":15,"tag":37,"props":529,"children":532},{"href":530,"rel":531},"https://nuxt.com/",[41],[533],{"type":21,"value":534},"Nuxt",{"type":21,"value":334},{"type":15,"tag":37,"props":537,"children":540},{"href":538,"rel":539},"https://nuxt.com/docs/getting-started/transitions",[41],[541],{"type":21,"value":542},"View Transitions",{"type":21,"value":462},{"type":15,"tag":23,"props":545,"children":546},{},[547],{"type":21,"value":548},"This post itself is written in Markdown.",{"type":15,"tag":72,"props":550,"children":552},{"id":551},"what-i-used-to-build-this-blog",[553],{"type":21,"value":554},"What I Used to Build This Blog",{"type":15,"tag":23,"props":556,"children":557},{},[558],{"type":21,"value":559},"Here are some of the key ingredients that went into making this blog:",{"type":15,"tag":294,"props":561,"children":562},{},[563,573,583,593,603],{"type":15,"tag":298,"props":564,"children":565},{},[566,571],{"type":15,"tag":29,"props":567,"children":568},{},[569],{"type":21,"value":570},"Nuxt:",{"type":21,"value":572}," The framework powering the whole thing. I'm really impressed with how fast and easy it is to work with. I'm building this project in several different frameworks. So far Astro and Nuxt are my favorite.",{"type":15,"tag":298,"props":574,"children":575},{},[576,581],{"type":15,"tag":29,"props":577,"children":578},{},[579],{"type":21,"value":580},"Markdown:",{"type":21,"value":582}," For writing all the content (like this post!). It's so simple and effective.",{"type":15,"tag":298,"props":584,"children":585},{},[586,591],{"type":15,"tag":29,"props":587,"children":588},{},[589],{"type":21,"value":590},"View Transitions:",{"type":21,"value":592}," To create those smooth animations when you click between pages. It's a really nice touch!",{"type":15,"tag":298,"props":594,"children":595},{},[596,601],{"type":15,"tag":29,"props":597,"children":598},{},[599],{"type":21,"value":600},"Custom Styling:",{"type":21,"value":602}," I've added some personal touches to the design to make it my own.",{"type":15,"tag":298,"props":604,"children":605},{},[606,611],{"type":15,"tag":29,"props":607,"children":608},{},[609],{"type":21,"value":610},"Cursor:",{"type":21,"value":612}," Of course, I vibe coded it... All while learning how to do it more myself.",{"type":15,"tag":614,"props":615,"children":619},"pre",{"className":616,"code":617,"language":618,"meta":7,"style":7},"language-js shiki shiki-themes github-dark","// A little code snippet to show off code blocks!\nconst greeting = \"Hello, Nuxt Blog!\";\nconsole.log(greeting);\n","js",[620],{"type":15,"tag":621,"props":622,"children":623},"code",{"__ignoreMap":7},[624,636,668],{"type":15,"tag":625,"props":626,"children":629},"span",{"class":627,"line":628},"line",1,[630],{"type":15,"tag":625,"props":631,"children":633},{"style":632},"--shiki-default:#6A737D",[634],{"type":21,"value":635},"// A little code snippet to show off code blocks!\n",{"type":15,"tag":625,"props":637,"children":638},{"class":627,"line":243},[639,645,651,656,662],{"type":15,"tag":625,"props":640,"children":642},{"style":641},"--shiki-default:#F97583",[643],{"type":21,"value":644},"const",{"type":15,"tag":625,"props":646,"children":648},{"style":647},"--shiki-default:#79B8FF",[649],{"type":21,"value":650}," greeting",{"type":15,"tag":625,"props":652,"children":653},{"style":641},[654],{"type":21,"value":655}," =",{"type":15,"tag":625,"props":657,"children":659},{"style":658},"--shiki-default:#9ECBFF",[660],{"type":21,"value":661}," \"Hello, Nuxt Blog!\"",{"type":15,"tag":625,"props":663,"children":665},{"style":664},"--shiki-default:#E1E4E8",[666],{"type":21,"value":667},";\n",{"type":15,"tag":625,"props":669,"children":670},{"class":627,"line":240},[671,676,682],{"type":15,"tag":625,"props":672,"children":673},{"style":664},[674],{"type":21,"value":675},"console.",{"type":15,"tag":625,"props":677,"children":679},{"style":678},"--shiki-default:#B392F0",[680],{"type":21,"value":681},"log",{"type":15,"tag":625,"props":683,"children":684},{"style":664},[685],{"type":21,"value":686},"(greeting);\n",{"type":15,"tag":688,"props":689,"children":690},"style",{},[691],{"type":21,"value":692},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":240,"depth":240,"links":694},[695],{"id":551,"depth":243,"text":554},"content:blog:2025:05:my-first-post.md","blog/2025/05/my-first-post.md","blog/2025/05/my-first-post",{"_path":700,"_dir":701,"_draft":6,"_partial":6,"_locale":7,"title":702,"description":703,"pubDate":704,"draft":6,"body":705,"_type":248,"_id":1044,"_source":250,"_file":1045,"_stem":1046,"_extension":253},"/blog/2025/06/beer","06","Beer!","Why Beer is great and specifically IPA's.","2025-06-22",{"type":12,"children":706,"toc":1035},[707,713,718,721,727,735,747,752,805,810,827,830,836,847,852,855,861,866,878,895,906,911,916,928,931,936,939,945,950,983,1024],{"type":15,"tag":16,"props":708,"children":710},{"id":709},"why-i-love-ipas",[711],{"type":21,"value":712},"🍺 Why I Love IPAs",{"type":15,"tag":23,"props":714,"children":715},{},[716],{"type":21,"value":717},"There's something about cracking open a cold IPA that just feels right. For me, it's more than just a drink—it's an experience, a ritual, and sometimes, a little bit of therapy. If you've ever wondered why people like me are so obsessed with IPAs, let me take you on a little journey through what makes this style so captivating, with a special nod to one of my favorites: a well-crafted Imperial IPA.",{"type":15,"tag":68,"props":719,"children":720},{},[],{"type":15,"tag":72,"props":722,"children":724},{"id":723},"the-taste-bold-bright-and-beautiful",[725],{"type":21,"value":726},"🌟 The Taste: Bold, Bright, and Beautiful",{"type":15,"tag":23,"props":728,"children":729},{},[730],{"type":15,"tag":190,"props":731,"children":734},{"alt":732,"src":733},"Me and Beer","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/beer%28me%29-YsV88J32Ch14680vyJHBEJbJQ2WpVE.webp",[],{"type":15,"tag":736,"props":737,"children":738},"blockquote",{},[739],{"type":15,"tag":23,"props":740,"children":741},{},[742],{"type":15,"tag":373,"props":743,"children":744},{},[745],{"type":21,"value":746},"\"The first sip hits you with a burst of citrus and pine, followed by a subtle sweetness that balances out the bitterness.\"",{"type":15,"tag":23,"props":748,"children":749},{},[750],{"type":21,"value":751},"IPAs (India Pale Ales) are renowned for their vibrant hop profiles, and the Imperial IPA takes those characteristics to an exhilarating level. Here's what I consistently appreciate in a great IPA:",{"type":15,"tag":294,"props":753,"children":754},{},[755,765,775,785,795],{"type":15,"tag":298,"props":756,"children":757},{},[758,763],{"type":15,"tag":29,"props":759,"children":760},{},[761],{"type":21,"value":762},"Citrus & Pine:",{"type":21,"value":764}," That unmistakable hoppy punch that defines the style.",{"type":15,"tag":298,"props":766,"children":767},{},[768,773],{"type":15,"tag":29,"props":769,"children":770},{},[771],{"type":21,"value":772},"Tropical Fruit Notes:",{"type":21,"value":774}," A delightful complexity that keeps every sip interesting.",{"type":15,"tag":298,"props":776,"children":777},{},[778,783],{"type":15,"tag":29,"props":779,"children":780},{},[781],{"type":21,"value":782},"Caramel Sweetness:",{"type":21,"value":784}," Often present to perfectly balance the hop bitterness.",{"type":15,"tag":298,"props":786,"children":787},{},[788,793],{"type":15,"tag":29,"props":789,"children":790},{},[791],{"type":21,"value":792},"Rich Malt Backbone:",{"type":21,"value":794}," Adds depth, body, and smoothness to the overall experience.",{"type":15,"tag":298,"props":796,"children":797},{},[798,803],{"type":15,"tag":29,"props":799,"children":800},{},[801],{"type":21,"value":802},"Strong but Smooth:",{"type":21,"value":804}," While often higher in ABV, the best IPAs manage to be powerful without being overwhelming.",{"type":15,"tag":23,"props":806,"children":807},{},[808],{"type":21,"value":809},"It's the kind of beer that demands your attention and rewards you for slowing down and savoring it.",{"type":15,"tag":23,"props":811,"children":812},{},[813,815,825],{"type":21,"value":814},"Of course, I've had the pleasure of visiting breweries like ",{"type":15,"tag":29,"props":816,"children":817},{},[818],{"type":15,"tag":37,"props":819,"children":822},{"href":820,"rel":821},"https://newbelgium.com/visit/asheville",[41],[823],{"type":21,"value":824},"New Belgium",{"type":21,"value":826}," in Asheville, NC, to taste fresh pours right from the source!",{"type":15,"tag":68,"props":828,"children":829},{},[],{"type":15,"tag":72,"props":831,"children":833},{"id":832},"the-feeling-calm-in-a-glass",[834],{"type":21,"value":835},"🧘 The Feeling: Calm in a Glass",{"type":15,"tag":736,"props":837,"children":838},{},[839],{"type":15,"tag":23,"props":840,"children":841},{},[842],{"type":15,"tag":373,"props":843,"children":844},{},[845],{"type":21,"value":846},"\"There's a unique kind of calm that comes from sitting down with a good IPA.\"",{"type":15,"tag":23,"props":848,"children":849},{},[850],{"type":21,"value":851},"The ritual of pouring, watching the foam settle, and taking that first sip—it's grounding. A well-chosen IPA is my go-to for those moments when I need to unwind. It's not about drinking to escape—it's about finding a little bit of comfort and joy in a glass.",{"type":15,"tag":68,"props":853,"children":854},{},[],{"type":15,"tag":72,"props":856,"children":858},{"id":857},"the-adventure-breweries-and-beyond",[859],{"type":21,"value":860},"🍻 The Adventure: Breweries and Beyond",{"type":15,"tag":23,"props":862,"children":863},{},[864],{"type":21,"value":865},"My love for IPAs has taken me on some pretty great adventures, but one brewery stands out above the rest:",{"type":15,"tag":867,"props":868,"children":870},"h3",{"id":869},"️-sierra-nevada-my-favorite-brewery",[871,873],{"type":21,"value":872},"🏞️ ",{"type":15,"tag":29,"props":874,"children":875},{},[876],{"type":21,"value":877},"Sierra Nevada: My Favorite Brewery",{"type":15,"tag":23,"props":879,"children":880},{},[881,883,893],{"type":21,"value":882},"Located just outside Asheville, North Carolina, ",{"type":15,"tag":29,"props":884,"children":885},{},[886],{"type":15,"tag":37,"props":887,"children":890},{"href":888,"rel":889},"https://sierranevada.com/visit/mills-river/taproom",[41],[891],{"type":21,"value":892},"Sierra Nevada",{"type":21,"value":894}," is more than a brewery—it's a destination. The moment you arrive, you're greeted by a stunning, sprawling campus nestled in the Blue Ridge Mountains. The architecture is grand, with beautiful woodwork, copper accents, and a sense of craftsmanship that mirrors the care they put into their beer.",{"type":15,"tag":736,"props":896,"children":897},{},[898],{"type":15,"tag":23,"props":899,"children":900},{},[901],{"type":15,"tag":373,"props":902,"children":903},{},[904],{"type":21,"value":905},"\"Walking into Sierra Nevada feels like stepping into a cathedral for craft beer lovers.\"",{"type":15,"tag":23,"props":907,"children":908},{},[909],{"type":21,"value":910},"The taproom is massive, with floor-to-ceiling windows that let in natural light and offer views of the surrounding forest. There's a gorgeous outdoor beer garden, complete with fire pits, live music, and trails that wind through the property. Every detail, from the food to the friendly staff, makes you feel welcome and inspired to explore.",{"type":15,"tag":23,"props":912,"children":913},{},[914],{"type":21,"value":915},"And of course, the beer selection is incredible. Whether you're sipping a classic Pale Ale, exploring their diverse range of IPAs, or trying a limited-release, every pour is a reminder of why Sierra Nevada is a legend in the craft beer world.",{"type":15,"tag":736,"props":917,"children":918},{},[919],{"type":15,"tag":23,"props":920,"children":921},{},[922,927],{"type":15,"tag":373,"props":923,"children":924},{},[925],{"type":21,"value":926},"I do love visiting many other breweries wherever I go",{"type":21,"value":462},{"type":15,"tag":68,"props":929,"children":930},{},[],{"type":15,"tag":23,"props":932,"children":933},{},[934],{"type":21,"value":935},"There's something magical about being surrounded by people who are just as passionate about craft beer as you are. Each brewery has its own vibe, its own take on the IPA, and I love trying them all.",{"type":15,"tag":68,"props":937,"children":938},{},[],{"type":15,"tag":72,"props":940,"children":942},{"id":941},"what-makes-an-ipa-special",[943],{"type":21,"value":944},"🎯 What Makes an IPA Special?",{"type":15,"tag":23,"props":946,"children":947},{},[948],{"type":21,"value":949},"With so many IPAs out there, what makes certain ones truly stand out? For me, it's about a combination of factors:",{"type":15,"tag":294,"props":951,"children":952},{},[953,963,973],{"type":15,"tag":298,"props":954,"children":955},{},[956,961],{"type":15,"tag":29,"props":957,"children":958},{},[959],{"type":21,"value":960},"Perfect Balance:",{"type":21,"value":962}," The interplay of flavor, strength, and drinkability is key.",{"type":15,"tag":298,"props":964,"children":965},{},[966,971],{"type":15,"tag":29,"props":967,"children":968},{},[969],{"type":21,"value":970},"Bold but Not Brash:",{"type":21,"value":972}," Complex without being confusing, offering layers of taste.",{"type":15,"tag":298,"props":974,"children":975},{},[976,981],{"type":15,"tag":29,"props":977,"children":978},{},[979],{"type":21,"value":980},"My Go-To:",{"type":21,"value":982}," The perfect companion for treating myself, celebrating, or just finding calm in the chaos.",{"type":15,"tag":23,"props":984,"children":985},{},[986,988,998,1000,1010,1012,1022],{"type":21,"value":987},"If you're looking to explore the style, I highly recommend diving into some of my personal favorites. You can't go wrong with ",{"type":15,"tag":29,"props":989,"children":990},{},[991],{"type":15,"tag":37,"props":992,"children":995},{"href":993,"rel":994},"https://bellsbeer.com/beers/two-hearted-ale/",[41],[996],{"type":21,"value":997},"Bell's Two Hearted IPA",{"type":21,"value":999}," for its classic balance and incredible hop aroma. For a taste of something truly imperial and bold, ",{"type":15,"tag":29,"props":1001,"children":1002},{},[1003],{"type":15,"tag":37,"props":1004,"children":1007},{"href":1005,"rel":1006},"https://www.newbelgium.com/beer/voodoo-ranger-imperial-ipa/",[41],[1008],{"type":21,"value":1009},"New Belgium's Voodoo Ranger Imperial IPA",{"type":21,"value":1011}," delivers a powerful yet surprisingly smooth experience. And for those who appreciate a unique hop character with stellar clarity, ",{"type":15,"tag":29,"props":1013,"children":1014},{},[1015],{"type":15,"tag":37,"props":1016,"children":1019},{"href":1017,"rel":1018},"https://www.elysianbrewing.com/beer/space-dust-ipa",[41],[1020],{"type":21,"value":1021},"Elysian Space Dust IPA",{"type":21,"value":1023}," is always a fantastic choice. Each of these showcases why the IPA style is so beloved and versatile!",{"type":15,"tag":736,"props":1025,"children":1026},{},[1027],{"type":15,"tag":23,"props":1028,"children":1029},{},[1030],{"type":15,"tag":29,"props":1031,"children":1032},{},[1033],{"type":21,"value":1034},"Cheers! 🍻",{"title":7,"searchDepth":240,"depth":240,"links":1036},[1037,1038,1039,1043],{"id":723,"depth":243,"text":726},{"id":832,"depth":243,"text":835},{"id":857,"depth":243,"text":860,"children":1040},[1041],{"id":869,"depth":240,"text":1042},"🏞️ Sierra Nevada: My Favorite Brewery",{"id":941,"depth":243,"text":944},"content:blog:2025:06:beer.md","blog/2025/06/beer.md","blog/2025/06/beer",{"_path":49,"_dir":701,"_draft":6,"_partial":6,"_locale":7,"title":1048,"description":1049,"pubDate":1050,"draft":6,"body":1051,"_type":248,"_id":1450,"_source":250,"_file":1451,"_stem":1452,"_extension":253},"Early Episode Psychosis","What I learned from my recent conference","2025-06-08",{"type":12,"children":1052,"toc":1439},[1053,1059,1067,1080,1099,1105,1111,1128,1134,1158,1166,1171,1177,1201,1224,1229,1235,1259,1270,1313,1318,1326,1332,1344,1367,1372,1378,1400,1423,1428,1434],{"type":15,"tag":16,"props":1054,"children":1056},{"id":1055},"early-psychosis-care-insights-from-missouri",[1057],{"type":21,"value":1058},"Early Psychosis Care: Insights from Missouri",{"type":15,"tag":736,"props":1060,"children":1061},{},[1062],{"type":15,"tag":23,"props":1063,"children":1064},{},[1065],{"type":21,"value":1066},"A deep dive into the critical importance of early identification and intervention in psychosis, based on insights from the Early Psychosis Care Center Conference in Missouri.",{"type":15,"tag":23,"props":1068,"children":1069},{},[1070],{"type":15,"tag":37,"props":1071,"children":1074},{"href":1072,"rel":1073},"https://www.navigateconsultants.org/",[41],[1075],{"type":15,"tag":190,"props":1076,"children":1079},{"alt":1077,"src":1078},"Navigate","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/navigate-logo-p44GGnDVq4MIDtJidT6EGNrzfS4mUc.webp",[],{"type":15,"tag":23,"props":1081,"children":1082},{},[1083,1085,1090,1092,1098],{"type":21,"value":1084},"I recently had the opportunity to attend the Early Psychosis Care Center Conference in Missouri, an event focused on the critical importance of early identification and intervention in psychosis. As someone who works in a program called ",{"type":15,"tag":37,"props":1086,"children":1088},{"href":1072,"rel":1087},[41],[1089],{"type":21,"value":1077},{"type":21,"value":1091},", dedicated to early psychosis care, attending this conference was particularly valuable. The conference brought together a diverse group of professionals, individuals with lived experience, and family members, all dedicated to improving care for those affected by psychosis. It was an incredibly insightful experience, highlighting key areas for enhancing support and treatment. You can learn more about the conference at ",{"type":15,"tag":37,"props":1093,"children":1095},{"href":39,"rel":1094},[41],[1096],{"type":21,"value":1097},"EPCMissouri.org",{"type":21,"value":462},{"type":15,"tag":72,"props":1100,"children":1102},{"id":1101},"key-takeaways",[1103],{"type":21,"value":1104},"Key Takeaways",{"type":15,"tag":867,"props":1106,"children":1108},{"id":1107},"_1-the-power-of-lived-experience",[1109],{"type":21,"value":1110},"1. The Power of Lived Experience",{"type":15,"tag":23,"props":1112,"children":1113},{},[1114,1116,1126],{"type":21,"value":1115},"One of the most impactful presentations was by ",{"type":15,"tag":29,"props":1117,"children":1118},{},[1119],{"type":15,"tag":37,"props":1120,"children":1123},{"href":1121,"rel":1122},"https://www.patdeegan.com/",[41],[1124],{"type":21,"value":1125},"Dr. Pat Deegan",{"type":21,"value":1127},". Dr. Deegan is a powerful voice in the mental health recovery movement, drawing from her own lived experience with a schizophrenia diagnosis as a teenager. Her work emphasizes the potential for recovery and empowerment for individuals with mental illness. Dr. Deegan's insights underscored the importance of seeing the person beyond the diagnosis and supporting their journey towards a meaningful life.",{"type":15,"tag":867,"props":1129,"children":1131},{"id":1130},"_2-understanding-moral-agency",[1132],{"type":21,"value":1133},"2. Understanding Moral Agency",{"type":15,"tag":23,"props":1135,"children":1136},{},[1137,1139,1144,1146,1156],{"type":21,"value":1138},"Another concept that resonated deeply was ",{"type":15,"tag":29,"props":1140,"children":1141},{},[1142],{"type":21,"value":1143},"Moral Agency",{"type":21,"value":1145},", presented by ",{"type":15,"tag":29,"props":1147,"children":1148},{},[1149],{"type":15,"tag":37,"props":1150,"children":1153},{"href":1151,"rel":1152},"https://people.smu.edu/nmyers/",[41],[1154],{"type":21,"value":1155},"Dr. Neely Myers",{"type":21,"value":1157},". Dr. Myers, a medical and psychological anthropologist, explores how experiencing psychosis can diminish moral agency, which she defines as:",{"type":15,"tag":736,"props":1159,"children":1160},{},[1161],{"type":15,"tag":23,"props":1162,"children":1163},{},[1164],{"type":21,"value":1165},"The freedom to aspire to and achieve a \"good life\" that allows for intimate relationships and being recognized as a good person within one's social context.",{"type":15,"tag":23,"props":1167,"children":1168},{},[1169],{"type":21,"value":1170},"Her research highlights the importance of restoring this sense of agency in the recovery process and the need for \"peopled opportunities\" and social support for individuals to rebuild their lives.",{"type":15,"tag":867,"props":1172,"children":1174},{"id":1173},"_3-the-vital-role-of-family-engagement",[1175],{"type":21,"value":1176},"3. The Vital Role of Family Engagement",{"type":15,"tag":23,"props":1178,"children":1179},{},[1180,1182,1187,1189,1199],{"type":21,"value":1181},"The conference strongly emphasized the crucial role of ",{"type":15,"tag":29,"props":1183,"children":1184},{},[1185],{"type":21,"value":1186},"engaging families in psychosis care",{"type":21,"value":1188},". This important presentation was given by ",{"type":15,"tag":37,"props":1190,"children":1193},{"href":1191,"rel":1192},"https://www.seedsofhopebooks.com/",[41],[1194],{"type":15,"tag":29,"props":1195,"children":1196},{},[1197],{"type":21,"value":1198},"Dr. Michelle Sherman",{"type":21,"value":1200},", highlights the significant impact of family involvement. Research shows that family involvement leads to better patient outcomes, including:",{"type":15,"tag":294,"props":1202,"children":1203},{},[1204,1209,1214,1219],{"type":15,"tag":298,"props":1205,"children":1206},{},[1207],{"type":21,"value":1208},"Fewer relapses",{"type":15,"tag":298,"props":1210,"children":1211},{},[1212],{"type":21,"value":1213},"Reduced hospitalizations",{"type":15,"tag":298,"props":1215,"children":1216},{},[1217],{"type":21,"value":1218},"Better treatment adherence",{"type":15,"tag":298,"props":1220,"children":1221},{},[1222],{"type":21,"value":1223},"Improved communication with providers",{"type":15,"tag":23,"props":1225,"children":1226},{},[1227],{"type":21,"value":1228},"Educating families about psychosis and providing them with communication strategies, such as those based on motivational interviewing, can help decrease conflict and create a more supportive home environment.",{"type":15,"tag":867,"props":1230,"children":1232},{"id":1231},"_4-medication-treatment-the-case-for-early-clozaril-and-long-acting-injectables",[1233],{"type":21,"value":1234},"4. Medication Treatment: The Case for Early Clozaril and Long-Acting Injectables",{"type":15,"tag":23,"props":1236,"children":1237},{},[1238,1243,1245,1250,1252,1257],{"type":15,"tag":29,"props":1239,"children":1240},{},[1241],{"type":21,"value":1242},"Medication treatment",{"type":21,"value":1244}," was a significant topic, with discussions including the ",{"type":15,"tag":29,"props":1246,"children":1247},{},[1248],{"type":21,"value":1249},"early use of Clozaril",{"type":21,"value":1251}," and the importance of ",{"type":15,"tag":29,"props":1253,"children":1254},{},[1255],{"type":21,"value":1256},"long-acting injectables (LAIs)",{"type":21,"value":1258},". While Clozaril is known for its efficacy in treatment-resistant schizophrenia, there's often a delay in prescribing it. The idea presented was to consider starting Clozaril earlier, potentially after two failed trials of other first-line antipsychotic medications, particularly for young people who are still symptomatic. This approach aims to improve outcomes when initial treatments are not fully effective. Clozaril does require careful monitoring due to potential side effects, but for some individuals, it can be a critical step towards recovery.",{"type":15,"tag":23,"props":1260,"children":1261},{},[1262,1264,1268],{"type":21,"value":1263},"A particularly important discussion centered around ",{"type":15,"tag":29,"props":1265,"children":1266},{},[1267],{"type":21,"value":1256},{"type":21,"value":1269},". As someone who strongly advocates for LAIs, I was pleased to see this topic receive significant attention. LAIs offer several crucial advantages in early psychosis treatment:",{"type":15,"tag":294,"props":1271,"children":1272},{},[1273,1283,1293,1303],{"type":15,"tag":298,"props":1274,"children":1275},{},[1276,1281],{"type":15,"tag":29,"props":1277,"children":1278},{},[1279],{"type":21,"value":1280},"Improved Adherence",{"type":21,"value":1282},": LAIs eliminate the need for daily pill-taking, which can be challenging for anyone, especially young people experiencing their first episode of psychosis. This leads to more consistent medication levels in the body.",{"type":15,"tag":298,"props":1284,"children":1285},{},[1286,1291],{"type":15,"tag":29,"props":1287,"children":1288},{},[1289],{"type":21,"value":1290},"Better Outcomes",{"type":21,"value":1292},": Studies show that LAIs are associated with lower relapse rates and fewer hospitalizations compared to oral medications. This is particularly important in early psychosis, where preventing relapse can significantly impact long-term recovery.",{"type":15,"tag":298,"props":1294,"children":1295},{},[1296,1301],{"type":15,"tag":29,"props":1297,"children":1298},{},[1299],{"type":21,"value":1300},"Reduced Burden",{"type":21,"value":1302},": For families and caregivers, LAIs can reduce the stress of monitoring daily medication adherence. This allows everyone to focus more on recovery and less on medication management.",{"type":15,"tag":298,"props":1304,"children":1305},{},[1306,1311],{"type":15,"tag":29,"props":1307,"children":1308},{},[1309],{"type":21,"value":1310},"Early Intervention",{"type":21,"value":1312},": Starting with LAIs early in treatment can establish a strong foundation for recovery. It's often easier to maintain a treatment regimen than to restart one after a relapse.",{"type":15,"tag":23,"props":1314,"children":1315},{},[1316],{"type":21,"value":1317},"The conference highlighted that LAIs should be considered as a first-line treatment option, not just as a solution for non-adherence. This aligns with my experience and preference for LAIs in early psychosis care. The key is to present LAIs as a positive choice for better outcomes rather than a last resort.",{"type":15,"tag":736,"props":1319,"children":1320},{},[1321],{"type":15,"tag":23,"props":1322,"children":1323},{},[1324],{"type":21,"value":1325},"In a later blog, I'll explain more about the different Long Acting Injectables and their benefits.",{"type":15,"tag":867,"props":1327,"children":1329},{"id":1328},"_5-cannabis-and-psychosis-a-complex-relationship",[1330],{"type":21,"value":1331},"5. Cannabis and Psychosis: A Complex Relationship",{"type":15,"tag":23,"props":1333,"children":1334},{},[1335,1337,1342],{"type":21,"value":1336},"The complex relationship between ",{"type":15,"tag":29,"props":1338,"children":1339},{},[1340],{"type":21,"value":1341},"cannabis and psychosis",{"type":21,"value":1343}," was also addressed. Research indicates that:",{"type":15,"tag":294,"props":1345,"children":1346},{},[1347,1352,1357,1362],{"type":15,"tag":298,"props":1348,"children":1349},{},[1350],{"type":21,"value":1351},"Cannabis use, especially during adolescence, can be a risk factor for developing psychotic disorders",{"type":15,"tag":298,"props":1353,"children":1354},{},[1355],{"type":21,"value":1356},"It may worsen symptoms in those already experiencing psychosis",{"type":15,"tag":298,"props":1358,"children":1359},{},[1360],{"type":21,"value":1361},"High-potency cannabis products and regular use are particularly concerning",{"type":15,"tag":298,"props":1363,"children":1364},{},[1365],{"type":21,"value":1366},"While some individuals may use cannabis to cope with symptoms, studies suggest it can actually exacerbate paranoia and hallucinations",{"type":15,"tag":23,"props":1368,"children":1369},{},[1370],{"type":21,"value":1371},"This highlights the importance of discussing substance use in the context of early psychosis and providing education on the potential risks.",{"type":15,"tag":867,"props":1373,"children":1375},{"id":1374},"_6-traumas-impact-on-psychosis",[1376],{"type":21,"value":1377},"6. Trauma's Impact on Psychosis",{"type":15,"tag":23,"props":1379,"children":1380},{},[1381,1391,1393,1398],{"type":15,"tag":37,"props":1382,"children":1385},{"href":1383,"rel":1384},"https://cpr.bu.edu/bio/kim-t-mueser-ph-d/",[41],[1386],{"type":15,"tag":29,"props":1387,"children":1388},{},[1389],{"type":21,"value":1390},"Dr. Kim Mueser, PhD",{"type":21,"value":1392}," delivered a compelling presentation on the significant influence of ",{"type":15,"tag":29,"props":1394,"children":1395},{},[1396],{"type":21,"value":1397},"trauma on psychosis",{"type":21,"value":1399},". His research and clinical experience provided strong evidence suggesting that:",{"type":15,"tag":294,"props":1401,"children":1402},{},[1403,1408,1413,1418],{"type":15,"tag":298,"props":1404,"children":1405},{},[1406],{"type":21,"value":1407},"Trauma is a risk factor for the development of psychosis",{"type":15,"tag":298,"props":1409,"children":1410},{},[1411],{"type":21,"value":1412},"Individuals with a history of trauma may experience more severe symptoms and poorer outcomes",{"type":15,"tag":298,"props":1414,"children":1415},{},[1416],{"type":21,"value":1417},"Different types of trauma, particularly interpersonal violence and neglect, have been linked to an increased risk",{"type":15,"tag":298,"props":1419,"children":1420},{},[1421],{"type":21,"value":1422},"The cumulative effect of experiencing multiple types of trauma can significantly increase the likelihood of psychosis",{"type":15,"tag":23,"props":1424,"children":1425},{},[1426],{"type":21,"value":1427},"Dr. Mueser emphasized the critical need for trauma-informed care and integrated approaches that address both psychosis and trauma, highlighting how this dual focus can lead to better treatment outcomes.",{"type":15,"tag":72,"props":1429,"children":1431},{"id":1430},"conclusion",[1432],{"type":21,"value":1433},"Conclusion",{"type":15,"tag":23,"props":1435,"children":1436},{},[1437],{"type":21,"value":1438},"Attending the Early Psychosis Care Center Conference in Missouri was an invaluable experience. It reinforced the importance of early intervention, highlighted the power of lived experience and moral agency in recovery, and emphasized the critical role of families. The discussions on medication, cannabis, and trauma provided crucial information for improving care and support for individuals experiencing early psychosis. The commitment and passion of everyone at the conference were truly inspiring, offering hope for better outcomes and a more supportive future for those affected by psychosis.",{"title":7,"searchDepth":240,"depth":240,"links":1440},[1441,1449],{"id":1101,"depth":243,"text":1104,"children":1442},[1443,1444,1445,1446,1447,1448],{"id":1107,"depth":240,"text":1110},{"id":1130,"depth":240,"text":1133},{"id":1173,"depth":240,"text":1176},{"id":1231,"depth":240,"text":1234},{"id":1328,"depth":240,"text":1331},{"id":1374,"depth":240,"text":1377},{"id":1430,"depth":243,"text":1433},"content:blog:2025:06:early-episode-psychosis.md","blog/2025/06/early-episode-psychosis.md","blog/2025/06/early-episode-psychosis",{"_path":1454,"_dir":701,"_draft":6,"_partial":6,"_locale":7,"title":1455,"description":1456,"pubDate":1457,"draft":6,"body":1458,"_type":248,"_id":1808,"_source":250,"_file":1809,"_stem":1810,"_extension":253},"/blog/2025/06/fnd","My Ongoing Journey with FND: Still Searching for Answers","My Journey with FND","2025-06-29",{"type":12,"children":1459,"toc":1799},[1460,1466,1469,1475,1480,1485,1503,1508,1511,1517,1522,1540,1543,1549,1554,1559,1570,1575,1593,1598,1601,1607,1612,1620,1625,1638,1650,1663,1668,1671,1677,1682,1699,1704,1728,1746,1757,1760,1766,1771,1776,1794],{"type":15,"tag":16,"props":1461,"children":1463},{"id":1462},"my-ongoing-journey-with-fnd-still-searching-for-answers",[1464],{"type":21,"value":1465},"🌱 My Ongoing Journey with FND: Still Searching for Answers",{"type":15,"tag":68,"props":1467,"children":1468},{},[],{"type":15,"tag":72,"props":1470,"children":1472},{"id":1471},"the-beginning-a-fall-in-2014",[1473],{"type":21,"value":1474},"🚪 The Beginning: A Fall in 2014",{"type":15,"tag":23,"props":1476,"children":1477},{},[1478],{"type":21,"value":1479},"In 2014, I fell backward in my garage while carrying an item. This incident marked the beginning of a pattern of falls.",{"type":15,"tag":23,"props":1481,"children":1482},{},[1483],{"type":21,"value":1484},"Over the subsequent years, I experienced:",{"type":15,"tag":294,"props":1486,"children":1487},{},[1488,1493,1498],{"type":15,"tag":298,"props":1489,"children":1490},{},[1491],{"type":21,"value":1492},"Missteps or stepping on unseen objects.",{"type":15,"tag":298,"props":1494,"children":1495},{},[1496],{"type":21,"value":1497},"Tremors followed by falls.",{"type":15,"tag":298,"props":1499,"children":1500},{},[1501],{"type":21,"value":1502},"These incidents increased in frequency.",{"type":15,"tag":23,"props":1504,"children":1505},{},[1506],{"type":21,"value":1507},"From the outset, I recognized these events as abnormal.",{"type":15,"tag":68,"props":1509,"children":1510},{},[],{"type":15,"tag":72,"props":1512,"children":1514},{"id":1513},"the-pandemic-years-isolation-adaptation",[1515],{"type":21,"value":1516},"🦠 The Pandemic Years: Isolation & Adaptation",{"type":15,"tag":23,"props":1518,"children":1519},{},[1520],{"type":21,"value":1521},"The COVID-19 pandemic altered my routine.",{"type":15,"tag":294,"props":1523,"children":1524},{},[1525,1530,1535],{"type":15,"tag":298,"props":1526,"children":1527},{},[1528],{"type":21,"value":1529},"I spent more time at home.",{"type":15,"tag":298,"props":1531,"children":1532},{},[1533],{"type":21,"value":1534},"This reduced my exposure to public spaces, thereby decreasing the risk of public falls.",{"type":15,"tag":298,"props":1536,"children":1537},{},[1538],{"type":21,"value":1539},"However, it also limited my physical activity and exposure therapy for fall-related anxieties.",{"type":15,"tag":68,"props":1541,"children":1542},{},[],{"type":15,"tag":72,"props":1544,"children":1546},{"id":1545},"the-seizure-that-changed-everything",[1547],{"type":21,"value":1548},"⚡ The Seizure That Changed Everything",{"type":15,"tag":23,"props":1550,"children":1551},{},[1552],{"type":21,"value":1553},"2021 marked a significant event.",{"type":15,"tag":23,"props":1555,"children":1556},{},[1557],{"type":21,"value":1558},"My foot made contact with a table, resulting in a tremor, a fall, and a subsequent loss of consciousness. I regained awareness asking for assistance; my wife instructed me to remain still while waiting for emergency services.",{"type":15,"tag":736,"props":1560,"children":1561},{},[1562],{"type":15,"tag":23,"props":1563,"children":1564},{},[1565],{"type":15,"tag":29,"props":1566,"children":1567},{},[1568],{"type":21,"value":1569},"This was my first grand mal seizure.",{"type":15,"tag":23,"props":1571,"children":1572},{},[1573],{"type":21,"value":1574},"This event initiated a series of medical consultations:",{"type":15,"tag":294,"props":1576,"children":1577},{},[1578,1583,1588],{"type":15,"tag":298,"props":1579,"children":1580},{},[1581],{"type":21,"value":1582},"Primary care physicians",{"type":15,"tag":298,"props":1584,"children":1585},{},[1586],{"type":21,"value":1587},"Neurologists",{"type":15,"tag":298,"props":1589,"children":1590},{},[1591],{"type":21,"value":1592},"Multiple diagnostic tests",{"type":15,"tag":23,"props":1594,"children":1595},{},[1596],{"type":21,"value":1597},"These appointments generated numerous questions but few definitive answers.",{"type":15,"tag":68,"props":1599,"children":1600},{},[],{"type":15,"tag":72,"props":1602,"children":1604},{"id":1603},"testing-fear-and-uncertainty",[1605],{"type":21,"value":1606},"🧠 Testing, Fear, and Uncertainty",{"type":15,"tag":23,"props":1608,"children":1609},{},[1610],{"type":21,"value":1611},"In 2024, a 24-hour ambulatory EEG was ordered to capture a fall event.",{"type":15,"tag":736,"props":1613,"children":1614},{},[1615],{"type":15,"tag":23,"props":1616,"children":1617},{},[1618],{"type":21,"value":1619},"The awareness of being monitored for a fall increased my anxiety regarding falls.",{"type":15,"tag":23,"props":1621,"children":1622},{},[1623],{"type":21,"value":1624},"Approximately one month after the EEG, my symptoms intensified:",{"type":15,"tag":294,"props":1626,"children":1627},{},[1628,1633],{"type":15,"tag":298,"props":1629,"children":1630},{},[1631],{"type":21,"value":1632},"Unassisted ambulation became difficult.",{"type":15,"tag":298,"props":1634,"children":1635},{},[1636],{"type":21,"value":1637},"A planned vacation did not alleviate, but rather exacerbated, symptoms.",{"type":15,"tag":23,"props":1639,"children":1640},{},[1641,1643,1648],{"type":21,"value":1642},"I subsequently took ",{"type":15,"tag":29,"props":1644,"children":1645},{},[1646],{"type":21,"value":1647},"three months of medical leave from work",{"type":21,"value":1649},". During this period:",{"type":15,"tag":294,"props":1651,"children":1652},{},[1653,1658],{"type":15,"tag":298,"props":1654,"children":1655},{},[1656],{"type":21,"value":1657},"I initiated physical therapy (PT).",{"type":15,"tag":298,"props":1659,"children":1660},{},[1661],{"type":21,"value":1662},"I began sessions with a psychologist.",{"type":15,"tag":23,"props":1664,"children":1665},{},[1666],{"type":21,"value":1667},"Both interventions have provided benefit; however, the diagnostic and treatment process has not been linear.",{"type":15,"tag":68,"props":1669,"children":1670},{},[],{"type":15,"tag":72,"props":1672,"children":1674},{"id":1673},"a-diagnosisbut-is-it-the-final-one",[1675],{"type":21,"value":1676},"🩺 A Diagnosis—But Is It the Final One?",{"type":15,"tag":23,"props":1678,"children":1679},{},[1680],{"type":21,"value":1681},"After years of diagnostic uncertainty, a movement disorder specialist confirmed a diagnosis of:",{"type":15,"tag":736,"props":1683,"children":1684},{},[1685],{"type":15,"tag":72,"props":1686,"children":1688},{"id":1687},"functional-neurological-disorder-fnd",[1689],{"type":15,"tag":29,"props":1690,"children":1691},{},[1692],{"type":15,"tag":37,"props":1693,"children":1696},{"href":1694,"rel":1695},"https://www.ninds.nih.gov/health-information/disorders/functional-neurologic-disorder",[41],[1697],{"type":21,"value":1698},"Functional Neurological Disorder (FND)",{"type":15,"tag":23,"props":1700,"children":1701},{},[1702],{"type":21,"value":1703},"I continue to work with my physical therapist and experience balance difficulties, particularly in unfamiliar environments.",{"type":15,"tag":23,"props":1705,"children":1706},{},[1707,1709,1714,1716,1726],{"type":21,"value":1708},"While a significant component of my gait disturbance is attributed to a ",{"type":15,"tag":29,"props":1710,"children":1711},{},[1712],{"type":21,"value":1713},"fear of falling",{"type":21,"value":1715},", I also suspect that ",{"type":15,"tag":29,"props":1717,"children":1718},{},[1719],{"type":15,"tag":37,"props":1720,"children":1723},{"href":1721,"rel":1722},"https://www.ninds.nih.gov/health-information/disorders/myoclonus",[41],[1724],{"type":21,"value":1725},"stimulus-sensitive myoclonic seizures",{"type":21,"value":1727}," may have been the initial trigger.",{"type":15,"tag":294,"props":1729,"children":1730},{},[1731,1736,1741],{"type":15,"tag":298,"props":1732,"children":1733},{},[1734],{"type":21,"value":1735},"Medication provides assistance.",{"type":15,"tag":298,"props":1737,"children":1738},{},[1739],{"type":21,"value":1740},"Physical therapy is essential.",{"type":15,"tag":298,"props":1742,"children":1743},{},[1744],{"type":21,"value":1745},"The condition involves a significant psychological component.",{"type":15,"tag":23,"props":1747,"children":1748},{},[1749,1751,1756],{"type":21,"value":1750},"Symptom severity varies daily, and I am adapting to the ",{"type":15,"tag":29,"props":1752,"children":1753},{},[1754],{"type":21,"value":1755},"uncertainty inherent in my condition",{"type":21,"value":462},{"type":15,"tag":68,"props":1758,"children":1759},{},[],{"type":15,"tag":72,"props":1761,"children":1763},{"id":1762},"moving-forward",[1764],{"type":21,"value":1765},"🌄 Moving Forward",{"type":15,"tag":23,"props":1767,"children":1768},{},[1769],{"type":21,"value":1770},"Living with FND involves ongoing questions.",{"type":15,"tag":23,"props":1772,"children":1773},{},[1774],{"type":21,"value":1775},"I acknowledge the support from:",{"type":15,"tag":294,"props":1777,"children":1778},{},[1779,1784,1789],{"type":15,"tag":298,"props":1780,"children":1781},{},[1782],{"type":21,"value":1783},"My medical team",{"type":15,"tag":298,"props":1785,"children":1786},{},[1787],{"type":21,"value":1788},"My Physical Therapist",{"type":15,"tag":298,"props":1790,"children":1791},{},[1792],{"type":21,"value":1793},"My family",{"type":15,"tag":23,"props":1795,"children":1796},{},[1797],{"type":21,"value":1798},"I remain uncertain if FND is the definitive diagnosis, but I am learning to manage my symptoms and regain functional capacity.",{"title":7,"searchDepth":240,"depth":240,"links":1800},[1801,1802,1803,1804,1805,1806,1807],{"id":1471,"depth":243,"text":1474},{"id":1513,"depth":243,"text":1516},{"id":1545,"depth":243,"text":1548},{"id":1603,"depth":243,"text":1606},{"id":1673,"depth":243,"text":1676},{"id":1687,"depth":243,"text":1698},{"id":1762,"depth":243,"text":1765},"content:blog:2025:06:fnd.md","blog/2025/06/fnd.md","blog/2025/06/fnd",{"_path":1812,"_dir":701,"_draft":6,"_partial":6,"_locale":7,"title":1813,"description":1814,"pubDate":1815,"draft":6,"body":1816,"_type":248,"_id":2081,"_source":250,"_file":2082,"_stem":2083,"_extension":253},"/blog/2025/06/formula-1","Formula 1","My love for F1","2025-06-15",{"type":12,"children":1817,"toc":2072},[1818,1824,1829,1832,1838,1850,1861,1864,1870,1875,1883,1890,1901,1904,1910,1922,1925,1931,1936,1939,1945,1957,1990,2009,2012,2018,2047,2050,2056,2061],{"type":15,"tag":16,"props":1819,"children":1821},{"id":1820},"my-love-affair-with-formula-1-from-austin-to-the-world",[1822],{"type":21,"value":1823},"🏁 My Love Affair with Formula 1: From Austin to the World 🌎",{"type":15,"tag":23,"props":1825,"children":1826},{},[1827],{"type":21,"value":1828},"I still remember the electric buzz in the air as I walked into the Circuit of the Americas in Austin, Texas, for my very first Formula 1 race—the 2012 United States Grand Prix. It wasn’t just my first race in person; it was the first F1 race I’d ever watched, period. The city was alive with excitement, and you could feel the collective anticipation. After a long absence, F1 was finally back in the US, and I was lucky enough to be there for its triumphant return. 🇺🇸",{"type":15,"tag":68,"props":1830,"children":1831},{},[],{"type":15,"tag":72,"props":1833,"children":1835},{"id":1834},"my-first-glimpse-f1-on-top-gear",[1836],{"type":21,"value":1837},"👀 My First Glimpse: F1 on Top Gear",{"type":15,"tag":23,"props":1839,"children":1840},{},[1841,1843,1848],{"type":21,"value":1842},"Before that unforgettable weekend in Austin, my knowledge of Formula 1 was mostly secondhand. Like many car enthusiasts, I was a devoted viewer of ",{"type":15,"tag":373,"props":1844,"children":1845},{},[1846],{"type":21,"value":1847},"Top Gear",{"type":21,"value":1849},". The show’s hosts—Jeremy Clarkson, Richard Hammond, and James May—often raved about F1 cars, interviewed drivers, and even took on the occasional F1 challenge themselves. Their infectious enthusiasm and hilarious antics gave me a glimpse into the world of F1, but it always felt a bit distant, like something happening on another continent.",{"type":15,"tag":23,"props":1851,"children":1852},{},[1853,1855,1859],{"type":21,"value":1854},"It wasn’t until I experienced the 2012 US Grand Prix in person that everything clicked. The excitement I’d seen on ",{"type":15,"tag":373,"props":1856,"children":1857},{},[1858],{"type":21,"value":1847},{"type":21,"value":1860}," was suddenly real, right in front of me. That race transformed my casual curiosity into a lifelong passion.",{"type":15,"tag":68,"props":1862,"children":1863},{},[],{"type":15,"tag":72,"props":1865,"children":1867},{"id":1866},"the-austin-atmosphere",[1868],{"type":21,"value":1869},"🎉 The Austin Atmosphere",{"type":15,"tag":23,"props":1871,"children":1872},{},[1873],{"type":21,"value":1874},"There’s something special about Austin during race week. The city embraces F1 with open arms, blending its own unique culture with the international flavor of the sport. The fans are passionate, the food is incredible, and the music never stops. It’s the perfect place to fall in love with Formula 1.",{"type":15,"tag":23,"props":1876,"children":1877},{},[1878],{"type":15,"tag":190,"props":1879,"children":1882},{"alt":1880,"src":1881},"US GP","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/2012usgp-4fBWNYkZf6xtpWdv5ceiXuGQCxx30C.webp",[],{"type":15,"tag":23,"props":1884,"children":1885},{},[1886],{"type":15,"tag":190,"props":1887,"children":1889},{"alt":1880,"src":1888},"https://qmpdliftraf4pov3.public.blob.vercel-storage.com/2012usgp%282%29-ckC9vhKHgWr8si65shjIAjS13Vhk6F.webp",[],{"type":15,"tag":736,"props":1891,"children":1892},{},[1893],{"type":15,"tag":23,"props":1894,"children":1895},{},[1896],{"type":15,"tag":373,"props":1897,"children":1898},{},[1899],{"type":21,"value":1900},"2012 United States Grand Prix",{"type":15,"tag":68,"props":1902,"children":1903},{},[],{"type":15,"tag":72,"props":1905,"children":1907},{"id":1906},"f1-in-the-us-from-niche-to-mainstream",[1908],{"type":21,"value":1909},"🇺🇸 F1 in the US: From Niche to Mainstream",{"type":15,"tag":23,"props":1911,"children":1912},{},[1913,1915,1920],{"type":21,"value":1914},"The 2012 United States Grand Prix was my first race, but I caught up fast! I've probably missed watching a few races live since. Of course no one else shared my passion for the races for many years. But that’s all changed, thanks in large part to Netflix’s ",{"type":15,"tag":373,"props":1916,"children":1917},{},[1918],{"type":21,"value":1919},"Drive to Survive",{"type":21,"value":1921},". Now, F1 is everywhere—friends, coworkers, and even strangers at the grocery store want to talk about the latest race. I no longer feel isolated; instead, I’m part of a growing community of American F1 fans.",{"type":15,"tag":68,"props":1923,"children":1924},{},[],{"type":15,"tag":72,"props":1926,"children":1928},{"id":1927},"passing-the-torch",[1929],{"type":21,"value":1930},"👨‍👦 Passing the Torch",{"type":15,"tag":23,"props":1932,"children":1933},{},[1934],{"type":21,"value":1935},"One of the greatest joys has been sharing my passion with my son. He’s as obsessed as I am, rattling off stats and historical facts with ease. We watch every race together, debate strategies, and marvel at the skill of the drivers. F1 has become a family tradition, and I couldn’t be happier.",{"type":15,"tag":68,"props":1937,"children":1938},{},[],{"type":15,"tag":72,"props":1940,"children":1942},{"id":1941},"a-sport-rich-in-history",[1943],{"type":21,"value":1944},"🏆 A Sport Rich in History",{"type":15,"tag":23,"props":1946,"children":1947},{},[1948,1950,1955],{"type":21,"value":1949},"Part of what makes F1 so captivating is its incredible history. The first official Formula 1 World Championship was held in 1950, with ",{"type":15,"tag":29,"props":1951,"children":1952},{},[1953],{"type":21,"value":1954},"Giuseppe Farina",{"type":21,"value":1956}," crowned as the inaugural champion. Since then, the sport has been defined by legendary moments and larger-than-life personalities:",{"type":15,"tag":294,"props":1958,"children":1959},{},[1960,1970,1980],{"type":15,"tag":298,"props":1961,"children":1962},{},[1963,1968],{"type":15,"tag":29,"props":1964,"children":1965},{},[1966],{"type":21,"value":1967},"🔥 Niki Lauda’s Miraculous Comeback:",{"type":21,"value":1969}," In 1976, Niki Lauda suffered a horrific crash at the Nürburgring, sustaining life-threatening burns. Remarkably, he returned to racing just six weeks later, epitomizing the courage and determination that define F1.",{"type":15,"tag":298,"props":1971,"children":1972},{},[1973,1978],{"type":15,"tag":29,"props":1974,"children":1975},{},[1976],{"type":21,"value":1977},"⚡ Prost vs. Senna:",{"type":21,"value":1979}," The rivalry between Alain Prost and Ayrton Senna in the late 1980s and early 1990s is the stuff of legend. Their battles on and off the track pushed the sport to new heights and captivated fans around the world.",{"type":15,"tag":298,"props":1981,"children":1982},{},[1983,1988],{"type":15,"tag":29,"props":1984,"children":1985},{},[1986],{"type":21,"value":1987},"🏅 Schumacher’s Dominance:",{"type":21,"value":1989}," Michael Schumacher’s reign with Ferrari in the early 2000s set new standards for excellence, with seven world championships and a relentless pursuit of perfection.",{"type":15,"tag":736,"props":1991,"children":1992},{},[1993],{"type":15,"tag":23,"props":1994,"children":1995},{},[1996,1998,2002,2004],{"type":21,"value":1997},"\"If you no longer go for a gap that exists, you are no longer a racing driver.\"",{"type":15,"tag":1999,"props":2000,"children":2001},"br",{},[],{"type":21,"value":2003},"\n— ",{"type":15,"tag":373,"props":2005,"children":2006},{},[2007],{"type":21,"value":2008},"Ayrton Senna",{"type":15,"tag":68,"props":2010,"children":2011},{},[],{"type":15,"tag":72,"props":2013,"children":2015},{"id":2014},"️-my-favorite-drivers",[2016],{"type":21,"value":2017},"🏎️ My Favorite Drivers",{"type":15,"tag":23,"props":2019,"children":2020},{},[2021,2023,2028,2030,2035,2037,2045],{"type":21,"value":2022},"When I first started watching, ",{"type":15,"tag":29,"props":2024,"children":2025},{},[2026],{"type":21,"value":2027},"Sebastian Vettel",{"type":21,"value":2029}," was the man to beat—his dominance with Red Bull was awe-inspiring. Over the years, I’ve also become a huge fan of ",{"type":15,"tag":29,"props":2031,"children":2032},{},[2033],{"type":21,"value":2034},"Sir Lewis Hamilton",{"type":21,"value":2036},", whose skill, consistency, and advocacy off the track have made him a true ambassador for the sport. But honestly, I appreciate ",{"type":15,"tag":373,"props":2038,"children":2039},{},[2040],{"type":15,"tag":29,"props":2041,"children":2042},{},[2043],{"type":21,"value":2044},"almost",{"type":21,"value":2046}," all the drivers who risk everything for a shot at glory.",{"type":15,"tag":68,"props":2048,"children":2049},{},[],{"type":15,"tag":72,"props":2051,"children":2053},{"id":2052},"️-why-ill-always-love-f1",[2054],{"type":21,"value":2055},"❤️ Why I’ll Always Love F1",{"type":15,"tag":23,"props":2057,"children":2058},{},[2059],{"type":21,"value":2060},"Formula 1 is more than just a sport; it’s a passion, a community, and a never-ending story of human achievement. From the roar of the engines in Austin to the drama of Monaco and the history of Monza, F1 has given me countless memories and brought me closer to my family. I can’t wait to see what the next chapter holds.",{"type":15,"tag":23,"props":2062,"children":2063},{},[2064,2066,2070],{"type":21,"value":2065},"Whether you’re a lifelong fan or a newcomer drawn in by ",{"type":15,"tag":373,"props":2067,"children":2068},{},[2069],{"type":21,"value":1919},{"type":21,"value":2071},", there’s never been a better time to love Formula 1. See you at the next race! 🏁",{"title":7,"searchDepth":240,"depth":240,"links":2073},[2074,2075,2076,2077,2078,2079,2080],{"id":1834,"depth":243,"text":1837},{"id":1866,"depth":243,"text":1869},{"id":1906,"depth":243,"text":1909},{"id":1927,"depth":243,"text":1930},{"id":1941,"depth":243,"text":1944},{"id":2014,"depth":243,"text":2017},{"id":2052,"depth":243,"text":2055},"content:blog:2025:06:formula-1.md","blog/2025/06/formula-1.md","blog/2025/06/formula-1",{"_path":2085,"_dir":701,"_draft":6,"_partial":6,"_locale":7,"title":2086,"description":2087,"pubDate":2088,"draft":6,"body":2089,"_type":248,"_id":2351,"_source":250,"_file":2352,"_stem":2353,"_extension":253},"/blog/2025/06/my-windows-setup","Windows Setup","How I setup a new Windows machine","2025-06-01",{"type":12,"children":2090,"toc":2346},[2091,2097,2105,2110,2121,2126,2134,2140,2145,2229,2235,2334,2342],{"type":15,"tag":16,"props":2092,"children":2094},{"id":2093},"️-my-windows-setup",[2095],{"type":21,"value":2096},"🖥️ My Windows Setup",{"type":15,"tag":23,"props":2098,"children":2099},{},[2100],{"type":15,"tag":190,"props":2101,"children":2104},{"alt":2102,"src":2103},"Windows","https://avatars.githubusercontent.com/u/6154722?s=100&v=4",[],{"type":15,"tag":23,"props":2106,"children":2107},{},[2108],{"type":21,"value":2109},"This is how I set up my Windows machine quickly with all my presets and things how I like it.",{"type":15,"tag":72,"props":2111,"children":2113},{"id":2112},"windows-script",[2114],{"type":15,"tag":37,"props":2115,"children":2118},{"href":2116,"rel":2117},"https://github.com/Jaredy899/win",[41],[2119],{"type":21,"value":2120},"Windows Script",{"type":15,"tag":23,"props":2122,"children":2123},{},[2124],{"type":21,"value":2125},"I created a powershell script to install my tweaks. It uses a GitHub Repo so I can install on any machine. Below is how I use it and what it does.",{"type":15,"tag":23,"props":2127,"children":2128},{},[2129],{"type":15,"tag":190,"props":2130,"children":2133},{"alt":2131,"src":2132},"Script","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/Jared%20Winutil-bq8y8Y2LYpMMfJYzLSyg7qRMr5KcNx.webp",[],{"type":15,"tag":72,"props":2135,"children":2137},{"id":2136},"installation",[2138],{"type":21,"value":2139},"🚀 Installation",{"type":15,"tag":23,"props":2141,"children":2142},{},[2143],{"type":21,"value":2144},"To get started, open PowerShell as Administrator and run:",{"type":15,"tag":614,"props":2146,"children":2150},{"className":2147,"code":2148,"language":2149,"meta":7,"style":7},"language-powershell shiki shiki-themes github-dark","Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process -Force\nirm jaredcervantes.com/win | iex\n","powershell",[2151],{"type":15,"tag":621,"props":2152,"children":2153},{"__ignoreMap":7},[2154,2196],{"type":15,"tag":625,"props":2155,"children":2156},{"class":627,"line":628},[2157,2162,2167,2172,2177,2182,2187,2191],{"type":15,"tag":625,"props":2158,"children":2159},{"style":647},[2160],{"type":21,"value":2161},"Set-ExecutionPolicy",{"type":15,"tag":625,"props":2163,"children":2164},{"style":641},[2165],{"type":21,"value":2166}," -",{"type":15,"tag":625,"props":2168,"children":2169},{"style":664},[2170],{"type":21,"value":2171},"ExecutionPolicy RemoteSigned ",{"type":15,"tag":625,"props":2173,"children":2174},{"style":641},[2175],{"type":21,"value":2176},"-",{"type":15,"tag":625,"props":2178,"children":2179},{"style":664},[2180],{"type":21,"value":2181},"Scope ",{"type":15,"tag":625,"props":2183,"children":2184},{"style":641},[2185],{"type":21,"value":2186},"Process",{"type":15,"tag":625,"props":2188,"children":2189},{"style":641},[2190],{"type":21,"value":2166},{"type":15,"tag":625,"props":2192,"children":2193},{"style":664},[2194],{"type":21,"value":2195},"Force\n",{"type":15,"tag":625,"props":2197,"children":2198},{"class":627,"line":243},[2199,2204,2209,2214,2219,2224],{"type":15,"tag":625,"props":2200,"children":2201},{"style":664},[2202],{"type":21,"value":2203},"irm ",{"type":15,"tag":625,"props":2205,"children":2206},{"style":647},[2207],{"type":21,"value":2208},"jaredcervantes.com",{"type":15,"tag":625,"props":2210,"children":2211},{"style":641},[2212],{"type":21,"value":2213},"/",{"type":15,"tag":625,"props":2215,"children":2216},{"style":664},[2217],{"type":21,"value":2218},"win ",{"type":15,"tag":625,"props":2220,"children":2221},{"style":641},[2222],{"type":21,"value":2223},"|",{"type":15,"tag":625,"props":2225,"children":2226},{"style":664},[2227],{"type":21,"value":2228}," iex\n",{"type":15,"tag":72,"props":2230,"children":2232},{"id":2231},"features",[2233],{"type":21,"value":2234},"✨ Features",{"type":15,"tag":294,"props":2236,"children":2237},{},[2238,2248,2258,2268,2278,2288,2298,2308],{"type":15,"tag":298,"props":2239,"children":2240},{},[2241,2246],{"type":15,"tag":29,"props":2242,"children":2243},{},[2244],{"type":21,"value":2245},"Interactive Menu Interface",{"type":21,"value":2247},": Navigate with arrow keys and enter to select options",{"type":15,"tag":298,"props":2249,"children":2250},{},[2251,2256],{"type":15,"tag":29,"props":2252,"children":2253},{},[2254],{"type":21,"value":2255},"Windows Update",{"type":21,"value":2257},": Easily update your Windows installation",{"type":15,"tag":298,"props":2259,"children":2260},{},[2261,2266],{"type":15,"tag":29,"props":2262,"children":2263},{},[2264],{"type":21,"value":2265},"First-time Setup",{"type":21,"value":2267},": Configure essential Windows settings",{"type":15,"tag":298,"props":2269,"children":2270},{},[2271,2276],{"type":15,"tag":29,"props":2272,"children":2273},{},[2274],{"type":21,"value":2275},"SSH Key Management",{"type":21,"value":2277},": Add and configure SSH keys for secure authentication",{"type":15,"tag":298,"props":2279,"children":2280},{},[2281,2286],{"type":15,"tag":29,"props":2282,"children":2283},{},[2284],{"type":21,"value":2285},"PowerShell Configuration",{"type":21,"value":2287},": Install and set up a customized PowerShell environment",{"type":15,"tag":298,"props":2289,"children":2290},{},[2291,2296],{"type":15,"tag":29,"props":2292,"children":2293},{},[2294],{"type":21,"value":2295},"Windows Activation",{"type":21,"value":2297},": Simplified Windows activation process",{"type":15,"tag":298,"props":2299,"children":2300},{},[2301,2306],{"type":15,"tag":29,"props":2302,"children":2303},{},[2304],{"type":21,"value":2305},"Nord Backgrounds",{"type":21,"value":2307},": Download and set up Nord-themed wallpapers",{"type":15,"tag":298,"props":2309,"children":2310},{},[2311,2332],{"type":15,"tag":29,"props":2312,"children":2313},{},[2314,2316,2323,2325],{"type":21,"value":2315},"Integration with ",{"type":15,"tag":37,"props":2317,"children":2320},{"href":2318,"rel":2319},"https://christitus.com",[41],[2321],{"type":21,"value":2322},"Chris Titus",{"type":21,"value":2324}," Tech's ",{"type":15,"tag":37,"props":2326,"children":2329},{"href":2327,"rel":2328},"https://github.com/ChrisTitusTech/winutil",[41],[2330],{"type":21,"value":2331},"Windows Utility",{"type":21,"value":2333},": Access additional applications and tweaks",{"type":15,"tag":23,"props":2335,"children":2336},{},[2337],{"type":15,"tag":190,"props":2338,"children":2341},{"alt":2339,"src":2340},"Fastfetch","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/fastfetch-open-mDaJBjxOzk9EQUd3Fkjh3kmd8kNjIb.webp",[],{"type":15,"tag":688,"props":2343,"children":2344},{},[2345],{"type":21,"value":692},{"title":7,"searchDepth":240,"depth":240,"links":2347},[2348,2349,2350],{"id":2112,"depth":243,"text":2120},{"id":2136,"depth":243,"text":2139},{"id":2231,"depth":243,"text":2234},"content:blog:2025:06:my-windows-setup.md","blog/2025/06/my-windows-setup.md","blog/2025/06/my-windows-setup",{"_path":2355,"_dir":2356,"_draft":6,"_partial":6,"_locale":7,"title":2357,"description":2358,"pubDate":2359,"draft":6,"body":2360,"_type":248,"_id":2520,"_source":250,"_file":2521,"_stem":2522,"_extension":253},"/blog/2025/07/aviation","07","The Magic of Flight: A Personal Journey Through Aviation","A heartfelt reflection on my lifelong passion for aviation, inspired by my grandfather and nurtured through flight simulators","2025-07-06",{"type":12,"children":2361,"toc":2512},[2362,2368,2380,2386,2394,2399,2407,2424,2430,2435,2440,2446,2474,2480,2485,2496,2502,2507],{"type":15,"tag":16,"props":2363,"children":2365},{"id":2364},"️-the-magic-of-flight",[2366],{"type":21,"value":2367},"✈️ The Magic of Flight",{"type":15,"tag":23,"props":2369,"children":2370},{},[2371,2373,2378],{"type":21,"value":2372},"My love for airplanes didn't just happen overnight. My grandfather also loved going to the airport and his hobby was model airplanes. Neither of us became pilots for various reasons (some of which I talk about in ",{"type":15,"tag":37,"props":2374,"children":2375},{"href":1454},[2376],{"type":21,"value":2377},"a previous post",{"type":21,"value":2379},"), but we both loved the idea of flight.",{"type":15,"tag":72,"props":2381,"children":2383},{"id":2382},"from-simulator-to-reality",[2384],{"type":21,"value":2385},"🎮 From Simulator to Reality",{"type":15,"tag":23,"props":2387,"children":2388},{},[2389],{"type":15,"tag":190,"props":2390,"children":2393},{"alt":2391,"src":2392},"Flight Simulator X","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/fsx-kph3jR1XEFZfUvucDZnszXD6yyh50A.webp",[],{"type":15,"tag":23,"props":2395,"children":2396},{},[2397],{"type":21,"value":2398},"One of my earliest memories is sitting in my grandfather's lap, watching him navigate through Microsoft Flight Simulator. Today, I still find myself spending countless hours in flight simulators, practicing approaches, learning new aircraft, and reliving those precious moments with my grandfather.",{"type":15,"tag":736,"props":2400,"children":2401},{},[2402],{"type":15,"tag":23,"props":2403,"children":2404},{},[2405],{"type":21,"value":2406},"\"The smell of jet fuel at airports, that distinct aroma that somehow manages to be both industrial and exciting – it's like a time machine that instantly transports me back to those childhood days at the airport with my grandfather.\"",{"type":15,"tag":2408,"props":2409,"children":2413},"video",{"controls":2410,"width":2411,"style":2412},true,"100%","aspect-ratio: 16/9;",[2414,2416,2422],{"type":21,"value":2415},"\n  ",{"type":15,"tag":2417,"props":2418,"children":2421},"source",{"src":2419,"type":2420},"https://qmpdliftraf4pov3.public.blob.vercel-storage.com/747-go-around-UxJQgq0EHLg5kGjabu5txGQemClngU.mp4","video/mp4",[],{"type":21,"value":2423},"\n  Your browser does not support the video tag.\n",{"type":15,"tag":72,"props":2425,"children":2427},{"id":2426},"the-sensory-experience-of-flying",[2428],{"type":21,"value":2429},"🌟 The Sensory Experience of Flying",{"type":15,"tag":23,"props":2431,"children":2432},{},[2433],{"type":21,"value":2434},"There's something uniquely thrilling about the entire flying experience. The way the terminal hums with anticipation, the distinct smell of coffee mixing with jet fuel, the gentle rumble of engines in the distance – it's a symphony of sensations that never fails to excite me.",{"type":15,"tag":23,"props":2436,"children":2437},{},[2438],{"type":21,"value":2439},"I've come to love every aspect of flying, even the ones that make others nervous. Turbulence? Bring it on! There's something exhilarating about feeling the aircraft dance with the air currents, a reminder that we're not just passengers but participants in this incredible dance with the atmosphere.",{"type":15,"tag":867,"props":2441,"children":2443},{"id":2442},"what-i-love-about-flying",[2444],{"type":21,"value":2445},"What I Love About Flying",{"type":15,"tag":294,"props":2447,"children":2448},{},[2449,2454,2459,2464,2469],{"type":15,"tag":298,"props":2450,"children":2451},{},[2452],{"type":21,"value":2453},"The moment the engines spool up, that deep rumble that vibrates through your entire body",{"type":15,"tag":298,"props":2455,"children":2456},{},[2457],{"type":21,"value":2458},"The gentle push back into your seat during takeoff",{"type":15,"tag":298,"props":2460,"children":2461},{},[2462],{"type":21,"value":2463},"The way clouds look different from above, like a fluffy white carpet",{"type":15,"tag":298,"props":2465,"children":2466},{},[2467],{"type":21,"value":2468},"The subtle changes in air pressure that make your ears pop",{"type":15,"tag":298,"props":2470,"children":2471},{},[2472],{"type":21,"value":2473},"The way the world looks so different from 30,000 feet",{"type":15,"tag":72,"props":2475,"children":2477},{"id":2476},"a-lifelong-passion-and-a-bittersweet-reality",[2478],{"type":21,"value":2479},"🛫 A Lifelong Passion, and a Bittersweet Reality",{"type":15,"tag":23,"props":2481,"children":2482},{},[2483],{"type":21,"value":2484},"Even though I used flight simulator most of my life, my knowledge of aviation became stronger after watching pilots on YouTube. I still spend hours listening to them explain how each of their airplanes works and love listening to them talking to ATC.",{"type":15,"tag":23,"props":2486,"children":2487},{},[2488,2490,2494],{"type":21,"value":2489},"This deep dive into the world of aviation has only intensified my passion, but it also brings a touch of sadness. For various personal reasons, including my ",{"type":15,"tag":37,"props":2491,"children":2492},{"href":1454},[2493],{"type":21,"value":1698},{"type":21,"value":2495},", becoming a pilot myself isn't a possibility for me. It's a bummer, to say the least, to dream so vividly of taking the controls and soaring through the sky, yet knowing that it's a path I can't physically pursue. Still, that doesn't diminish the immense joy and fascination I find in every aspect of flight, whether it's through a screen or from a passenger window.",{"type":15,"tag":72,"props":2497,"children":2499},{"id":2498},"looking-to-the-future",[2500],{"type":21,"value":2501},"🌅 Looking to the Future",{"type":15,"tag":23,"props":2503,"children":2504},{},[2505],{"type":21,"value":2506},"My passion for flying isn't just about the mechanics of flight – it's about the freedom, the perspective, and the endless possibilities that aviation represents. Even if I can't be in the cockpit, I'll continue to live vicariously through the amazing pilots who share their journeys on YouTube, absorbing every detail and finding immense joy in their experiences. And of course, I'll keep flying as often as I can, cherishing every moment spent among the clouds.",{"type":15,"tag":23,"props":2508,"children":2509},{},[2510],{"type":21,"value":2511},"The next time you're at an airport, take a moment to breathe in that unique airport air, listen to the symphony of sounds, and maybe you'll understand why, for me, flying isn't just a mode of transportation – it's a way of life.",{"title":7,"searchDepth":240,"depth":240,"links":2513},[2514,2515,2518,2519],{"id":2382,"depth":243,"text":2385},{"id":2426,"depth":243,"text":2429,"children":2516},[2517],{"id":2442,"depth":240,"text":2445},{"id":2476,"depth":243,"text":2479},{"id":2498,"depth":243,"text":2501},"content:blog:2025:07:aviation.md","blog/2025/07/aviation.md","blog/2025/07/aviation",{"_path":2524,"_dir":2356,"_draft":6,"_partial":6,"_locale":7,"title":2525,"description":2526,"pubDate":2527,"draft":6,"body":2528,"_type":248,"_id":2701,"_source":250,"_file":2702,"_stem":2703,"_extension":253},"/blog/2025/07/cm","The Importance of Case Management in First Episode Psychosis Recovery","How case management can help individuals with first episode psychosis.","2025-07-27",{"type":12,"children":2529,"toc":2695},[2530,2536,2541,2547,2552,2557,2563,2626,2632,2637,2690],{"type":15,"tag":16,"props":2531,"children":2533},{"id":2532},"case-management-a-cornerstone-of-first-episode-psychosis-recovery",[2534],{"type":21,"value":2535},"Case Management: A Cornerstone of First Episode Psychosis Recovery",{"type":15,"tag":23,"props":2537,"children":2538},{},[2539],{"type":21,"value":2540},"Mental health is a complex landscape, and navigating it can be particularly challenging for individuals experiencing first episode psychosis (FEP). In this critical phase, the role of case management becomes not just important, but absolutely essential. As an first episode psychosis case manager, I see firsthand the transformative power of this integrated approach to care.",{"type":15,"tag":72,"props":2542,"children":2544},{"id":2543},"the-multifaceted-nature-of-fep-and-the-need-for-coordination",[2545],{"type":21,"value":2546},"The Multifaceted Nature of FEP and the Need for Coordination",{"type":15,"tag":23,"props":2548,"children":2549},{},[2550],{"type":21,"value":2551},"First episode psychosis can be a disorienting and frightening experience for individuals and their families. It often involves a range of symptoms, from changes in thought processes and perception to difficulties with social interaction and daily functioning. Beyond the immediate symptoms, individuals may also be grappling with the emotional impact of a new diagnosis, stigma, and the disruption to their life goals.",{"type":15,"tag":23,"props":2553,"children":2554},{},[2555],{"type":21,"value":2556},"This is where case management steps in. It's not about providing therapy or medication directly, but about ensuring that all the necessary pieces of the recovery puzzle are in place and working together seamlessly. Think of it as being the conductor of an orchestra, where each musician (therapist, psychiatrist, vocational specialist, family support) plays a vital role, and the case manager ensures they are all playing in harmony.",{"type":15,"tag":867,"props":2558,"children":2560},{"id":2559},"why-case-management-is-crucial-for-fep",[2561],{"type":21,"value":2562},"Why Case Management is Crucial for FEP",{"type":15,"tag":294,"props":2564,"children":2565},{},[2566,2576,2586,2596,2606,2616],{"type":15,"tag":298,"props":2567,"children":2568},{},[2569,2574],{"type":15,"tag":29,"props":2570,"children":2571},{},[2572],{"type":21,"value":2573},"Holistic Support:",{"type":21,"value":2575}," FEP doesn't just affect one aspect of a person's life. Case managers address a wide array of needs, including psychiatric care, therapy, medication management, housing, employment or education support, social skills training, and family involvement. This holistic approach recognizes that recovery is multi-dimensional.",{"type":15,"tag":298,"props":2577,"children":2578},{},[2579,2584],{"type":15,"tag":29,"props":2580,"children":2581},{},[2582],{"type":21,"value":2583},"Navigation of Complex Systems:",{"type":21,"value":2585}," The mental healthcare system can be overwhelming. Case managers act as guides, helping individuals and families navigate appointments, understand insurance, access community resources, and connect with various specialists. This reduces stress and ensures continuity of care.",{"type":15,"tag":298,"props":2587,"children":2588},{},[2589,2594],{"type":15,"tag":29,"props":2590,"children":2591},{},[2592],{"type":21,"value":2593},"Crisis Prevention and Intervention:",{"type":21,"value":2595}," Early identification of escalating symptoms or potential crises is vital in FEP. Case managers are often the first point of contact, providing proactive support and, when necessary, coordinating swift and effective interventions to prevent more severe outcomes.",{"type":15,"tag":298,"props":2597,"children":2598},{},[2599,2604],{"type":15,"tag":29,"props":2600,"children":2601},{},[2602],{"type":21,"value":2603},"Empowerment and Advocacy:",{"type":21,"value":2605}," A key aspect of my role is empowering individuals to take an active role in their own recovery. This involves helping them understand their rights, advocating for their needs, and developing self-advocacy skills. It's about fostering independence, not dependence.",{"type":15,"tag":298,"props":2607,"children":2608},{},[2609,2614],{"type":15,"tag":29,"props":2610,"children":2611},{},[2612],{"type":21,"value":2613},"Continuity of Care:",{"type":21,"value":2615}," FEP can be a period of significant change and transition. Case managers provide a consistent point of contact, offering stability and support as individuals move through different stages of their recovery journey, from initial assessment to long-term community integration.",{"type":15,"tag":298,"props":2617,"children":2618},{},[2619,2624],{"type":15,"tag":29,"props":2620,"children":2621},{},[2622],{"type":21,"value":2623},"Reduced Relapse Rates and Improved Outcomes:",{"type":21,"value":2625}," Research consistently shows that comprehensive case management is associated with lower relapse rates, improved functional outcomes, and greater satisfaction with care for individuals with serious mental illness, including FEP. By addressing multiple needs and fostering engagement in treatment, case managers significantly contribute to long-term well-being.",{"type":15,"tag":867,"props":2627,"children":2629},{"id":2628},"my-role-as-an-first-episode-psychosis-case-manager",[2630],{"type":21,"value":2631},"My Role as an First Episode Psychosis Case Manager",{"type":15,"tag":23,"props":2633,"children":2634},{},[2635],{"type":21,"value":2636},"For me, being an FEP case manager is incredibly rewarding. It involves building trusting relationships with individuals and their families, understanding their unique strengths and challenges, and working collaboratively to develop personalized recovery plans. Every day is different, but the core of my work revolves around:",{"type":15,"tag":294,"props":2638,"children":2639},{},[2640,2650,2660,2670,2680],{"type":15,"tag":298,"props":2641,"children":2642},{},[2643,2648],{"type":15,"tag":29,"props":2644,"children":2645},{},[2646],{"type":21,"value":2647},"Assessment and Goal Setting:",{"type":21,"value":2649}," Understanding an individual's current situation, strengths, and aspirations to collaboratively set realistic and meaningful recovery goals.",{"type":15,"tag":298,"props":2651,"children":2652},{},[2653,2658],{"type":15,"tag":29,"props":2654,"children":2655},{},[2656],{"type":21,"value":2657},"Resource Connection:",{"type":21,"value":2659}," Identifying and linking individuals to appropriate services and supports, from psychiatric care and therapy to vocational training and social groups.",{"type":15,"tag":298,"props":2661,"children":2662},{},[2663,2668],{"type":15,"tag":29,"props":2664,"children":2665},{},[2666],{"type":21,"value":2667},"Coordination of Care:",{"type":21,"value":2669}," Communicating with all members of the treatment team to ensure everyone is on the same page and working towards shared goals.",{"type":15,"tag":298,"props":2671,"children":2672},{},[2673,2678],{"type":15,"tag":29,"props":2674,"children":2675},{},[2676],{"type":21,"value":2677},"Problem-Solving and Support:",{"type":21,"value":2679}," Helping individuals navigate day-to-day challenges, develop coping strategies, and address barriers to their recovery.",{"type":15,"tag":298,"props":2681,"children":2682},{},[2683,2688],{"type":15,"tag":29,"props":2684,"children":2685},{},[2686],{"type":21,"value":2687},"Education and Psychoeducation:",{"type":21,"value":2689}," Providing information about psychosis, treatment options, and coping skills to both individuals and their families.",{"type":15,"tag":23,"props":2691,"children":2692},{},[2693],{"type":21,"value":2694},"In essence, as an FEP case manager, I am a consistent presence, a source of guidance, and a steadfast advocate. I strive to create an environment where individuals feel understood, supported, and empowered to reclaim their lives and build a fulfilling future. The importance of case management for mental health, particularly in first episode psychosis, cannot be overstated – it is truly a cornerstone of recovery.",{"title":7,"searchDepth":240,"depth":240,"links":2696},[2697],{"id":2543,"depth":243,"text":2546,"children":2698},[2699,2700],{"id":2559,"depth":240,"text":2562},{"id":2628,"depth":240,"text":2631},"content:blog:2025:07:cm.md","blog/2025/07/cm.md","blog/2025/07/cm",{"_path":2705,"_dir":2356,"_draft":6,"_partial":6,"_locale":7,"title":2706,"description":2707,"pubDate":2708,"draft":6,"body":2709,"_type":248,"_id":2939,"_source":250,"_file":2940,"_stem":2941,"_extension":253},"/blog/2025/07/my-mac-setup","My Mac Setup","How I setup my Macbook","2025-07-13",{"type":12,"children":2710,"toc":2932},[2711,2717,2720,2742,2745,2750,2762,2815,2823,2829,2872,2878,2883,2920,2928],{"type":15,"tag":72,"props":2712,"children":2714},{"id":2713},"my-personal-mac-setup",[2715],{"type":21,"value":2716},"My Personal Mac Setup",{"type":15,"tag":68,"props":2718,"children":2719},{},[],{"type":15,"tag":23,"props":2721,"children":2723},{"align":2722},"center",[2724,2725],{"type":21,"value":2415},{"type":15,"tag":2726,"props":2727,"children":2731},"svg",{"xmlns":2728,"width":2729,"viewBox":2730},"http://www.w3.org/2000/svg","75","0 0 814 1000",[2732,2734,2740],{"type":21,"value":2733},"\n        ",{"type":15,"tag":2735,"props":2736,"children":2739},"path",{"fill":2737,"d":2738},"currentColor","M788.1 340.9c-5.8 4.5-108.2 62.2-108.2 190.5 0 148.4 130.3 200.9 134.2 202.2-.6 3.2-20.7 71.9-68.7 141.9-42.8 61.6-87.5 123.1-155.5 123.1s-85.5-39.5-164-39.5c-76.5 0-103.7 40.8-165.9 40.8s-105.6-57-155.5-127C46.7 790.7 0 663 0 541.8c0-194.4 126.4-297.5 250.8-297.5 66.1 0 121.2 43.4 162.7 43.4 39.5 0 101.1-46 176.3-46 28.5 0 130.9 2.6 198.3 99.2zm-234-181.5c31.1-36.9 53.1-88.1 53.1-139.3 0-7.1-.6-14.3-1.9-20.1-50.6 1.9-110.8 33.7-147.1 75.8-28.5 32.4-55.1 83.6-55.1 135.5 0 7.8 1.3 15.6 1.9 18.1 3.2.6 8.4 1.3 13.6 1.3 45.4 0 102.5-30.4 135.5-71.3z",[],{"type":21,"value":2741},"\n    ",{"type":15,"tag":68,"props":2743,"children":2744},{},[],{"type":15,"tag":23,"props":2746,"children":2747},{},[2748],{"type":21,"value":2749},"A comprehensive set of scripts to automate setting up and configuring macOS environments with custom preferences, applications, terminal configurations, and more.",{"type":15,"tag":867,"props":2751,"children":2752},{"id":2231},[2753,2755],{"type":21,"value":2754},"✨ ",{"type":15,"tag":37,"props":2756,"children":2759},{"href":2757,"rel":2758},"https://github.com/Jaredy899/mac.git",[41],[2760],{"type":21,"value":2761},"Features",{"type":15,"tag":294,"props":2763,"children":2764},{},[2765,2775,2785,2795,2805],{"type":15,"tag":298,"props":2766,"children":2767},{},[2768,2773],{"type":15,"tag":29,"props":2769,"children":2770},{},[2771],{"type":21,"value":2772},"Homebrew Management",{"type":21,"value":2774},": Install, update, uninstall, and backup applications",{"type":15,"tag":298,"props":2776,"children":2777},{},[2778,2783],{"type":15,"tag":29,"props":2779,"children":2780},{},[2781],{"type":21,"value":2782},"Dock Customization",{"type":21,"value":2784},": Easily add or remove icons from your Mac Dock",{"type":15,"tag":298,"props":2786,"children":2787},{},[2788,2793],{"type":15,"tag":29,"props":2789,"children":2790},{},[2791],{"type":21,"value":2792},"Terminal Enhancement",{"type":21,"value":2794},": Configure zsh with modern tools and beautiful themes",{"type":15,"tag":298,"props":2796,"children":2797},{},[2798,2803],{"type":15,"tag":29,"props":2799,"children":2800},{},[2801],{"type":21,"value":2802},"macOS Settings",{"type":21,"value":2804},": Apply optimal system settings for development",{"type":15,"tag":298,"props":2806,"children":2807},{},[2808,2813],{"type":15,"tag":29,"props":2809,"children":2810},{},[2811],{"type":21,"value":2812},"SSH Key Setup",{"type":21,"value":2814},": Automate SSH key generation and GitHub integration",{"type":15,"tag":23,"props":2816,"children":2817},{},[2818],{"type":15,"tag":190,"props":2819,"children":2822},{"alt":2820,"src":2821},"Mac Setup","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/mac-setup-gXNVXltXbqBZl0ghl3mX2kW4POuGyR.webp",[],{"type":15,"tag":867,"props":2824,"children":2826},{"id":2825},"whats-new",[2827],{"type":21,"value":2828},"🎯 What's New",{"type":15,"tag":294,"props":2830,"children":2831},{},[2832,2842,2852,2862],{"type":15,"tag":298,"props":2833,"children":2834},{},[2835,2840],{"type":15,"tag":29,"props":2836,"children":2837},{},[2838],{"type":21,"value":2839},"Silent Installation Mode",{"type":21,"value":2841},": Automate setup without user interaction",{"type":15,"tag":298,"props":2843,"children":2844},{},[2845,2850],{"type":15,"tag":29,"props":2846,"children":2847},{},[2848],{"type":21,"value":2849},"Backup & Restore",{"type":21,"value":2851},": Generate scripts to replicate your Homebrew setup on other Macs",{"type":15,"tag":298,"props":2853,"children":2854},{},[2855,2860],{"type":15,"tag":29,"props":2856,"children":2857},{},[2858],{"type":21,"value":2859},"Search Capability",{"type":21,"value":2861},": Find and install any Homebrew package with the new search feature",{"type":15,"tag":298,"props":2863,"children":2864},{},[2865,2870],{"type":15,"tag":29,"props":2866,"children":2867},{},[2868],{"type":21,"value":2869},"Default App Installations",{"type":21,"value":2871},": Quick setup with common default applications",{"type":15,"tag":867,"props":2873,"children":2875},{"id":2874},"quick-start",[2876],{"type":21,"value":2877},"💡 Quick Start",{"type":15,"tag":23,"props":2879,"children":2880},{},[2881],{"type":21,"value":2882},"To get started, open your terminal and run:",{"type":15,"tag":614,"props":2884,"children":2888},{"className":2885,"code":2886,"language":2887,"meta":7,"style":7},"language-zsh shiki shiki-themes github-dark","sh \u003C(curl -fsSL jaredcervantes.com/mac)\n","zsh",[2889],{"type":15,"tag":621,"props":2890,"children":2891},{"__ignoreMap":7},[2892],{"type":15,"tag":625,"props":2893,"children":2894},{"class":627,"line":628},[2895,2900,2905,2910,2915],{"type":15,"tag":625,"props":2896,"children":2897},{"style":678},[2898],{"type":21,"value":2899},"sh",{"type":15,"tag":625,"props":2901,"children":2902},{"style":658},[2903],{"type":21,"value":2904}," \u003C(",{"type":15,"tag":625,"props":2906,"children":2907},{"style":678},[2908],{"type":21,"value":2909},"curl",{"type":15,"tag":625,"props":2911,"children":2912},{"style":647},[2913],{"type":21,"value":2914}," -fsSL",{"type":15,"tag":625,"props":2916,"children":2917},{"style":658},[2918],{"type":21,"value":2919}," jaredcervantes.com/mac)\n",{"type":15,"tag":23,"props":2921,"children":2922},{},[2923],{"type":15,"tag":190,"props":2924,"children":2927},{"alt":2925,"src":2926},"fastfetch-mac","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/fastfetch-mac-pbAGCG2s6AYvLC0PW1U03Pdzh2nj8X.webp",[],{"type":15,"tag":688,"props":2929,"children":2930},{},[2931],{"type":21,"value":692},{"title":7,"searchDepth":240,"depth":240,"links":2933},[2934],{"id":2713,"depth":243,"text":2716,"children":2935},[2936,2937,2938],{"id":2231,"depth":240,"text":2234},{"id":2825,"depth":240,"text":2828},{"id":2874,"depth":240,"text":2877},"content:blog:2025:07:my-mac-setup.md","blog/2025/07/my-mac-setup.md","blog/2025/07/my-mac-setup",{"_path":2943,"_dir":2356,"_draft":6,"_partial":6,"_locale":7,"title":2944,"description":2945,"pubDate":2946,"draft":6,"body":2947,"_type":248,"_id":3150,"_source":250,"_file":3151,"_stem":3152,"_extension":253},"/blog/2025/07/red-hot-chili-peppers","Red Hot Chili Peppers","Why the Chili Peppers are one of the greatest bands.","2025-07-20",{"type":12,"children":2948,"toc":3142},[2949,2956,2962,2970,2975,2981,2986,2992,2997,3003,3008,3013,3019,3045,3050,3056,3064,3073,3076,3084,3093,3096,3104,3113,3116,3121],{"type":15,"tag":23,"props":2950,"children":2951},{},[2952],{"type":15,"tag":190,"props":2953,"children":2955},{"alt":2944,"src":2954},"https://qmpdliftraf4pov3.public.blob.vercel-storage.com/rhcp-logo-lmPcbtdOC6xq8NJ0KacB5syO6EFawV.webp",[],{"type":15,"tag":16,"props":2957,"children":2959},{"id":2958},"why-the-red-hot-chili-peppers-are-the-greatest-band",[2960],{"type":21,"value":2961},"Why the Red Hot Chili Peppers Are the Greatest Band",{"type":15,"tag":736,"props":2963,"children":2964},{},[2965],{"type":15,"tag":23,"props":2966,"children":2967},{},[2968],{"type":21,"value":2969},"\"Music is the great unifier. An incredible force. Something that people who differ on everything and anything else can have in common.\" - Anthony Kiedis",{"type":15,"tag":23,"props":2971,"children":2972},{},[2973],{"type":21,"value":2974},"For over four decades, the Red Hot Chili Peppers have defied expectations, transcended genres, and consistently delivered a unique blend of funk, rock, and punk that has captivated millions worldwide. While \"greatest band\" is always a subjective title, I firmly believe that the Red Hot Chili Peppers have built an undeniable case for it, especially when considering their incredible longevity, continued popularity, unbreakable brotherhood, and their ability to overcome significant setbacks.",{"type":15,"tag":72,"props":2976,"children":2978},{"id":2977},"a-legacy-of-longevity-and-enduring-popularity",[2979],{"type":21,"value":2980},"🎸 A Legacy of Longevity and Enduring Popularity",{"type":15,"tag":23,"props":2982,"children":2983},{},[2984],{"type":21,"value":2985},"Since their formation in 1983, the Red Hot Chili Peppers have been a constant force in the music industry. Many bands struggle to maintain relevance for a decade, let alone four. Yet, the Chili Peppers continue to sell out arenas, headline major festivals, and release critically and commercially successful albums. This isn't just about sticking around; it's about consistently evolving their sound while retaining the core essence that makes them uniquely RHCP. Their continued popularity speaks volumes about the timeless appeal of their music and their unwavering ability to connect with new generations of fans.",{"type":15,"tag":72,"props":2987,"children":2989},{"id":2988},"the-unbreakable-brotherhood",[2990],{"type":21,"value":2991},"🤝 The Unbreakable Brotherhood",{"type":15,"tag":23,"props":2993,"children":2994},{},[2995],{"type":21,"value":2996},"At the heart of the Red Hot Chili Peppers' enduring success is the profound bond between its members. Anthony Kiedis, Flea, Chad Smith, and John Frusciante are more than just bandmates; they are a family. This brotherhood has been forged through countless hours of creating music, touring the world, and navigating the turbulent waters of fame. You can see it in their live performances – the unspoken communication, the shared energy, and the palpable joy they find in playing together. This deep connection translates directly into their music, infusing it with a sincerity and authenticity that is hard to replicate.",{"type":15,"tag":72,"props":2998,"children":3000},{"id":2999},"overcoming-adversity-member-changes-and-personal-battles",[3001],{"type":21,"value":3002},"💪 Overcoming Adversity: Member Changes and Personal Battles",{"type":15,"tag":23,"props":3004,"children":3005},{},[3006],{"type":21,"value":3007},"The path to greatness is rarely smooth, and the Red Hot Chili Peppers have faced their share of formidable challenges. Perhaps most notable have been the numerous lineup changes throughout their career. While the core of Kiedis and Flea has remained constant, the revolving door of guitarists, prior to John Frusciante's re-entry, could have easily derailed a lesser band. Yet, each change, while difficult, ultimately seemed to strengthen their resolve and push them to explore new musical avenues.",{"type":15,"tag":23,"props":3009,"children":3010},{},[3011],{"type":21,"value":3012},"Beyond member changes, individual battles, particularly with drug addiction, have cast long shadows over the band's history. These personal struggles could have fractured the group beyond repair, but instead, they often served as a testament to their resilience and their commitment to each other's well-being. The honesty and vulnerability in their lyrics, often inspired by these experiences, have resonated deeply with fans, making their music even more impactful.",{"type":15,"tag":72,"props":3014,"children":3016},{"id":3015},"the-magic-of-the-current-lineup-kiedis-flea-smith-frusciante",[3017],{"type":21,"value":3018},"⭐ The Magic of the Current Lineup: Kiedis, Flea, Smith, Frusciante",{"type":15,"tag":23,"props":3020,"children":3021},{},[3022,3024,3029,3031,3036,3038,3043],{"type":21,"value":3023},"While I've loved the entire journey of the Red Hot Chili Peppers, the period spanning ",{"type":15,"tag":29,"props":3025,"children":3026},{},[3027],{"type":21,"value":3028},"Californication",{"type":21,"value":3030},", ",{"type":15,"tag":29,"props":3032,"children":3033},{},[3034],{"type":21,"value":3035},"By The Way",{"type":21,"value":3037},", and ",{"type":15,"tag":29,"props":3039,"children":3040},{},[3041],{"type":21,"value":3042},"Stadium Arcadium",{"type":21,"value":3044}," holds a special place in my heart. These albums, all featuring the iconic lineup of Anthony Kiedis, Flea, Chad Smith, and John Frusciante, represent the band at their absolute peak for me.",{"type":15,"tag":23,"props":3046,"children":3047},{},[3048],{"type":21,"value":3049},"The synergy within this quartet is simply unparalleled. Frusciante's melodic and often ethereal guitar work perfectly complements Flea's ferocious and inventive basslines. Chad Smith's powerhouse drumming provides the rhythmic backbone that allows Kiedis's distinctive vocal delivery to shine. This combination creates a sound that is simultaneously powerful, nuanced, and instantly recognizable.",{"type":15,"tag":867,"props":3051,"children":3053},{"id":3052},"iconic-albums-of-the-golden-era",[3054],{"type":21,"value":3055},"Iconic Albums of the Golden Era",{"type":15,"tag":23,"props":3057,"children":3058},{},[3059],{"type":15,"tag":190,"props":3060,"children":3063},{"alt":3061,"src":3062},"Californication Album Cover","https://upload.wikimedia.org/wikipedia/en/d/df/RedHotChiliPeppersCalifornication.jpg",[],{"type":15,"tag":23,"props":3065,"children":3066},{},[3067,3071],{"type":15,"tag":29,"props":3068,"children":3069},{},[3070],{"type":21,"value":3028},{"type":21,"value":3072}," (1999) - A triumphant return to form after a period of uncertainty, delivering introspective lyrics alongside classic funk-rock anthems.",{"type":15,"tag":68,"props":3074,"children":3075},{},[],{"type":15,"tag":23,"props":3077,"children":3078},{},[3079],{"type":15,"tag":190,"props":3080,"children":3083},{"alt":3081,"src":3082},"By the Way Album Cover","https://upload.wikimedia.org/wikipedia/en/2/23/Rhcp9.jpg",[],{"type":15,"tag":23,"props":3085,"children":3086},{},[3087,3091],{"type":15,"tag":29,"props":3088,"children":3089},{},[3090],{"type":21,"value":3035},{"type":21,"value":3092}," (2002) - Showcased a more melodic and melancholic side of the band, with intricate harmonies and beautiful arrangements.",{"type":15,"tag":68,"props":3094,"children":3095},{},[],{"type":15,"tag":23,"props":3097,"children":3098},{},[3099],{"type":15,"tag":190,"props":3100,"children":3103},{"alt":3101,"src":3102},"Stadium Arcadium Album Cover","https://upload.wikimedia.org/wikipedia/en/e/e6/Stadiumarcadium.jpg",[],{"type":15,"tag":23,"props":3105,"children":3106},{},[3107,3111],{"type":15,"tag":29,"props":3108,"children":3109},{},[3110],{"type":21,"value":3042},{"type":21,"value":3112}," (2006) - A sprawling double album that demonstrated their incredible range, seamlessly blending their signature funk with more experimental and atmospheric tracks.",{"type":15,"tag":68,"props":3114,"children":3115},{},[],{"type":15,"tag":23,"props":3117,"children":3118},{},[3119],{"type":21,"value":3120},"The band's current output, especially since Frusciante's return, continues to demonstrate their incredible creative vitality. They have found a way to honor their past while pushing forward, proving that the magic of this lineup is as potent as ever.",{"type":15,"tag":23,"props":3122,"children":3123},{},[3124,3126,3130,3131,3135,3136,3140],{"type":21,"value":3125},"The Red Hot Chili Peppers are not just a band; they are a phenomenon. Their unwavering commitment to their craft, their profound personal connections, their ability to overcome adversity, and the undeniable chemistry of their current lineup, particularly during their incredible run of ",{"type":15,"tag":29,"props":3127,"children":3128},{},[3129],{"type":21,"value":3028},{"type":21,"value":3030},{"type":15,"tag":29,"props":3132,"children":3133},{},[3134],{"type":21,"value":3035},{"type":21,"value":3037},{"type":15,"tag":29,"props":3137,"children":3138},{},[3139],{"type":21,"value":3042},{"type":21,"value":3141},", solidify their status as one of the greatest and most influential bands of all time. Their music is a testament to the enduring power of friendship, resilience, and the relentless pursuit of artistic expression.",{"title":7,"searchDepth":240,"depth":240,"links":3143},[3144,3145,3146,3147],{"id":2977,"depth":243,"text":2980},{"id":2988,"depth":243,"text":2991},{"id":2999,"depth":243,"text":3002},{"id":3015,"depth":243,"text":3018,"children":3148},[3149],{"id":3052,"depth":240,"text":3055},"content:blog:2025:07:red-hot-chili-peppers.md","blog/2025/07/red-hot-chili-peppers.md","blog/2025/07/red-hot-chili-peppers",{"_path":3154,"_dir":3155,"_draft":6,"_partial":6,"_locale":7,"title":3156,"description":3157,"pubDate":3158,"draft":6,"body":3159,"_type":248,"_id":3358,"_source":250,"_file":3359,"_stem":3360,"_extension":253},"/blog/2025/08/astro","08","Why I Built My Blog with 5 Different Frameworks (and Why I’m Sticking with Astro)","What I learned, what I liked, and why Astro is the last blog framework I’ll use.","2025-08-03",{"type":12,"children":3160,"toc":3343},[3161,3166,3171,3174,3187,3194,3199,3202,3214,3221,3226,3229,3242,3249,3261,3264,3277,3284,3289,3292,3305,3312,3324,3327,3333,3338],{"type":15,"tag":72,"props":3162,"children":3164},{"id":3163},"why-i-built-my-blog-with-5-different-frameworks-and-why-im-sticking-with-astro",[3165],{"type":21,"value":3156},{"type":15,"tag":23,"props":3167,"children":3168},{},[3169],{"type":21,"value":3170},"Over the past year, I’ve rebuilt my blog five times using five different frameworks. Some might call it overkill, but I call it curiosity (and maybe a little indecision). Each framework brought something unique to the table, and I learned a ton along the way. But after all this experimentation, I’ve finally settled on Astro—and this will be the last time I rebuild my blog from scratch. Here’s a quick rundown of my journey, what I liked (and didn’t like) about each framework, and why Astro is the one I’m sticking with.",{"type":15,"tag":68,"props":3172,"children":3173},{},[],{"type":15,"tag":867,"props":3175,"children":3177},{"id":3176},"_1-astro-my-final-choice",[3178,3180,3185],{"type":21,"value":3179},"1. ",{"type":15,"tag":29,"props":3181,"children":3182},{},[3183],{"type":21,"value":3184},"Astro",{"type":21,"value":3186},": My Final Choice",{"type":15,"tag":23,"props":3188,"children":3189},{},[3190],{"type":15,"tag":190,"props":3191,"children":3193},{"alt":3184,"src":3192},"https://avatars.githubusercontent.com/u/44914786?s=48&v=4",[],{"type":15,"tag":23,"props":3195,"children":3196},{},[3197],{"type":21,"value":3198},"Astro is the framework I’m using now, and it’s the one I plan to stick with. If you’re familiar with TypeScript, you’ll feel right at home—Astro’s syntax is clean, static, and easy to understand. I love how it lets me write content in Markdown, sprinkle in components from any framework, and ship a super-fast, static site by default. For a blog, it’s honestly perfect: minimal JavaScript, great developer experience, and a growing ecosystem. I don’t need anything more.",{"type":15,"tag":68,"props":3200,"children":3201},{},[],{"type":15,"tag":867,"props":3203,"children":3205},{"id":3204},"_2-nuxt-a-close-second",[3206,3208,3212],{"type":21,"value":3207},"2. ",{"type":15,"tag":29,"props":3209,"children":3210},{},[3211],{"type":21,"value":534},{"type":21,"value":3213},": A Close Second",{"type":15,"tag":23,"props":3215,"children":3216},{},[3217],{"type":15,"tag":190,"props":3218,"children":3220},{"alt":534,"src":3219},"https://avatars.githubusercontent.com/u/23360933?s=48&v=4",[],{"type":15,"tag":23,"props":3222,"children":3223},{},[3224],{"type":21,"value":3225},"I’ve always liked Vue, and Nuxt is a fantastic way to build with it. Nuxt can handle anything, from static sites to full-blown web apps. For a while, I considered sticking with Nuxt because of its flexibility and the power of Vue’s component system. But for a simple blog, Nuxt felt like more than I needed. If I ever build something more complex, Nuxt will be high on my list.",{"type":15,"tag":68,"props":3227,"children":3228},{},[],{"type":15,"tag":867,"props":3230,"children":3232},{"id":3231},"_3-hugo-blazing-fast-but-different",[3233,3235,3240],{"type":21,"value":3234},"3. ",{"type":15,"tag":29,"props":3236,"children":3237},{},[3238],{"type":21,"value":3239},"Hugo",{"type":21,"value":3241},": Blazing Fast, But Different",{"type":15,"tag":23,"props":3243,"children":3244},{},[3245],{"type":15,"tag":190,"props":3246,"children":3248},{"alt":3239,"src":3247},"https://avatars.githubusercontent.com/u/29385237?s=48&v=4",[],{"type":15,"tag":23,"props":3250,"children":3251},{},[3252,3254,3259],{"type":21,"value":3253},"Hugo is in a league of its own. It’s a static site generator written in Go, and it’s ",{"type":15,"tag":373,"props":3255,"children":3256},{},[3257],{"type":21,"value":3258},"fast",{"type":21,"value":3260},"—like, blink-and-it’s-done fast. Hugo handles Markdown beautifully, but its templating system and overall approach are quite different from the JavaScript frameworks I’m used to. If you want pure speed and don’t mind learning a new way of doing things, Hugo is a great choice. For me, though, I missed the flexibility of component-based frameworks.",{"type":15,"tag":68,"props":3262,"children":3263},{},[],{"type":15,"tag":867,"props":3265,"children":3267},{"id":3266},"_4-nextjs-powerful-but-overkill",[3268,3270,3275],{"type":21,"value":3269},"4. ",{"type":15,"tag":29,"props":3271,"children":3272},{},[3273],{"type":21,"value":3274},"Next.js",{"type":21,"value":3276},": Powerful, But Overkill",{"type":15,"tag":23,"props":3278,"children":3279},{},[3280],{"type":15,"tag":190,"props":3281,"children":3283},{"alt":3274,"src":3282},"https://avatars.githubusercontent.com/u/14985020?s=48&v=4",[],{"type":15,"tag":23,"props":3285,"children":3286},{},[3287],{"type":21,"value":3288},"Next.js is the Swiss Army knife of web frameworks. You can build anything with it—blogs, e-commerce sites, dashboards, you name it. But for a simple blog, it’s honestly overkill. I found myself reaching for features I didn’t need, and the build times and complexity just weren’t worth it. If I ever need to scale up, Next.js is a great option, but for now, it’s more than I need.",{"type":15,"tag":68,"props":3290,"children":3291},{},[],{"type":15,"tag":867,"props":3293,"children":3295},{"id":3294},"_5-svelte-close-but-not-quite",[3296,3298,3303],{"type":21,"value":3297},"5. ",{"type":15,"tag":29,"props":3299,"children":3300},{},[3301],{"type":21,"value":3302},"Svelte",{"type":21,"value":3304},": Close, But Not Quite",{"type":15,"tag":23,"props":3306,"children":3307},{},[3308],{"type":15,"tag":190,"props":3309,"children":3311},{"alt":3302,"src":3310},"https://avatars.githubusercontent.com/u/23617963?s=48&v=4",[],{"type":15,"tag":23,"props":3313,"children":3314},{},[3315,3317,3322],{"type":21,"value":3316},"Svelte is a joy to write in, and it reminds me a lot of Next.js in terms of flexibility. But I found it harder (at least for me) to get things looking and working ",{"type":15,"tag":373,"props":3318,"children":3319},{},[3320],{"type":21,"value":3321},"exactly",{"type":21,"value":3323}," how I wanted, especially compared to Astro. Svelte is powerful and fun, but for my blog, it just didn’t click the way Astro did.",{"type":15,"tag":68,"props":3325,"children":3326},{},[],{"type":15,"tag":867,"props":3328,"children":3330},{"id":3329},"the-takeaway",[3331],{"type":21,"value":3332},"The Takeaway",{"type":15,"tag":23,"props":3334,"children":3335},{},[3336],{"type":21,"value":3337},"I designed each framework to have my blog look exactly the same. The difference is all under the hood: how easy it is to write, maintain, and deploy. After trying all five, Astro just feels right for me. It’s simple, fast, and does everything I need for a blog—nothing more, nothing less.",{"type":15,"tag":23,"props":3339,"children":3340},{},[3341],{"type":21,"value":3342},"So, this is it: the last time I rebuild my blog from scratch. From now on, it’s Astro all the way.",{"title":7,"searchDepth":240,"depth":240,"links":3344},[3345],{"id":3163,"depth":243,"text":3156,"children":3346},[3347,3349,3351,3353,3355,3357],{"id":3176,"depth":240,"text":3348},"1. Astro: My Final Choice",{"id":3204,"depth":240,"text":3350},"2. Nuxt: A Close Second",{"id":3231,"depth":240,"text":3352},"3. Hugo: Blazing Fast, But Different",{"id":3266,"depth":240,"text":3354},"4. Next.js: Powerful, But Overkill",{"id":3294,"depth":240,"text":3356},"5. Svelte: Close, But Not Quite",{"id":3329,"depth":240,"text":3332},"content:blog:2025:08:astro.md","blog/2025/08/astro.md","blog/2025/08/astro",{"_path":3362,"_dir":3155,"_draft":6,"_partial":6,"_locale":7,"title":3363,"description":3364,"pubDate":3365,"draft":6,"body":3366,"_type":248,"_id":3627,"_source":250,"_file":3628,"_stem":3629,"_extension":253},"/blog/2025/08/coding-to-help-my-job","Coding to Help My Job","Using AI to create a website to assist my work in mental health","2025-08-31",{"type":12,"children":3367,"toc":3619},[3368,3374,3386,3392,3404,3442,3448,3456,3461,3466,3471,3477,3482,3487,3492,3497,3530,3536,3544,3549,3607],{"type":15,"tag":72,"props":3369,"children":3371},{"id":3370},"revolutionizing-case-management-how-convex-chef-and-cursor-helped-me-build-a-custom-client-tracker",[3372],{"type":21,"value":3373},"Revolutionizing Case Management: How Convex Chef and Cursor Helped Me Build a Custom Client Tracker",{"type":15,"tag":23,"props":3375,"children":3376},{},[3377,3379,3384],{"type":21,"value":3378},"As a case manager, staying on top of client needs, deadlines, and communication is paramount. Treatment plans, quarterly reviews, last contacts, and face-to-face meetings all have critical due dates that, if missed, can impact client well-being and compliance. Beyond client well-being, ",{"type":15,"tag":29,"props":3380,"children":3381},{},[3382],{"type":21,"value":3383},"the accuracy and timeliness of our paperwork are directly tied to Medicaid compliance and, ultimately, our ability to secure funding for the vital services we provide.",{"type":21,"value":3385}," While off-the-shelf solutions exist, I often found them clunky, overly complex, or lacking the specific functionalities I needed. That's why I embarked on a journey to build my own personalized case management website, and the AI-powered tools Convex Chef and Cursor were absolute game-changers.",{"type":15,"tag":867,"props":3387,"children":3389},{"id":3388},"the-challenge-juggling-dates-data-and-medicaid-mandates",[3390],{"type":21,"value":3391},"The Challenge: Juggling Dates, Data, and Medicaid Mandates",{"type":15,"tag":23,"props":3393,"children":3394},{},[3395,3397,3402],{"type":21,"value":3396},"My biggest headache was always the calendar. When was the next treatment plan due for Consumer A? Did I speak with Consumer B last week, and when is their quarterly review? Manually tracking these dates in spreadsheets was prone to errors and incredibly time-consuming. ",{"type":15,"tag":29,"props":3398,"children":3399},{},[3400],{"type":21,"value":3401},"Crucially, missed deadlines for treatment plans or quarterly reviews don't just impact client care; they can lead to significant auditing issues with Medicaid, potentially resulting in recoupments or even loss of provider status.",{"type":21,"value":3403}," I needed a system that could:",{"type":15,"tag":294,"props":3405,"children":3406},{},[3407,3412,3422,3432],{"type":15,"tag":298,"props":3408,"children":3409},{},[3410],{"type":21,"value":3411},"Store client (or \"consumer\") information securely.",{"type":15,"tag":298,"props":3413,"children":3414},{},[3415,3417],{"type":21,"value":3416},"Automatically calculate crucial due dates based on initial input, with an eye towards ",{"type":15,"tag":29,"props":3418,"children":3419},{},[3420],{"type":21,"value":3421},"Medicaid-specific timelines.",{"type":15,"tag":298,"props":3423,"children":3424},{},[3425,3427],{"type":21,"value":3426},"Provide a clear overview of upcoming deadlines, ",{"type":15,"tag":29,"props":3428,"children":3429},{},[3430],{"type":21,"value":3431},"highlighting those critical for compliance.",{"type":15,"tag":298,"props":3433,"children":3434},{},[3435,3437],{"type":21,"value":3436},"Log interactions and track the frequency of contact to ensure we meet ",{"type":15,"tag":29,"props":3438,"children":3439},{},[3440],{"type":21,"value":3441},"contact requirements for billing.",{"type":15,"tag":867,"props":3443,"children":3445},{"id":3444},"enter-convex-chef-my-backend-dream-weaver",[3446],{"type":21,"value":3447},"Enter Convex Chef: My Backend Dream Weaver",{"type":15,"tag":23,"props":3449,"children":3450},{},[3451],{"type":15,"tag":190,"props":3452,"children":3455},{"alt":3453,"src":3454},"Chef","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/Chef-ehjV6foFVrIZfXAW6jS4PIuFHPq0nD.webp",[],{"type":15,"tag":23,"props":3457,"children":3458},{},[3459],{"type":21,"value":3460},"When I discovered Convex Chef, I was intrigued. Advertised as an AI agent that builds full-stack web apps with a focus on backend logic, it promised to handle the \"three Cs\" that often trip up LLMs: concurrency, consistency, and caching. Convex is a hosted backend platform with a built-in reactive database, allowing developers to write database schemas and server functions in TypeScript. This real-time database means that any updates are instantly reflected in the front end, which was a huge selling point for me.",{"type":15,"tag":23,"props":3462,"children":3463},{},[3464],{"type":21,"value":3465},"With Convex Chef, I could literally prompt it to create the core of my application. It understood my needs for storing consumer data, defining relationships between information (like a consumer and their treatment plan), and even setting up authentication. It automatically generated the database tables and server functions I needed, allowing me to define the different arguments and handlers for my server functions within the code. This meant less time wrestling with database configurations and more time focusing on the specific logic for my case management needs. Convex Chef essentially \"cooked up\" the foundational elements, including built-in user authentication and a dashboard to manage my data and logs.",{"type":15,"tag":23,"props":3467,"children":3468},{},[3469],{"type":21,"value":3470},"For example, I could tell Chef: \"Create a database schema for 'consumers' with fields for name, date of birth, intake date, and a related 'treatment plans' table that includes the start date and frequency.\" Chef handled the underlying data structure, making it incredibly easy to then build on top of.",{"type":15,"tag":867,"props":3472,"children":3474},{"id":3473},"cursor-my-ai-pair-programming-partner",[3475],{"type":21,"value":3476},"Cursor: My AI Pair-Programming Partner",{"type":15,"tag":23,"props":3478,"children":3479},{},[3480],{"type":21,"value":3481},"While Convex Chef laid the robust backend, Cursor was my constant companion for the frontend and for refining the backend logic. Cursor is an AI-powered code editor, a fork of VSCode, designed for pair-programming with AI. Its standout feature is its AI-powered code generation, which can generate code, complete lines, and suggest improvements in real-time. What truly sets it apart is its ability to understand the entire codebase, providing context-aware suggestions.",{"type":15,"tag":23,"props":3483,"children":3484},{},[3485],{"type":21,"value":3486},"This was invaluable. As I started building the user interface (using a simple HTML/Tailwind CSS stack), I could use Cursor's integrated chat to ask questions about my code, request explanations, or get help with debugging. For instance, I'd prompt Cursor with something like: \"Generate a React component to display a consumer's details, including their treatment plan due date.\" Cursor would then provide relevant code, understanding the data structure I had set up with Convex.",{"type":15,"tag":23,"props":3488,"children":3489},{},[3490],{"type":21,"value":3491},"One of the most powerful features I leveraged was Cursor's \"Rules for AI\" setting, which acts as a personal system prompt for the AI. I could set up rules like: \"Always use clean, readable React components\" or \"Ensure all date calculations are handled in a specific utility file.\" This helped maintain consistency in my code and ensured the AI adhered to my preferred coding style.",{"type":15,"tag":23,"props":3493,"children":3494},{},[3495],{"type":21,"value":3496},"For the complex calculations, like determining the next quarterly review date or treatment plan due date, I wrote specific TypeScript functions within my Convex backend. Cursor assisted me by:",{"type":15,"tag":294,"props":3498,"children":3499},{},[3500,3510,3520],{"type":15,"tag":298,"props":3501,"children":3502},{},[3503,3508],{"type":15,"tag":29,"props":3504,"children":3505},{},[3506],{"type":21,"value":3507},"Generating boilerplate:",{"type":21,"value":3509}," When I needed a function to calculate a date, Cursor would often provide the initial structure, saving me valuable time.",{"type":15,"tag":298,"props":3511,"children":3512},{},[3513,3518],{"type":15,"tag":29,"props":3514,"children":3515},{},[3516],{"type":21,"value":3517},"Suggesting improvements:",{"type":21,"value":3519}," As I wrote the logic, Cursor would suggest more efficient ways to handle date objects or refactor my code for better readability.",{"type":15,"tag":298,"props":3521,"children":3522},{},[3523,3528],{"type":15,"tag":29,"props":3524,"children":3525},{},[3526],{"type":21,"value":3527},"Debugging:",{"type":21,"value":3529}," If I encountered an error in my date calculation, Cursor's integrated chat and codebase understanding helped me quickly identify and fix the issue. I could even feed it Convex documentation to improve its understanding of the platform.",{"type":15,"tag":867,"props":3531,"children":3533},{"id":3532},"the-result-a-tailored-case-management-tool-for-compliance",[3534],{"type":21,"value":3535},"The Result: A Tailored Case Management Tool for Compliance",{"type":15,"tag":23,"props":3537,"children":3538},{},[3539],{"type":15,"tag":190,"props":3540,"children":3543},{"alt":3541,"src":3542},"CM","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/Screenshot%202025-09-02%20131215.png",[],{"type":15,"tag":23,"props":3545,"children":3546},{},[3547],{"type":21,"value":3548},"With Convex Chef providing the powerful, real-time backend and Cursor acting as my intelligent coding assistant, I was able to build a functional and incredibly useful case management website. My custom solution now:",{"type":15,"tag":294,"props":3550,"children":3551},{},[3552,3562,3577,3592],{"type":15,"tag":298,"props":3553,"children":3554},{},[3555,3560],{"type":15,"tag":29,"props":3556,"children":3557},{},[3558],{"type":21,"value":3559},"Tracks Consumers:",{"type":21,"value":3561}," A clean interface allows me to add and manage all my consumer information.",{"type":15,"tag":298,"props":3563,"children":3564},{},[3565,3570,3572],{"type":15,"tag":29,"props":3566,"children":3567},{},[3568],{"type":21,"value":3569},"Automates Due Dates with Compliance in Mind:",{"type":21,"value":3571}," Based on the intake date and treatment plan frequency (e.g., annually, semi-annually), the system automatically calculates and displays the next treatment plan due date and quarterly review dates. ",{"type":15,"tag":29,"props":3573,"children":3574},{},[3575],{"type":21,"value":3576},"This direct calculation significantly reduces the risk of missing critical Medicaid deadlines, ensuring our documentation is always audit-ready.",{"type":15,"tag":298,"props":3578,"children":3579},{},[3580,3585,3587],{"type":15,"tag":29,"props":3581,"children":3582},{},[3583],{"type":21,"value":3584},"Manages Interactions for Billing and Oversight:",{"type":21,"value":3586}," I can easily log the date and type of each interaction (phone call, face-to-face, email), and the system highlights when I last spoke with a consumer and when their next face-to-face meeting is due. ",{"type":15,"tag":29,"props":3588,"children":3589},{},[3590],{"type":21,"value":3591},"This detailed logging provides irrefutable evidence of services rendered and contact requirements met, crucial for Medicaid billing and preventing denials.",{"type":15,"tag":298,"props":3593,"children":3594},{},[3595,3600,3602],{"type":15,"tag":29,"props":3596,"children":3597},{},[3598],{"type":21,"value":3599},"Provides Overviews for Proactive Management:",{"type":21,"value":3601}," A dashboard displays upcoming deadlines, allowing me to prioritize my workload and ensure no consumer falls through the cracks, ",{"type":15,"tag":29,"props":3603,"children":3604},{},[3605],{"type":21,"value":3606},"especially those with impending Medicaid-related documentation due dates.",{"type":15,"tag":23,"props":3608,"children":3609},{},[3610,3612,3617],{"type":21,"value":3611},"This project was a testament to the power of AI in democratizing software development. I'm not a full-time developer, but with the intelligent assistance of Convex Chef and Cursor, I was able to create a tool that genuinely addresses my professional needs, saving me countless hours and improving the quality of my case management. ",{"type":15,"tag":29,"props":3613,"children":3614},{},[3615],{"type":21,"value":3616},"More importantly, it significantly bolstered my ability to maintain stringent Medicaid compliance, protecting our agency's funding and ensuring seamless client care.",{"type":21,"value":3618}," If you're a professional looking to build a custom solution without being a coding expert, I highly recommend exploring the synergistic power of Convex Chef and Cursor. They truly help anyone \"cook\" up remarkable applications.",{"title":7,"searchDepth":240,"depth":240,"links":3620},[3621],{"id":3370,"depth":243,"text":3373,"children":3622},[3623,3624,3625,3626],{"id":3388,"depth":240,"text":3391},{"id":3444,"depth":240,"text":3447},{"id":3473,"depth":240,"text":3476},{"id":3532,"depth":240,"text":3535},"content:blog:2025:08:coding-to-help-my-job.md","blog/2025/08/coding-to-help-my-job.md","blog/2025/08/coding-to-help-my-job",{"_path":3631,"_dir":3155,"_draft":6,"_partial":6,"_locale":7,"title":3632,"description":3633,"pubDate":3634,"draft":6,"body":3635,"_type":248,"_id":3725,"_source":250,"_file":3726,"_stem":3727,"_extension":253},"/blog/2025/08/mash","How M*A*S*H—and Hawkeye helped Shaped My Empathy as a Provider","Reflections on M*A*S*H, war, and the art of caring in mental health","2025-08-24",{"type":12,"children":3636,"toc":3720},[3637,3643,3648,3653,3672,3678,3683,3688,3694,3699,3704,3710,3715],{"type":15,"tag":16,"props":3638,"children":3640},{"id":3639},"mash",[3641],{"type":21,"value":3642},"M*A*S*H",{"type":15,"tag":23,"props":3644,"children":3645},{},[3646],{"type":21,"value":3647},"I was first introduced to M*A*S*H by my mom. She was a big fan of the show, and some of my earliest memories are of sitting beside her on the couch, watching reruns together. At first, I was drawn in by the laughter and the antics, but as I grew older, I began to appreciate the deeper themes and the humanity at the heart of the series. Later, I began to appreciate the deeper themes and the humanity at the heart of the series. Looking back, I realize that those evenings with her, simply sharing the experience of the show, planted the seeds for the empathy and perspective I try to bring to my work today.",{"type":15,"tag":23,"props":3649,"children":3650},{},[3651],{"type":21,"value":3652},"Growing up, I watched a lot of television, but few shows left as deep a mark on me as M*A*S*H. The series, set in a mobile army surgical hospital during the Korean War, was more than just a sitcom—it was a meditation on the absurdity of war, the resilience of the human spirit, and the daily struggle to remain compassionate in the face of trauma. As a mental health provider today, I often find myself reflecting on how M*A*S*H—and especially the character of Hawkeye Pierce—shaped my approach to empathy, care, and even my understanding of how war is waged on both the battlefield and the mind.",{"type":15,"tag":23,"props":3654,"children":3655},{},[3656,3661,3663,3670],{"type":15,"tag":190,"props":3657,"children":3660},{"alt":3658,"src":3659},"Alan Alda as Hawkeye Pierce in M*A*S*H","https://upload.wikimedia.org/wikipedia/commons/e/ea/Alan_Alda_Hawkeye_MASH.JPG",[],{"type":21,"value":3662},"\nAlan Alda as Hawkeye Pierce in M*A*S*H. Source: ",{"type":15,"tag":37,"props":3664,"children":3667},{"href":3665,"rel":3666},"https://commons.wikimedia.org/wiki/File:Alan_Alda_Hawkeye_MASH.JPG",[41],[3668],{"type":21,"value":3669},"Wikimedia",{"type":21,"value":3671}," (Public Domain)",{"type":15,"tag":72,"props":3673,"children":3675},{"id":3674},"hawkeye-the-flirt-the-healer-the-human",[3676],{"type":21,"value":3677},"Hawkeye: The Flirt, the Healer, the Human",{"type":15,"tag":23,"props":3679,"children":3680},{},[3681],{"type":21,"value":3682},"Hawkeye Pierce, played by Alan Alda, is often remembered for his irreverent humor, relentless pranks, and, yes, his flirtatiousness. But beneath the wisecracks and the martinis, Hawkeye was the moral center of the 4077th. He was a subversive, anti-war liberal with a relentless wit, but also a deep commitment to saving lives and alleviating suffering.",{"type":15,"tag":23,"props":3684,"children":3685},{},[3686],{"type":21,"value":3687},"It’s true that Hawkeye was a flirt, and the show’s early seasons sometimes played this for laughs in ways that don’t always age well. But as the series matured, so did Hawkeye. His relationships with women; especially with Major Margaret Houlihan, evolved from objectifying banter to genuine respect and friendship. Loretta Swit, who played Margaret, has said that their bond was “based on deep love and respect,” and that the show ultimately chose to portray them as professional allies and friends rather than romantic partners. This growth mirrored the show’s own shift from broad comedy to nuanced drama, and it taught me that empathy and respect are not static; they are skills we practice and refine, especially in high-stress environments.",{"type":15,"tag":72,"props":3689,"children":3691},{"id":3690},"war-trauma-and-the-cost-of-caring",[3692],{"type":21,"value":3693},"War, Trauma, and the Cost of Caring",{"type":15,"tag":23,"props":3695,"children":3696},{},[3697],{"type":21,"value":3698},"M*A*S*H was, at its core, an anti-war show. It used the Korean War as a stand-in for the then ongoing conflict in Vietnam, but its message was universal: war is a failure of humanity, and its true cost is measured in shattered lives and wounded minds. The show didn’t shy away from the psychological toll of war, either. In the series finale, Hawkeye suffers a breakdown and is institutionalized. A storyline that, even today, resonates with anyone who has witnessed trauma up close.",{"type":15,"tag":23,"props":3700,"children":3701},{},[3702],{"type":21,"value":3703},"As a mental health provider, I see echoes of Hawkeye’s journey in my own work. The way he used humor as a coping mechanism, the moments when he broke down, and the times he reached out for help. All of these are deeply human responses to overwhelming stress. M*A*S*H was one of the first shows to portray mental health not as a punchline, but as a serious, ongoing struggle. The presence of Dr. Sidney Freedman, the camp psychiatrist, was a reminder that even healers need healing, and that seeking help is a sign of strength, not weakness.",{"type":15,"tag":72,"props":3705,"children":3707},{"id":3706},"empathy-in-the-face-of-absurdity",[3708],{"type":21,"value":3709},"Empathy in the Face of Absurdity",{"type":15,"tag":23,"props":3711,"children":3712},{},[3713],{"type":21,"value":3714},"What M*A*S*H taught me, and what I try to bring to my own practice, is the importance of empathy, even when it feels like the world is falling apart. Hawkeye’s refusal to become numb to suffering, his insistence on seeing each patient as a person, and his willingness to challenge authority in the name of compassion are all qualities I aspire to. The show’s blend of humor and heartbreak, its willingness to confront the darkest aspects of war while still finding moments of connection and joy, is a model for how to survive, and help others survive the absurdities of life.",{"type":15,"tag":23,"props":3716,"children":3717},{},[3718],{"type":21,"value":3719},"In the end, M*A*S*H wasn’t just about war. It was about what it means to care, to endure, and to keep our humanity intact in the face of chaos. Hawkeye Pierce, with all his flaws and virtues, remains a reminder that empathy is both a choice and a practice. One that can change lives, including our own.",{"title":7,"searchDepth":240,"depth":240,"links":3721},[3722,3723,3724],{"id":3674,"depth":243,"text":3677},{"id":3690,"depth":243,"text":3693},{"id":3706,"depth":243,"text":3709},"content:blog:2025:08:mash.md","blog/2025/08/mash.md","blog/2025/08/mash",{"_path":3729,"_dir":3155,"_draft":6,"_partial":6,"_locale":7,"title":3730,"description":3731,"pubDate":3732,"draft":6,"body":3733,"_type":248,"_id":4035,"_source":250,"_file":4036,"_stem":4037,"_extension":253},"/blog/2025/08/osutil","My OSutil","Learning from others to build a new utility for all Operating Systems","2025-08-10",{"type":12,"children":3734,"toc":4028},[3735,3741,3755,3760,3765,3798,3803,3838,3844,3858,3865,3884,3890,3895,3900,3928,3947,3953,3958,4011,4024],{"type":15,"tag":72,"props":3736,"children":3738},{"id":3737},"taming-the-os-jungle-from-linutil-to-my-cross-platform-osutil",[3739],{"type":21,"value":3740},"Taming the OS Jungle: From Linutil to My Cross-Platform OSutil",{"type":15,"tag":23,"props":3742,"children":3743},{},[3744,3746,3753],{"type":21,"value":3745},"Ever feel like you're wrestling with different beasts every time you switch between Windows, macOS, and Linux? I did. That's why I embarked on a quest to create a single tool to rule them all, or at least make them play a little nicer together. The result? ",{"type":15,"tag":37,"props":3747,"children":3750},{"href":3748,"rel":3749},"https://github.com/Jaredy899/osutil",[41],[3751],{"type":21,"value":3752},"OSutil",{"type":21,"value":3754},", my cross-platform utility library designed to bring order to the operating system chaos.",{"type":15,"tag":23,"props":3756,"children":3757},{},[3758],{"type":21,"value":3759},"To install simply copy and paste these commands into your terminal of choice!",{"type":15,"tag":23,"props":3761,"children":3762},{},[3763],{"type":21,"value":3764},"For Linux and Mac:",{"type":15,"tag":614,"props":3766,"children":3770},{"className":3767,"code":3768,"language":3769,"meta":7,"style":7},"language-bash shiki shiki-themes github-dark","sh \u003C(curl -fsSL jaredcervantes.com/os)\n","bash",[3771],{"type":15,"tag":621,"props":3772,"children":3773},{"__ignoreMap":7},[3774],{"type":15,"tag":625,"props":3775,"children":3776},{"class":627,"line":628},[3777,3781,3785,3789,3793],{"type":15,"tag":625,"props":3778,"children":3779},{"style":678},[3780],{"type":21,"value":2899},{"type":15,"tag":625,"props":3782,"children":3783},{"style":658},[3784],{"type":21,"value":2904},{"type":15,"tag":625,"props":3786,"children":3787},{"style":678},[3788],{"type":21,"value":2909},{"type":15,"tag":625,"props":3790,"children":3791},{"style":647},[3792],{"type":21,"value":2914},{"type":15,"tag":625,"props":3794,"children":3795},{"style":658},[3796],{"type":21,"value":3797}," jaredcervantes.com/os)\n",{"type":15,"tag":23,"props":3799,"children":3800},{},[3801],{"type":21,"value":3802},"For Windows:",{"type":15,"tag":614,"props":3804,"children":3806},{"className":2147,"code":3805,"language":2149,"meta":7,"style":7},"irm jaredcervantes.com/winos | iex\n",[3807],{"type":15,"tag":621,"props":3808,"children":3809},{"__ignoreMap":7},[3810],{"type":15,"tag":625,"props":3811,"children":3812},{"class":627,"line":628},[3813,3817,3821,3825,3830,3834],{"type":15,"tag":625,"props":3814,"children":3815},{"style":664},[3816],{"type":21,"value":2203},{"type":15,"tag":625,"props":3818,"children":3819},{"style":647},[3820],{"type":21,"value":2208},{"type":15,"tag":625,"props":3822,"children":3823},{"style":641},[3824],{"type":21,"value":2213},{"type":15,"tag":625,"props":3826,"children":3827},{"style":664},[3828],{"type":21,"value":3829},"winos ",{"type":15,"tag":625,"props":3831,"children":3832},{"style":641},[3833],{"type":21,"value":2223},{"type":15,"tag":625,"props":3835,"children":3836},{"style":664},[3837],{"type":21,"value":2228},{"type":15,"tag":867,"props":3839,"children":3841},{"id":3840},"inspiration-and-evolution",[3842],{"type":21,"value":3843},"Inspiration and Evolution",{"type":15,"tag":23,"props":3845,"children":3846},{},[3847,3849,3856],{"type":21,"value":3848},"OSutil has its roots in Chris Titus's ",{"type":15,"tag":37,"props":3850,"children":3853},{"href":3851,"rel":3852},"https://github.com/ChrisTitusTech/linutil",[41],[3854],{"type":21,"value":3855},"linutil",{"type":21,"value":3857},", a fantastic tool for Linux system administration. I've always admired the simplicity and efficiency of linutil, but I wanted something that could offer the same benefits across all the operating systems I use daily.",{"type":15,"tag":23,"props":3859,"children":3860},{},[3861],{"type":15,"tag":190,"props":3862,"children":3864},{"alt":3752,"src":3863},"https://github.com/Jaredy899/osutil/blob/main/.github/Linux.png?raw=true",[],{"type":15,"tag":23,"props":3866,"children":3867},{},[3868,3870,3875,3877,3882],{"type":21,"value":3869},"That's where the idea for OSutil came from. I realized I already had a collection of scripts and tools I'd built for my Windows and macOS environments. You might remember my previous blog posts detailing my ",{"type":15,"tag":37,"props":3871,"children":3872},{"href":2085},[3873],{"type":21,"value":3874},"Windows setup",{"type":21,"value":3876}," and my ",{"type":15,"tag":37,"props":3878,"children":3879},{"href":2705},[3880],{"type":21,"value":3881},"macOS configuration",{"type":21,"value":3883},". OSutil is, in a way, the culmination of those efforts, bringing everything together under one program. I also originally had a Linux setup simliar to these setups (and even had a blog written about it). But I started work on OSutil after a little insirpation.",{"type":15,"tag":867,"props":3885,"children":3887},{"id":3886},"building-a-cross-platform-solution",[3888],{"type":21,"value":3889},"Building a Cross-Platform Solution",{"type":15,"tag":23,"props":3891,"children":3892},{},[3893],{"type":21,"value":3894},"The real challenge was taking these disparate scripts and creating a unified, cross-platform experience. I wanted users to be able to run similar commands and achieve consistent results regardless of their operating system. This required careful planning, platform-specific implementations, and a lot of testing.",{"type":15,"tag":23,"props":3896,"children":3897},{},[3898],{"type":21,"value":3899},"OSutil combines the best aspects of my existing Windows and macOS scripts with the core principles of linutil. It provides a set of command-line utilities for tasks such as:",{"type":15,"tag":294,"props":3901,"children":3902},{},[3903,3908,3913,3918,3923],{"type":15,"tag":298,"props":3904,"children":3905},{},[3906],{"type":21,"value":3907},"System information retrieval",{"type":15,"tag":298,"props":3909,"children":3910},{},[3911],{"type":21,"value":3912},"Package management",{"type":15,"tag":298,"props":3914,"children":3915},{},[3916],{"type":21,"value":3917},"Network configuration",{"type":15,"tag":298,"props":3919,"children":3920},{},[3921],{"type":21,"value":3922},"File system operations",{"type":15,"tag":298,"props":3924,"children":3925},{},[3926],{"type":21,"value":3927},"And more!",{"type":15,"tag":23,"props":3929,"children":3930},{},[3931,3933,3938,3940,3945],{"type":21,"value":3932},"One of my favorite features is that ",{"type":15,"tag":29,"props":3934,"children":3935},{},[3936],{"type":21,"value":3937},"OSutil works entirely in the terminal — even over SSH",{"type":21,"value":3939},". This makes it perfect for managing ",{"type":15,"tag":29,"props":3941,"children":3942},{},[3943],{"type":21,"value":3944},"headless Linux machines",{"type":21,"value":3946}," or remote servers where you don’t have a graphical interface. Whether you’re sitting at your desk or connected halfway across the world, OSutil feels the same.",{"type":15,"tag":867,"props":3948,"children":3950},{"id":3949},"why-osutil",[3951],{"type":21,"value":3952},"Why OSutil?",{"type":15,"tag":23,"props":3954,"children":3955},{},[3956],{"type":21,"value":3957},"I believe OSutil offers a unique blend of features and benefits:",{"type":15,"tag":294,"props":3959,"children":3960},{},[3961,3971,3981,3991,4001],{"type":15,"tag":298,"props":3962,"children":3963},{},[3964,3969],{"type":15,"tag":29,"props":3965,"children":3966},{},[3967],{"type":21,"value":3968},"Cross-Platform Compatibility:",{"type":21,"value":3970}," Works seamlessly on Windows, macOS, and Linux.",{"type":15,"tag":298,"props":3972,"children":3973},{},[3974,3979],{"type":15,"tag":29,"props":3975,"children":3976},{},[3977],{"type":21,"value":3978},"Familiar Syntax:",{"type":21,"value":3980}," Inspired by linutil, making it easy to learn for Linux users.",{"type":15,"tag":298,"props":3982,"children":3983},{},[3984,3989],{"type":15,"tag":29,"props":3985,"children":3986},{},[3987],{"type":21,"value":3988},"Extensible Design:",{"type":21,"value":3990}," Built with modularity in mind, allowing for easy addition of new utilities.",{"type":15,"tag":298,"props":3992,"children":3993},{},[3994,3999],{"type":15,"tag":29,"props":3995,"children":3996},{},[3997],{"type":21,"value":3998},"Personalized Experience:",{"type":21,"value":4000}," Integrates the best parts of my personal Windows and macOS setups.",{"type":15,"tag":298,"props":4002,"children":4003},{},[4004,4009],{"type":15,"tag":29,"props":4005,"children":4006},{},[4007],{"type":21,"value":4008},"Remote-Friendly:",{"type":21,"value":4010}," Fully functional over SSH, making it ideal for headless systems.",{"type":15,"tag":23,"props":4012,"children":4013},{},[4014,4016,4022],{"type":21,"value":4015},"Honestly, the program is really for myself. But I'm constantly working on improving OSutil and adding new features. There may also be some bugs with some of the scripts (and probably some of the underlying Rust code, as I'm terrible at Rust), but I encourage you to check out the ",{"type":15,"tag":37,"props":4017,"children":4019},{"href":3748,"rel":4018},[41],[4020],{"type":21,"value":4021},"repository",{"type":21,"value":4023},", to report bugs and issues, contribute your own scripts, and help me make it even better!",{"type":15,"tag":688,"props":4025,"children":4026},{},[4027],{"type":21,"value":692},{"title":7,"searchDepth":240,"depth":240,"links":4029},[4030],{"id":3737,"depth":243,"text":3740,"children":4031},[4032,4033,4034],{"id":3840,"depth":240,"text":3843},{"id":3886,"depth":240,"text":3889},{"id":3949,"depth":240,"text":3952},"content:blog:2025:08:osutil.md","blog/2025/08/osutil.md","blog/2025/08/osutil",{"_path":4039,"_dir":3155,"_draft":6,"_partial":6,"_locale":7,"title":4040,"description":4041,"pubDate":4042,"draft":6,"body":4043,"_type":248,"_id":4514,"_source":250,"_file":4515,"_stem":4516,"_extension":253},"/blog/2025/08/the-drumhead","The Drumhead: A Cautionary Tale for Our Times","How a classic Star Trek: TNG episode about a witch hunt reflects our current political climate.","2025-08-17",{"type":12,"children":4044,"toc":4504},[4045,4050,4058,4066,4082,4085,4091,4111,4116,4121,4126,4152,4155,4161,4166,4189,4194,4197,4212,4215,4221,4232,4285,4290,4293,4299,4311,4354,4359,4362,4368,4373,4378,4389,4394,4397,4403,4414,4467,4470,4476,4481,4484,4490,4499],{"type":15,"tag":16,"props":4046,"children":4048},{"id":4047},"the-drumhead-a-cautionary-tale-for-our-times",[4049],{"type":21,"value":4040},{"type":15,"tag":23,"props":4051,"children":4052},{},[4053],{"type":15,"tag":190,"props":4054,"children":4057},{"alt":4055,"src":4056},"Picard in interrogation room","https://qmpdliftraf4pov3.public.blob.vercel-storage.com/Picard_in_interrogation_room-yNYq91n3Ne3pGgq6YAW7ajyAYXrIWd.webp",[],{"type":15,"tag":736,"props":4059,"children":4060},{},[4061],{"type":15,"tag":23,"props":4062,"children":4063},{},[4064],{"type":21,"value":4065},"“The true test of a free society is not how it treats its friends, but how it treats those it fears.”*",{"type":15,"tag":23,"props":4067,"children":4068},{},[4069,4071,4080],{"type":21,"value":4070},"Star Trek: The Next Generation has always been more than just a sci-fi show; it’s a mirror held up to our own world. Few episodes reflect that mirror more clearly than Season 4’s ",{"type":15,"tag":373,"props":4072,"children":4073},{},[4074],{"type":15,"tag":37,"props":4075,"children":4077},{"href":365,"rel":4076},[41],[4078],{"type":21,"value":4079},"The Drumhead",{"type":21,"value":4081}," — a story about how fear, once unleashed, can corrode justice from the inside out.",{"type":15,"tag":68,"props":4083,"children":4084},{},[],{"type":15,"tag":72,"props":4086,"children":4088},{"id":4087},"the-unraveling-of-justice",[4089],{"type":21,"value":4090},"The Unraveling of Justice",{"type":15,"tag":23,"props":4092,"children":4093},{},[4094,4096,4100,4102,4109],{"type":21,"value":4095},"In ",{"type":15,"tag":373,"props":4097,"children":4098},{},[4099],{"type":21,"value":4079},{"type":21,"value":4101},", a Klingon exchange officer is accused of sabotage aboard the Enterprise. Admiral ",{"type":15,"tag":37,"props":4103,"children":4106},{"href":4104,"rel":4105},"https://memory-alpha.fandom.com/wiki/Norah_Satie",[41],[4107],{"type":21,"value":4108},"Norah Satie",{"type":21,"value":4110},", a celebrated Starfleet prosecutor, arrives to investigate. At first, her mission seems noble: protect the ship, uncover the truth.",{"type":15,"tag":23,"props":4112,"children":4113},{},[4114],{"type":21,"value":4115},"But the investigation quickly mutates. Evidence becomes optional. Accusations multiply. Loyalty is measured not by facts, but by how loudly one condemns the accused. Even crew members with spotless records are dragged into suspicion.",{"type":15,"tag":23,"props":4117,"children":4118},{},[4119],{"type":21,"value":4120},"The real danger isn’t the alleged saboteur — it’s the tribunal itself. The principles of due process, presumption of innocence, and fair trial are quietly replaced by fear, loyalty tests, and guilt by association.",{"type":15,"tag":23,"props":4122,"children":4123},{},[4124],{"type":21,"value":4125},"Sound familiar?",{"type":15,"tag":736,"props":4127,"children":4128},{},[4129,4139],{"type":15,"tag":23,"props":4130,"children":4131},{},[4132,4137],{"type":15,"tag":373,"props":4133,"children":4134},{},[4135],{"type":21,"value":4136},"\"The road from legitimate suspicion to rampant paranoia is much shorter than we think.\"",{"type":21,"value":4138}," — Captain Picard",{"type":15,"tag":23,"props":4140,"children":4141},{},[4142,4147,4150],{"type":15,"tag":29,"props":4143,"children":4144},{},[4145],{"type":21,"value":4146},"💬 Core Line of the Episode:",{"type":15,"tag":1999,"props":4148,"children":4149},{},[],{"type":21,"value":4151},"\nThis quote is the heartbeat of the story. It’s not just a warning; it’s a map of how quickly fear can warp justice.",{"type":15,"tag":68,"props":4153,"children":4154},{},[],{"type":15,"tag":72,"props":4156,"children":4158},{"id":4157},"the-warning-from-picard",[4159],{"type":21,"value":4160},"The Warning from Picard",{"type":15,"tag":23,"props":4162,"children":4163},{},[4164],{"type":21,"value":4165},"Picard’s exchanges with Worf in the episode are the moral heart of the story:",{"type":15,"tag":736,"props":4167,"children":4168},{},[4169],{"type":15,"tag":23,"props":4170,"children":4171},{},[4172,4177,4179,4182,4187],{"type":15,"tag":29,"props":4173,"children":4174},{},[4175],{"type":21,"value":4176},"Worf:",{"type":21,"value":4178}," “Sir, the Federation does have enemies! We must seek them out!”",{"type":15,"tag":1999,"props":4180,"children":4181},{},[],{"type":15,"tag":29,"props":4183,"children":4184},{},[4185],{"type":21,"value":4186},"Picard:",{"type":21,"value":4188}," “Oh, yes. That’s how it starts. But the road from legitimate suspicion to rampant paranoia is very much shorter than we think. Something is wrong here, Mr. Worf; I don’t like what we have become.”",{"type":15,"tag":23,"props":4190,"children":4191},{},[4192],{"type":21,"value":4193},"By repeating this idea, the episode drives home that paranoia doesn’t arrive all at once — it creeps in, disguised as vigilance, until it becomes the default lens through which we see the world.",{"type":15,"tag":68,"props":4195,"children":4196},{},[],{"type":15,"tag":4198,"props":4199,"children":4201},"div",{"style":4200},"position: relative; width: 100%; max-width: 560px; margin: 0 auto; padding-bottom: 56.25%; height: 0; overflow: hidden;",[4202,4203],{"type":21,"value":2415},{"type":15,"tag":4204,"props":4205,"children":4211},"iframe",{"src":4206,"title":4207,"allow":4208,"referrerPolicy":4209,"allowFullScreen":2410,"style":4210},"https://www.youtube.com/embed/CbQvCzWkATA?si=uEZsqno7prfnjMyV","YouTube video player","accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share","strict-origin-when-cross-origin","position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none; display: block;",[],{"type":15,"tag":68,"props":4213,"children":4214},{},[],{"type":15,"tag":72,"props":4216,"children":4218},{"id":4217},"echoes-in-2025",[4219],{"type":21,"value":4220},"Echoes in 2025",{"type":15,"tag":23,"props":4222,"children":4223},{},[4224,4226,4230],{"type":21,"value":4225},"In 2025, ",{"type":15,"tag":373,"props":4227,"children":4228},{},[4229],{"type":21,"value":4079},{"type":21,"value":4231}," feels less like a warning from the past and more like a diagnosis of the present. We see it when:",{"type":15,"tag":294,"props":4233,"children":4234},{},[4235,4245,4255,4265,4275],{"type":15,"tag":298,"props":4236,"children":4237},{},[4238,4243],{"type":15,"tag":29,"props":4239,"children":4240},{},[4241],{"type":21,"value":4242},"Social media pile-ons",{"type":21,"value":4244}," destroy reputations before facts emerge.",{"type":15,"tag":298,"props":4246,"children":4247},{},[4248,4253],{"type":15,"tag":29,"props":4249,"children":4250},{},[4251],{"type":21,"value":4252},"Political opponents",{"type":21,"value":4254}," are branded as traitors rather than debated as equals.",{"type":15,"tag":298,"props":4256,"children":4257},{},[4258,4263],{"type":15,"tag":29,"props":4259,"children":4260},{},[4261],{"type":21,"value":4262},"Identity and ancestry",{"type":21,"value":4264}," are used as proof of guilt, echoing Simon Tarses’ persecution for his Romulan heritage.",{"type":15,"tag":298,"props":4266,"children":4267},{},[4268,4273],{"type":15,"tag":29,"props":4269,"children":4270},{},[4271],{"type":21,"value":4272},"Leaders promise to “root out” enemies",{"type":21,"value":4274},", but the definition of “enemy” keeps expanding.",{"type":15,"tag":298,"props":4276,"children":4277},{},[4278,4283],{"type":15,"tag":29,"props":4279,"children":4280},{},[4281],{"type":21,"value":4282},"Algorithms reward outrage",{"type":21,"value":4284},", amplifying fear and suspicion faster than truth can catch up.",{"type":15,"tag":23,"props":4286,"children":4287},{},[4288],{"type":21,"value":4289},"The tools have changed — hashtags instead of courtrooms, viral videos instead of sworn testimony — but the pattern is the same. Fear narrows our vision until we see only threats, and in defending our ideals, we destroy them.",{"type":15,"tag":68,"props":4291,"children":4292},{},[],{"type":15,"tag":72,"props":4294,"children":4296},{"id":4295},"why-we-fall-for-witch-hunts",[4297],{"type":21,"value":4298},"Why We Fall for Witch Hunts",{"type":15,"tag":23,"props":4300,"children":4301},{},[4302,4304,4309],{"type":21,"value":4303},"The episode also reveals ",{"type":15,"tag":373,"props":4305,"children":4306},{},[4307],{"type":21,"value":4308},"why",{"type":21,"value":4310}," this happens — and why it’s so hard to stop:",{"type":15,"tag":294,"props":4312,"children":4313},{},[4314,4324,4334,4344],{"type":15,"tag":298,"props":4315,"children":4316},{},[4317,4322],{"type":15,"tag":29,"props":4318,"children":4319},{},[4320],{"type":21,"value":4321},"Fear unites people",{"type":21,"value":4323}," against a common enemy, real or imagined.",{"type":15,"tag":298,"props":4325,"children":4326},{},[4327,4332],{"type":15,"tag":29,"props":4328,"children":4329},{},[4330],{"type":21,"value":4331},"Moral certainty",{"type":21,"value":4333}," convinces us that extreme measures are justified.",{"type":15,"tag":298,"props":4335,"children":4336},{},[4337,4342],{"type":15,"tag":29,"props":4338,"children":4339},{},[4340],{"type":21,"value":4341},"Simple answers",{"type":21,"value":4343}," feel comforting in a complex world.",{"type":15,"tag":298,"props":4345,"children":4346},{},[4347,4352],{"type":15,"tag":29,"props":4348,"children":4349},{},[4350],{"type":21,"value":4351},"Power is intoxicating",{"type":21,"value":4353},", even for those who start with good intentions.",{"type":15,"tag":23,"props":4355,"children":4356},{},[4357],{"type":21,"value":4358},"Admiral Satie doesn’t see herself as a villain. That’s the danger — witch hunts rarely begin with malice. They begin with conviction.",{"type":15,"tag":68,"props":4360,"children":4361},{},[],{"type":15,"tag":72,"props":4363,"children":4365},{"id":4364},"upholding-core-principles",[4366],{"type":21,"value":4367},"Upholding Core Principles",{"type":15,"tag":23,"props":4369,"children":4370},{},[4371],{"type":21,"value":4372},"Picard resists not because it’s easy, but because it’s necessary. He knows that true security comes from protecting the very freedoms fear tempts us to abandon.",{"type":15,"tag":23,"props":4374,"children":4375},{},[4376],{"type":21,"value":4377},"His final reminder to Worf is as relevant now as it was in the 24th century:",{"type":15,"tag":736,"props":4379,"children":4380},{},[4381],{"type":15,"tag":23,"props":4382,"children":4383},{},[4384],{"type":15,"tag":29,"props":4385,"children":4386},{},[4387],{"type":21,"value":4388},"\"Vigilance, Mr. Worf. That is the price we have to continually pay.\"",{"type":15,"tag":23,"props":4390,"children":4391},{},[4392],{"type":21,"value":4393},"Vigilance doesn’t just mean watching for enemies — it means watching ourselves, our leaders, and our own impulses.",{"type":15,"tag":68,"props":4395,"children":4396},{},[],{"type":15,"tag":72,"props":4398,"children":4400},{"id":4399},"what-we-can-do",[4401],{"type":21,"value":4402},"What We Can Do",{"type":15,"tag":23,"props":4404,"children":4405},{},[4406,4408,4412],{"type":21,"value":4407},"The lesson of ",{"type":15,"tag":373,"props":4409,"children":4410},{},[4411],{"type":21,"value":4079},{"type":21,"value":4413}," isn’t just for governments or institutions — it’s for all of us. In an age where outrage is currency and suspicion spreads at the speed of a click, we can:",{"type":15,"tag":294,"props":4415,"children":4416},{},[4417,4427,4437,4447,4457],{"type":15,"tag":298,"props":4418,"children":4419},{},[4420,4425],{"type":15,"tag":29,"props":4421,"children":4422},{},[4423],{"type":21,"value":4424},"Pause before sharing",{"type":21,"value":4426}," unverified claims.",{"type":15,"tag":298,"props":4428,"children":4429},{},[4430,4435],{"type":15,"tag":29,"props":4431,"children":4432},{},[4433],{"type":21,"value":4434},"Defend due process",{"type":21,"value":4436}," even for people we dislike.",{"type":15,"tag":298,"props":4438,"children":4439},{},[4440,4445],{"type":15,"tag":29,"props":4441,"children":4442},{},[4443],{"type":21,"value":4444},"Seek out opposing viewpoints",{"type":21,"value":4446}," to test our own assumptions.",{"type":15,"tag":298,"props":4448,"children":4449},{},[4450,4455],{"type":15,"tag":29,"props":4451,"children":4452},{},[4453],{"type":21,"value":4454},"Resist leaders",{"type":21,"value":4456}," who promise absolute safety at the cost of liberty.",{"type":15,"tag":298,"props":4458,"children":4459},{},[4460,4465],{"type":15,"tag":29,"props":4461,"children":4462},{},[4463],{"type":21,"value":4464},"Remember",{"type":21,"value":4466}," that disagreement is not disloyalty.",{"type":15,"tag":68,"props":4468,"children":4469},{},[],{"type":15,"tag":72,"props":4471,"children":4473},{"id":4472},"historical-parallels",[4474],{"type":21,"value":4475},"Historical Parallels",{"type":15,"tag":23,"props":4477,"children":4478},{},[4479],{"type":21,"value":4480},"The episode draws on the Salem witch trials, the McCarthy hearings, and countless other moments when fear overpowered reason. History shows us that no society — no matter how advanced — is immune.",{"type":15,"tag":68,"props":4482,"children":4483},{},[],{"type":15,"tag":72,"props":4485,"children":4487},{"id":4486},"the-final-word",[4488],{"type":21,"value":4489},"The Final Word",{"type":15,"tag":23,"props":4491,"children":4492},{},[4493,4497],{"type":15,"tag":373,"props":4494,"children":4495},{},[4496],{"type":21,"value":4079},{"type":21,"value":4498}," is more than a Star Trek episode. It’s a mirror, a warning, and a challenge.",{"type":15,"tag":23,"props":4500,"children":4501},{},[4502],{"type":21,"value":4503},"The line between vigilance and paranoia is razor-thin. Cross it, and we don’t just lose our enemies — we lose ourselves.",{"title":7,"searchDepth":240,"depth":240,"links":4505},[4506,4507,4508,4509,4510,4511,4512,4513],{"id":4087,"depth":243,"text":4090},{"id":4157,"depth":243,"text":4160},{"id":4217,"depth":243,"text":4220},{"id":4295,"depth":243,"text":4298},{"id":4364,"depth":243,"text":4367},{"id":4399,"depth":243,"text":4402},{"id":4472,"depth":243,"text":4475},{"id":4486,"depth":243,"text":4489},"content:blog:2025:08:the-drumhead.md","blog/2025/08/the-drumhead.md","blog/2025/08/the-drumhead",{"_path":4518,"_dir":4519,"_draft":6,"_partial":6,"_locale":7,"title":4520,"description":4521,"pubDate":4522,"draft":6,"body":4523,"_type":248,"_id":4918,"_source":250,"_file":4919,"_stem":4920,"_extension":253},"/blog/2025/09/browsers","09","The Endless Quest for the Perfect Browser: A Chronicle","My ongoing search for the ideal web browser.","2025-09-21",{"type":12,"children":4524,"toc":4904},[4525,4530,4535,4554,4565,4570,4580,4591,4596,4607,4612,4623,4628,4639,4647,4661,4672,4684,4696,4728,4754,4759,4765,4773,4791,4796,4801,4812,4817,4827,4832,4843,4859,4871,4876,4893,4899],{"type":15,"tag":72,"props":4526,"children":4528},{"id":4527},"the-endless-quest-for-the-perfect-browser-a-chronicle",[4529],{"type":21,"value":4520},{"type":15,"tag":23,"props":4531,"children":4532},{},[4533],{"type":21,"value":4534},"The internet, a vast ocean of information and distraction, demands a vessel to\nnavigate its depths. For years, I've been on a personal odyssey, a relentless\nsearch for the \"perfect\" web browser. It's a journey fraught with compromises,\ntrials, and the occasional gem. And like any good quest, it continues.",{"type":15,"tag":23,"props":4536,"children":4537},{},[4538,4540,4545,4547,4552],{"type":21,"value":4539},"A critical factor in this pursuit is ",{"type":15,"tag":29,"props":4541,"children":4542},{},[4543],{"type":21,"value":4544},"cross-platform compatibility",{"type":21,"value":4546},". As\nsomeone who regularly juggles Windows, Mac, and occasionally Linux, a browser\nthat seamlessly works across multiple operating systems is non-negotiable. This\nimmediately rules out certain contenders, like Apple's Safari, which is tied to\nthe macOS ecosystem. Beyond that, I've also found Safari's interface to be too\nrestrictive and its extension ecosystem lacking for my needs. My ideal browser\nmust also embrace the spirit of ",{"type":15,"tag":29,"props":4548,"children":4549},{},[4550],{"type":21,"value":4551},"open source",{"type":21,"value":4553},", prioritizing transparency,\ncommunity-driven development, and user control.",{"type":15,"tag":867,"props":4555,"children":4557},{"id":4556},"the-chrome-conundrum-and-edges-annoyances",[4558,4563],{"type":15,"tag":190,"props":4559,"children":4562},{"alt":4560,"src":4561},"Chrome","https://avatars.githubusercontent.com/u/1778935?s=48&v=4",[],{"type":21,"value":4564}," The Chrome Conundrum and Edge's Annoyances",{"type":15,"tag":23,"props":4566,"children":4567},{},[4568],{"type":21,"value":4569},"Let's be clear: Google Chrome is out of the question for me. While the\nChromium project, which Chrome is built upon, is open source, Google's\nimplementation prioritizes their proprietary ecosystem and data collection. The\nprivacy implications alone are enough to deter me. While the convenience of the\nGoogle ecosystem is undeniable, the thought of my browsing habits being\nconstantly analyzed and monetized is a bridge too far.",{"type":15,"tag":23,"props":4571,"children":4572},{},[4573,4578],{"type":15,"tag":190,"props":4574,"children":4577},{"alt":4575,"src":4576},"Edge","https://avatars.githubusercontent.com/u/11354582?s=48&v=4",[],{"type":21,"value":4579}," Microsoft\nEdge, while certainly faster and more integrated into Windows than its\npredecessor, has its own set of frustrations. Like Chrome, it's based on\nChromium, but its proprietary additions, such as the constant presence of\nCopilot, while potentially useful for some, feel intrusive and often get in the\nway of a seamless browsing experience. It's like having a helpful but overly\nenthusiastic assistant constantly trying to \"optimize\" your workflow.",{"type":15,"tag":867,"props":4581,"children":4583},{"id":4582},"vivaldis-appeal-and-its-downfall",[4584,4589],{"type":15,"tag":190,"props":4585,"children":4588},{"alt":4586,"src":4587},"Vivaldi","https://avatars.githubusercontent.com/u/6242659?s=48&v=4",[],{"type":21,"value":4590}," Vivaldi's Appeal (and its Downfall)",{"type":15,"tag":23,"props":4592,"children":4593},{},[4594],{"type":21,"value":4595},"Vivaldi, with its incredible customization options and power-user features, was\na tantalizing prospect. Built on Chromium and offering a robust set of open-source\ncomponents, the ability to tailor every aspect of the browser to my precise\nneeds was incredibly appealing. However, the sheer amount of setup required\nproved to be its undoing. While I appreciate the flexibility, the initial\ninvestment of time and effort to configure it to my liking was a barrier I\ncouldn't quite overcome. Sometimes, you just want to plug and play.",{"type":15,"tag":867,"props":4597,"children":4599},{"id":4598},"operas-oddities",[4600,4605],{"type":15,"tag":190,"props":4601,"children":4604},{"alt":4602,"src":4603},"Opera","https://avatars.githubusercontent.com/u/191904?s=48&v=4",[],{"type":21,"value":4606}," Opera's Oddities",{"type":15,"tag":23,"props":4608,"children":4609},{},[4610],{"type":21,"value":4611},"Opera, with its sleek design and built-in VPN, seemed promising at first. While\nit leverages some open-source components, its overall direction and business\nmodel quickly became a concern. My experience was quickly soured by what felt\nlike an aggressive push for financial services. The repeated attempts to sell\nme credit cards felt out of place for a web browser and ultimately made me to\nquestion its true intentions, veering away from the open and user-centric model\nI prefer.",{"type":15,"tag":867,"props":4613,"children":4615},{"id":4614},"thorium-a-promising-underdog",[4616,4621],{"type":15,"tag":190,"props":4617,"children":4620},{"alt":4618,"src":4619},"Thorium","https://avatars.githubusercontent.com/u/45863095?s=48&v=4",[],{"type":21,"value":4622}," Thorium: A Promising Underdog",{"type":15,"tag":23,"props":4624,"children":4625},{},[4626],{"type":21,"value":4627},"Thorium holds a special place in my heart precisely because of its pure\nopen-source ethos. It's a no-frills, Chromium-based browser that focuses on\nperformance and a clean interface, stripping away much of the proprietary\nbloat. What I particularly love about it is its ability to easily sync all my\nconfigurations, making it a dream for quick setups across different machines.\nThe only drawback? Its update schedule. It's maintained by one person. While perfectly usable, I prefer a\nbrowser that receives more frequent updates to ensure the latest security\npatches and feature improvements. Still, for a simple, fast browsing experience\nrooted in open-source principles, Thorium remains a strong contender.",{"type":15,"tag":867,"props":4629,"children":4631},{"id":4630},"firefox-the-old-faithful-with-a-catch",[4632,4637],{"type":15,"tag":190,"props":4633,"children":4636},{"alt":4634,"src":4635},"Firefox","https://avatars.githubusercontent.com/u/148481591?s=48&v=4",[],{"type":21,"value":4638}," Firefox: The Old Faithful (with a catch)",{"type":15,"tag":4198,"props":4640,"children":4641},{"style":4200},[4642,4643],{"type":21,"value":2415},{"type":15,"tag":4204,"props":4644,"children":4646},{"src":4645,"title":4207,"allow":4208,"referrerPolicy":4209,"allowFullScreen":2410,"style":4210},"https://www.youtube.com/embed/mmjUlFIaNLE?si=Ig8Gw9Ope-PZ7m8Q",[],{"type":15,"tag":23,"props":4648,"children":4649},{},[4650,4652,4659],{"type":21,"value":4651},"Firefox, the perennial champion of open-source and privacy-focused browsing, is\na solid choice. It's robust, customizable, and champions user privacy by being\nbuilt entirely on open standards and transparent development. However, as\n",{"type":15,"tag":37,"props":4653,"children":4656},{"href":4654,"rel":4655},"https://t3.gg/",[41],[4657],{"type":21,"value":4658},"Theo's",{"type":21,"value":4660}," video pointed out, it often feels like it's playing\ncatch-up in terms of certain modern web features and performance optimizations.\nWhile it's certainly a viable open-source option, I find myself wanting a\nslightly more cutting-edge experience for my daily browsing. Also, in the past year, funding has been an issue which puts Firefox in a precarious place.",{"type":15,"tag":867,"props":4662,"children":4664},{"id":4663},"zen-a-true-open-source-spirit",[4665,4670],{"type":15,"tag":190,"props":4666,"children":4669},{"alt":4667,"src":4668},"Zen","https://avatars.githubusercontent.com/u/165225155?s=48&v=4",[],{"type":21,"value":4671}," Zen: A True Open-Source Spirit",{"type":15,"tag":23,"props":4673,"children":4674},{},[4675,4677,4682],{"type":21,"value":4676},"And so, Zen stands out as a compelling contender. Why Zen? ",{"type":15,"tag":29,"props":4678,"children":4679},{},[4680],{"type":21,"value":4681},"Its dedication to\nbeing truly open source is the primary draw.",{"type":21,"value":4683}," In a landscape dominated by\nproprietary software and opaque data practices, Zen champions transparency,\ncommunity-driven development, and ultimately, greater user control. Knowing\nthat I can inspect its code, contribute to its growth, and rely on a community\nfor its direction gives me unparalleled peace of mind.",{"type":15,"tag":23,"props":4685,"children":4686},{},[4687,4689,4694],{"type":21,"value":4688},"Beyond its open-source foundation, Zen offers other compelling benefits. For my\ncurrent web development endeavors, the ability to experiment with View\nTransitions is a significant advantage. ",{"type":15,"tag":29,"props":4690,"children":4691},{},[4692],{"type":21,"value":4693},"Recently, Zen is actively\nexperimenting with View Transitions.",{"type":21,"value":4695}," My main website extensively uses View\nTransitions to create a smooth, app-like experience, and having a browser that\nallows me to test and preview these features is a game-changer.",{"type":15,"tag":23,"props":4697,"children":4698},{},[4699,4701,4706,4708,4726],{"type":21,"value":4700},"The frustrating part, however, is that ",{"type":15,"tag":29,"props":4702,"children":4703},{},[4704],{"type":21,"value":4705},"View Transitions are not enabled by\ndefault in Zen",{"type":21,"value":4707},". It's the same story with Firefox, which also supports them but\nrequires a trip into the ",{"type":15,"tag":29,"props":4709,"children":4710},{},[4711,4713,4718,4720],{"type":21,"value":4712},"\u003Cmark style=",{"type":15,"tag":4714,"props":4715,"children":4717},"binding",{"value":4716},"backgroundColor: 'white'",[],{"type":21,"value":4719},">",{"type":15,"tag":621,"props":4721,"children":4723},{"className":4722},[],[4724],{"type":21,"value":4725},"about:config",{"type":21,"value":4727},"\nsettings to flip a flag. While I'm grateful that the capability exists, it's an\nannoying extra step that I wish wasn't necessary. It's incredibly satisfying to\nsee my website come alive exactly as intended, without any jarring jumps or\nreloads, but having to manually enable this feature every time feels like a\nmissed opportunity for a smoother out-of-the-box experience.",{"type":15,"tag":23,"props":4729,"children":4730},{},[4731,4733,4738,4740,4745,4747,4752],{"type":21,"value":4732},"Nevertheless, Zen has truly won me over with its thoughtful user experience,\nwhich feels both modern and respectful of user privacy due to its open-source\nfoundation. The ",{"type":15,"tag":29,"props":4734,"children":4735},{},[4736],{"type":21,"value":4737},"unique compact mode",{"type":21,"value":4739}," is a revelation, maximizing screen real\nestate without sacrificing functionality. And for a keyboard shortcut enthusiast\nlike myself, Zen's ",{"type":15,"tag":29,"props":4741,"children":4742},{},[4743],{"type":21,"value":4744},"excellent support for keyboard shortcuts",{"type":21,"value":4746}," makes navigating\nand performing tasks incredibly efficient. Furthermore, the way the ",{"type":15,"tag":29,"props":4748,"children":4749},{},[4750],{"type":21,"value":4751},"sidebar\ngracefully opens when moving the mouse",{"type":21,"value":4753}," towards it adds a touch of fluid\ninteractivity that feels genuinely intuitive. These seemingly small details\ncontribute to a surprisingly refined and enjoyable browsing experience.",{"type":15,"tag":23,"props":4755,"children":4756},{},[4757],{"type":21,"value":4758},"Zen, at its core, feels purpose-built and focused. It's early days, but the\ninitial experience has been remarkably positive. It's a testament to how a true\nopen-source spirit, combined with thoughtful design and useful features, can\nprofoundly impact a user's choice.",{"type":15,"tag":867,"props":4760,"children":4762},{"id":4761},"theos-take-on-browsers-a-different-perspective",[4763],{"type":21,"value":4764},"Theo's Take on Browsers: A Different Perspective",{"type":15,"tag":4198,"props":4766,"children":4767},{"style":4200},[4768,4769],{"type":21,"value":2415},{"type":15,"tag":4204,"props":4770,"children":4772},{"src":4771,"title":4207,"allow":4208,"referrerPolicy":4209,"allowFullScreen":2410,"style":4210},"https://www.youtube.com/embed/m1QrNF9wZao?si=gAGSoAbqaeJBJ9ng",[],{"type":15,"tag":23,"props":4774,"children":4775},{},[4776,4782,4784,4789],{"type":15,"tag":37,"props":4777,"children":4779},{"href":4654,"rel":4778},[41],[4780],{"type":21,"value":4781},"Theo",{"type":21,"value":4783}," recently shared his thoughts on browsers, and while I respect his perspective, I find myself disagreeing with his take on Brave. He's right that there's too much Web3 bloat, but here's the thing—",{"type":15,"tag":29,"props":4785,"children":4786},{},[4787],{"type":21,"value":4788},"it can be removed",{"type":21,"value":4790},". Once you strip away all the crypto wallet nonsense and blockchain features, Brave becomes a genuinely good browser with excellent privacy defaults and ad blocking.",{"type":15,"tag":23,"props":4792,"children":4793},{},[4794],{"type":21,"value":4795},"But then the question becomes: what's the difference between a cleaned-up Brave and Chrome? That's a fair point, and it's one of the reasons I'm still exploring alternatives like Zen and keeping an eye on Helium.",{"type":15,"tag":23,"props":4797,"children":4798},{},[4799],{"type":21,"value":4800},"Speaking of Helium, Theo also promotes it, and while it's still very much alpha, it works well on macOS. I've been testing it on Linux as well, and it shows promise. The project's focus on stripping Chromium down to essentials while maintaining privacy is exactly the kind of approach I appreciate. It's experimental, sure, but that's part of what makes it interesting to follow.",{"type":15,"tag":867,"props":4802,"children":4804},{"id":4803},"brave-still-my-daily-driver-customized-for-privacy",[4805,4810],{"type":15,"tag":190,"props":4806,"children":4809},{"alt":4807,"src":4808},"Brave","https://avatars.githubusercontent.com/u/12301619?s=48&v=4",[],{"type":21,"value":4811}," Brave: Still My Daily Driver (customized for privacy)",{"type":15,"tag":23,"props":4813,"children":4814},{},[4815],{"type":21,"value":4816},"For a considerable stretch of time, Brave has been my daily driver, and it\ncontinues to be my primary choice despite its quirks. Its built-in ad blocker\nand strong privacy features were a huge draw, offering a cleaner, less\ncluttered browsing experience. The promise of a more secure web, free from\ninvasive trackers, resonated deeply with my desire for a less surveilled\nonline existence. While Brave has its roots in open source, its direction began\nto diverge from my core preferences with the integration of \"Web3\" features.",{"type":15,"tag":23,"props":4818,"children":4819},{},[4820,4822],{"type":21,"value":4821},"Over time, a creeping sense of unease began to settle in as the incessant push\nfor \"Web3\" features, the integrated crypto wallet, and the general feeling of\nbeing constantly nudged towards their blockchain ecosystem became a significant\npoint of contention. ",{"type":15,"tag":29,"props":4823,"children":4824},{},[4825],{"type":21,"value":4826},"However, despite these additions, I've found that the\nWeb3 components can be easily disabled or ignored through Brave's settings,\nallowing it to function as a solid, privacy-focused alternative to Chrome\nwithout the inherent privacy concerns of Google's ecosystem. While some might\nfind the mere presence of these technologies distracting, I personally\nappreciate Brave's commitment to blocking ads and trackers by default, making\nit a viable option for those seeking a more private browsing experience once it's\ncustomized to strip out the Web3 bloat.",{"type":15,"tag":23,"props":4828,"children":4829},{},[4830],{"type":21,"value":4831},"Brave, once its Web3 features are toned down and it's configured to my liking,\ndelivers a remarkably efficient and focused browsing experience. It's a\ntestament to how a strong focus on privacy, combined with thoughtful design and\nuseful features, can profoundly impact a user's choice, even when a bit of initial\ncustomization is required.",{"type":15,"tag":867,"props":4833,"children":4835},{"id":4834},"helium-the-experimental-frontier",[4836,4841],{"type":15,"tag":190,"props":4837,"children":4840},{"alt":4838,"src":4839},"Helium","https://avatars.githubusercontent.com/u/152056268?s=48&v=4",[],{"type":21,"value":4842}," Helium: The Experimental Frontier",{"type":15,"tag":23,"props":4844,"children":4845},{},[4846,4848,4857],{"type":21,"value":4847},"Recently, my curiosity led me to experiment with a new browser: ",{"type":15,"tag":37,"props":4849,"children":4852},{"href":4850,"rel":4851},"https://github.com/imputnet/helium-chromium.git",[41],[4853],{"type":15,"tag":29,"props":4854,"children":4855},{},[4856],{"type":21,"value":4838},{"type":21,"value":4858},", a very alpha-stage fork of Chromium. Helium is still in its early days, but its open-source foundation and willingness to break from the mainstream make it an intriguing project to watch.",{"type":15,"tag":23,"props":4860,"children":4861},{},[4862,4864,4869],{"type":21,"value":4863},"A couple of important caveats: ",{"type":15,"tag":29,"props":4865,"children":4866},{},[4867],{"type":21,"value":4868},"Helium is currently only available for Mac, and you have to build it from source yourself",{"type":21,"value":4870},"—there are no pre-built binaries yet. This makes it a project best suited for tinkerers and developers who are comfortable with the command line and compiling software. And, obviously, since it’s not cross-platform right now, it doesn’t fit my need to seamlessly switch between operating systems.",{"type":15,"tag":23,"props":4872,"children":4873},{},[4874],{"type":21,"value":4875},"What sets Helium apart is its focus on stripping Chromium down to the essentials, aiming for a lightweight, privacy-respecting experience without the usual bloat. The project is still highly experimental—features are in flux, and stability can be hit or miss—but that’s part of the appeal for me. There’s a certain excitement in using a browser that’s on the cutting edge, even if it means dealing with the occasional bug or missing feature.",{"type":15,"tag":23,"props":4877,"children":4878},{},[4879,4884,4886,4892],{"type":15,"tag":29,"props":4880,"children":4881},{},[4882],{"type":21,"value":4883},"For now, Helium isn’t quite ready to be my daily driver, so I’m still relying on Brave for my day-to-day browsing.",{"type":21,"value":4885}," Still, I’m keeping a close eye on Helium’s development. Its open approach and willingness to rethink browser fundamentals make it a promising addition to the ever-evolving landscape of web browsers. If you’re interested in tinkering or contributing, you can check out the project on ",{"type":15,"tag":37,"props":4887,"children":4889},{"href":4850,"rel":4888},[41],[4890],{"type":21,"value":4891},"GitHub",{"type":21,"value":462},{"type":15,"tag":867,"props":4894,"children":4896},{"id":4895},"the-never-ending-story",[4897],{"type":21,"value":4898},"The Never-Ending Story",{"type":15,"tag":23,"props":4900,"children":4901},{},[4902],{"type":21,"value":4903},"The quest for the perfect web browser is, perhaps, a never-ending one. Technology\nevolves, new features emerge, and our needs as users shift. For now, Brave holds\nthe crown as my daily driver, primarily due to its strong privacy commitment (once\ncustomized to remove Web3 elements) and its efficient browsing experience. Zen\nremains a strong contender for its pure open-source spirit and excellent\ndevelopment features. But I know, deep down, that the search will continue. And\nthat, in itself, is part of the fun.",{"title":7,"searchDepth":240,"depth":240,"links":4905},[4906],{"id":4527,"depth":243,"text":4520,"children":4907},[4908,4909,4910,4911,4912,4913,4914,4915,4916,4917],{"id":4556,"depth":240,"text":4564},{"id":4582,"depth":240,"text":4590},{"id":4598,"depth":240,"text":4606},{"id":4614,"depth":240,"text":4622},{"id":4630,"depth":240,"text":4638},{"id":4663,"depth":240,"text":4671},{"id":4761,"depth":240,"text":4764},{"id":4803,"depth":240,"text":4811},{"id":4834,"depth":240,"text":4842},{"id":4895,"depth":240,"text":4898},"content:blog:2025:09:browsers.md","blog/2025/09/browsers.md","blog/2025/09/browsers",{"_path":4922,"_dir":4519,"_draft":6,"_partial":6,"_locale":7,"title":4923,"description":4924,"pubDate":4925,"draft":6,"body":4926,"_type":248,"_id":5331,"_source":250,"_file":5332,"_stem":5333,"_extension":253},"/blog/2025/09/distros","My Thoughts on Windows, macOS, and Linux Distros","A quick review of the operating systems and Linux distributions I've tested, and what stands out about each.","2025-09-07",{"type":12,"children":4927,"toc":5318},[4928,4934,4939,4953,4958,4961,4971,4976,4981,5005,5017,5020,5031,5036,5060,5063,5074,5079,5112,5115,5126,5131,5134,5145,5150,5155,5191,5196,5199,5210,5215,5218,5229,5234,5237,5248,5253,5256,5267,5272,5275,5286,5291,5294,5305,5310,5313],{"type":15,"tag":16,"props":4929,"children":4931},{"id":4930},"operating-systems",[4932],{"type":21,"value":4933},"Operating Systems",{"type":15,"tag":23,"props":4935,"children":4936},{},[4937],{"type":21,"value":4938},"Over the course of contributing to open source projects, testing scripts, and just tinkering, I’ve had the chance to try out a variety of Linux distributions—as well as macOS and Windows. Each one has its own strengths, quirks, and communities.",{"type":15,"tag":23,"props":4940,"children":4941},{},[4942,4944,4951],{"type":21,"value":4943},"To help manage and streamline my setups across all these systems, I built a small utility I call ",{"type":15,"tag":29,"props":4945,"children":4946},{},[4947],{"type":15,"tag":37,"props":4948,"children":4949},{"href":3729},[4950],{"type":21,"value":3752},{"type":21,"value":4952},". It’s been a huge help in keeping my environments consistent and easier to configure.",{"type":15,"tag":23,"props":4954,"children":4955},{},[4956],{"type":21,"value":4957},"Here’s a quick rundown of my thoughts on each system I’ve used so far.",{"type":15,"tag":68,"props":4959,"children":4960},{},[],{"type":15,"tag":72,"props":4962,"children":4964},{"id":4963},"windows",[4965,4967],{"type":21,"value":4966},"Windows ",{"type":15,"tag":190,"props":4968,"children":4970},{"alt":2102,"src":4969},"https://avatars.githubusercontent.com/u/6154722?s=48&v=4",[],{"type":15,"tag":23,"props":4972,"children":4973},{},[4974],{"type":21,"value":4975},"Windows is the OS I use the most—it’s my main laptop system and also what I run on my desktop. It works well for games, which is a big reason I stick with it, but honestly, it’s pretty awful for almost everything else because of all the bloat it comes with now.",{"type":15,"tag":23,"props":4977,"children":4978},{},[4979],{"type":21,"value":4980},"To make it usable, I rely on a few key tools:",{"type":15,"tag":294,"props":4982,"children":4983},{},[4984,4995,5000],{"type":15,"tag":298,"props":4985,"children":4986},{},[4987,4993],{"type":15,"tag":37,"props":4988,"children":4990},{"href":2327,"rel":4989},[41],[4991],{"type":21,"value":4992},"Chris Titus Tech’s utility",{"type":21,"value":4994}," to debloat and strip out unnecessary junk",{"type":15,"tag":298,"props":4996,"children":4997},{},[4998],{"type":21,"value":4999},"A custom install file to cut down on the garbage that ships with Windows",{"type":15,"tag":298,"props":5001,"children":5002},{},[5003],{"type":21,"value":5004},"AutoHotKey to create shortcuts and workarounds that make the system faster and more efficient",{"type":15,"tag":23,"props":5006,"children":5007},{},[5008,5010,5015],{"type":21,"value":5009},"On my desktop, I also use ",{"type":15,"tag":29,"props":5011,"children":5012},{},[5013],{"type":21,"value":5014},"WSL (Windows Subsystem for Linux)",{"type":21,"value":5016},", which makes development much easier by giving me a Linux-like environment without leaving Windows. I also use Windows for work, and while it’s not my favorite OS, these tweaks and workarounds make it functional enough for my daily workflow.",{"type":15,"tag":68,"props":5018,"children":5019},{},[],{"type":15,"tag":72,"props":5021,"children":5023},{"id":5022},"macos",[5024,5026],{"type":21,"value":5025},"macOS ",{"type":15,"tag":190,"props":5027,"children":5030},{"alt":5028,"src":5029},"Apple","https://avatars.githubusercontent.com/u/10639145?s=48&v=4",[],{"type":15,"tag":23,"props":5032,"children":5033},{},[5034],{"type":21,"value":5035},"I like macOS, though it has some odd presets—like overly flashy animations—that I usually tone down. What really makes it shine for me are the laptops themselves: long battery life, great build quality, and a smooth developer experience.",{"type":15,"tag":23,"props":5037,"children":5038},{},[5039,5046,5048,5058],{"type":15,"tag":37,"props":5040,"children":5043},{"href":5041,"rel":5042},"https://brew.sh/",[41],[5044],{"type":21,"value":5045},"Homebrew",{"type":21,"value":5047}," makes installing packages easy, and ",{"type":15,"tag":37,"props":5049,"children":5052},{"href":5050,"rel":5051},"https://www.raycast.com/",[41],[5053],{"type":15,"tag":29,"props":5054,"children":5055},{},[5056],{"type":21,"value":5057},"Raycast",{"type":21,"value":5059}," has become essential for me to use macOS quickly and efficiently. While I wouldn’t call it perfect, macOS is a great balance of polish and practicality, especially on Apple’s hardware.",{"type":15,"tag":68,"props":5061,"children":5062},{},[],{"type":15,"tag":72,"props":5064,"children":5066},{"id":5065},"debian",[5067,5069],{"type":21,"value":5068},"Debian ",{"type":15,"tag":190,"props":5070,"children":5073},{"alt":5071,"src":5072},"Debian","https://avatars.githubusercontent.com/u/1854028?s=48&v=4",[],{"type":15,"tag":23,"props":5075,"children":5076},{},[5077],{"type":21,"value":5078},"Debian is solid and everywhere. It’s the base for so many other distributions, and you can always count on it to be stable. However, the base Debian system is often behind on package versions, which can be frustrating if you want the latest software. Although the latest Debian 13 just came out so it does have a lot of newer packages, they’ll be outdated before too long.",{"type":15,"tag":23,"props":5080,"children":5081},{},[5082,5084,5089,5091,5096,5098,5103,5105,5110],{"type":21,"value":5083},"That said, Debian is what I trust for my ",{"type":15,"tag":29,"props":5085,"children":5086},{},[5087],{"type":21,"value":5088},"server setup",{"type":21,"value":5090},". I run it through ",{"type":15,"tag":29,"props":5092,"children":5093},{},[5094],{"type":21,"value":5095},"Proxmox",{"type":21,"value":5097}," for virtualization and use it as the base for my ",{"type":15,"tag":29,"props":5099,"children":5100},{},[5101],{"type":21,"value":5102},"Docker containers",{"type":21,"value":5104},". I also run ",{"type":15,"tag":29,"props":5106,"children":5107},{},[5108],{"type":21,"value":5109},"TrueNAS SCALE",{"type":21,"value":5111},", which is Debian-based, for managing storage. For me, Debian’s stability makes it the perfect choice for server environments, even if it’s not the most exciting distro on the desktop.",{"type":15,"tag":68,"props":5113,"children":5114},{},[],{"type":15,"tag":72,"props":5116,"children":5118},{"id":5117},"ubuntu",[5119,5121],{"type":21,"value":5120},"Ubuntu ",{"type":15,"tag":190,"props":5122,"children":5125},{"alt":5123,"src":5124},"Ubuntu","https://avatars.githubusercontent.com/u/4604537?s=48&v=4",[],{"type":15,"tag":23,"props":5127,"children":5128},{},[5129],{"type":21,"value":5130},"Ubuntu is based on Debian but is more up-to-date. It’s probably the most popular Linux desktop, but honestly, the desktop experience leaves a lot to be desired. It’s great for servers and gets the job done, but I find the desktop environment a bit lacking.",{"type":15,"tag":68,"props":5132,"children":5133},{},[],{"type":15,"tag":72,"props":5135,"children":5137},{"id":5136},"arch",[5138,5140],{"type":21,"value":5139},"Arch ",{"type":15,"tag":190,"props":5141,"children":5144},{"alt":5142,"src":5143},"Arch","https://avatars.githubusercontent.com/u/4673648?s=48&v=4",[],{"type":15,"tag":23,"props":5146,"children":5147},{},[5148],{"type":21,"value":5149},"Arch is the definition of bleeding edge. It has all the packages you could ever want, and with the AUR (Arch User Repository), you can install just about anything.",{"type":15,"tag":23,"props":5151,"children":5152},{},[5153],{"type":21,"value":5154},"I use Arch in two ways:",{"type":15,"tag":294,"props":5156,"children":5157},{},[5158,5179],{"type":15,"tag":298,"props":5159,"children":5160},{},[5161,5163,5168,5170,5177],{"type":21,"value":5162},"On a ",{"type":15,"tag":29,"props":5164,"children":5165},{},[5166],{"type":21,"value":5167},"play laptop",{"type":21,"value":5169},", I run ",{"type":15,"tag":37,"props":5171,"children":5174},{"href":5172,"rel":5173},"https://omarchy.org/",[41],[5175],{"type":21,"value":5176},"Omarchy by DHH",{"type":21,"value":5178},", which makes Arch surprisingly easy and fun to use.",{"type":15,"tag":298,"props":5180,"children":5181},{},[5182,5184,5189],{"type":21,"value":5183},"On my ",{"type":15,"tag":29,"props":5185,"children":5186},{},[5187],{"type":21,"value":5188},"desktop",{"type":21,"value":5190},", I dual-boot Arch alongside Windows, giving me the best of both worlds: Windows for games and work, and Arch for tinkering and development.",{"type":15,"tag":23,"props":5192,"children":5193},{},[5194],{"type":21,"value":5195},"The downside is that Arch is easy to break if you’re not careful, especially with frequent updates. But that’s also part of the fun—it’s a distro that rewards learning and experimentation.",{"type":15,"tag":68,"props":5197,"children":5198},{},[],{"type":15,"tag":72,"props":5200,"children":5202},{"id":5201},"fedora",[5203,5205],{"type":21,"value":5204},"Fedora ",{"type":15,"tag":190,"props":5206,"children":5209},{"alt":5207,"src":5208},"Fedora","https://avatars.githubusercontent.com/u/3316637?s=84&v=4",[],{"type":15,"tag":23,"props":5211,"children":5212},{},[5213],{"type":21,"value":5214},"Fedora is another solid choice, and it’s always up-to-date. However, I’m a bit wary of it because of Red Hat’s recent moves towards closed source. Still, it’s a great distro for those who want the latest features and a polished experience.",{"type":15,"tag":68,"props":5216,"children":5217},{},[],{"type":15,"tag":72,"props":5219,"children":5221},{"id":5220},"opensuse",[5222,5224],{"type":21,"value":5223},"openSUSE ",{"type":15,"tag":190,"props":5225,"children":5228},{"alt":5226,"src":5227},"openSUSE","https://avatars.githubusercontent.com/u/623819?s=48&v=4",[],{"type":15,"tag":23,"props":5230,"children":5231},{},[5232],{"type":21,"value":5233},"openSUSE feels a bit slow compared to others, but it has a good community and is well-maintained. It uses RPM packages like Fedora, and it’s a solid choice if you want something a little different.",{"type":15,"tag":68,"props":5235,"children":5236},{},[],{"type":15,"tag":72,"props":5238,"children":5240},{"id":5239},"solus",[5241,5243],{"type":21,"value":5242},"Solus ",{"type":15,"tag":190,"props":5244,"children":5247},{"alt":5245,"src":5246},"Solus","https://avatars.githubusercontent.com/u/6185495?s=48&v=4",[],{"type":15,"tag":23,"props":5249,"children":5250},{},[5251],{"type":21,"value":5252},"Solus is a niche distro focused on desktop environments. It has a friendly community and is well put together, but it’s not as standard as the other distros. You pretty much have to use their package manager, but they have almost everything you’d need.",{"type":15,"tag":68,"props":5254,"children":5255},{},[],{"type":15,"tag":72,"props":5257,"children":5259},{"id":5258},"void",[5260,5262],{"type":21,"value":5261},"Void ",{"type":15,"tag":190,"props":5263,"children":5266},{"alt":5264,"src":5265},"Void","https://avatars.githubusercontent.com/u/37247796?s=48&v=4",[],{"type":15,"tag":23,"props":5268,"children":5269},{},[5270],{"type":21,"value":5271},"Void Linux is small, fast, and updated regularly. It uses the runit init system instead of systemd, which helps it boot quickly and stay lightweight. It’s flexible and a great choice if you want something minimal and different.",{"type":15,"tag":68,"props":5273,"children":5274},{},[],{"type":15,"tag":72,"props":5276,"children":5278},{"id":5277},"alpine",[5279,5281],{"type":21,"value":5280},"Alpine ",{"type":15,"tag":190,"props":5282,"children":5285},{"alt":5283,"src":5284},"Alpine","https://avatars.githubusercontent.com/u/7600810?s=48&v=4",[],{"type":15,"tag":23,"props":5287,"children":5288},{},[5289],{"type":21,"value":5290},"Alpine is very small and also uses OpenRC for init, making it fast and efficient. It’s popular for Docker containers and server use, but you can run a desktop environment on it if you want. It’s a great choice for lightweight systems.",{"type":15,"tag":68,"props":5292,"children":5293},{},[],{"type":15,"tag":72,"props":5295,"children":5297},{"id":5296},"nixos",[5298,5300],{"type":21,"value":5299},"NixOS ",{"type":15,"tag":190,"props":5301,"children":5304},{"alt":5302,"src":5303},"NixOS","https://avatars.githubusercontent.com/u/487568?s=48&v=4",[],{"type":15,"tag":23,"props":5306,"children":5307},{},[5308],{"type":21,"value":5309},"NixOS is unique because it’s declarative: you define your entire system configuration in a single file, and the system builds itself from that. This makes it incredibly easy to replicate your setup on another machine. However, installing and uninstalling software isn’t as straightforward as with other distros, and there’s a bit of a learning curve.",{"type":15,"tag":68,"props":5311,"children":5312},{},[],{"type":15,"tag":23,"props":5314,"children":5315},{},[5316],{"type":21,"value":5317},"Every OS has its own vibe and use case. I’ve enjoyed exploring them all, and I’ll probably keep hopping around as I keep learning and contributing. If you’re curious about any of these, I recommend giving them a try and seeing which one fits your workflow best!",{"title":7,"searchDepth":240,"depth":240,"links":5319},[5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330],{"id":4963,"depth":243,"text":4966},{"id":5022,"depth":243,"text":5025},{"id":5065,"depth":243,"text":5068},{"id":5117,"depth":243,"text":5120},{"id":5136,"depth":243,"text":5139},{"id":5201,"depth":243,"text":5204},{"id":5220,"depth":243,"text":5223},{"id":5239,"depth":243,"text":5242},{"id":5258,"depth":243,"text":5261},{"id":5277,"depth":243,"text":5280},{"id":5296,"depth":243,"text":5299},"content:blog:2025:09:distros.md","blog/2025/09/distros.md","blog/2025/09/distros",{"_path":5335,"_dir":4519,"_draft":6,"_partial":6,"_locale":7,"title":5336,"description":5337,"pubDate":5338,"draft":6,"body":5339,"_type":248,"_id":5581,"_source":250,"_file":5582,"_stem":5583,"_extension":253},"/blog/2025/09/frasier","Why Frasier Still Holds Up After 30 Years","A look at the wit, characters, and timeless comedy that make *Frasier* endure.","2025-09-14",{"type":12,"children":5340,"toc":5573},[5341,5354,5377,5382,5385,5391,5399,5425,5428,5434,5442,5461,5464,5470,5478,5489,5492,5498,5506,5511,5514,5520,5528,5540,5543,5549,5557,5562],{"type":15,"tag":16,"props":5342,"children":5344},{"id":5343},"why-frasier-still-holds-up",[5345,5347,5352],{"type":21,"value":5346},"Why ",{"type":15,"tag":373,"props":5348,"children":5349},{},[5350],{"type":21,"value":5351},"Frasier",{"type":21,"value":5353}," Still Holds Up",{"type":15,"tag":23,"props":5355,"children":5356},{},[5357,5359,5364,5365,5369,5371,5375],{"type":21,"value":5358},"I grew up with ",{"type":15,"tag":373,"props":5360,"children":5361},{},[5362],{"type":21,"value":5363},"Cheers",{"type":21,"value":334},{"type":15,"tag":373,"props":5366,"children":5367},{},[5368],{"type":21,"value":5351},{"type":21,"value":5370}," playing in the background because my parents loved them. At the time, I didn’t pay much attention, but by high school I found myself watching ",{"type":15,"tag":373,"props":5372,"children":5373},{},[5374],{"type":21,"value":5351},{"type":21,"value":5376}," on my own. What surprised me then, and still surprises me now, is how well the show holds up more than thirty years later.",{"type":15,"tag":23,"props":5378,"children":5379},{},[5380],{"type":21,"value":5381},"The humor is sharp and layered. On one hand, you get the quick wit and highbrow references that make you feel like you’re in on an inside joke. On the other, the physical comedy is so perfectly executed that it never feels dated. And at the center of it all is Frasier Crane himself, usually guided by his moral compass, though it has a tendency to wobble when pride or ego gets in the way. That tension is part of what makes him so human.",{"type":15,"tag":68,"props":5383,"children":5384},{},[],{"type":15,"tag":72,"props":5386,"children":5388},{"id":5387},"frasier-crane",[5389],{"type":21,"value":5390},"Frasier Crane",{"type":15,"tag":23,"props":5392,"children":5393},{},[5394],{"type":15,"tag":190,"props":5395,"children":5398},{"alt":5396,"src":5397},"Frasier at his radio booth","https://www.looper.com/img/gallery/the-13-best-radio-call-ins-on-frasier/intro-1677262217.jpg",[],{"type":15,"tag":23,"props":5400,"children":5401},{},[5402,5404,5409,5411,5416,5418,5423],{"type":21,"value":5403},"Frasier is the anchor of the show, a man of refinement and intellect who often gets tripped up by his own pride. One of the best examples is ",{"type":15,"tag":373,"props":5405,"children":5406},{},[5407],{"type":21,"value":5408},"They’re Playing Our Song",{"type":21,"value":5410},", where he’s asked to compose a simple jingle for his radio show but instead creates a full symphonic production. It is overblown, self-indulgent, and yet somehow still charming. Episodes like ",{"type":15,"tag":373,"props":5412,"children":5413},{},[5414],{"type":21,"value":5415},"When a Man Loves Two Women",{"type":21,"value":5417},", where his indecision between two women spirals into chaos, also highlight how his flaws are often the source of the best comedy. And then there is ",{"type":15,"tag":373,"props":5419,"children":5420},{},[5421],{"type":21,"value":5422},"Room Service",{"type":21,"value":5424},", where he and Niles get caught in a hilariously awkward tangle with Lilith. The farce, the timing, and the way the brothers unravel together make it one of the show’s funniest half-hours.",{"type":15,"tag":68,"props":5426,"children":5427},{},[],{"type":15,"tag":72,"props":5429,"children":5431},{"id":5430},"niles-crane",[5432],{"type":21,"value":5433},"Niles Crane",{"type":15,"tag":23,"props":5435,"children":5436},{},[5437],{"type":15,"tag":190,"props":5438,"children":5441},{"alt":5439,"src":5440},"Niles in Three Valentines","https://i.redd.it/niles-story-on-three-valentines-s6-e14-may-be-the-best-v0-m2fe4hhfgifa1.jpg?width=1280&format=pjpg&auto=webp&s=b432d799f86a83efbd4394e1a0510478a45a5b31",[],{"type":15,"tag":23,"props":5443,"children":5444},{},[5445,5447,5452,5454,5459],{"type":21,"value":5446},"If Frasier is dramatic, Niles is meticulous. His fastidiousness and unspoken love for Daphne create some of the show’s most heartfelt moments. ",{"type":15,"tag":373,"props":5448,"children":5449},{},[5450],{"type":21,"value":5451},"Moon Dance",{"type":21,"value":5453}," captures this perfectly, when a ballroom dance between the two says more about his feelings than words ever could. And then there is ",{"type":15,"tag":373,"props":5455,"children":5456},{},[5457],{"type":21,"value":5458},"Three Valentines",{"type":21,"value":5460},", which might be the single best showcase of David Hyde Pierce’s physical comedy. In a nearly wordless sequence, Niles prepares for a date, only for everything to go wrong in escalating fashion. It is a masterclass in timing, precision, and pure comedic talent.",{"type":15,"tag":68,"props":5462,"children":5463},{},[],{"type":15,"tag":72,"props":5465,"children":5467},{"id":5466},"daphne-moon",[5468],{"type":21,"value":5469},"Daphne Moon",{"type":15,"tag":23,"props":5471,"children":5472},{},[5473],{"type":15,"tag":190,"props":5474,"children":5477},{"alt":5475,"src":5476},"Daphne and Niles dancing","https://pbs.twimg.com/media/GFq50nFXEAA3Uuo?format=jpg&name=small",[],{"type":15,"tag":23,"props":5479,"children":5480},{},[5481,5483,5487],{"type":21,"value":5482},"Daphne brings warmth and eccentricity to the Crane household. As Martin’s live-in physical therapist, she grounds the show with her quirky stories and down-to-earth perspective. Her relationship with Niles is one of the most rewarding long arcs in sitcom history, and her presence balances out the Crane brothers’ pretentiousness. Episodes like ",{"type":15,"tag":373,"props":5484,"children":5485},{},[5486],{"type":21,"value":5451},{"type":21,"value":5488}," remind us how central she is to the emotional core of the show, even when the comedy is at its sharpest.",{"type":15,"tag":68,"props":5490,"children":5491},{},[],{"type":15,"tag":72,"props":5493,"children":5495},{"id":5494},"martin-crane",[5496],{"type":21,"value":5497},"Martin Crane",{"type":15,"tag":23,"props":5499,"children":5500},{},[5501],{"type":15,"tag":190,"props":5502,"children":5505},{"alt":5503,"src":5504},"Martin in his recliner with Eddie","https://preview.redd.it/ji1ofqu4vke01.jpg?width=1080&crop=smart&auto=webp&s=5e19f7f830b089dcfc0d4cf62075c8c7335d165d",[],{"type":15,"tag":23,"props":5507,"children":5508},{},[5509],{"type":21,"value":5510},"Martin is the heart of the show. A retired cop with a bum hip, he is the complete opposite of his sons. Where they are pretentious, he is practical. Where they are verbose, he is blunt. His relationship with Frasier is the emotional backbone of the series, showing how love and respect can exist even when two people see the world in completely different ways. His presence also grounds the show, keeping it from floating away on the Crane brothers’ lofty ideals.",{"type":15,"tag":68,"props":5512,"children":5513},{},[],{"type":15,"tag":72,"props":5515,"children":5517},{"id":5516},"roz-doyle",[5518],{"type":21,"value":5519},"Roz Doyle",{"type":15,"tag":23,"props":5521,"children":5522},{},[5523],{"type":15,"tag":190,"props":5524,"children":5527},{"alt":5525,"src":5526},"Roz at the radio station","https://www.indiewire.com/wp-content/uploads/2023/04/LAND_16_9.jpg",[],{"type":15,"tag":23,"props":5529,"children":5530},{},[5531,5533,5538],{"type":21,"value":5532},"Roz, Frasier’s producer, is sharp, witty, and unafraid to call him out. She is the perfect foil to his pompousness, and their friendship is one of the most underrated parts of the show. Roz keeps Frasier grounded, reminding him that real life does not always fit into neat, intellectual boxes. One of her best episodes is ",{"type":15,"tag":373,"props":5534,"children":5535},{},[5536],{"type":21,"value":5537},"Halloween",{"type":21,"value":5539},", when she discovers she is pregnant. The secret spreads through the party in true farcical fashion, and Roz’s mix of vulnerability and strength shines through. It is a reminder that while she is often the comic counterbalance, she is also one of the show’s most human characters.",{"type":15,"tag":68,"props":5541,"children":5542},{},[],{"type":15,"tag":72,"props":5544,"children":5546},{"id":5545},"why-it-still-resonates",[5547],{"type":21,"value":5548},"Why It Still Resonates",{"type":15,"tag":23,"props":5550,"children":5551},{},[5552],{"type":15,"tag":190,"props":5553,"children":5556},{"alt":5554,"src":5555},"Frasier cast group photo","https://hips.hearstapps.com/hmg-prod/images/season-1-pictured-david-hyde-pierce-as-doctor-niles-crane-news-photo-1687990163.jpg",[],{"type":15,"tag":23,"props":5558,"children":5559},{},[5560],{"type":21,"value":5561},"Working in mental health, I can’t help but see the contrast between my own world and Frasier’s. He dispenses advice from the comfort of a radio booth, while I am in the trenches of community-based mental health. They are two very different ends of the spectrum, but the struggles he faces, balancing empathy, boundaries, and his own flaws, still resonate.",{"type":15,"tag":23,"props":5563,"children":5564},{},[5565,5567,5571],{"type":21,"value":5566},"It is no surprise the show won so many awards. The writing is tight, the acting is consistently excellent, and the chemistry between the cast makes every episode feel alive. ",{"type":15,"tag":373,"props":5568,"children":5569},{},[5570],{"type":21,"value":5351},{"type":21,"value":5572}," is not just a sitcom from the 90s. It is a reminder that smart, character-driven comedy can stand the test of time.",{"title":7,"searchDepth":240,"depth":240,"links":5574},[5575,5576,5577,5578,5579,5580],{"id":5387,"depth":243,"text":5390},{"id":5430,"depth":243,"text":5433},{"id":5466,"depth":243,"text":5469},{"id":5494,"depth":243,"text":5497},{"id":5516,"depth":243,"text":5519},{"id":5545,"depth":243,"text":5548},"content:blog:2025:09:frasier.md","blog/2025/09/frasier.md","blog/2025/09/frasier",{"_path":5585,"_dir":4519,"_draft":6,"_partial":6,"_locale":7,"title":5586,"description":5587,"pubDate":5588,"draft":6,"body":5589,"_type":248,"_id":5781,"_source":250,"_file":5782,"_stem":5783,"_extension":253},"/blog/2025/09/long-way","Why I Love the Long Way Series","Inspired by Ewan McGregor’s global motorcycle adventures.","2025-09-28",{"type":12,"children":5590,"toc":5772},[5591,5596,5602,5607,5615,5618,5624,5643,5650,5662,5665,5671,5683,5690,5693,5699,5711,5718,5721,5727,5732,5735,5741,5752,5755,5761],{"type":15,"tag":16,"props":5592,"children":5594},{"id":5593},"why-i-love-the-long-way-series",[5595],{"type":21,"value":5586},{"type":15,"tag":72,"props":5597,"children":5599},{"id":5598},"the-call-of-the-open-road",[5600],{"type":21,"value":5601},"The Call of the Open Road",{"type":15,"tag":23,"props":5603,"children":5604},{},[5605],{"type":21,"value":5606},"There’s something magical about the idea of riding a motorcycle around the world. The open road, the ever-changing landscapes, the thrill of the unknown, and the raw exposure to the elements—these are the things that have always called to me.",{"type":15,"tag":23,"props":5608,"children":5609},{},[5610],{"type":15,"tag":190,"props":5611,"children":5614},{"alt":5612,"src":5613},"Insert a photo of a motorcycle on an open road here","https://upload.wikimedia.org/wikipedia/commons/a/ad/TariatLandscape.jpg",[],{"type":15,"tag":68,"props":5616,"children":5617},{},[],{"type":15,"tag":72,"props":5619,"children":5621},{"id":5620},"my-journey-with-the-series",[5622],{"type":21,"value":5623},"My Journey with the Series",{"type":15,"tag":23,"props":5625,"children":5626},{},[5627,5629,5634,5636,5641],{"type":21,"value":5628},"I’ve been absolutely hooked on the ",{"type":15,"tag":29,"props":5630,"children":5631},{},[5632],{"type":21,"value":5633},"Long Way",{"type":21,"value":5635}," series featuring Ewan McGregor and Charley Boorman. My journey began with ",{"type":15,"tag":29,"props":5637,"children":5638},{},[5639],{"type":21,"value":5640},"Long Way Down",{"type":21,"value":5642},", the second installment. I was captivated by their camaraderie, sense of humor, and the way they embraced every challenge—whether it was a mechanical breakdown in the middle of nowhere or a sudden downpour that turned the road into a river.",{"type":15,"tag":23,"props":5644,"children":5645},{},[5646],{"type":15,"tag":190,"props":5647,"children":5649},{"alt":5640,"src":5648},"https://upload.wikimedia.org/wikipedia/commons/thumb/6/65/Ewan_McGregor%27s_motorbike_from_%22long_Way_Down%22%2C_now_in_the_Riverside_Museum%2C_Glasgow.JPG/1920px-Ewan_McGregor%27s_motorbike_from_%22long_Way_Down%22%2C_now_in_the_Riverside_Museum%2C_Glasgow.JPG",[],{"type":15,"tag":23,"props":5651,"children":5652},{},[5653,5655,5660],{"type":21,"value":5654},"Since then, I’ve gone back to watch ",{"type":15,"tag":29,"props":5656,"children":5657},{},[5658],{"type":21,"value":5659},"Long Way Round",{"type":21,"value":5661}," and followed every new adventure they’ve shared.",{"type":15,"tag":68,"props":5663,"children":5664},{},[],{"type":15,"tag":72,"props":5666,"children":5668},{"id":5667},"long-way-up-a-new-kind-of-adventure",[5669],{"type":21,"value":5670},"Long Way Up: A New Kind of Adventure",{"type":15,"tag":23,"props":5672,"children":5673},{},[5674,5676,5681],{"type":21,"value":5675},"One of the most exciting chapters in their journey was ",{"type":15,"tag":29,"props":5677,"children":5678},{},[5679],{"type":21,"value":5680},"Long Way Up",{"type":21,"value":5682},". This time, Ewan and Charley rode from the tip of South America all the way to Los Angeles—on electric motorcycles! The series brought a whole new set of challenges, from charging the bikes in remote areas to navigating the diverse landscapes of South and Central America. It was inspiring to see them embrace new technology and push the boundaries of what’s possible on two wheels.",{"type":15,"tag":23,"props":5684,"children":5685},{},[5686],{"type":15,"tag":190,"props":5687,"children":5689},{"alt":5680,"src":5688},"https://upload.wikimedia.org/wikipedia/commons/thumb/3/38/Harley_Davidson_LiveWire_right_noBG.jpg/1920px-Harley_Davidson_LiveWire_right_noBG.jpg",[],{"type":15,"tag":68,"props":5691,"children":5692},{},[],{"type":15,"tag":72,"props":5694,"children":5696},{"id":5695},"the-latest-adventure-long-way-home",[5697],{"type":21,"value":5698},"The Latest Adventure: Long Way Home",{"type":15,"tag":23,"props":5700,"children":5701},{},[5702,5704,5709],{"type":21,"value":5703},"I just finished watching their latest adventure, ",{"type":15,"tag":29,"props":5705,"children":5706},{},[5707],{"type":21,"value":5708},"Long Way Home",{"type":21,"value":5710},", which takes place in Europe, and it’s left me feeling inspired all over again. Every episode is a reminder of how vast and beautiful our planet is, and how much there is to see if you’re willing to take the long way round.",{"type":15,"tag":23,"props":5712,"children":5713},{},[5714],{"type":15,"tag":190,"props":5715,"children":5717},{"alt":5708,"src":5716},"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcRoAp5NVh5tlunxJRZQ09AGQxMHOQytnSlpn0i0fHa2iboqfhBQ",[],{"type":15,"tag":68,"props":5719,"children":5720},{},[],{"type":15,"tag":72,"props":5722,"children":5724},{"id":5723},"more-than-just-motorcycles",[5725],{"type":21,"value":5726},"More Than Just Motorcycles",{"type":15,"tag":23,"props":5728,"children":5729},{},[5730],{"type":21,"value":5731},"What I love most is how the series isn’t just about motorcycles or travel—it’s about connection. It’s about meeting people from all walks of life, experiencing different cultures, and realizing that, no matter where you are in the world, there’s always something to learn and someone to share a smile with.",{"type":15,"tag":68,"props":5733,"children":5734},{},[],{"type":15,"tag":72,"props":5736,"children":5738},{"id":5737},"inspired-to-explore",[5739],{"type":21,"value":5740},"Inspired to Explore",{"type":15,"tag":23,"props":5742,"children":5743},{},[5744,5746,5750],{"type":21,"value":5745},"Watching ",{"type":15,"tag":29,"props":5747,"children":5748},{},[5749],{"type":21,"value":5708},{"type":21,"value":5751}," felt like catching up with old friends. The world has changed a lot since their first trip, but the spirit of adventure is still alive and well. It makes me want to get out there, feel the wind on my face, and see the world for myself—one mile at a time.",{"type":15,"tag":68,"props":5753,"children":5754},{},[],{"type":15,"tag":72,"props":5756,"children":5758},{"id":5757},"final-thoughts",[5759],{"type":21,"value":5760},"Final Thoughts",{"type":15,"tag":23,"props":5762,"children":5763},{},[5764,5766,5770],{"type":21,"value":5765},"If you’ve ever dreamed of adventure, or just want to see the world through the eyes of two passionate travelers, I can’t recommend the ",{"type":15,"tag":29,"props":5767,"children":5768},{},[5769],{"type":21,"value":5633},{"type":21,"value":5771}," series enough. Here’s to the road ahead, wherever it may lead.",{"title":7,"searchDepth":240,"depth":240,"links":5773},[5774,5775,5776,5777,5778,5779,5780],{"id":5598,"depth":243,"text":5601},{"id":5620,"depth":243,"text":5623},{"id":5667,"depth":243,"text":5670},{"id":5695,"depth":243,"text":5698},{"id":5723,"depth":243,"text":5726},{"id":5737,"depth":243,"text":5740},{"id":5757,"depth":243,"text":5760},"content:blog:2025:09:long-way.md","blog/2025/09/long-way.md","blog/2025/09/long-way",{"_path":5785,"_dir":5786,"_draft":6,"_partial":6,"_locale":7,"title":5787,"description":5788,"pubDate":5789,"draft":6,"body":5790,"_type":248,"_id":5945,"_source":250,"_file":5946,"_stem":5947,"_extension":253},"/blog/2025/10/open-source","10","Why I Love Open Source","My experience contributing to linutil and learning Git.","2025-10-05",{"type":12,"children":5791,"toc":5937},[5792,5798,5803,5808,5813,5819,5824,5859,5864,5870,5882,5888,5900,5912,5918,5923,5928,5932],{"type":15,"tag":16,"props":5793,"children":5795},{"id":5794},"open-source",[5796],{"type":21,"value":5797},"Open Source",{"type":15,"tag":23,"props":5799,"children":5800},{},[5801],{"type":21,"value":5802},"Over the past few months, I’ve been diving deep into the world of open source by contributing to Linutil, a project by Chris Titus Tech, as well as other projects. This experience has been a fantastic way to learn not just about the code itself, but also about the tools and workflows that make open source possible.",{"type":15,"tag":72,"props":5804,"children":5806},{"id":5805},"why-i-love-open-source",[5807],{"type":21,"value":5787},{"type":15,"tag":23,"props":5809,"children":5810},{},[5811],{"type":21,"value":5812},"One of the things I love most about open source software is the transparency. I trust open source because I can actually see the code for myself. There’s something empowering about knowing exactly what a program is doing on my system. If I have questions or concerns, I can dig into the source and find answers. This openness is a big reason why I’m happy to contribute my time and effort to these projects. It feels good to give back to a community that values collaboration and transparency.",{"type":15,"tag":72,"props":5814,"children":5816},{"id":5815},"learning-git-and-pull-requests",[5817],{"type":21,"value":5818},"Learning Git and Pull Requests",{"type":15,"tag":23,"props":5820,"children":5821},{},[5822],{"type":21,"value":5823},"Before this, my experience with Git was pretty basic—just enough to push and pull changes for my own projects. But contributing to linutil has taken my Git skills to the next level. I’ve learned how to:",{"type":15,"tag":294,"props":5825,"children":5826},{},[5827,5835,5843,5851],{"type":15,"tag":298,"props":5828,"children":5829},{},[5830],{"type":15,"tag":29,"props":5831,"children":5832},{},[5833],{"type":21,"value":5834},"Fork repositories",{"type":15,"tag":298,"props":5836,"children":5837},{},[5838],{"type":15,"tag":29,"props":5839,"children":5840},{},[5841],{"type":21,"value":5842},"Create branches for new features or bug fixes",{"type":15,"tag":298,"props":5844,"children":5845},{},[5846],{"type":15,"tag":29,"props":5847,"children":5848},{},[5849],{"type":21,"value":5850},"Submit pull requests (PRs)",{"type":15,"tag":298,"props":5852,"children":5853},{},[5854],{"type":15,"tag":29,"props":5855,"children":5856},{},[5857],{"type":21,"value":5858},"Collaborate with other contributors through code reviews",{"type":15,"tag":23,"props":5860,"children":5861},{},[5862],{"type":21,"value":5863},"It’s been a bit intimidating at times, but seeing my contributions merged into the main project is incredibly rewarding.",{"type":15,"tag":72,"props":5865,"children":5867},{"id":5866},"using-git-for-my-own-projects",[5868],{"type":21,"value":5869},"Using Git for My Own Projects",{"type":15,"tag":23,"props":5871,"children":5872},{},[5873,5875,5880],{"type":21,"value":5874},"I’ve also started using Git more seriously for my own web projects. Whether I’m building a blog in Astro, Nuxt, Next.js, Hugo, or Svelte, version control has become an essential part of my workflow. It’s made it so much easier to experiment, track changes, and roll back when things go wrong (in my ",{"type":15,"tag":37,"props":5876,"children":5877},{"href":3154},[5878],{"type":21,"value":5879},"previous blog",{"type":21,"value":5881}," about my blog... I discussed that from now on, I'll be using Astro just to keep things simple!).",{"type":15,"tag":72,"props":5883,"children":5885},{"id":5884},"scripting-and-linux-distros",[5886],{"type":21,"value":5887},"Scripting and Linux Distros",{"type":15,"tag":23,"props":5889,"children":5890},{},[5891,5893,5898],{"type":21,"value":5892},"Another big part of contributing to linutil has been learning how to write and use scripts. I’ve been exploring different Linux distributions, testing scripts across environments, and making sure everything works as expected. So far, I’ve tested on ",{"type":15,"tag":29,"props":5894,"children":5895},{},[5896],{"type":21,"value":5897},"Debian, Ubuntu, Arch, Fedora, openSUSE, Solus, Void, Alpine, and NixOS",{"type":21,"value":5899},". Testing is a huge part of the process—sometimes it feels like I spend more time testing than coding! But it’s worth it to make sure the tools are reliable for everyone.",{"type":15,"tag":23,"props":5901,"children":5902},{},[5903,5905,5910],{"type":21,"value":5904},"My past ",{"type":15,"tag":37,"props":5906,"children":5907},{"href":4922},[5908],{"type":21,"value":5909},"blog post",{"type":21,"value":5911}," shared my thoughts and experiences with each of these distros.",{"type":15,"tag":72,"props":5913,"children":5915},{"id":5914},"tools-that-help-cursor-and-beyond",[5916],{"type":21,"value":5917},"Tools That Help: Cursor and Beyond",{"type":15,"tag":23,"props":5919,"children":5920},{},[5921],{"type":21,"value":5922},"I use Cursor to help with some of the coding and navigation, but I’m also becoming more comfortable reading code directly. I’m starting to get a feel for what “good” code looks like, and I’m learning to spot things that don’t quite fit—even if I can’t always explain why at first.",{"type":15,"tag":23,"props":5924,"children":5925},{},[5926],{"type":21,"value":5927},"One thing I’ve noticed is that “vibe coding”—just going with what feels right—can lead to mistakes. It’s easy to overlook edge cases or miss best practices if you’re not careful. I’m learning to slow down, review my work, and rely on testing and feedback from others.",{"type":15,"tag":72,"props":5929,"children":5930},{"id":5757},[5931],{"type":21,"value":5760},{"type":15,"tag":23,"props":5933,"children":5934},{},[5935],{"type":21,"value":5936},"Contributing to open source has been a challenging but incredibly rewarding experience. I’m grateful for the opportunity to learn from others, improve my skills, and give back to the community. If you’re thinking about getting involved in open source, I highly recommend it—just be ready to learn a lot along the way!",{"title":7,"searchDepth":240,"depth":240,"links":5938},[5939,5940,5941,5942,5943,5944],{"id":5805,"depth":243,"text":5787},{"id":5815,"depth":243,"text":5818},{"id":5866,"depth":243,"text":5869},{"id":5884,"depth":243,"text":5887},{"id":5914,"depth":243,"text":5917},{"id":5757,"depth":243,"text":5760},"content:blog:2025:10:open-source.md","blog/2025/10/open-source.md","blog/2025/10/open-source",{"_path":5949,"_dir":5950,"_draft":6,"_partial":6,"_locale":7,"title":5245,"description":5951,"pubDate":5952,"draft":6,"body":5953,"_type":248,"_id":6284,"_source":250,"_file":6285,"_stem":6286,"_extension":253},"/blog/2025/12/solus","12","Contributing to Solus","2025-12-21",{"type":12,"children":5954,"toc":6275},[5955,5961,5969,5985,5991,5996,6008,6015,6027,6043,6062,6074,6102,6107,6180,6186,6191,6225,6231,6245],{"type":15,"tag":16,"props":5956,"children":5958},{"id":5957},"navigating-the-build-my-journey-into-solus-packaging",[5959],{"type":21,"value":5960},"Navigating the Build: My Journey into Solus Packaging",{"type":15,"tag":23,"props":5962,"children":5963},{},[5964],{"type":15,"tag":190,"props":5965,"children":5968},{"alt":5966,"src":5967},"Solus Logo","https://getsol.us/imgs/Solus.svg",[],{"type":15,"tag":23,"props":5970,"children":5971},{},[5972,5974,5983],{"type":21,"value":5973},"Over the past few weeks, I've embarked on a new technical challenge: learning the ropes of software packaging for ",{"type":15,"tag":29,"props":5975,"children":5976},{},[5977],{"type":15,"tag":37,"props":5978,"children":5981},{"href":5979,"rel":5980},"https://getsol.us",[41],[5982],{"type":21,"value":5245},{"type":21,"value":5984},". If you're unfamiliar, Solus is an independently developed Linux distribution known for its performance, stability, and its curated rolling-release model.",{"type":15,"tag":72,"props":5986,"children":5988},{"id":5987},"why-solus-the-arch-comparison",[5989],{"type":21,"value":5990},"Why Solus? (The Arch Comparison)",{"type":15,"tag":23,"props":5992,"children":5993},{},[5994],{"type":21,"value":5995},"I’ve used a lot of distributions, and I’ve come to a pretty firm conclusion: other than Arch Linux, Solus is easily one of the best distros available.",{"type":15,"tag":23,"props":5997,"children":5998},{},[5999,6001,6006],{"type":21,"value":6000},"It hits a \"sweet spot\" that is hard to find. Like Arch, it is a rolling release that updates packages frequently, ensuring you always have the latest software. However, it is significantly easier to install and use than Arch. I personally use the ",{"type":15,"tag":29,"props":6002,"children":6003},{},[6004],{"type":21,"value":6005},"Solus KDE Plasma",{"type":21,"value":6007}," edition, and the experience is incredibly polished. You get that bleeding-edge feel and fresh software without the manual \"DIY\" headache of a base Arch install. It's powerful enough for enthusiasts but stable enough for a daily driver.",{"type":15,"tag":23,"props":6009,"children":6010},{},[6011],{"type":15,"tag":190,"props":6012,"children":6014},{"alt":6005,"src":6013},"https://getsol.us/imgs/release-images/2025-11-29/Plasma.jpg",[],{"type":15,"tag":72,"props":6016,"children":6018},{"id":6017},"the-tooling-getting-to-know-solbuild",[6019,6021],{"type":21,"value":6020},"The Tooling: Getting to Know ",{"type":15,"tag":621,"props":6022,"children":6024},{"className":6023},[],[6025],{"type":21,"value":6026},"solbuild",{"type":15,"tag":23,"props":6028,"children":6029},{},[6030,6032,6042],{"type":21,"value":6031},"Every distro has its own way of doing things. In Solus, the magic happens via a tool called ",{"type":15,"tag":37,"props":6033,"children":6036},{"href":6034,"rel":6035},"https://github.com/getsolus/solbuild",[41],[6037],{"type":15,"tag":621,"props":6038,"children":6040},{"className":6039},[],[6041],{"type":21,"value":6026},{"type":21,"value":462},{"type":15,"tag":23,"props":6044,"children":6045},{},[6046,6048,6053,6055,6060],{"type":21,"value":6047},"The most important lesson I learned early on is that Solus uses a ",{"type":15,"tag":29,"props":6049,"children":6050},{},[6051],{"type":21,"value":6052},"chroot isolation",{"type":21,"value":6054}," method. When you build a package, it doesn't happen directly on your system where your personal files might interfere. Instead, ",{"type":15,"tag":621,"props":6056,"children":6058},{"className":6057},[],[6059],{"type":21,"value":6026},{"type":21,"value":6061}," creates a clean, \"virgin\" environment. This ensures that if the package builds for me, it will build for every other user too.",{"type":15,"tag":72,"props":6063,"children":6065},{"id":6064},"learning-the-language-of-packageyml",[6066,6068],{"type":21,"value":6067},"Learning the Language of ",{"type":15,"tag":621,"props":6069,"children":6071},{"className":6070},[],[6072],{"type":21,"value":6073},"package.yml",{"type":15,"tag":23,"props":6075,"children":6076},{},[6077,6079,6084,6086,6091,6093,6100],{"type":21,"value":6078},"In some distributions, build recipes can be hundreds of lines of complex scripting. Solus uses a format called ",{"type":15,"tag":29,"props":6080,"children":6081},{},[6082],{"type":21,"value":6083},"ypkg",{"type":21,"value":6085},", which utilizes a ",{"type":15,"tag":621,"props":6087,"children":6089},{"className":6088},[],[6090],{"type":21,"value":6073},{"type":21,"value":6092}," file. The ",{"type":15,"tag":37,"props":6094,"children":6097},{"href":6095,"rel":6096},"https://github.com/getsolus/ypkg",[41],[6098],{"type":21,"value":6099},"ypkg documentation",{"type":21,"value":6101}," has been an invaluable resource as I learn the format.",{"type":15,"tag":23,"props":6103,"children":6104},{},[6105],{"type":21,"value":6106},"I've been learning how to define the essentials:",{"type":15,"tag":294,"props":6108,"children":6109},{},[6110,6120,6146],{"type":15,"tag":298,"props":6111,"children":6112},{},[6113,6118],{"type":15,"tag":29,"props":6114,"children":6115},{},[6116],{"type":21,"value":6117},"Name and Version:",{"type":21,"value":6119}," The basics.",{"type":15,"tag":298,"props":6121,"children":6122},{},[6123,6128,6130,6136,6138,6144],{"type":15,"tag":29,"props":6124,"children":6125},{},[6126],{"type":21,"value":6127},"Dependencies:",{"type":21,"value":6129}," This is where the real detective work happens. You have to figure out exactly which libraries (",{"type":15,"tag":621,"props":6131,"children":6133},{"className":6132},[],[6134],{"type":21,"value":6135},"rundeps",{"type":21,"value":6137},") the software needs to run and which ones (",{"type":15,"tag":621,"props":6139,"children":6141},{"className":6140},[],[6142],{"type":21,"value":6143},"builddeps",{"type":21,"value":6145},") it needs just to compile.",{"type":15,"tag":298,"props":6147,"children":6148},{},[6149,6154,6156,6162,6164,6170,6172,6178],{"type":15,"tag":29,"props":6150,"children":6151},{},[6152],{"type":21,"value":6153},"The Build Stages:",{"type":21,"value":6155}," Understanding the difference between ",{"type":15,"tag":621,"props":6157,"children":6159},{"className":6158},[],[6160],{"type":21,"value":6161},"setup",{"type":21,"value":6163}," (configuring), ",{"type":15,"tag":621,"props":6165,"children":6167},{"className":6166},[],[6168],{"type":21,"value":6169},"build",{"type":21,"value":6171}," (compiling), and ",{"type":15,"tag":621,"props":6173,"children":6175},{"className":6174},[],[6176],{"type":21,"value":6177},"install",{"type":21,"value":6179}," (organizing the final files).",{"type":15,"tag":72,"props":6181,"children":6183},{"id":6182},"the-packager-mindset",[6184],{"type":21,"value":6185},"The \"Packager\" Mindset",{"type":15,"tag":23,"props":6187,"children":6188},{},[6189],{"type":21,"value":6190},"Becoming a packager has forced me to change how I look at software. I’m no longer just a user; I’m a maintainer. This means:",{"type":15,"tag":6192,"props":6193,"children":6194},"ol",{},[6195,6205,6215],{"type":15,"tag":298,"props":6196,"children":6197},{},[6198,6203],{"type":15,"tag":29,"props":6199,"children":6200},{},[6201],{"type":21,"value":6202},"Attention to Detail:",{"type":21,"value":6204}," A misplaced semicolon or a missing license file can break a build.",{"type":15,"tag":298,"props":6206,"children":6207},{},[6208,6213],{"type":15,"tag":29,"props":6209,"children":6210},{},[6211],{"type":21,"value":6212},"Upstream Awareness:",{"type":21,"value":6214}," I’ve started following the \"upstream\" developers. If they release a security patch, it’s my job to make sure Solus users get it quickly.",{"type":15,"tag":298,"props":6216,"children":6217},{},[6218,6223],{"type":15,"tag":29,"props":6219,"children":6220},{},[6221],{"type":21,"value":6222},"The Art of Debugging:",{"type":21,"value":6224}," Sometimes a build fails because a header file is missing. Learning how to read long build logs has become a daily ritual.",{"type":15,"tag":72,"props":6226,"children":6228},{"id":6227},"wrapping-up",[6229],{"type":21,"value":6230},"Wrapping Up",{"type":15,"tag":23,"props":6232,"children":6233},{},[6234,6236,6243],{"type":21,"value":6235},"I'm still very much a beginner. My first few Pull Requests were full of \"rookie mistakes,\" but the ",{"type":15,"tag":37,"props":6237,"children":6240},{"href":6238,"rel":6239},"https://github.com/orgs/getsolus/people",[41],[6241],{"type":21,"value":6242},"Solus maintainers",{"type":21,"value":6244}," have been incredibly helpful in guiding me toward the \"Solus Way\" of doing things.",{"type":15,"tag":23,"props":6246,"children":6247},{},[6248,6250,6255,6257,6264,6266,6273],{"type":21,"value":6249},"Learning to package isn't just about Linux; it's about understanding how software is structured and how to contribute back to an ecosystem I use every day. If you want a distro that stays updated like Arch but respects your time and offers a fantastic KDE experience, give ",{"type":15,"tag":37,"props":6251,"children":6253},{"href":5979,"rel":6252},[41],[6254],{"type":21,"value":5245},{"type":21,"value":6256}," a try—and maybe try your hand at packaging, too! You can find the ",{"type":15,"tag":37,"props":6258,"children":6261},{"href":6259,"rel":6260},"https://github.com/getsolus",[41],[6262],{"type":21,"value":6263},"Solus project on GitHub",{"type":21,"value":6265}," and check out the ",{"type":15,"tag":37,"props":6267,"children":6270},{"href":6268,"rel":6269},"https://help.getsol.us/docs/packaging/",[41],[6271],{"type":21,"value":6272},"packaging guide",{"type":21,"value":6274}," to get started.",{"title":7,"searchDepth":240,"depth":240,"links":6276},[6277,6278,6280,6282,6283],{"id":5987,"depth":243,"text":5990},{"id":6017,"depth":243,"text":6279},"The Tooling: Getting to Know solbuild",{"id":6064,"depth":243,"text":6281},"Learning the Language of package.yml",{"id":6182,"depth":243,"text":6185},{"id":6227,"depth":243,"text":6230},"content:blog:2025:12:solus.md","blog/2025/12/solus.md","blog/2025/12/solus",{"_path":6288,"_dir":6289,"_draft":6,"_partial":6,"_locale":7,"title":6290,"description":6291,"pubDate":6292,"draft":6,"tags":6293,"body":6297,"_type":248,"_id":6856,"_source":250,"_file":6857,"_stem":6858,"_extension":253},"/blog/2026/01/osutil-refactor","01","OSutil Refactor: Focusing on Linux and macOS","Notes on refactoring OSutil and narrowing platform support to Linux and macOS","2026-01-26",[6294,6295,5794,6296],"osutil","rust","refactoring",{"type":12,"children":6298,"toc":6843},[6299,6305,6326,6331,6334,6340,6345,6350,6373,6385,6388,6394,6399,6410,6415,6438,6443,6448,6451,6457,6462,6467,6490,6495,6498,6504,6509,6514,6532,6537,6555,6560,6563,6569,6574,6597,6602,6620,6625,6628,6634,6640,6645,6650,6673,6678,6714,6719,6722,6728,6733,6756,6761,6764,6770,6775,6792,6797,6800,6805,6810,6839],{"type":15,"tag":16,"props":6300,"children":6302},{"id":6301},"️-osutil-refactor-focusing-on-linux-and-macos",[6303],{"type":21,"value":6304},"🛠️ OSutil Refactor: Focusing on Linux and macOS",{"type":15,"tag":23,"props":6306,"children":6307},{},[6308,6310,6318,6320,6325],{"type":21,"value":6309},"Over the past few weeks, I’ve been doing a major refactor of ",{"type":15,"tag":29,"props":6311,"children":6312},{},[6313],{"type":15,"tag":37,"props":6314,"children":6316},{"href":3748,"rel":6315},[41],[6317],{"type":21,"value":3752},{"type":21,"value":6319},". What started as a cross-platform system utility targeting Windows, Linux, macOS, and FreeBSD has now been intentionally narrowed to ",{"type":15,"tag":29,"props":6321,"children":6322},{},[6323],{"type":21,"value":6324},"Linux-first with macOS support",{"type":21,"value":462},{"type":15,"tag":23,"props":6327,"children":6328},{},[6329],{"type":21,"value":6330},"This wasn’t just cleanup for cleanup’s sake. It was a response to real-world complexity, maintenance cost, and how I actually use the tool day to day.",{"type":15,"tag":68,"props":6332,"children":6333},{},[],{"type":15,"tag":72,"props":6335,"children":6337},{"id":6336},"what-osutil-is-and-is-becoming",[6338],{"type":21,"value":6339},"🎯 What OSutil Is (and Is Becoming)",{"type":15,"tag":23,"props":6341,"children":6342},{},[6343],{"type":21,"value":6344},"OSutil is a terminal-based system utility toolkit focused on fast, keyboard-driven workflows. It aims to unify common system tasks behind a consistent TUI interface instead of a pile of ad-hoc shell scripts.",{"type":15,"tag":23,"props":6346,"children":6347},{},[6348],{"type":21,"value":6349},"The philosophy is simple:",{"type":15,"tag":294,"props":6351,"children":6352},{},[6353,6358,6363,6368],{"type":15,"tag":298,"props":6354,"children":6355},{},[6356],{"type":21,"value":6357},"Terminal-first",{"type":15,"tag":298,"props":6359,"children":6360},{},[6361],{"type":21,"value":6362},"Scriptable and opinionated",{"type":15,"tag":298,"props":6364,"children":6365},{},[6366],{"type":21,"value":6367},"Minimal abstraction where it hurts",{"type":15,"tag":298,"props":6369,"children":6370},{},[6371],{"type":21,"value":6372},"Focus on platforms that actually make sense for deep CLI tooling",{"type":15,"tag":23,"props":6374,"children":6375},{},[6376,6378,6383],{"type":21,"value":6377},"Originally, that meant supporting ",{"type":15,"tag":373,"props":6379,"children":6380},{},[6381],{"type":21,"value":6382},"everything",{"type":21,"value":6384},". In practice, that turned out to be a mistake.",{"type":15,"tag":68,"props":6386,"children":6387},{},[],{"type":15,"tag":72,"props":6389,"children":6391},{"id":6390},"why-windows-support-was-removed",[6392],{"type":21,"value":6393},"🪟 Why Windows Support Was Removed",{"type":15,"tag":23,"props":6395,"children":6396},{},[6397],{"type":21,"value":6398},"Windows was the single biggest source of friction.",{"type":15,"tag":23,"props":6400,"children":6401},{},[6402,6404,6409],{"type":21,"value":6403},"OSutil relies heavily on interactive terminal behavior, and Windows makes that much harder than it needs to be, especially when dealing with ",{"type":15,"tag":29,"props":6405,"children":6406},{},[6407],{"type":21,"value":6408},"pseudo-terminals (PTYs)",{"type":21,"value":462},{"type":15,"tag":23,"props":6411,"children":6412},{},[6413],{"type":21,"value":6414},"Some of the recurring problems:",{"type":15,"tag":294,"props":6416,"children":6417},{},[6418,6423,6428,6433],{"type":15,"tag":298,"props":6419,"children":6420},{},[6421],{"type":21,"value":6422},"PTY handling on Windows is awkward and inconsistent",{"type":15,"tag":298,"props":6424,"children":6425},{},[6426],{"type":21,"value":6427},"PowerShell, CMD, and newer terminals all behave differently",{"type":15,"tag":298,"props":6429,"children":6430},{},[6431],{"type":21,"value":6432},"Terminal control sequences don’t reliably map to Unix behavior",{"type":15,"tag":298,"props":6434,"children":6435},{},[6436],{"type":21,"value":6437},"Extra abstraction layers were required just to match basic Linux functionality",{"type":15,"tag":23,"props":6439,"children":6440},{},[6441],{"type":21,"value":6442},"A lot of time was spent fighting the platform instead of building features. Since OSutil is fundamentally a terminal-oriented tool, that tradeoff didn’t make sense long-term.",{"type":15,"tag":23,"props":6444,"children":6445},{},[6446],{"type":21,"value":6447},"Windows support was removed so the project could move forward without being dominated by platform-specific workarounds.",{"type":15,"tag":68,"props":6449,"children":6450},{},[],{"type":15,"tag":72,"props":6452,"children":6454},{"id":6453},"why-freebsd-didnt-make-the-cut",[6455],{"type":21,"value":6456},"🐡 Why FreeBSD Didn’t Make the Cut",{"type":15,"tag":23,"props":6458,"children":6459},{},[6460],{"type":21,"value":6461},"FreeBSD wasn’t removed because it was broken — it was removed because it wasn’t worth maintaining.",{"type":15,"tag":23,"props":6463,"children":6464},{},[6465],{"type":21,"value":6466},"In practice:",{"type":15,"tag":294,"props":6468,"children":6469},{},[6470,6475,6480,6485],{"type":15,"tag":298,"props":6471,"children":6472},{},[6473],{"type":21,"value":6474},"I don’t use FreeBSD personally",{"type":15,"tag":298,"props":6476,"children":6477},{},[6478],{"type":21,"value":6479},"I don’t have a FreeBSD system to test on",{"type":15,"tag":298,"props":6481,"children":6482},{},[6483],{"type":21,"value":6484},"User demand was very low",{"type":15,"tag":298,"props":6486,"children":6487},{},[6488],{"type":21,"value":6489},"Supporting it required special-casing assumptions that work fine on Linux",{"type":15,"tag":23,"props":6491,"children":6492},{},[6493],{"type":21,"value":6494},"Maintaining support for an OS I don’t use and can’t easily test added complexity without much benefit. Dropping FreeBSD simplified the project and made it easier to reason about the codebase.",{"type":15,"tag":68,"props":6496,"children":6497},{},[],{"type":15,"tag":72,"props":6499,"children":6501},{"id":6500},"macos-supported-with-limits",[6502],{"type":21,"value":6503},"🍎 macOS: Supported, With Limits",{"type":15,"tag":23,"props":6505,"children":6506},{},[6507],{"type":21,"value":6508},"macOS sits somewhere between Linux and Windows.",{"type":15,"tag":23,"props":6510,"children":6511},{},[6512],{"type":21,"value":6513},"On the positive side:",{"type":15,"tag":294,"props":6515,"children":6516},{},[6517,6522,6527],{"type":15,"tag":298,"props":6518,"children":6519},{},[6520],{"type":21,"value":6521},"It’s Unix-based",{"type":15,"tag":298,"props":6523,"children":6524},{},[6525],{"type":21,"value":6526},"Terminal behavior is mostly predictable",{"type":15,"tag":298,"props":6528,"children":6529},{},[6530],{"type":21,"value":6531},"PTYs work well enough for TUI applications",{"type":15,"tag":23,"props":6533,"children":6534},{},[6535],{"type":21,"value":6536},"At the same time:",{"type":15,"tag":294,"props":6538,"children":6539},{},[6540,6545,6550],{"type":15,"tag":298,"props":6541,"children":6542},{},[6543],{"type":21,"value":6544},"Many system settings can’t be manipulated from the command line",{"type":15,"tag":298,"props":6546,"children":6547},{},[6548],{"type":21,"value":6549},"Apple locks down significant parts of the OS",{"type":15,"tag":298,"props":6551,"children":6552},{},[6553],{"type":21,"value":6554},"Some configuration changes still require GUI interaction",{"type":15,"tag":23,"props":6556,"children":6557},{},[6558],{"type":21,"value":6559},"OSutil works well on macOS, but there are limits to how much system automation is possible. macOS remains supported, just with realistic expectations.",{"type":15,"tag":68,"props":6561,"children":6562},{},[],{"type":15,"tag":72,"props":6564,"children":6566},{"id":6565},"why-linux-is-the-primary-focus",[6567],{"type":21,"value":6568},"🐧 Why Linux Is the Primary Focus",{"type":15,"tag":23,"props":6570,"children":6571},{},[6572],{"type":21,"value":6573},"Linux is where OSutil fits best.",{"type":15,"tag":294,"props":6575,"children":6576},{},[6577,6582,6587,6592],{"type":15,"tag":298,"props":6578,"children":6579},{},[6580],{"type":21,"value":6581},"Clean and consistent PTY support",{"type":15,"tag":298,"props":6583,"children":6584},{},[6585],{"type":21,"value":6586},"CLI-friendly system configuration",{"type":15,"tag":298,"props":6588,"children":6589},{},[6590],{"type":21,"value":6591},"Predictable terminal behavior",{"type":15,"tag":298,"props":6593,"children":6594},{},[6595],{"type":21,"value":6596},"Tooling that aligns with OSutil’s goals",{"type":15,"tag":23,"props":6598,"children":6599},{},[6600],{"type":21,"value":6601},"By focusing on Linux (and supporting macOS where it makes sense), I can:",{"type":15,"tag":294,"props":6603,"children":6604},{},[6605,6610,6615],{"type":15,"tag":298,"props":6606,"children":6607},{},[6608],{"type":21,"value":6609},"Move faster",{"type":15,"tag":298,"props":6611,"children":6612},{},[6613],{"type":21,"value":6614},"Reduce conditional compilation and platform-specific hacks",{"type":15,"tag":298,"props":6616,"children":6617},{},[6618],{"type":21,"value":6619},"Improve reliability and depth instead of breadth",{"type":15,"tag":23,"props":6621,"children":6622},{},[6623],{"type":21,"value":6624},"Instead of being “kind of okay everywhere,” OSutil can be solid where it matters.",{"type":15,"tag":68,"props":6626,"children":6627},{},[],{"type":15,"tag":72,"props":6629,"children":6631},{"id":6630},"what-changed-in-the-refactor",[6632],{"type":21,"value":6633},"🔧 What Changed in the Refactor",{"type":15,"tag":867,"props":6635,"children":6637},{"id":6636},"platform-support-reduction",[6638],{"type":21,"value":6639},"🧹 Platform Support Reduction",{"type":15,"tag":23,"props":6641,"children":6642},{},[6643],{"type":21,"value":6644},"Windows and FreeBSD support were removed entirely.",{"type":15,"tag":23,"props":6646,"children":6647},{},[6648],{"type":21,"value":6649},"This included deleting:",{"type":15,"tag":294,"props":6651,"children":6652},{},[6653,6658,6663,6668],{"type":15,"tag":298,"props":6654,"children":6655},{},[6656],{"type":21,"value":6657},"Windows PowerShell scripts",{"type":15,"tag":298,"props":6659,"children":6660},{},[6661],{"type":21,"value":6662},"Windows-specific tabs and configuration",{"type":15,"tag":298,"props":6664,"children":6665},{},[6666],{"type":21,"value":6667},"FreeBSD build scripts",{"type":15,"tag":298,"props":6669,"children":6670},{},[6671],{"type":21,"value":6672},"FreeBSD-specific development helpers",{"type":15,"tag":23,"props":6674,"children":6675},{},[6676],{"type":21,"value":6677},"Alongside that cleanup:",{"type":15,"tag":294,"props":6679,"children":6680},{},[6681,6694,6699,6704,6709],{"type":15,"tag":298,"props":6682,"children":6683},{},[6684,6686,6692],{"type":21,"value":6685},"All ",{"type":15,"tag":621,"props":6687,"children":6689},{"className":6688},[],[6690],{"type":21,"value":6691},"#[cfg(windows)]",{"type":21,"value":6693}," conditionals were removed",{"type":15,"tag":298,"props":6695,"children":6696},{},[6697],{"type":21,"value":6698},"Windows-specific code paths were deleted",{"type":15,"tag":298,"props":6700,"children":6701},{},[6702],{"type":21,"value":6703},"PowerShell syntax highlighting was dropped",{"type":15,"tag":298,"props":6705,"children":6706},{},[6707],{"type":21,"value":6708},"Platform detection was simplified to Linux and macOS",{"type":15,"tag":298,"props":6710,"children":6711},{},[6712],{"type":21,"value":6713},"Build scripts were cleaned up accordingly",{"type":15,"tag":23,"props":6715,"children":6716},{},[6717],{"type":21,"value":6718},"Documentation was updated to reflect the new scope, including the README and issue templates.",{"type":15,"tag":68,"props":6720,"children":6721},{},[],{"type":15,"tag":72,"props":6723,"children":6725},{"id":6724},"codebase-improvements",[6726],{"type":21,"value":6727},"✨ Codebase Improvements",{"type":15,"tag":23,"props":6729,"children":6730},{},[6731],{"type":21,"value":6732},"The refactor resulted in a cleaner and more maintainable project:",{"type":15,"tag":294,"props":6734,"children":6735},{},[6736,6741,6746,6751],{"type":15,"tag":298,"props":6737,"children":6738},{},[6739],{"type":21,"value":6740},"Fewer conditional compilation paths",{"type":15,"tag":298,"props":6742,"children":6743},{},[6744],{"type":21,"value":6745},"Simpler execution logic",{"type":15,"tag":298,"props":6747,"children":6748},{},[6749],{"type":21,"value":6750},"Less platform-specific branching",{"type":15,"tag":298,"props":6752,"children":6753},{},[6754],{"type":21,"value":6755},"Easier onboarding for contributors",{"type":15,"tag":23,"props":6757,"children":6758},{},[6759],{"type":21,"value":6760},"Reducing scope made the code easier to reason about and easier to change.",{"type":15,"tag":68,"props":6762,"children":6763},{},[],{"type":15,"tag":72,"props":6765,"children":6767},{"id":6766},"whats-next",[6768],{"type":21,"value":6769},"🚀 What’s Next",{"type":15,"tag":23,"props":6771,"children":6772},{},[6773],{"type":21,"value":6774},"Even though Windows support was removed from OSutil, Windows automation itself isn’t going away.",{"type":15,"tag":23,"props":6776,"children":6777},{},[6778,6780,6785,6787,6791],{"type":21,"value":6779},"Instead of forcing OSutil to work in an environment it isn’t well suited for, I’m planning to lean more heavily into ",{"type":15,"tag":29,"props":6781,"children":6782},{},[6783],{"type":21,"value":6784},"PowerShell",{"type":21,"value":6786}," and make my existing Windows setup script more capable and more polished. This builds on ideas I’ve already talked about in ",{"type":15,"tag":37,"props":6788,"children":6789},{"href":2085},[6790],{"type":21,"value":2377},{"type":21,"value":462},{"type":15,"tag":23,"props":6793,"children":6794},{},[6795],{"type":21,"value":6796},"Keeping Windows tooling native and Unix tooling native avoids awkward abstractions and lets each platform play to its strengths.",{"type":15,"tag":68,"props":6798,"children":6799},{},[],{"type":15,"tag":72,"props":6801,"children":6802},{"id":2136},[6803],{"type":21,"value":6804},"📦 Installation",{"type":15,"tag":23,"props":6806,"children":6807},{},[6808],{"type":21,"value":6809},"OSutil is still easy to install on Linux and macOS:",{"type":15,"tag":614,"props":6811,"children":6812},{"className":3767,"code":3768,"language":3769,"meta":7,"style":7},[6813],{"type":15,"tag":621,"props":6814,"children":6815},{"__ignoreMap":7},[6816],{"type":15,"tag":625,"props":6817,"children":6818},{"class":627,"line":628},[6819,6823,6827,6831,6835],{"type":15,"tag":625,"props":6820,"children":6821},{"style":678},[6822],{"type":21,"value":2899},{"type":15,"tag":625,"props":6824,"children":6825},{"style":658},[6826],{"type":21,"value":2904},{"type":15,"tag":625,"props":6828,"children":6829},{"style":678},[6830],{"type":21,"value":2909},{"type":15,"tag":625,"props":6832,"children":6833},{"style":647},[6834],{"type":21,"value":2914},{"type":15,"tag":625,"props":6836,"children":6837},{"style":658},[6838],{"type":21,"value":3797},{"type":15,"tag":688,"props":6840,"children":6841},{},[6842],{"type":21,"value":692},{"title":7,"searchDepth":240,"depth":240,"links":6844},[6845,6846,6847,6848,6849,6850,6853,6854,6855],{"id":6336,"depth":243,"text":6339},{"id":6390,"depth":243,"text":6393},{"id":6453,"depth":243,"text":6456},{"id":6500,"depth":243,"text":6503},{"id":6565,"depth":243,"text":6568},{"id":6630,"depth":243,"text":6633,"children":6851},[6852],{"id":6636,"depth":240,"text":6639},{"id":6724,"depth":243,"text":6727},{"id":6766,"depth":243,"text":6769},{"id":2136,"depth":243,"text":6804},"content:blog:2026:01:osutil-refactor.md","blog/2026/01/osutil-refactor.md","blog/2026/01/osutil-refactor",{"_path":6860,"_dir":6861,"_draft":6,"_partial":6,"_locale":7,"title":6862,"description":6863,"pubDate":6864,"draft":6,"body":6865,"_type":248,"_id":7027,"_source":250,"_file":7028,"_stem":7029,"_extension":253},"/blog/2026/02/changing-my-website","02","Changing My Website Again","Why I switched this site from Astro to Nuxt.","2026-02-15",{"type":12,"children":6866,"toc":7022},[6867,6872,6877,6895,6898,6904,6909,6912,6918,6923,6935,6938,6944,6957,6978,7013,7018],{"type":15,"tag":16,"props":6868,"children":6870},{"id":6869},"changing-my-website-again",[6871],{"type":21,"value":6862},{"type":15,"tag":23,"props":6873,"children":6874},{},[6875],{"type":21,"value":6876},"So, about that “last time I’ll rebuild my blog” thing. Yeah. I’m back.",{"type":15,"tag":23,"props":6878,"children":6879},{},[6880,6882,6887,6889,6893],{"type":21,"value":6881},"Last year I wrote about ",{"type":15,"tag":37,"props":6883,"children":6884},{"href":3154},[6885],{"type":21,"value":6886},"trying five different frameworks and finally sticking with Astro",{"type":21,"value":6888},". I meant it at the time. Astro was simple, fast, and great for a content-first blog. But this site has evolved, and so has what I want from it. I’ve switched the stack to ",{"type":15,"tag":29,"props":6890,"children":6891},{},[6892],{"type":21,"value":534},{"type":21,"value":6894},", and for this particular project it’s been a better fit.",{"type":15,"tag":68,"props":6896,"children":6897},{},[],{"type":15,"tag":72,"props":6899,"children":6901},{"id":6900},"i-like-the-defaults-better",[6902],{"type":21,"value":6903},"I Like the Defaults Better",{"type":15,"tag":23,"props":6905,"children":6906},{},[6907],{"type":21,"value":6908},"Nuxt’s defaults just work the way I want. Out of the box you get file-based routing, a clear app structure, and Nuxt Content for markdown and MDC without much config. Astro is flexible too, but I kept tweaking and re-tweaking. With Nuxt I spent less time on “how do I set this up?” and more time on the actual site. The conventions match how I think about the project: pages, components, content, and config in predictable places.",{"type":15,"tag":68,"props":6910,"children":6911},{},[],{"type":15,"tag":72,"props":6913,"children":6915},{"id":6914},"full-framework-vs-all-html",[6916],{"type":21,"value":6917},"Full Framework vs. “All HTML”",{"type":15,"tag":23,"props":6919,"children":6920},{},[6921],{"type":21,"value":6922},"Astro’s strength is that it’s HTML-first. By default you get minimal JavaScript, islands where you need them, and a very static, content-centric model. That’s ideal for a pure blog or docs site.",{"type":15,"tag":23,"props":6924,"children":6925},{},[6926,6928,6933],{"type":21,"value":6927},"For ",{"type":15,"tag":373,"props":6929,"children":6930},{},[6931],{"type":21,"value":6932},"this",{"type":21,"value":6934}," website though, I wanted more of a real app: shared layouts, view transitions, and room to add interactive bits without rethinking the whole architecture. With Astro, that often meant either staying in the “mostly HTML” lane or fighting the grain. With Nuxt, the baseline is “you have a full Vue app”: routing, layouts, and components are built in. Adding a bit of interactivity or a new section doesn’t feel like stepping outside the framework. For this specific site, that made things easier, not heavier.",{"type":15,"tag":68,"props":6936,"children":6937},{},[],{"type":15,"tag":72,"props":6939,"children":6941},{"id":6940},"same-content-different-engine",[6942],{"type":21,"value":6943},"Same Content, Different Engine",{"type":15,"tag":23,"props":6945,"children":6946},{},[6947,6949,6955],{"type":21,"value":6948},"The content is still markdown in ",{"type":15,"tag":621,"props":6950,"children":6952},{"className":6951},[],[6953],{"type":21,"value":6954},"content/",{"type":21,"value":6956},". The URLs and structure can stay the same. The main change is the engine: Nuxt and Vue instead of Astro. So it’s less “throw everything away” and more “swap the foundation and keep writing.”",{"type":15,"tag":23,"props":6958,"children":6959},{},[6960,6962,6968,6970,6976],{"type":21,"value":6961},"I also added a small script to create new posts, similar to Hugo’s ",{"type":15,"tag":621,"props":6963,"children":6965},{"className":6964},[],[6966],{"type":21,"value":6967},"hugo new",{"type":21,"value":6969},": it drops a new markdown file in ",{"type":15,"tag":621,"props":6971,"children":6973},{"className":6972},[],[6974],{"type":21,"value":6975},"content/blog/YYYY/MM/",{"type":21,"value":6977}," with frontmatter and opens it in my editor.",{"type":15,"tag":614,"props":6979,"children":6981},{"className":3767,"code":6980,"language":3769,"meta":7,"style":7},"bun run post blog \"My New Blog\"\n",[6982],{"type":15,"tag":621,"props":6983,"children":6984},{"__ignoreMap":7},[6985],{"type":15,"tag":625,"props":6986,"children":6987},{"class":627,"line":628},[6988,6993,6998,7003,7008],{"type":15,"tag":625,"props":6989,"children":6990},{"style":678},[6991],{"type":21,"value":6992},"bun",{"type":15,"tag":625,"props":6994,"children":6995},{"style":658},[6996],{"type":21,"value":6997}," run",{"type":15,"tag":625,"props":6999,"children":7000},{"style":658},[7001],{"type":21,"value":7002}," post",{"type":15,"tag":625,"props":7004,"children":7005},{"style":658},[7006],{"type":21,"value":7007}," blog",{"type":15,"tag":625,"props":7009,"children":7010},{"style":658},[7011],{"type":21,"value":7012}," \"My New Blog\"\n",{"type":15,"tag":23,"props":7014,"children":7015},{},[7016],{"type":21,"value":7017},"If you’re choosing between Astro and Nuxt today: Astro is still great when you want a minimal, HTML-centric site. Nuxt is great when you want a full framework and are happy with Vue. I’m on Nuxt for this one—at least until the next rebuild.",{"type":15,"tag":688,"props":7019,"children":7020},{},[7021],{"type":21,"value":692},{"title":7,"searchDepth":240,"depth":240,"links":7023},[7024,7025,7026],{"id":6900,"depth":243,"text":6903},{"id":6914,"depth":243,"text":6917},{"id":6940,"depth":243,"text":6943},"content:blog:2026:02:changing-my-website.md","blog/2026/02/changing-my-website.md","blog/2026/02/changing-my-website",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"pubDate":10,"draft":6,"body":7031,"_type":248,"_id":249,"_source":250,"_file":251,"_stem":252,"_extension":253},{"type":12,"children":7032,"toc":7194},[7033,7037,7057,7066,7069,7073,7097,7100,7104,7108,7117,7120,7124,7147,7150,7154,7160,7169,7173,7183,7186,7190],{"type":15,"tag":16,"props":7034,"children":7035},{"id":18},[7036],{"type":21,"value":8},{"type":15,"tag":23,"props":7038,"children":7039},{},[7040,7041,7045,7046,7051,7052,7056],{"type":21,"value":27},{"type":15,"tag":29,"props":7042,"children":7043},{},[7044],{"type":21,"value":33},{"type":21,"value":35},{"type":15,"tag":37,"props":7047,"children":7049},{"href":39,"rel":7048},[41],[7050],{"type":21,"value":44},{"type":21,"value":46},{"type":15,"tag":37,"props":7053,"children":7054},{"href":49},[7055],{"type":21,"value":52},{"type":21,"value":54},{"type":15,"tag":23,"props":7058,"children":7059},{},[7060,7061,7065],{"type":21,"value":59},{"type":15,"tag":29,"props":7062,"children":7063},{},[7064],{"type":21,"value":64},{"type":21,"value":66},{"type":15,"tag":68,"props":7067,"children":7068},{},[],{"type":15,"tag":72,"props":7070,"children":7071},{"id":74},[7072],{"type":21,"value":77},{"type":15,"tag":23,"props":7074,"children":7075},{},[7076,7077,7081,7082,7086,7087,7091,7092,7096],{"type":21,"value":82},{"type":15,"tag":29,"props":7078,"children":7079},{},[7080],{"type":21,"value":87},{"type":21,"value":89},{"type":15,"tag":29,"props":7083,"children":7084},{},[7085],{"type":21,"value":94},{"type":21,"value":96},{"type":15,"tag":29,"props":7088,"children":7089},{},[7090],{"type":21,"value":101},{"type":21,"value":103},{"type":15,"tag":29,"props":7093,"children":7094},{},[7095],{"type":21,"value":108},{"type":21,"value":110},{"type":15,"tag":68,"props":7098,"children":7099},{},[],{"type":15,"tag":72,"props":7101,"children":7102},{"id":116},[7103],{"type":21,"value":119},{"type":15,"tag":23,"props":7105,"children":7106},{},[7107],{"type":21,"value":124},{"type":15,"tag":23,"props":7109,"children":7110},{},[7111,7112,7116],{"type":21,"value":129},{"type":15,"tag":29,"props":7113,"children":7114},{},[7115],{"type":21,"value":134},{"type":21,"value":136},{"type":15,"tag":68,"props":7118,"children":7119},{},[],{"type":15,"tag":72,"props":7121,"children":7122},{"id":142},[7123],{"type":21,"value":145},{"type":15,"tag":23,"props":7125,"children":7126},{},[7127,7128,7136,7137,7141,7142,7146],{"type":21,"value":150},{"type":15,"tag":37,"props":7129,"children":7131},{"href":153,"rel":7130},[41],[7132],{"type":15,"tag":29,"props":7133,"children":7134},{},[7135],{"type":21,"value":160},{"type":21,"value":162},{"type":15,"tag":29,"props":7138,"children":7139},{},[7140],{"type":21,"value":167},{"type":21,"value":169},{"type":15,"tag":29,"props":7143,"children":7144},{},[7145],{"type":21,"value":174},{"type":21,"value":176},{"type":15,"tag":68,"props":7148,"children":7149},{},[],{"type":15,"tag":72,"props":7151,"children":7152},{"id":182},[7153],{"type":21,"value":185},{"type":15,"tag":23,"props":7155,"children":7156},{},[7157],{"type":15,"tag":190,"props":7158,"children":7159},{"alt":192,"src":193},[],{"type":15,"tag":23,"props":7161,"children":7162},{},[7163,7168],{"type":15,"tag":37,"props":7164,"children":7166},{"href":200,"rel":7165},[41],[7167],{"type":21,"value":185},{"type":21,"value":205},{"type":15,"tag":23,"props":7170,"children":7171},{},[7172],{"type":21,"value":210},{"type":15,"tag":23,"props":7174,"children":7175},{},[7176,7177,7182],{"type":21,"value":215},{"type":15,"tag":37,"props":7178,"children":7180},{"href":218,"rel":7179},[41],[7181],{"type":21,"value":222},{"type":21,"value":224},{"type":15,"tag":68,"props":7184,"children":7185},{},[],{"type":15,"tag":72,"props":7187,"children":7188},{"id":230},[7189],{"type":21,"value":233},{"type":15,"tag":23,"props":7191,"children":7192},{},[7193],{"type":21,"value":238},{"title":7,"searchDepth":240,"depth":240,"links":7195},[7196,7197,7198,7199,7200],{"id":74,"depth":243,"text":77},{"id":116,"depth":243,"text":119},{"id":142,"depth":243,"text":145},{"id":182,"depth":243,"text":185},{"id":230,"depth":243,"text":233},1775439044807]