<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Kai Katschthaler (they/them)</title>
    <description>The latest articles on Forem by Kai Katschthaler (they/them) (@thegrumpyenby).</description>
    <link>https://forem.com/thegrumpyenby</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F965374%2Fdf77c7c5-fd3c-45a1-9ca9-0bd85bc53fa7.jpeg</url>
      <title>Forem: Kai Katschthaler (they/them)</title>
      <link>https://forem.com/thegrumpyenby</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/thegrumpyenby"/>
    <language>en</language>
    <item>
      <title>🧊 Cool things for a hot open-source summer! (Scaleway Community Newsletter, June 2023)</title>
      <dc:creator>Kai Katschthaler (they/them)</dc:creator>
      <pubDate>Mon, 19 Jun 2023 12:52:15 +0000</pubDate>
      <link>https://forem.com/scaleway/cool-things-for-a-hot-open-source-summer-scaleway-community-newsletter-june-2023-21b</link>
      <guid>https://forem.com/scaleway/cool-things-for-a-hot-open-source-summer-scaleway-community-newsletter-june-2023-21b</guid>
      <description>&lt;p&gt;This is the web edition of Scaleway's monthly community newsletter, where we share interesting stuff dedicated to various topics devs and devOps folks care about. If you want this in your inbox every month, &lt;a href="https://scaleway.typeform.com/newsletter?typeform-source=dev.to"&gt;subscribe today&lt;/a&gt;!&lt;/p&gt;




&lt;p&gt;Hi there!&lt;/p&gt;

&lt;p&gt;The temperatures are rising, people are going on holiday, and in many industries, work starts to slow down a bit over the summer. Perhaps you find yourself blocked in your work by someone who’s jetted off on a sunny holiday (how dare they? 😉).&lt;/p&gt;

&lt;p&gt;Or maybe you’re the one who’s taken some time off, but you’ve got nowhere to go and are trying to escape the heat inside. 🥵&lt;/p&gt;

&lt;p&gt;Why not use some of that extra time to contribute to your favorite open-source project?&lt;/p&gt;

&lt;p&gt;So many companies’ software stacks are built on open-source tools. And many of us use open-source software almost daily in our private lives as well, often without noticing.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--IlpZLC-v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d2qfvz4fpu0ru80qz7dl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--IlpZLC-v--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d2qfvz4fpu0ru80qz7dl.png" alt="3d-rendered image of an iceberg. The tip of it that peeks out over the water surface is labelled “company’s software stack”. The much larger part of it that is under water is labelled “all free and open source libraries and software it relies on”" width="800" height="1067"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;a href="https://unsplash.com/@simonppt"&gt;Source: Unsplash/Simon Lee
&lt;/a&gt;



&lt;p&gt;Taking the time to &lt;strong&gt;contribute to free and open-source software&lt;/strong&gt; is a great way to give back to the often vastly under-compensated projects that keep our tech running. But it’s not the only way. You can find a bunch of other tips in our blog post &lt;a href="https://www.scaleway.com/en/blog/foss-giving-back/"&gt;Giving back to Free and Open-Source Software (FOSS)&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;So — now that you’ve gotten past my enthusiastic attempts to make this seasonal —, let’s get ready for a hot open-source summer and cool off with a whole bunch of open-source-related topics, tips, and links!&lt;/p&gt;

&lt;h2&gt;
  
  
  📚 Cool OSS reads
&lt;/h2&gt;

&lt;p&gt;As the image of the iceberg above so nicely illustrates, &lt;strong&gt;we’re relying on open source for a lot of the things we build&lt;/strong&gt;. And if we forget that, we can potentially end up in hot water. Chris Lewis makes a case for &lt;a href="https://hackmd.io/@cflewis/Sk0gb9ILh"&gt;Software Dependency Engineering&lt;/a&gt; to keep the dependency management problem from worsening and averting disaster.&lt;/p&gt;

&lt;p&gt;While we’re at it, maybe we should also have a look at &lt;strong&gt;what even constitutes open source&lt;/strong&gt;. Is a project still open source even if it is closed to contributions? &lt;a href="https://github.com/readme/featured/how-open-is-open-source"&gt;How ‘open’ should your open source be?&lt;/a&gt; tackles this brilliantly, and I quite like that it also briefly taps into what accepting contributions can mean for maintainer mental health.&lt;/p&gt;

