<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>hobbyworker on hobbyworker취미생활자</title>
    <link>https://hobbyworker.me/en/</link>
    <description>Recent content in hobbyworker on hobbyworker취미생활자</description>
    <generator>Hugo</generator>
    <language>en</language>
    <copyright>2026 hobbyworker</copyright>
    <lastBuildDate>Thu, 21 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://hobbyworker.me/en/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Designing a Distribution DMG for Your macOS App (2): Window and Icon Layout Coordinates, and Automation</title>
      <link>https://hobbyworker.me/en/dev/2026-05-21-design-macos-dmg-2-layout-coordinates/</link>
      <pubDate>Thu, 21 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2026-05-21-design-macos-dmg-2-layout-coordinates/</guid>
      <description>The size of a DMG window and the placement of its icons are all decided by coordinates. Using the example app FocusTimer, this article explains create-dmg&amp;#39;s window size and position, icon size, and the X/Y coordinates of the app icon and the Applications drop link one by one, shows how to align the background image&amp;#39;s pixel coordinates with the window&amp;#39;s point coordinates, and covers how to automate this process so it can be reused for every release.</description>
    </item>
    <item>
      <title>Designing a Distribution DMG for Your macOS App (1): create-dmg and Preparing the Background Image</title>
      <link>https://hobbyworker.me/en/dev/2026-05-20-design-macos-dmg-1-create-dmg-and-background/</link>
      <pubDate>Wed, 20 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2026-05-20-design-macos-dmg-1-create-dmg-and-background/</guid>
      <description>When you distribute a macOS app yourself, the very first thing a user sees is the Finder window that opens when they double-click the .dmg. Using the example app FocusTimer, this article introduces the create-dmg tool, walks through preparing a staging folder that holds only the .app, and shows how to build a DMG background image that follows the @2x Retina convention while avoiding the DPI pitfall.</description>
    </item>
    <item>
      <title>Shipping a macOS App to the Mac App Store (3): Upload Settings and App Store Connect Registration</title>
      <link>https://hobbyworker.me/en/dev/2026-05-19-distribute-macos-app-mas-3-export-and-app-store-connect/</link>
      <pubDate>Tue, 19 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2026-05-19-distribute-macos-app-mas-3-export-and-app-store-connect/</guid>
      <description>Once you&amp;#39;ve finished the MAS build target and the configuration and code branching, it&amp;#39;s time to set up the path for getting that build onto the App Store. Using the example app FocusTimer, this post wraps up the series by covering how to write an ExportOptions-MAS.plist for upload, register an app record in App Store Connect, and verify the build so the two channels stay unbroken.</description>
    </item>
    <item>
      <title>Shipping a macOS App to the Mac App Store (2): Splitting Configuration and Code Between Channels</title>
      <link>https://hobbyworker.me/en/dev/2026-05-18-distribute-macos-app-mas-2-build-config-and-code/</link>
      <pubDate>Mon, 18 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2026-05-18-distribute-macos-app-mas-2-build-config-and-code/</guid>
      <description>Once you&amp;#39;ve created a build target for MAS, you need to split the configuration files and code so that target actually follows the App Store rules. Using the example app FocusTimer, this post walks through creating MAS-only entitlements and Info.plist files, aligning the build settings, and branching the automatic update code with #if canImport(Sparkle).</description>
    </item>
    <item>
      <title>Shipping a macOS App to the Mac App Store (1): Creating a Separate Build Target</title>
      <link>https://hobbyworker.me/en/dev/2026-05-17-distribute-macos-app-mas-1-target-setup/</link>
      <pubDate>Sun, 17 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2026-05-17-distribute-macos-app-mas-1-target-setup/</guid>
      <description>Shipping a macOS app to the Mac App Store requires a build target separate from the one used for direct distribution, because App Store review forbids self-contained automatic updaters like Sparkle. Using the example app FocusTimer, this post walks through registering a MAS-only Bundle ID, duplicating the build target in Xcode, and handling the cleanup burden that duplication leaves behind.</description>
    </item>
    <item>
      <title>Distributing a macOS App Yourself (3): Hosting the Update Feed and Build Settings</title>
      <link>https://hobbyworker.me/en/dev/2026-05-16-distribute-macos-app-3-update-hosting-and-build/</link>
      <pubDate>Sat, 16 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2026-05-16-distribute-macos-app-3-update-hosting-and-build/</guid>
      <description>The automatic-update feed for a directly distributed macOS app must be hosted at a public location accessible without authentication. Using the example app FocusTimer, this article hosts the update repository with GitHub Pages, connects it to a custom domain you control, and finishes the ExportOptions.plist and app-side configuration to complete the one-time setup for direct distribution.</description>
    </item>
    <item>
      <title>Distributing a macOS App Yourself (2): Creating the Sparkle Auto-Update Signing Key</title>
      <link>https://hobbyworker.me/en/dev/2026-05-15-distribute-macos-app-2-sparkle-signing-key/</link>
      <pubDate>Fri, 15 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2026-05-15-distribute-macos-app-2-sparkle-signing-key/</guid>
      <description>Implementing automatic updates with the Sparkle framework is the de facto standard for directly distributed macOS apps. Using the example app FocusTimer, this article explains step by step how to generate the EdDSA signing key that Sparkle uses to verify update files, embed the public key in the app, and safely back up and restore the private key.</description>
    </item>
    <item>
      <title>Distributing a macOS App Yourself (1): Developer ID Certificate and Notarization Setup</title>
      <link>https://hobbyworker.me/en/dev/2026-05-14-distribute-macos-app-1-developer-id-certificate/</link>
      <pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2026-05-14-distribute-macos-app-1-developer-id-certificate/</guid>
      <description>To distribute a macOS app directly without going through the Mac App Store, you first need a Developer ID certificate and a notarization setup. Using the example app FocusTimer, this article walks through the one-time setup you only need to do once: installing command-line tools, issuing a Developer ID Application certificate, and registering an app-specific password and a notarytool profile for notarization.</description>
    </item>
    <item>
      <title>Convert Text to Filename Using Automator on macOS</title>
      <link>https://hobbyworker.me/en/dev/2023-04-06-convert-text-to-filename-using-automator-on-macos/</link>
      <pubDate>Thu, 06 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-04-06-convert-text-to-filename-using-automator-on-macos/</guid>
      <description>This report explains how to create a macOS Quick Action using Automator to convert text into a filename-friendly format. The Quick Action removes special characters, converts text to lowercase, and replaces spaces with hyphens.</description>
    </item>
    <item>
      <title>Pytrends 11: Discovering Real-Time Trending Searches for Up-to-the-Minute Insights</title>
      <link>https://hobbyworker.me/en/dev/2023-04-05-pytrends-11-discovering-realtime-trending-searches-for-uptotheminute-insights/</link>
      <pubDate>Wed, 05 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-04-05-pytrends-11-discovering-realtime-trending-searches-for-uptotheminute-insights/</guid>
      <description>In this post, we will explore how to use the `pytrends` library to discover real-time trending searches on Google, enabling you to stay on top of the latest trends and topics. We will demonstrate how to collect and analyze real-time trending search data using the `realtime_trending_searches()` function, which can help you create timely, relevant, and engaging content.</description>
    </item>
    <item>
      <title>Pytrends 10: Refining Trend Searches with Suggestions</title>
      <link>https://hobbyworker.me/en/dev/2023-04-04-pytrends-10-refining-trend-searches-with-suggestions/</link>
      <pubDate>Tue, 04 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-04-04-pytrends-10-refining-trend-searches-with-suggestions/</guid>
      <description>In this post, we will explore how to use the `pytrends` library to refine your trend searches by obtaining search suggestions based on a given query. We will demonstrate how to collect and analyze search suggestions using the `suggestions()` function, which can help you discover new keywords and trends related to your search query.</description>
    </item>
    <item>
      <title>Pytrends 9: Mastering Top Charts Analysis for Data-Driven Insights</title>
      <link>https://hobbyworker.me/en/dev/2023-04-03-pytrends-9-mastering-top-charts-analysis-for-datadriven-insights/</link>
      <pubDate>Mon, 03 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-04-03-pytrends-9-mastering-top-charts-analysis-for-datadriven-insights/</guid>
      <description>In this post, we will explore how to use the `pytrends` library to analyze Google&amp;#39;s top charts, allowing you to gain data-driven insights into the most popular search queries in various categories. We will demonstrate how to collect and analyze top chart data using the `top_charts()` function, which can help inform your content strategy and optimize your online presence.</description>
    </item>
    <item>
      <title>Pytrends 8: Tracking Trending Searches to Stay Ahead</title>
      <link>https://hobbyworker.me/en/dev/2023-04-02-pytrends-8-tracking-trending-searches-to-stay-ahead/</link>
      <pubDate>Sun, 02 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-04-02-pytrends-8-tracking-trending-searches-to-stay-ahead/</guid>
      <description>In this post, we will explore how to use the `pytrends` library to track trending searches on Google, allowing you to stay ahead of the curve and discover new opportunities for content creation and optimization. We will demonstrate how to collect and analyze trending search data using the `trending_searches()` function.</description>
    </item>
    <item>
      <title>Pytrends 7: Uncovering Related Queries for In-Depth Analysis</title>
      <link>https://hobbyworker.me/en/dev/2023-04-01-pytrends-7-uncovering-related-queries-for-indepth-analysis/</link>
      <pubDate>Sat, 01 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-04-01-pytrends-7-uncovering-related-queries-for-indepth-analysis/</guid>
      <description>In this post, we will explore how to use the `pytrends` library to uncover related queries for a given search term. This powerful feature enables you to perform in-depth analysis of your target keywords and discover new opportunities for content creation and optimization. We will demonstrate how to collect and analyze related query data using the `related_queries()` function.</description>
    </item>
    <item>
      <title>Pytrends 6: Investigating Related Topics to Expand Keyword Research</title>
      <link>https://hobbyworker.me/en/dev/2023-03-31-pytrends-6-investigating-related-topics-to-expand-keyword-research/</link>
      <pubDate>Fri, 31 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-31-pytrends-6-investigating-related-topics-to-expand-keyword-research/</guid>
      <description>In this post, we will explore how to use the `pytrends` library to investigate related topics for a given search term, allowing you to expand your keyword research and discover new opportunities. We will demonstrate how to collect and analyze related topic data using the `related_topics()` function, which can help inform your content strategy and boost your online presence.</description>
    </item>
    <item>
      <title>Pytrends 5: Exploring Interest by Region for Targeted Insights</title>
      <link>https://hobbyworker.me/en/dev/2023-03-30-pytrends-5-exploring-interest-by-region-for-targeted-insights/</link>
      <pubDate>Thu, 30 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-30-pytrends-5-exploring-interest-by-region-for-targeted-insights/</guid>
      <description>In this post, we will explore how to use the `pytrends` library to analyze interest by region for specific search terms. This powerful feature allows you to gain targeted insights into the popularity of search terms across different geographic locations, helping you to better understand your audience and optimize your marketing strategies. We will cover how to collect and analyze interest by region data using the `interest_by_region()` function.</description>
    </item>
    <item>
      <title>Pytrends 4: Diving into Historical Hourly Interest Data</title>
      <link>https://hobbyworker.me/en/dev/2023-03-29-pytrends-4-diving-into-historical-hourly-interest-data/</link>
      <pubDate>Wed, 29 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-29-pytrends-4-diving-into-historical-hourly-interest-data/</guid>
      <description>In this post, we&amp;#39;ll explore how to use the `pytrends` library to retrieve historical hourly interest data from Google Trends. By diving into this data, we can gain valuable insights into the popularity of search terms and better understand consumer behavior. This tutorial will walk you through the process of collecting and analyzing hourly interest data using the `get_historical_interest()` function.</description>
    </item>
    <item>
      <title>Pytrends 3: Harnessing Multi-Range Interest Over Time Analysis</title>
      <link>https://hobbyworker.me/en/dev/2023-03-28-pytrends-3-harnessing-multirange-interest-over-time-analysis/</link>
      <pubDate>Tue, 28 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-28-pytrends-3-harnessing-multirange-interest-over-time-analysis/</guid>
      <description>In this post, we will explore how to use the `pytrends` library to analyze the interest in specific keywords over multiple time ranges, providing a more comprehensive view of trends. We will demonstrate how to collect and analyze multi-range interest over time data using the `multirange_interest_over_time()` function, which can help you understand the performance and popularity of keywords across different periods.</description>
    </item>
    <item>
      <title>Pytrends 2: Analyzing Interest Over Time</title>
      <link>https://hobbyworker.me/en/dev/2023-03-27-pytrends-2-analyzing-interest-over-time/</link>
      <pubDate>Mon, 27 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-27-pytrends-2-analyzing-interest-over-time/</guid>
      <description>In this post, we will explore how to use the `pytrends` library to analyze the interest in specific keywords over time using the `interest_over_time()` function. By analyzing this data, you can gain insights into how the interest in a keyword has evolved, helping you to make informed decisions about your content strategy and marketing efforts.</description>
    </item>
    <item>
      <title>Managing Multiple Rust Environments with rustup</title>
      <link>https://hobbyworker.me/en/dev/2023-03-26-managing-multiple-rust-environments-with-rustup/</link>
      <pubDate>Sun, 26 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-26-managing-multiple-rust-environments-with-rustup/</guid>
      <description>In summary, rustup is the official Rust toolchain manager that enables developers to easily install, update, and manage multiple Rust environments on their system. This report detailed the installation process for macOS, Linux, and Windows, as well as the basic usage of rustup commands to switch between Rust versions, set project-specific overrides, and update installed toolchains. By leveraging rustup, developers can efficiently work on multiple projects with different Rust version requirements, enhancing productivity and minimizing version-related conflicts.</description>
    </item>
    <item>
      <title>Pytrends 1: How to use Google Trend unofficially with Python</title>
      <link>https://hobbyworker.me/en/dev/2023-03-26-pytrends-1-how-to-use-google-trend-unofficially-with-python/</link>
      <pubDate>Sun, 26 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-26-pytrends-1-how-to-use-google-trend-unofficially-with-python/</guid>
      <description>In this post, we&amp;#39;ll explore how to use Pytrends, an unofficial Google Trends API for Python, to access and analyze Google Trends data. We&amp;#39;ll cover how to install and set up Pytrends, perform a basic search, and understand the results.</description>
    </item>
    <item>
      <title>Deploying a Hugo Static Site to GitHub Pages with GitHub Actions</title>
      <link>https://hobbyworker.me/en/dev/2023-03-25-deploying-a-hugo-static-site-to-github-pages-with-github-actions/</link>
      <pubDate>Sat, 25 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-25-deploying-a-hugo-static-site-to-github-pages-with-github-actions/</guid>
      <description>deploying a Hugo static site to GitHub Pages can be automated using GitHub Actions with a hugo.yaml workflow configuration. To set up the workflow, create the hugo.yaml file in the .github/workflows/ directory and copy the provided YAML configuration. Additionally, configure the GitHub Pages settings in your project by selecting &amp;#39;GitHub Actions&amp;#39; as the source for the build and deployment. This setup enables seamless deployment of your site upon pushes to the main branch or manual triggering from the Actions tab. By automating the build and deployment process, you can focus on content creation and updates while leveraging GitHub Actions&amp;#39; built-in CI/CD capabilities to enhance your development workflow.</description>
    </item>
    <item>
      <title>Adding AdBlocker Detection to Your Hugo Blog with PaperMod Theme</title>
      <link>https://hobbyworker.me/en/dev/2023-03-24-adding-adblocker-detection-to-your-hugo-blog-with-papermod-theme/</link>
      <pubDate>Fri, 24 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-24-adding-adblocker-detection-to-your-hugo-blog-with-papermod-theme/</guid>
      <description>In this blog post, we demonstrated how to add AdBlocker detection to a Hugo blog using the PaperMod theme. We provided a step-by-step guide that included creating custom CSS and JavaScript files, adding a partial HTML file for the warning message, and extending the head and footer partials to include the new files. As a result, users with an ad-blocker enabled will see a polite warning message, encouraging them to support the website&amp;#39;s content by disabling their ad-blocker or whitelisting the site.</description>
    </item>
    <item>
      <title>Using NVM and Autoenv in Combination</title>
      <link>https://hobbyworker.me/en/dev/2023-03-23-using-nvm-and-autoenv-in-combination/</link>
      <pubDate>Thu, 23 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-23-using-nvm-and-autoenv-in-combination/</guid>
      <description>we discussed how to combine nvm (Node Version Manager) and autoenv to manage Node.js versions and environment variables seamlessly in your development workflow. By creating an .env file with the desired Node.js version and environment variables, and configuring autoenv to work with nvm, you can automatically switch Node.js versions and load appropriate variables when navigating between projects. This streamlined approach can significantly enhance your development process, ensuring that you&amp;#39;re always using the correct settings for each project.</description>
    </item>
    <item>
      <title>How to Use jEnv and autoenv in Combination</title>
      <link>https://hobbyworker.me/en/dev/2023-03-22-how-to-use-jenv-and-autoenv-in-combination/</link>
      <pubDate>Wed, 22 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-22-how-to-use-jenv-and-autoenv-in-combination/</guid>
      <description>the combination of jEnv and autoenv provides a robust and flexible solution for managing Java versions and environment variables across multiple projects. By adopting these tools, developers can focus on writing high-quality code and delivering valuable features, rather than being burdened by the complexities of managing different Java environments.</description>
    </item>
    <item>
      <title>How to Use rbenv and autoenv in Combination</title>
      <link>https://hobbyworker.me/en/dev/2023-03-21-how-to-use-rbenv-and-autoenv-in-combination/</link>
      <pubDate>Tue, 21 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-21-how-to-use-rbenv-and-autoenv-in-combination/</guid>
      <description>combining rbenv and autoenv allows you to manage multiple Ruby versions and project-specific environment variables seamlessly. By creating .ruby-version and .env files in your project directories, you can automatically switch between Ruby versions and load the appropriate environment variables when navigating between projects. This powerful combination streamlines your Ruby development experience, making it more efficient and less error-prone.</description>
    </item>
    <item>
      <title>Using Pyenv-virtualenv and Autoenv in Combination for Python Development</title>
      <link>https://hobbyworker.me/en/dev/2023-03-20-using-pyenv-virtualenv-and-autoenv-in-combination-for-python-development/</link>
      <pubDate>Mon, 20 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-20-using-pyenv-virtualenv-and-autoenv-in-combination-for-python-development/</guid>
      <description>In summary, pyenv-virtualenv and autoenv can be combined to create a seamless Python development workflow, allowing you to manage multiple Python environments and virtual environments effortlessly. Pyenv-virtualenv is a plugin for pyenv that helps manage virtual environments, while autoenv automatically activates the appropriate virtual environment upon entering a project directory with a .env file. By using these tools together, you can improve your development workflow, keeping dependencies separate and organized, and always using the correct virtual environment for each project.</description>
    </item>
    <item>
      <title>Using Autoenv: The Ultimate Shortcut to Environment Management</title>
      <link>https://hobbyworker.me/en/dev/2023-03-19-using-autoenv-the-ultimate-shortcut-to-environment-management/</link>
      <pubDate>Sun, 19 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-19-using-autoenv-the-ultimate-shortcut-to-environment-management/</guid>
      <description>Autoenv is a tool that helps manage environment variables by automatically setting them when entering a directory and unsetting them when leaving. It is available for installation on different platforms like Mac, Linux, and Windows. This tool can be used for different purposes such as setting environment variables, running commands on directory entry, and unsetting environment variables. By using Autoenv, users can easily manage environment variables and automate repetitive tasks, thus improving workflow efficiency.</description>
    </item>
    <item>
      <title>Managing Multiple Node.js Environments with NVM</title>
      <link>https://hobbyworker.me/en/dev/2023-03-18-managing-multiple-nodejs-environments-with-nvm/</link>
      <pubDate>Sat, 18 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-18-managing-multiple-nodejs-environments-with-nvm/</guid>
      <description>In summary, this blog post discussed Node Version Manager (NVM), a valuable tool for developers to manage and switch between multiple Node.js versions. The post provided installation instructions for macOS, Linux, and other Unix-based systems, and covered the top 10 most commonly used features of NVM, such as listing available Node.js versions, installing, switching, setting a default version, uninstalling, and running scripts and commands with a specific version. NVM enables developers to efficiently work with different Node.js versions, ensuring seamless testing and compatibility across various projects and environments.</description>
    </item>
    <item>
      <title>A Practical Guide to Using jEnv for Java Version Management</title>
      <link>https://hobbyworker.me/en/dev/2023-03-17-a-practical-guide-to-using-jenv-for-java-version-management/</link>
      <pubDate>Fri, 17 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-17-a-practical-guide-to-using-jenv-for-java-version-management/</guid>
      <description>In this blog post, we introduced jEnv, a command-line tool that simplifies Java version management. We discussed installation instructions for Mac and Linux and explored the most used features, such as local, global, shell, rehash, version, versions, which, whence, and add. jEnv allows developers to easily switch between Java versions on a per-project or per-session basis, streamlining their development workflow and preventing version conflicts. It&amp;#39;s a must-have tool for any Java developer working with multiple Java projects or requiring greater control over their Java environment.</description>
    </item>
    <item>
      <title>How to Use Pyenv and Pyenv-Virtualenv</title>
      <link>https://hobbyworker.me/en/dev/2023-03-16-how-to-use-pyenv-and-pyenv-virtualenv/</link>
      <pubDate>Thu, 16 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-16-how-to-use-pyenv-and-pyenv-virtualenv/</guid>
      <description>In this blog post, we explored pyenv and pyenv-virtualenv, powerful tools for managing multiple Python versions and virtual environments. We covered installation instructions for Mac and Linux platforms and discussed the most commonly used features, such as installing Python versions, setting global and local Python versions, creating and managing virtual environments, and rehashing to update shims. By leveraging these tools, you can maintain a clean and efficient development workflow, minimize dependency conflicts, and easily switch between projects with varying dependencies and Python versions.</description>
    </item>
    <item>
      <title>Managing Multiple Ruby Environments with rbenv</title>
      <link>https://hobbyworker.me/en/dev/2023-03-15-managing-multiple-ruby-environments-with-rbenv/</link>
      <pubDate>Wed, 15 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-15-managing-multiple-ruby-environments-with-rbenv/</guid>
      <description>In conclusion, rbenv is a powerful and versatile tool for managing multiple Ruby environments. It simplifies switching between Ruby versions, managing gemsets, and maintaining project-specific dependencies. With easy installation and cross-platform compatibility, rbenv is essential for Ruby developers aiming to streamline their workflow and keep their projects well-organized.</description>
    </item>
    <item>
      <title>Automating Workout Scheduling with Notion API</title>
      <link>https://hobbyworker.me/en/dev/2023-03-14-automating-workout-scheduling-with-notion-api/</link>
      <pubDate>Tue, 14 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-14-automating-workout-scheduling-with-notion-api/</guid>
      <description>This article demonstrates how to use the Notion API to automate the process of creating a workout schedule in a Notion database. The article provides a code snippet that can be used to create a workout schedule for a specific date range and automatically add new events to the database based on the defined workout plan. The article also explains how to authenticate to the Notion API and query existing events to avoid duplicates. The article concludes by discussing the potential of the Notion API to automate a wide range of tasks and its potential for use in other workflows.</description>
    </item>
    <item>
      <title>A Beginner&#39;s Guide to Homebrew: The Package Manager for macOS</title>
      <link>https://hobbyworker.me/en/dev/2023-03-13-a-beginners-guide-to-homebrew-the-missing-package-manager-for-macos/</link>
      <pubDate>Mon, 13 Mar 2023 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/dev/2023-03-13-a-beginners-guide-to-homebrew-the-missing-package-manager-for-macos/</guid>
      <description>In this blog post, we will explore Homebrew, a powerful and versatile package manager designed specifically for macOS users. Homebrew fills a gap in macOS by providing an easy way to install and manage open-source software, tools, and libraries that are not available in the App Store. By the end of this post, you will have a solid understanding of how to install and use Homebrew, and we&amp;#39;ll even walk you through a practical example.</description>
    </item>
    <item>
      <title>Projects</title>
      <link>https://hobbyworker.me/en/projects/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://hobbyworker.me/en/projects/</guid>
      <description>Apps and websites I&amp;#39;ve built</description>
    </item>
  </channel>
</rss>
