{
  "version": "https://jsonfeed.org/version/1.1",
  "title": "Katie&#39;s Place | 347Online.me",
  "language": "en",
  "home_page_url": "https://347online.me/blog/",
  "feed_url": "https://347online.me/blog/feed.json",
  "description": "",
  "authors": [
    {
      "name": "Katie Janzen",
      "url": "mailto:katiejanzen@347online.me"
    }
  ],
  "items": [
    {
      "id": "https://347online.me/blog/corbindavenport-just-the-browser/",
      "url": "https://347online.me/blog/corbindavenport-just-the-browser/",
      "title": "I shouldn&#39;t have to resort to half-working Firefox forks",
      "content_html": "<p>My friend <a href=\"https://corbin.io/\">Corbin Davenport</a> has created numerous <a href=\"https://corbin.io/software/\">useful tools</a><sup class=\"footnote-ref\"><a href=\"https://347online.me/blog/corbindavenport-just-the-browser/#fn_corbindavenport-just-the-browser_link-cleaner\" id=\"fnref_corbindavenport-just-the-browser_link-cleaner\">[1]</a></sup> over the years to make the web a nicer place.\nUnfortunately, it's not just the web that's worsening, but the browsers in which we view it too.</p>\n<p>Corbin's really outdone himself with <a href=\"https://justthebrowser.com\">Just the Browser</a>. I myself am a Firefox user, and I've been on <a href=\"https://bsky.app/profile/347online.me/post/3m4rmi2kxkc2z\">my own odyssey</a> to get all these annoyances disabled.\nI've been implementing this via my <a href=\"https://github.com/347Online/347OS/\">Nix config</a>, but while that's great for me, it's an awful lot of complexity.</p>\n<p>I'm really glad someone out there is doing the work of making these kinds of improvements accessible to as many people as possible who may not feel comfortable digging around in weird obscure settings.</p>\n<p>Thank you &lt;3</p>\n<hr class=\"footnotes-sep\">\n<section class=\"footnotes\">\n<ol class=\"footnotes-list\">\n<li id=\"fn_corbindavenport-just-the-browser_link-cleaner\" class=\"footnote-item\"><p>I myself use <a href=\"https://linkcleaner.app/\">Link Cleaner</a> most frequently <a href=\"https://347online.me/blog/corbindavenport-just-the-browser/#fnref_corbindavenport-just-the-browser_link-cleaner\" class=\"footnote-backref\">↩︎</a></p>\n</li>\n</ol>\n</section>\n",
      "date_published": "2026-01-29T06:00:00Z"
    }
    ,
    {
      "id": "https://347online.me/blog/lizstar-mp4beyond-review/",
      "url": "https://347online.me/blog/lizstar-mp4beyond-review/",
      "title": "Samus did not crawl out of development hell unchanged",
      "content_html": "<div class=\"markdown-alert markdown-alert-note\"><p class=\"markdown-alert-title\"><svg class=\"octicon octicon-info mr-2\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z\"></path></svg>Note</p><p>The linked post contains spoilers for Metroid Prime 4: Beyond</p>\n</div>\n<p>I really enjoyed Lizstar's review of Metroid Prime 4: Beyond and highly recommend giving it a read. My feelings traced a very similar arc to Liz. I may or may not end up publishing a post of my own on the subject, although I wouldn't call it a review.</p>\n<p>We'll see.</p>\n",
      "date_published": "2025-12-09T06:00:00Z"
    }
    ,
    {
      "id": "https://347online.me/blog/protagonists-antagonists-and-toy-story/",
      "url": "https://347online.me/blog/protagonists-antagonists-and-toy-story/",
      "title": "Protagonists, Antagonists, and Toy Story",
      "content_html": "<p>Recently, in a conversation with my friend and colleague Zak<sup class=\"footnote-ref\"><a href=\"https://347online.me/blog/protagonists-antagonists-and-toy-story/#fn_protagonists-antagonists-and-toy-story_0\" id=\"fnref_protagonists-antagonists-and-toy-story_0\">[1]</a></sup>, we came upon the subject of Toy Story<sup class=\"footnote-ref\"><a href=\"https://347online.me/blog/protagonists-antagonists-and-toy-story/#fn_protagonists-antagonists-and-toy-story_1\" id=\"fnref_protagonists-antagonists-and-toy-story_1\">[2]</a></sup>. Zak made the rather bold claim that Woody is the true villain of the first film, and we had a fun little back and forth about that before our attention was drawn back to other matters. I've seen this take go around a few times over the years, and there is certainly some truth to it! This has been rattling around in my head ever since, so I'd like to offer the slightly more complex perspective I eventually sent to Zak the following Saturday.</p>\n<div class=\"markdown-alert markdown-alert-warning\"><p class=\"markdown-alert-title\"><svg class=\"octicon octicon-alert mr-2\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z\"></path></svg>Warning</p><p>Spoilers for Toy Story (1995)</p>\n</div>\n<hr>\n<p><picture><source type=\"image/webp\" srcset=\"https://347online.me/img/efwT7za626-500.webp 500w\"><img src=\"https://347online.me/img/efwT7za626-500.jpeg\" alt=\"Silhouette of Woody against a backdrop of the plaid-patterned material making up the lion's share of his iconic outfit. Text at the bottom reads in a messy font resembling spatter 'Reach for the sky'\" style=\"display: block; margin: auto;\" width=\"500\" height=\"807\"></picture>\n<span style=\"font-size: small; width: 100%; justify-content: center; display: flex;\">Image Credit: Zak Dagnall</span></p>\n<p>Woody is the protagonist, in that he is the primary character we follow throughout the story.<sup class=\"footnote-ref\"><a href=\"https://347online.me/blog/protagonists-antagonists-and-toy-story/#fn_protagonists-antagonists-and-toy-story_2\" id=\"fnref_protagonists-antagonists-and-toy-story_2\">[3]</a></sup>. The terms protagonist and antagonist do not describe the morals of the characters, rather they describe the characters' relationship to one another within the structure of the narrative. From the start Woody is a flawed character and most certainly not a hero. He's bossy, irritable, and set in his ways. However, while villains are often also portrayed this way, these are not inherently villainous qualities.</p>\n<p>Despite his shortcomings, we know that he does care about Andy and the other toys. Before Buzz shows up, Woody's actions are entirely in service of maintaining calm among them amidst the tension of the impending move. He's trying to ensure things go smoothly and that no toy is left behind.</p>\n<p>Buzz' arrival disrupts the status quo to which Woody has become complacent. It's possible, if perhaps unlikely, that Woody had been entirely truthful in his initial claims not to be worried about being replaced. The events prior to the trip to Pizza Planet are a test of Woody's character which he fails! Instead of rising above his insecurities and letting Andy make his own choice, he opts to give into them by putting his thumb on the scale. In his attempt to knock Buzz behind the table, he intends only to incapacitate Buzz long enough so that he can go to Pizza Planet with Andy. Buzz falls out the window instead because this plan goes awry. Interestingly we see a glimmer of Woody's conscience take over in this scene. When Buzz falls, Woody's immediate <em>instinctual</em> reaction is one of concern for his fellow toy, sticking his head out the window exclaiming &quot;Buzz!&quot;. It's only after he's had a moment to process these events that, confronted by the other toys, he reverts to myopic self-interest.</p>\n<p>Later, trapped under the milk crate in Sid's house, attempting to rally a demoralized Buzz to his aid, he is forced to finally accept responsibility for getting them into this mess in the first place, his remorse evident in his statement that &quot;I'm the one that should be strapped to that rocket&quot;. The scene where Woody makes it into the moving truck and attempts to use R/C to rescue Buzz is a mirror image of the earlier scene at the window. His belief in &quot;no toy left behind&quot; reaffirmed, he refuses to make the same mistake twice. His actions here are the <em>exact opposite</em> of those prior. Concerned only with rescuing Buzz, he wastes no time trying to explain himself<sup class=\"footnote-ref\"><a href=\"https://347online.me/blog/protagonists-antagonists-and-toy-story/#fn_protagonists-antagonists-and-toy-story_3\" id=\"fnref_protagonists-antagonists-and-toy-story_3\">[4]</a></sup>.</p>\n<p>Woody is a nuanced character who, despite his principles, is not immune to his own selfish desires<sup class=\"footnote-ref\"><a href=\"https://347online.me/blog/protagonists-antagonists-and-toy-story/#fn_protagonists-antagonists-and-toy-story_4\" id=\"fnref_protagonists-antagonists-and-toy-story_4\">[5]</a></sup>, but this is exactly what makes his arc so satisfying. Facing the consequences of his actions reminds him that what's truly important is doing what's best for others, even when it's not what's best for him. Neither hero nor villain, I'd argue that his character is something far more compelling: Human.</p>\n<p>Happy 30th Anniversary Toy Story</p>\n<hr class=\"footnotes-sep\">\n<section class=\"footnotes\">\n<ol class=\"footnotes-list\">\n<li id=\"fn_protagonists-antagonists-and-toy-story_0\" class=\"footnote-item\"><p>Who, by the way, also made the image seen at the top of this article which he has graciously allowed me to use here. Thanks Zak! <a href=\"https://347online.me/blog/protagonists-antagonists-and-toy-story/#fnref_protagonists-antagonists-and-toy-story_0\" class=\"footnote-backref\">↩︎</a></p>\n</li>\n<li id=\"fn_protagonists-antagonists-and-toy-story_1\" class=\"footnote-item\"><p>This is an extremely common occurrence in conversations with me. My brain is a machine that turns conversational context into Toy Story references 😅 <a href=\"https://347online.me/blog/protagonists-antagonists-and-toy-story/#fnref_protagonists-antagonists-and-toy-story_1\" class=\"footnote-backref\">↩︎</a></p>\n</li>\n<li id=\"fn_protagonists-antagonists-and-toy-story_2\" class=\"footnote-item\"><p>Buzz is our secondary main character, the word for which is <em>deuteragonist</em>, which I find fun <a href=\"https://347online.me/blog/protagonists-antagonists-and-toy-story/#fnref_protagonists-antagonists-and-toy-story_2\" class=\"footnote-backref\">↩︎</a></p>\n</li>\n<li id=\"fn_protagonists-antagonists-and-toy-story_3\" class=\"footnote-item\"><p>Causing him to be thrown overboard by Rocky, ironically <a href=\"https://347online.me/blog/protagonists-antagonists-and-toy-story/#fnref_protagonists-antagonists-and-toy-story_3\" class=\"footnote-backref\">↩︎</a></p>\n</li>\n<li id=\"fn_protagonists-antagonists-and-toy-story_4\" class=\"footnote-item\"><p>This comes up again in Toy Story 2 for that matter when the other toys show up to rescue Woody from Al <a href=\"https://347online.me/blog/protagonists-antagonists-and-toy-story/#fnref_protagonists-antagonists-and-toy-story_4\" class=\"footnote-backref\">↩︎</a></p>\n</li>\n</ol>\n</section>\n",
      "date_published": "2025-11-20T06:00:00Z"
    }
    ,
    {
      "id": "https://347online.me/blog/the-stewardship-of-walking-in-love/",
      "url": "https://347online.me/blog/the-stewardship-of-walking-in-love/",
      "title": "The Stewardship of Walking in Love",
      "content_html": "<p>I was honored on Sunday Morning November 2nd, 2025, to have the opportunity to speak at St. Andrew's Episcopal Church, which I have been attending for about a year now. Part of our Stewardship Season Speaker Series, I wanted to introduce my fellow parishioners to my late mother and the lessons she taught me about what it truly means to be a Christian, despite what some of the loudest voices would say.</p>\n<p>Dedicated to Christina Janzen (1964 - 2017), who taught me each and every day through word and deed alike what it truly means to love unconditionally.<br>\nI love and miss you so much, Mom. Thank you for always loving me.<br>\nMay you rest in peace.</p>\n<div id=\"bQ5HQ57iG5k\" class=\"eleventy-plugin-youtube-embed\" style=\"position:relative;width:100%;padding-top: 56.25%;\"><iframe style=\"position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;\" width=\"100%\" height=\"100%\" frameborder=\"0\" title=\"Embedded YouTube video\" src=\"https://www.youtube-nocookie.com/embed/bQ5HQ57iG5k\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" allowfullscreen></iframe></div>\n<h3>The Stewardship of Walking in Love (<a href=\"https://347online.me/blog/the-stewardship-of-walking-in-love/printable.pdf\">PDF</a>)</h3>\n<p>Good morning.</p>\n<p>When I was little, Sunday Morning meant Sunday School. I learned a lot there each week with my two younger siblings. We learned about a young couple living in a beautiful garden, and how life changed for them after eating something they shouldn't have. We learned about a man who built an enormous boat to save animals from extinction. We also learned of course, about the barn-born carpenter named Jesus, who was unjustly killed when his &quot;radical ideology&quot; made too many waves. Stewardship is a recurring theme across each of these stories, but I'm not here to talk to you today about tending the land, or preserving endangered wildlife. No, what I'm here to talk to you about today is walking in love.</p>\n<p>In all my life, I have never known a better example of this than my late mother, Christina Janzen. My Mom was always doing something for somebody, whether it was bringing an elder a hot meal after a bad fall, or visiting people in the hospital to lay hands on and pray for them. For as long as I can remember, she truly lived up to her name 'Christina', which literally means 'follower of Christ'. According to her, walking in love meant treating others the way you want to be treated, helping people in need, and showing kindness <em>and</em> acceptance to <em>everyone</em>, <em>especially</em> those who were different from us. Her clearest demonstration of this to me, was her constant refrain that for as long as she lived, she would <em>always</em> accept my siblings and I for who we were, no matter what. Anyone who knew my Mom adored her and she adored them right back. Needless to say, <em>everyone</em> was devastated when she died eight years ago, after a long battle with various illnesses. While I received many wonderful things from my Mom such as her love for classic rock, or the red four-slice toaster she gave me for Christmas the year I rented my first home, showing me what it <em>truly</em> means to love <em>unconditionally</em>, was far and away her greatest gift to me.</p>\n<p>As I reached adulthood, working my first job, paying my first bills, and starting a family of my own, I'd been experiencing a crisis of faith. I saw so many people who called themselves 'Christians' seem to lose sight of <em>anything</em> other than the so-called &quot;abominations&quot; of dressing the &quot;wrong&quot; way, or loving the &quot;wrong&quot; people. Mom, for her part, was disgusted by this, and when the pastor preached a 45-minute sermon exclusively dedicated to demonizing gay and transgender people, she never set foot in that church again. If this experience had weakened my faith, losing my Mom destroyed it. How was I supposed to be a Christian in a world where the voices <em>screaming</em> about who was and was not acceptable were amplified, yet my mother's voice, which only spoke words of love and reconciliation, had been silenced?</p>\n<p>I had seldom been back to a church ever since, when I attended my first service here at St. Andrew's. Having seen so many claiming to represent 'Christianity' despite making targets out of first one sibling, then another, and finally myself, I was initially timid and skeptical. While those of you in this parish who know me have only ever known me as Katie, a woman, I have cried my eyes out so many times lamenting that the woman who raised me, and who always promised to accept me <em>for me</em>, never had the chance to meet the version of myself standing here today.</p>\n<p>But I am so proud to say that St. Andrew's is where <em>I</em> belong because here, the golden rule isn't some childish thing to leave behind, 'all are welcome' is more than just a slogan, and each week we are instructed to practice the kind of stewardship my Mom always taught me. &quot;Walk in love as Christ loved us and gave himself for us, an offering and sacrifice to God.&quot; THAT is what stewardship <em>truly</em> means to me. Unconditional love.</p>\n<p>Thank you</p>\n",
      "date_published": "2025-11-04T06:00:00Z"
    }
    ,
    {
      "id": "https://347online.me/blog/introducing-kclip/",
      "url": "https://347online.me/blog/introducing-kclip/",
      "title": "Introducing KClip 📋",
      "content_html": "<p>KClip is a cross-platform commandline utility I wrote for copying to and pasting from the system clipboard, similar to pbcopy/pbpaste on macOS.</p>\n<p>You can install it now via cargo</p>\n<pre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#FFA657\">cargo</span><span style=\"color:#A5D6FF\"> install</span><span style=\"color:#A5D6FF\"> kclip-cli</span></span>\n<span class=\"line\"><span style=\"color:#FFA657\">kclip</span><span style=\"color:#A5D6FF\"> install</span><span style=\"color:#8B949E\"> # installs symlink aliases for kccopy/kcpaste</span></span>\n<span class=\"line\"></span></code></pre>\n<p>More info: <a href=\"https://github.com/347Online/kclip-cli\">github.com/347Online/kclip-cli</a></p>\n<hr>\n<p>I've long been annoyed by not having a consistent commandline interface to the clipboard across macOS and Linux. I had long ago had the idea to use a shell script to abstract over the different tools available across the different platforms, but this idea wasn't particularly satisfying and I never ended up moving on it.</p>\n<p>Recently however, I was browsing 1Password's GitHub repositories (as one does) and I noticed they maintain a library called <a href=\"https://github.com/1Password/arboard\">Arboard</a>. This library is fantastic. As I was reading the documentation I suddenly had the realization that I could use this to solve my issue!</p>\n<p>I've been using KClip myself for about a week now and I'm already really happy with it. It's feature-complete in terms of my initial vision for a minimum viable product, but I already have some fun new ideas I'm playing with.</p>\n<p>If this sounds like a tool you could use, I'd be so happy if you gave it a look.</p>\n<p>Watch this space for updates as KClip evolves</p>\n",
      "date_published": "2025-10-09T05:00:00Z"
    }
    ,
    {
      "id": "https://347online.me/blog/techathon-2025/",
      "url": "https://347online.me/blog/techathon-2025/",
      "title": "Techathon 2025",
      "content_html": "<p>I'm pleased to announce that I'll be joining the Techathon livestream this Saturday, September 27th.</p>\n<p>We'll be playing games, discussing technology topics, all benefitting Médecins Sans Frontières (Doctors Without Borders).</p>\n<p>MSF's life-saving mission has perhaps never been more important, so I'm incredibly honored to be participating.</p>\n<p>Details for the event can be found at <a href=\"https://techathon.live\">techathon.live</a></p>\n<p>Hope to see you there!</p>\n",
      "date_published": "2025-09-23T05:00:00Z"
    }
    ,
    {
      "id": "https://347online.me/blog/ttmc-pirates-of-silicon-valley/",
      "url": "https://347online.me/blog/ttmc-pirates-of-silicon-valley/",
      "title": "Tech Tales Movie Club: Pirates of Silicon Valley
",
      "content_html": "<p>In case you missed it, I was on another episode of Tech Tales, hosted by my friend Corbin Davenport. This was my first movie club episode and I had a blast. Corbin, Zachary Wander, and myself discussed Pirates of Silicon Valley. It's hard to say it was a &quot;good&quot; movie, but I do highly recommend it if you have any interest in the early rivalry between Apple and Microsoft. It also has some of the best casting choices imaginable.</p>\n<p>Check out the movie, then listen to the episode wherever you get your podcasts!</p>\n",
      "date_published": "2025-08-03T05:00:00Z"
    }
    ,
    {
      "id": "https://347online.me/blog/the-new-347online-dot-me/",
      "url": "https://347online.me/blog/the-new-347online-dot-me/",
      "title": "The New 347Online.me",
      "content_html": "<p>I've been dissatisfied with my website since oh... I dunno, a few minutes after <span title=\"perhaps a *slight* exaggeration\">I launched it</span>?\nNot to mention that my blog was completely separate from the website as a whole. That sucks!</p>\n<p>I knew I could do better. A regular hey-I'm-just-a-person-who-says-stuff-sometimes website shouldn't be a <span title=\"that's exactly what my old site was *shudder*\">React app</span>.\nAnd I've been doing this kind of thing long enough that I can make my own blog, damn it.</p>\n<p>I've been itching to switch over to a static site generator and finally after much deliberation, I have switched over to <a href=\"https://www.11ty.dev/\">11ty</a> — check out the <a href=\"https://github.com/347Online/347Online.me\">source code</a> for details.</p>\n<p>I'm really trying to write more and I've realized that I hated the publishing workflow for my old blog.\nI'm a [Neo]Vim girlie and these days that's where I do all of my writing. Pasting that markdown into a web form didn't feel nice. Writing in the editor I spend most of my time in and being able to write drafts as git commits in a pull request sparks joy.</p>\n<p>Even as I write this I'm already quite enamored with this new workflow.\nIt's never felt easier to express myself.</p>\n<p>There are still a few rough edges I'd like to polish up — if I don't have RSS soon I'll go mad — but this should be a great foundation to build on for years to come.</p>\n<p>I couldn't be happier. I hope to talk to you here again real soon. :)</p>\n",
      "date_published": "2025-06-21T05:00:00Z"
    }
    ,
    {
      "id": "https://347online.me/blog/bloomfield-bridge-mystery/",
      "url": "https://347online.me/blog/bloomfield-bridge-mystery/",
      "title": "The Mystery of the Bloomfield Bridge",
      "content_html": "<p>This article is incredible. What starts as a banal public works inquiry quickly spirals into a sprawling affair uncovering a shocking amount of history for what seems like a trivial question:\nWhy did they build this bridge?</p>\n",
      "date_published": "2025-05-13T05:00:00Z"
    }
    ,
    {
      "id": "https://347online.me/blog/dont-show-legal-names/",
      "url": "https://347online.me/blog/dont-show-legal-names/",
      "title": "Your product shouldn’t require showing my legal name",
      "content_html": "<p>This is one of my biggest frustrations with many online services particularly those in the realm of hiring and employment as Nicole mentioned with LinkedIn</p>\n<p>What especially gets me is when they ask for a preferred name, then continually refer to me by my legal name anyway</p>\n",
      "date_published": "2025-02-24T06:00:00Z"
    }
    ,
    {
      "id": "https://347online.me/blog/estimating-sells-short/",
      "url": "https://347online.me/blog/estimating-sells-short/",
      "title": "Estimating projects sells them short (and that’s okay)",
      "content_html": "<blockquote>\n<p>The upshot here is that given this sort of distribution, we capture the property of unlimited potential\ndownside with limited upside. And this is really the case with estimates!</p>\n</blockquote>\n<p>This point about unlimited potential downside with limited upside is going to stick with me.</p>\n",
      "date_published": "2024-12-17T06:00:00Z"
    }
    
  ]
}