&lt;p&gt;I also enjoyed reading &lt;a href="https://kylebenzle.medium.com/the-unreasonable-effectiveness-of-vlc-424bde0f90f1"&gt;The Unreasonable Effectiveness of VLC&lt;/a&gt;, which could best be described as &lt;strong&gt;a love letter to VLC&lt;/strong&gt;. I’ve always been a huge fan of VLC myself — and I’m not saying that to butter up &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7062709560246956033"&gt;our new Scaleway CEO&lt;/a&gt;, who just so happens to have been involved in VLC’s early days, but because of how VLC disrupted the industry and made so many things so much easier.&lt;/p&gt;

&lt;h2&gt;
  
  
  📅 Cool OSS events
&lt;/h2&gt;

&lt;p&gt;There are &lt;strong&gt;some cool open-source events/conferences&lt;/strong&gt; coming up this summer as well.&lt;/p&gt;

&lt;p&gt;Get ready for &lt;strong&gt;&lt;a href="https://2023.fossy.us"&gt;FOSSY 2023&lt;/a&gt;&lt;/strong&gt;, the “first Free and Open Source Software Yearly conference”. FOSSY 2023 is an in-person event in &lt;strong&gt;Portland, Oregon (US)&lt;/strong&gt;, from &lt;strong&gt;July 13-16&lt;/strong&gt;. The event has a reduced-fare ticket tier for those on a budget and a code of conduct.&lt;/p&gt;

&lt;p&gt;Then there’s the &lt;strong&gt;&lt;a href="https://2023.pass-the-salt.org"&gt;Pass the SALT conference&lt;/a&gt;&lt;/strong&gt;, a free conference dedicated to free software and security. The conference takes place in &lt;strong&gt;Lille, France,&lt;/strong&gt; &lt;strong&gt;July 3–5,&lt;/strong&gt; and also has a code of conduct.&lt;/p&gt;

&lt;p&gt;Find more FOSS events near you on &lt;a href="https://foss.events"&gt;foss.events&lt;/a&gt;!&lt;/p&gt;

&lt;h2&gt;
  
  
  🪛 Cool new(ish) tools
&lt;/h2&gt;

&lt;p&gt;A few weeks ago, &lt;a href="https://github.com/polarsource/polar"&gt;Polar&lt;/a&gt; was published. Polar is an open-source tool to give maintainers a way to organize &lt;strong&gt;direct funding for specific issues in their backlog&lt;/strong&gt;. Love to see open-source tools trying to solve open-source problems. 👏🏻&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--muuBRcFG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hor55v6yqf8os1n6x3bi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--muuBRcFG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/hor55v6yqf8os1n6x3bi.png" alt="Screenshot of a tweet by Birk Jernström that reads: “Super excited to unveil and open source Polar today (in private alpha)! Polar gives open source maintainers a better and funded backlog based on what drives the most impact within their community.”" width="601" height="715"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;a href="https://www.google.com/url?q=https://twitter.com/birk/status/1658093205009879046?s%3D20&amp;amp;sa=D&amp;amp;source=docs&amp;amp;ust=1687173931950063&amp;amp;usg=AOvVaw0035YjMz4MeXx_2r5fDg7_"&gt;Source: Twitter
&lt;/a&gt;



&lt;p&gt;Another project in that vein is &lt;a href="https://github.com/os-scar/overlay"&gt;Overlay&lt;/a&gt;, an open-source browser extension to help developers &lt;strong&gt;evaluate open-source packages&lt;/strong&gt; before picking them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.ferretdb.io"&gt;FerretDB&lt;/a&gt; is a (truly) &lt;strong&gt;open-source alternative to MongoDB&lt;/strong&gt;. It’s not super mature, so you probably can’t completely replace MongoDB with it just yet, but it’s a good start. Which is why we decided to &lt;a href="https://www.scaleway.com/en/blog/ferretdb-open-source-alternative-mongodb/"&gt;add FerretDB to Scaleway’s ecosystem&lt;/a&gt; a while back. 🎉&lt;/p&gt;

&lt;p&gt;&lt;a href="https://sandstorm.io"&gt;Sandstorm.io&lt;/a&gt; is here to &lt;strong&gt;make self-hosting web apps super easy&lt;/strong&gt; and super secure. Each “grain” (or object) in the Sandstorm is containerized and isolated from others unless you say otherwise. You can install Sandstorm locally or in the cloud. Many of the apps available on the &lt;a href="https://apps.sandstorm.io"&gt;Sandstorm app market&lt;/a&gt; are also open source. Sandstorm &lt;a href="https://sandstorm.io/install"&gt;runs on Linux&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;As you probably heard, people &lt;a href="https://www.engadget.com/reddit-app-developer-says-the-sites-new-api-rules-will-cost-him-20-million-a-year-203911487.html"&gt;aren’t very happy with Reddit&lt;/a&gt; at the moment, be it for charging huge monies for API access or the incessant targeted ads. So for everyone who likes their privacy, Teddit is here to save the day! &lt;a href="https://codeberg.org/teddit/teddit"&gt;Teddit&lt;/a&gt; (much to my disappointment, it doesn’t have a teddy bear as a logo) is a &lt;strong&gt;​​free and open-source alternative Reddit front-end&lt;/strong&gt; focused on privacy. No JS, no ads!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/windmill-labs/windmill"&gt;Windmill&lt;/a&gt; is an &lt;strong&gt;open-source alternative to Airplane and Retool&lt;/strong&gt;, letting you turn scripts into workflows and UIs.&lt;/p&gt;

&lt;p&gt;Meanwhile, &lt;a href="https://plane.so"&gt;Plane&lt;/a&gt; (accidental wind theme in this section of the newsletter) is an open-source project management tool for software development — basically an &lt;strong&gt;alternative to JIRA&lt;/strong&gt; and the like.&lt;/p&gt;

&lt;h2&gt;
  
  
  👀 More interesting OSS-related links
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Github Next is working on a &lt;a href="https://githubnext.com/projects/copilot-cli/"&gt;Copilot for CLI&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/opensauced/how-to-write-a-good-issue-tips-for-effective-communication-in-open-source-5443"&gt;How to Write a Good Issue: Tips for Effective Communication in Open Source&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/raxraj/npm-vs-yarn-vs-pnpm-fo8"&gt;npm v/s yarn v/s pnpm&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s it for this month! Stay cool, stay hydrated, and show FOSS some love 💝&lt;/p&gt;

&lt;p&gt;Cheers,&lt;/p&gt;

&lt;p&gt;Kai from Scaleway&lt;/p&gt;

</description>
      <category>community</category>
      <category>news</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Here’s to New Beginnings (Scaleway Community Newsletter, May 2023)</title>
      <dc:creator>Kai Katschthaler (they/them)</dc:creator>
      <pubDate>Mon, 19 Jun 2023 12:38:48 +0000</pubDate>
      <link>https://forem.com/scaleway/heres-to-new-beginnings-scaleway-community-newsletter-may-2023-29kk</link>
      <guid>https://forem.com/scaleway/heres-to-new-beginnings-scaleway-community-newsletter-may-2023-29kk</guid>
      <description>&lt;p&gt;&lt;em&gt;This is the web edition of Scaleway's new monthly community newsletter, where we share interesting stuff dedicated to various topics devs and devOps folks care about. If you want this in your inbox every month, &lt;a href="https://scaleway.typeform.com/newsletter"&gt;subscribe today&lt;/a&gt;!&lt;/em&gt;&lt;/p&gt;




&lt;p&gt;Hi there!&lt;/p&gt;

&lt;p&gt;👋🏻 Welcome to our new newsletter (try saying &lt;em&gt;that&lt;/em&gt; 3x fast in a row) for the developer community. Everything is pretty new here, such as this newsletter itself, which you will get every month now and which will have a different theme each time. I’m also pretty new, at least here at Scaleway 😉 So I figured why not make the theme of this first newsletter “New Beginnings”?&lt;/p&gt;

&lt;p&gt;Starting a new job always means being exposed to so many new things, and I have learned a lot in the past few weeks as I started working with our engineers to help them write articles for our blog: I learned about &lt;a href="https://www.scaleway.com/en/blog/iam-identity-access-management/"&gt;Identity and Access Management (IAM)&lt;/a&gt;, for example. I also know more about containers now than I did a month ago. I really learned a whole lot about Kubernetes, first and foremost, the various ways to pronounce &lt;em&gt;kubectl&lt;/em&gt;, a command line tool for controlling Kubernetes clusters. 😜 Some might argue that it’s pronounced “kube control” but my brain just unfailingly chooses to go with an almost Mayan-sounding pronunciation: “queue-bektl”. Don’t @ me, okay! 🤷&lt;/p&gt;

&lt;p&gt;So, moving on from the truly riveting &lt;em&gt;kubectl&lt;/em&gt; debate, I’ve compiled a non-exhaustive list of recent new things that could get devs excited, from GitHub slash commands to running AI locally. &lt;/p&gt;

&lt;h2&gt;
  
  
  📚 Learning something new
&lt;/h2&gt;

&lt;p&gt;So, as I said above, I’ve learned a lot of new things in the last few weeks. One of the many things new to me was Load Balancing. I came across &lt;a href="https://samwho.dev/load-balancing/"&gt;this excellent explanation&lt;/a&gt; of how Load Balancing works and found it extremely helpful.&lt;/p&gt;

&lt;p&gt;It’s well structured; it doesn’t imply anything, explains everything, and is well written. Overall, something to make me, as a tech content specialist, extremely excited. And if you want to learn about Load Balancing as well, it’s a great resource to start with. Try not to get mesmerized by the visualizations! 😵‍💫&lt;/p&gt;

&lt;h2&gt;
  
  
  💻 Trying something new
&lt;/h2&gt;

&lt;p&gt;If you’re a new developer, you intimately know the fear of making your first pull request. I myself have only made no-code contributions to open source so far, and I was still sweating buckets each time. And even if you’re an experienced dev, you can probably still remember that rising panic even if you no longer remember what your first PR actually was.&lt;/p&gt;

&lt;p&gt;Bekah Hawrot-Weigel from OpenSauced wrote a blog post to help guide developers to make their first pull request: &lt;a href="https://dev.to/opensauced/writing-your-first-pull-request-tips-best-practices-and-ai-powered-tools-for-success-3bg9"&gt;Writing Your First Pull Request: Tips, Best Practices, and AI-Powered Tools for Success&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  🤖 Getting excited about something new
&lt;/h2&gt;

&lt;p&gt;Did you hear you can now run Large Language Models (LLM) locally? Like, in your browser? Because you totally can! Check out &lt;a href="https://github.com/mlc-ai/web-llm"&gt;WebLLM, an LLM-based web chatbot that runs in your browser&lt;/a&gt; without server support. WebLLM runs on Vicuna-7B and is made possible by the release of &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/WebGPU_API"&gt;WebGPU&lt;/a&gt;, an API that enables developers to make use of the underlying system’s GPU.&lt;/p&gt;

&lt;p&gt;Creating an in-browser sandbox environment for an AI chatbot brings potentially interesting opportunities for the future, such as maintaining privacy while still using AI to help you out with tasks.&lt;/p&gt;

&lt;p&gt;The project is still in its infancy, but if you have a Mac with an Apple silicon chip, you can &lt;a href="https://mlc.ai/web-llm/"&gt;run a small demo of WebLLM in Chrome Canary&lt;/a&gt; to see what it’s like. &lt;a href="https://simonwillison.net/2023/Apr/16/web-llm/"&gt;Some folks have tried it&lt;/a&gt; already and seem quite delighted with it.&lt;/p&gt;

&lt;h2&gt;
  
  
  👀 ICYMI
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;GitHub &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7054610656171356160/"&gt;added slash commands&lt;/a&gt;! You can now use forward slash in issues, comments, and pull requests to quickly access markdown shortcuts in text boxes.&lt;/li&gt;
&lt;li&gt;Our DevRel team started to live stream recently. You can check out all previous &lt;a href="https://www.youtube.com/@Scaleway-cloud/streams"&gt;Scaleway Sessions&lt;/a&gt; on YouTube, and if you subscribe on YouTube or &lt;a href="https://www.twitch.tv/scaleway"&gt;Twitch&lt;/a&gt;, you’ll get notified of future live streams. Please, show our DevRel team some 💜&lt;/li&gt;
&lt;li&gt;🇫🇷 For our Paris community: on May 23rd we’ll be hosting a session of &lt;a href="https://www.scaleway.com/en/the-jam/"&gt;the Jam&lt;/a&gt;, our community event focused on engineering excellence. We’ll be talking about the culture of mentoring and building confidence at the beginning of your leadership journey with experts from &lt;a href="https://www.datadoghq.com/"&gt;Datadog&lt;/a&gt; and &lt;a href="https://www.rudder.io/"&gt;Rudder&lt;/a&gt;. &lt;a href="https://www.eventbrite.co.uk/e/the-jam-formerly-cto-forum-tickets-517301040337?aff=NewsletterCommunity"&gt;You can sign up here!&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;The &lt;a href="https://dev.to/devteam/announcing-the-github-dev-2023-hackathon-4ocn"&gt;GitHub + DEV Hackathon 2023&lt;/a&gt; was announced. Build something that benefits open source, utilizing GitHub Actions or GitHub Codespaces, by May 23, and you’ll be in the running to win some prizes. Just build it, submit it, and publish an official submission post on DEV! Good luck!&lt;/li&gt;
&lt;li&gt;If you’re new to command line stuff, you might like &lt;a href="https://github.blog/2023-04-26-cli-tricks-every-developer-should-know/"&gt;CLI tricks every developer should know&lt;/a&gt;, but I suspect even well-versed CLI users will find some helpful new tricks in this article,… which I &lt;em&gt;low-CLI&lt;/em&gt; love. See what I did there? Yeah, okay, I’ll see myself out now. 😆 Until next time! 👋🏻&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And May the 4th be with you! ⭐ ⚔️&lt;/p&gt;

&lt;p&gt;Cheers,&lt;br&gt;
Kai from Scaleway&lt;/p&gt;

</description>
      <category>news</category>
      <category>community</category>
      <category>learning</category>
    </item>
    <item>
      <title>Don’t Learn in a Vacuum: How Dev Communities Help Coding Newbies</title>
      <dc:creator>Kai Katschthaler (they/them)</dc:creator>
      <pubDate>Fri, 14 Apr 2023 14:17:16 +0000</pubDate>
      <link>https://forem.com/virtualcoffee/dont-learn-in-a-vacuum-how-dev-communities-help-coding-newbies-348p</link>
      <guid>https://forem.com/virtualcoffee/dont-learn-in-a-vacuum-how-dev-communities-help-coding-newbies-348p</guid>
      <description>&lt;p&gt;I’m fairly new to coding. I started last year with HTML and CSS, and right now I’m learning Python. So yeah, definitely a newbie.&lt;/p&gt;

&lt;p&gt;I have also been working in tech for more than a decade. Most of my friends are devs! And because I have so many ties to the tech world, I’ve been a member of various online dev communities for a while.&lt;/p&gt;

&lt;p&gt;And I think that this is where I have a huge advantage over pretty much every other person who is also learning to code but &lt;em&gt;doesn’t&lt;/em&gt; have that ecosystem that I have.&lt;/p&gt;

&lt;h2&gt;
  
  
  We don’t learn well in a vacuum
&lt;/h2&gt;

&lt;p&gt;Like many other species of the animal world, humans learn from each other. We learn by watching each other do things or through explaining things to each other.&lt;/p&gt;

&lt;p&gt;Sure, some of that can be done very well through bootcamps and interactive online courses. Some people also learn well from videos or books (&lt;a href="https://engage-education.com/blog/learning-styles-kinaesthetic-learner-characteristics/#:~:text=A%20kinaesthetic%20learner%20is%20someone,to%20retain%20and%20recall%20information"&gt;not me, though&lt;/a&gt;). I found I can get quite far with those resources, plugging away in my virtual learning environment, using the hints, googling when I get stuck. But sometimes, I hit that point where things become nebulous… fuzzy.&lt;/p&gt;

&lt;p&gt;You know, those questions that aren’t a clear question. The things your course materials seem to gloss over, and where googling won’t get you anywhere because you don’t even know &lt;em&gt;how&lt;/em&gt; to google for it. Heck, I don’t even think ChatGPT could help with this, to be honest.&lt;/p&gt;

&lt;p&gt;Those questions that usual start with…&lt;/p&gt;

&lt;h2&gt;
  
  
  “This is probably a silly question”
&lt;/h2&gt;

&lt;p&gt;I came across one of those today. While I was doing some exercises from the &lt;a href="https://www.codecademy.com/catalog/language/python"&gt;Codecademy Python&lt;/a&gt; course, I came up with the following solution to a problem they had posed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;over_budget&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;budget&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;food_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;electricity_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;internet_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;rent&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;budget&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;food_bill&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;electricity_bill&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;internet_bill&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;rent&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
  &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;My code ran and passed. All good. Someone else would have rejoiced and moved on. But I scrolled down and noticed a slight difference in the solution Codecademy provided for this exercise. Their solution was the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;over_budget&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;budget&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;food_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;electricity_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;internet_bill&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;rent&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;budget&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="n"&gt;food_bill&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;electricity_bill&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;internet_bill&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;rent&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
  &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You might not even have noticed the difference (and you probably lead a more peaceful life than I do). But because I am a professional nitpicker — I’m a tech content specialist so I do a lot of copy ~nitpicking~ editing —, I couldn’t move past those &lt;em&gt;two tiny litte parentheses&lt;/em&gt; in the &lt;code&gt;if&lt;/code&gt; statement.&lt;/p&gt;

&lt;p&gt;Those &lt;code&gt;()&lt;/code&gt; just niggled at me. Were they necessary? Was I missing something vital here? The clause in this function wasn’t complicated enough to warrant the &lt;code&gt;()&lt;/code&gt;, I thought, but maybe I was overlooking something? Would the missing &lt;code&gt;()&lt;/code&gt; bite me in the &lt;code&gt;(‿|‿)&lt;/code&gt; half a year down the road?&lt;/p&gt;

&lt;p&gt;Luckily, I have access to some great communities, so I took to &lt;a href="https://virtualcoffee.io"&gt;Virtual Coffee&lt;/a&gt;’s &lt;em&gt;#help-and-pairing&lt;/em&gt; channel on Slack.&lt;/p&gt;

&lt;h2&gt;
  
  
  Avoiding ingraining bad habits = peace of mind
&lt;/h2&gt;

&lt;p&gt;I posted the two code snippets and said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It’s a minor question but I like to understand these little things as I know these are the things that’ll come bite me in the ass later lol&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And within literal moments, one of our more experienced Python people was there to help me out and confirm my suspicion that the parentheses were, indeed, not needed in this case. With more complicated clauses, they might become handy but they definitely weren’t necessary for this particular example.&lt;/p&gt;

&lt;p&gt;And you know what? That little bit of information, knowing that I wasn’t overlooking anything, brought me such peace! It sounds kind of ridiculous, but these are the incredibly helpful things that allow me to learn to code without worrying that I am learning bad habits.&lt;/p&gt;

&lt;h2&gt;
  
  
  A community is more than the sum of its parts
&lt;/h2&gt;

&lt;p&gt;Without the access that the Virtual Coffee community gives me to developers of all kinds of levels, skill sets, and experiences, I would not have found this peace of mind so quickly.&lt;/p&gt;

&lt;p&gt;Sure, I could have asked some friends who are devs. I do have friends who are well-versed in Python. I could have asked on Twitter or Mastodon. But the easy access to the cumulated knowledge of countless different coding languages is what’s so amazing about online dev communities.&lt;/p&gt;

&lt;p&gt;Today, it was a Python question. But tomorrow it might be something entirely different. And I will still be able to rely on the &lt;em&gt;same&lt;/em&gt; community for help. That’s kind of awesome, if you ask me.&lt;/p&gt;

&lt;p&gt;So whether you are a newbie coder or already more experiences, I cannot recommend joining a dev community enough. You’ll come for the coding help and stay for the social hijinks and overall support. Virtual Coffee is the right community for me, but there are plenty of others out there that you can try.&lt;/p&gt;

&lt;p&gt;And just remember, at the end of the day, there really are no silly questions, so ask away!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tell me about your favourite dev communities in the comments!&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>python</category>
      <category>learning</category>
      <category>community</category>
    </item>
    <item>
      <title>I Hardcoded My Portfolio Website — 8/10 Would Make This Mistake Again!</title>
      <dc:creator>Kai Katschthaler (they/them)</dc:creator>
      <pubDate>Mon, 06 Feb 2023 11:32:30 +0000</pubDate>
      <link>https://forem.com/thegrumpyenby/i-hardcoded-my-portfolio-website-810-would-make-this-mistake-again-k5d</link>
      <guid>https://forem.com/thegrumpyenby/i-hardcoded-my-portfolio-website-810-would-make-this-mistake-again-k5d</guid>
      <description>&lt;p&gt;This is the story of how I, a coding n00b, pulled my new portfolio website up fairly quickly over the last month because I hate Squarespace.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I had to work with:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;what HTML/CSS skills I accumulated during 6 weeks of FreeCodeCamp web dev bootcamp&lt;/li&gt;
&lt;li&gt;zero JS skills or of any other coding language&lt;/li&gt;
&lt;li&gt;some helpful dev friends, both online and offline&lt;/li&gt;
&lt;li&gt;the willingness to fail and try different things&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The backstory, aka F*** Squarespace
&lt;/h2&gt;

&lt;p&gt;I’d been using Squarespace for both my portfolio website and the Taboola Rasa website for years. I wasn’t super happy with the no-code approach that required me to wildly drag and drop elements around the page and hope for the best. But at the same time, I also didn’t know much code at all and definitely no design, so it seemed like the easiest option.&lt;/p&gt;

&lt;p&gt;Fast forward to 2022/2023. We’ve reached a point where Squarespace has upped its prices so much that I refuse to spend that kind of money for the pleasure of a terrible user experience.&lt;/p&gt;

&lt;p&gt;Luckily, in September of 2022, I started a web dev bootcamp, learning HTML and CSS. “Fantastic,” I thought, “I will be overhauling my website in no time, getting away from Squarespace.”&lt;/p&gt;

&lt;h2&gt;
  
  
  Learning 11ty and Jekyll: A new résumé and Taboola Rasa website
&lt;/h2&gt;

&lt;p&gt;My initial plan was to use a static site generator for my portfolio site. I had put up my &lt;a href="https://kai.grumpyduck.dev" rel="noopener noreferrer"&gt;résumé website&lt;/a&gt; using an 11ty template earlier in 2022.  Luckily, the template was very straightforward, so I succeeded, but I didn‘t understand much of what I was doing.&lt;/p&gt;

&lt;p&gt;In August 2022, when the Squarespace subscription for &lt;a href="https://taboolarasa.org" rel="noopener noreferrer"&gt;Taboola Rasa&lt;/a&gt; was about to run out, I messed around with Jekyll to get a barebones version of the website up before my sub renewed. It went alright but, again, I didn’t really know what I was doing.&lt;/p&gt;

&lt;p&gt;I didn’t install a remote theme or gem but, instead, I forked Dean Attali’s &lt;a href="https://github.com/daattali/beautiful-jekyll#build-your-website-in-3-steps" rel="noopener noreferrer"&gt;Beautiful Jekyll theme&lt;/a&gt; and then just customised my files right there on GitHub. It was the easiest and fastest way for me to do it at the time, but it was also a pain. When you work in a repo directly on GitHub, you have no way to preview your changes on a live server. So you have to commit every tiny change and then wait for it to build, just to then find out you messed up. Everything takes ages that way.&lt;/p&gt;

&lt;p&gt;That said, I got the site up and running and happily cancelled one of my Squarespace subscriptions. I showed my metaphorical middle finger to them. Possibly, I also 🖕🏻 at the screen; I can neither  confirm nor deny this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Giving Jekyll a serious try for the portfolio website
&lt;/h2&gt;

&lt;p&gt;All of this happened before the bootcamp, and I was somehow convinced that once I finished the bootcamp I would be better equipped to tackle my portfolio website using Jekyll based on what I had learned creating my résumé page and the Taboola Rasa website. I don’t know why I believed this, as I am not usually prone to delusional optimism. 😉&lt;/p&gt;

&lt;p&gt;So January 2023 rolls around. I have a month to get this done because my Squarespace subscription expires in mid-February.&lt;/p&gt;

&lt;p&gt;I had my heart set on using Jekyll and, despite my chronic indecision, managed to pick a theme. It only took me a week. 😆 Then, I spent what feels like another week researching and trying to figure out which type of Jekyll installation would be best for my use case. Gem-based or remote theme? Are they even that different?&lt;/p&gt;

&lt;p&gt;Luckily, I do not live in a vacuum. I asked my partner, who is a C# dev but has done some Ruby in the past, and they helped me research. I asked around in online communities and got some pointers. Eventually, I asked my friend, who’s pretty experienced with Ruby, and we paired on the installation. And then… we failed.&lt;/p&gt;

&lt;p&gt;We tried various ways. Eventually, using a combination of the &lt;a href="https://docs.github.com/en/pages/quickstart" rel="noopener noreferrer"&gt;Quickstart to GitHub Pages&lt;/a&gt; guide and the &lt;a href="https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll" rel="noopener noreferrer"&gt;GitHub Jekyll Docs&lt;/a&gt;, my friend walked me through the installation. We finally succeeded at installing a remote theme and ended our call feeling accomplished.&lt;/p&gt;

&lt;p&gt;The next day, I decided to hunker down and figure out how to adapt the theme to my liking. I followed the docs of that theme and noticed it mentions files that I needed to change but… where are those files? I did not seem to have them in my local installation. 🤔&lt;/p&gt;

&lt;p&gt;“Well, they’re &lt;em&gt;remote&lt;/em&gt;, that’s why,” my partner said, trying to be encouraging. I researched some more. It turned out I very much did need those files to &lt;em&gt;not&lt;/em&gt; be remote. At this point, my dog crawled into my lap because she could sense my frustration. And that’s when I realised…&lt;/p&gt;

&lt;h2&gt;
  
  
  You gotta know when to fold ’em
&lt;/h2&gt;

&lt;p&gt;I gave up. I deleted the installation, feeling slightly guilty because my friend paired with me for 90 minutes on this crap and now I flushed &lt;em&gt;his&lt;/em&gt; work down the drain too. “It’s okay,” he assured me, “that’s what coding is like.” 😭&lt;/p&gt;

&lt;p&gt;I returned to my laptop warily the next day, looking for other options. Ultimately, I decided to go back to what I knew. I tried to simplify the process. And I found an HTML5Up template that predominantly uses HTML and CSS (and a bit of JS, but I can get help with that if I get stuck).&lt;/p&gt;

&lt;p&gt;I downloaded the files and started messing with the code. And while it’s hard to be working through someone else’s CSS, I immediately stopped feeling panicked. Because while I didn’t understand &lt;em&gt;everything&lt;/em&gt; in those files, I understood the principles. I had the basics I needed to understand the code and to knowledgeably mess with it. It turns out I know just enough HTML and CSS to be dangerous, and I know how to google and ask for help. &lt;/p&gt;

&lt;h2&gt;
  
  
  Making it work
&lt;/h2&gt;

&lt;p&gt;It took me a while to find what I was looking for in the CSS and sort through the things that I didn’t understand, trying to figure out how to fit in my changes. It also isn’t the most efficient way to pull up a website — you have to manually copy the nav and footer into each page, etc. I don’t think I was truly aware of that before.&lt;/p&gt;

&lt;p&gt;But I honestly learned so much doing this. My Flex Box skills improved (I realised I still don’t understand Grid 😆). And overall, I got more fluent in HTML and CSS. When I got stuck, I got some great help from the &lt;a href="https://virtualcoffee.io" rel="noopener noreferrer"&gt;Virtual Coffee&lt;/a&gt; community and my partner.&lt;/p&gt;

&lt;p&gt;And, finally, last night, I pushed the site live a whole 12 days earlier than planned and in a hurry because when you cancel your Squarespace subscription, they apparently immediately pull your site down. 🤬&lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1622204801357385730-180" src="https://platform.twitter.com/embed/Tweet.html?id=1622204801357385730"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1622204801357385730-180');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1622204801357385730&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s next?
&lt;/h2&gt;

&lt;p&gt;There are still so many iffy things on this site. 🙈 The layout isn’t always what I want it to be. Some things aren’t where they’re supposed to be or functioning how they should. The site isn’t 100% responsive, and I’m pretty sure it’s not very accessible yet, either.&lt;/p&gt;

&lt;p&gt;But I’m confident that I will continue to learn and improve the site. And I &lt;em&gt;will&lt;/em&gt; get to it, but I also have an entire 45-min talk to write in the next two weeks, and I’m starting a new job as well.&lt;/p&gt;

&lt;p&gt;There is absolutely no excuse for an inaccessible and not-very-responsive website, but I hope folks will accept my reason, which is that I am only one human with one ADHD brain, limited skills, and a very long to-do list. 😬&lt;/p&gt;

&lt;p&gt;Speaking of to-do lists, here are the main areas I want to focus on improving over the next few weeks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Adding ALT text because I didn’t add them as I went along in my eagerness to see if things were working as intended. Bad practice, I know, and I will do it smarter next time.&lt;/li&gt;
&lt;li&gt;Figuring out how aria labels work and adding those.&lt;/li&gt;
&lt;li&gt;Adding media queries for the flex boxes I added, since the template doesn’t handle their responsiveness out of the box.&lt;/li&gt;
&lt;li&gt;Checking how accessible my site is via keyboard, screenreader etc., and then trying to improve on that. &lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Do I regret hardcoding my website?
&lt;/h2&gt;

&lt;p&gt;No. But there were definitely moments when I did question my choices and sanity. 😂&lt;/p&gt;

&lt;p&gt;I remember reading ages ago that the best camera you can use is the one you have with you and know how to use (i.e., probably your smartphone). Something similar was at play here. It didn’t matter that, technically, a static site generator would have been the best tool for the job because I didn’t know how to use it. So I used the tools I was familiar with instead.&lt;/p&gt;

&lt;p&gt;At some point, as I keep learning to code, I will probably redo the entire thing using a static site builder. But for now, it’ll have to do, and I’m proud of what I created.&lt;/p&gt;

&lt;p&gt;Oh yeah, almost forgot: &lt;a href="https://katschthaler.com" rel="noopener noreferrer"&gt;Here’s the site now!&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Feel free to let me know (in a beginner-friendly way) what you think I should/could improve!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;[Cover photo shows Nomi, a blue merle Mini Aussie, sitting on a sofa behind my laptop. She’s looking a bit wary, presumably, because she doesn’t really know CSS and can’t help.]&lt;/p&gt;

</description>
      <category>ai</category>
      <category>githubcopilot</category>
      <category>vscode</category>
      <category>tooling</category>
    </item>
  </channel>
</rss>
