<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Hanami Mastery newest episodes!]]></title><description><![CDATA[The best way to master Hanami ruby framework!]]></description><link>https://hanamimastery.com</link><image><url>https://hanamimastery.com/logo-hm.jpeg</url><title>Hanami Mastery newest episodes!</title><link>https://hanamimastery.com</link></image><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Oct 2024 14:11:08 GMT</lastBuildDate><atom:link href="https://hanamimastery.com/feed.xml" rel="self" type="application/rss+xml"/><author><![CDATA[Sebastian Wilgosz]]></author><pubDate>Wed, 16 Oct 2024 14:11:08 GMT</pubDate><copyright><![CDATA[2024 Sebastian Wilgosz]]></copyright><language><![CDATA[en-us]]></language><managingEditor><![CDATA[Sebastian Wilgosz]]></managingEditor><webMaster><![CDATA[Sebastian Wilgosz]]></webMaster><ttl>60</ttl><category><![CDATA[Ruby]]></category><category><![CDATA[Hanami]]></category><category><![CDATA[Web development]]></category><item><title><![CDATA[#54 Last Puzzle in place! Fullstack Hanami 2.2!]]></title><description><![CDATA[Hanami 2.2-beta2 is relased, which finally becomes a complete, fullstack framework. Let's make a blog in Hanami taking a closer look at its basic features.]]></description><link>https://hanamimastery.com/episodes/54-complete-hanami-stack</link><guid isPermaLink="true">https://hanamimastery.com/episodes/54-complete-hanami-stack</guid><category><![CDATA[hanami]]></category><category><![CDATA[views]]></category><category><![CDATA[persistence]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Wed, 16 Oct 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[#53 Advanced forms in Hanami 2]]></title><description><![CDATA[Working with templates is a hard job and eliminating the logic out of them is absolutely not trivial. In this episode we'll use Hanami tools to implement advanced forms.]]></description><link>https://hanamimastery.com/episodes/53-advanced-forms-in-hanami</link><guid isPermaLink="true">https://hanamimastery.com/episodes/53-advanced-forms-in-hanami</guid><category><![CDATA[views]]></category><category><![CDATA[hanami]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Thu, 12 Sep 2024 00:00:00 GMT</pubDate></item><item><title><![CDATA[#52 Render flash messages in Hanami, but like a PRO]]></title><description><![CDATA[Showing flash messages in Hanami is trivial, and it is even shown in the official guides. In this episode though, we make this future-proof, testable, and maintainable for a future growth of your application.]]></description><link>https://hanamimastery.com/episodes/52-render-flash-the-correct-way</link><guid isPermaLink="true">https://hanamimastery.com/episodes/52-render-flash-the-correct-way</guid><category><![CDATA[hanami]]></category><category><![CDATA[views]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 19 Dec 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#51 Font Awesome icons in Hanami apps!]]></title><description><![CDATA[Probably any web app nowadays requires font icons to be loaded this or other way. In this episode, I'm showing the integration of Font Awesome icons in Hanami 2 applications.]]></description><link>https://hanamimastery.com/episodes/51-integrate-font-awesome-in-hanami</link><guid isPermaLink="true">https://hanamimastery.com/episodes/51-integrate-font-awesome-in-hanami</guid><category><![CDATA[hanami]]></category><category><![CDATA[views]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 28 Nov 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#50 Special: Hanami Core Team Interview]]></title><description><![CDATA[This episode is a special release, when Seb interviews Tim Riley and Luca Guidi from the Hanami Core Team, asking them questions collected from the community! This way we enjoy reaching our important milestone of releasing 50th Hanami Mastery episode!]]></description><link>https://hanamimastery.com/episodes/50-hanami-core-team-interview</link><guid isPermaLink="true">https://hanamimastery.com/episodes/50-hanami-core-team-interview</guid><category><![CDATA[hanami]]></category><category><![CDATA[dry-rb]]></category><category><![CDATA[rom-rb]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Wed, 11 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#49 Registry Pattern in Hanami apps]]></title><description><![CDATA[Registry pattern is one of many programming best practices, applied by default in Hanami projects. In this episode, we deep dive into how the registry pattern is used in Hanami apps and explain how it works.]]></description><link>https://hanamimastery.com/episodes/49-registry-pattern-in-hanami</link><guid isPermaLink="true">https://hanamimastery.com/episodes/49-registry-pattern-in-hanami</guid><category><![CDATA[hanami]]></category><category><![CDATA[patterns]]></category><category><![CDATA[dependency-injection]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 03 Oct 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#48 Phlex with Hanami - make your views written in Ruby. Completely.]]></title><description><![CDATA[There is a famous video about the IT skill iceberg - but thankfully, there is an alternative. If you ever wondered if you can build entire websites without HTML overhead, now you can! Meet Phlex, a view engine, where you can write Ruby instead of HTML]]></description><link>https://hanamimastery.com/episodes/48-phlex-in-hanami</link><guid isPermaLink="true">https://hanamimastery.com/episodes/48-phlex-in-hanami</guid><category><![CDATA[views]]></category><category><![CDATA[hanami]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Wed, 27 Sep 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#47 Send emails with hanami-mailer]]></title><description><![CDATA[Sending emails in web apps is a very common task. In this video, I'm going to send a contact email using hanami-mailer gem.]]></description><link>https://hanamimastery.com/episodes/47-send-emails-with-hanami-mailer</link><guid isPermaLink="true">https://hanamimastery.com/episodes/47-send-emails-with-hanami-mailer</guid><category><![CDATA[hanami]]></category><category><![CDATA[mailer]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Wed, 14 Jun 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[WIP: Unofficial guide for upgrading Hanami 1.x -> Hanami 2.x]]></title><description><![CDATA[When there is a complete framework rewrite, upgrading may be tricky, and it definitely is this time. Hope this guide will help you save some headache during upgrading on the hardest shift ever.]]></description><link>https://hanamimastery.com/articles/unofficial-hanami-upgrade-guides</link><guid isPermaLink="true">https://hanamimastery.com/articles/unofficial-hanami-upgrade-guides</guid><category><![CDATA[hanami]]></category><category><![CDATA[rom-rb]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Wed, 14 Jun 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#46 Contact Forms with Hanami View]]></title><description><![CDATA[With the release of Hanami 2.1, the view layer is fully integrated with our Hanami applications. Let's check how to make use of a form helper to send a contact email.]]></description><link>https://hanamimastery.com/episodes/46-contact-form</link><guid isPermaLink="true">https://hanamimastery.com/episodes/46-contact-form</guid><category><![CDATA[views]]></category><category><![CDATA[hanami]]></category><category><![CDATA[validations]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 30 May 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#45 Github integration with Hanami]]></title><description><![CDATA[If you're a developer, you know GitHub. And if you don't know Hanami, you definitely should. In this episode, I'll show you how to make them both to know each other.]]></description><link>https://hanamimastery.com/episodes/45-github-integration</link><guid isPermaLink="true">https://hanamimastery.com/episodes/45-github-integration</guid><category><![CDATA[hanami]]></category><category><![CDATA[integrations]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Fri, 12 May 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#44 Let's make a blog with Bridgetown]]></title><description><![CDATA[Bridgetown is the best static site generator for Ruby, and here is why.]]></description><link>https://hanamimastery.com/episodes/44-bridgetown</link><guid isPermaLink="true">https://hanamimastery.com/episodes/44-bridgetown</guid><category><![CDATA[bridgetown]]></category><category><![CDATA[web]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 09 May 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Open Source Heroes - A Poem of Appreciation.]]></title><description><![CDATA[Working with open source for a long time is tremendous work, often unappreciated. Join me with a moment of sharing a word of appreciation to one of OSS heroes you know!]]></description><link>https://hanamimastery.com/articles/open-source-heroes</link><guid isPermaLink="true">https://hanamimastery.com/articles/open-source-heroes</guid><category><![CDATA[oss]]></category><category><![CDATA[thoughts]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 08 May 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#43 Connect your ruby app with google drive.]]></title><description><![CDATA[In the world of amazing technology pace, integrations between services are the key to success and the same applies to ruby projects. In this episode, we integrate our Hanami application with Google drive.]]></description><link>https://hanamimastery.com/episodes/43-connect-with-google-drive</link><guid isPermaLink="true">https://hanamimastery.com/episodes/43-connect-with-google-drive</guid><category><![CDATA[hanami]]></category><category><![CDATA[integrations]]></category><category><![CDATA[google]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Thu, 09 Mar 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#42 Best way to work with Front Matter in Ruby!]]></title><description><![CDATA[If you want to work with front_matter in Ruby, you need to know the front_matter_parser gem. Here is everything you need.]]></description><link>https://hanamimastery.com/episodes/42-front-matter-parser</link><guid isPermaLink="true">https://hanamimastery.com/episodes/42-front-matter-parser</guid><category><![CDATA[front-matter]]></category><category><![CDATA[transformations]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 07 Mar 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#41 Deploying Hanami Apps to Render]]></title><description><![CDATA[Learn how to quickly deploy Hanami apps to production-ready server, using Render hosting provider, the best replacement for Heroku right now.]]></description><link>https://hanamimastery.com/episodes/41-deploying-to-render</link><guid isPermaLink="true">https://hanamimastery.com/episodes/41-deploying-to-render</guid><category><![CDATA[hanami]]></category><category><![CDATA[deployment]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 21 Feb 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#40 Spin up your Hanami apps easily with Hanamismith]]></title><description><![CDATA[I always liked rails templating collections that allowed us to quickly compose ruby apps. Now the same is possible for Hanami!]]></description><link>https://hanamimastery.com/episodes/40-hanamismith</link><guid isPermaLink="true">https://hanamimastery.com/episodes/40-hanamismith</guid><category><![CDATA[hanami]]></category><category><![CDATA[cli]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 31 Jan 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#39 HTML from markdown made simple!]]></title><description><![CDATA[Have you ever considered how to efficiently render HTML out of your markdown input in ruby? Here we cover this problem with additional custom cosmetic improvements.]]></description><link>https://hanamimastery.com/episodes/39-markdown-to-html</link><guid isPermaLink="true">https://hanamimastery.com/episodes/39-markdown-to-html</guid><category><![CDATA[commonmaker]]></category><category><![CDATA[cli]]></category><category><![CDATA[transformations]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 24 Jan 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#38 Intro to Apps architecture - Level 1: Context]]></title><description><![CDATA[In this episode we are going to design high-level concept of Hanami-based Web application. In 2023 we're going to automate a few things, and create production-ready Hanami application, that will support our content creation.]]></description><link>https://hanamimastery.com/episodes/38-hanami-mastery-app</link><guid isPermaLink="true">https://hanamimastery.com/episodes/38-hanami-mastery-app</guid><category><![CDATA[hanami]]></category><category><![CDATA[architecture]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Fri, 13 Jan 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[#37 Advanced CLI tools with Ruby and dry-cli!]]></title><description><![CDATA[Utility scripts in Ruby can be very powerful, but also very messy. In this episode I showcase dry-cli, to help you maintain advanced ruby CLI programs.]]></description><link>https://hanamimastery.com/episodes/37-dry-cli</link><guid isPermaLink="true">https://hanamimastery.com/episodes/37-dry-cli</guid><category><![CDATA[cli]]></category><category><![CDATA[dry-rb]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 10 Jan 2023 00:00:00 GMT</pubDate></item><item><title><![CDATA[Hanami Mastery 2022 - Year Summary and next plans.]]></title><description><![CDATA[The 2022 was a big progress for me in multiple fields, but 2023 is going to be even bigger. Let's summarize the year, stop for a while to thank everyone, and figure out plans for the upcoming year!]]></description><link>https://hanamimastery.com/articles/2022-summary</link><guid isPermaLink="true">https://hanamimastery.com/articles/2022-summary</guid><category><![CDATA[thoughts]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Wed, 28 Dec 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#36 Scale your app with slices!]]></title><description><![CDATA[In Hanami, you can reduce technical debt and keep fast development when the application grows. For that, slices is the key feature to revolutionize the way you think about web applications in Ruby.]]></description><link>https://hanamimastery.com/episodes/36-scale-your-app-with-slices</link><guid isPermaLink="true">https://hanamimastery.com/episodes/36-scale-your-app-with-slices</guid><category><![CDATA[hanami]]></category><category><![CDATA[architecture]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 20 Dec 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#35 Halt or Handle? Dealing with exceptions in Hanami apps!]]></title><description><![CDATA[Handling exceptions is one of the most needed features for any applications that can scale. If you are wondering, how to handle errors in Hanami 2 applications, don't look for more.]]></description><link>https://hanamimastery.com/episodes/35-halt-or-handle</link><guid isPermaLink="true">https://hanamimastery.com/episodes/35-halt-or-handle</guid><category><![CDATA[hanami]]></category><category><![CDATA[dry-monads]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 13 Dec 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#34 Safe gem upgrades with pessimize gem]]></title><description><![CDATA[Upgrading gems in the bigger project can become a hustle if you don't use tools like pessimize to help you deal with them safely.]]></description><link>https://hanamimastery.com/episodes/34-versioning-with-pessimize</link><guid isPermaLink="true">https://hanamimastery.com/episodes/34-versioning-with-pessimize</guid><category><![CDATA[gems]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 29 Nov 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#33 Deep dive into semantic versioning in Ruby]]></title><description><![CDATA[Semantic versioning is a useful approach to version your projects or gems - and that will be necessary at some point if you seriously think about ruby career.]]></description><link>https://hanamimastery.com/episodes/33-semantic-versioning</link><guid isPermaLink="true">https://hanamimastery.com/episodes/33-semantic-versioning</guid><category><![CDATA[gems]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 15 Nov 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#32 Pagination in Hanami apps with ROM]]></title><description><![CDATA[There are plenty of popular ways to handle pagination in Ruby apps. But did you know, that ROM supports Pagination out of the box? And so Hanami does? In this episode, I'll show you how to quickly implement pagination from scratch for your Hanami projects.]]></description><link>https://hanamimastery.com/episodes/32-rom-pagination</link><guid isPermaLink="true">https://hanamimastery.com/episodes/32-rom-pagination</guid><category><![CDATA[hanami]]></category><category><![CDATA[rom-rb]]></category><category><![CDATA[pagination]]></category><category><![CDATA[persistence]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 17 Oct 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#31 ROM-Factory - Your testing buddy for Hanami apps]]></title><description><![CDATA[If you have experience testing ruby applications, I'm sure you've heard about FactoryBot. Here I show you the alternative, suited for ROM-based applications, including Hanami 2.]]></description><link>https://hanamimastery.com/episodes/31-rom-factory</link><guid isPermaLink="true">https://hanamimastery.com/episodes/31-rom-factory</guid><category><![CDATA[rom-rb]]></category><category><![CDATA[tests]]></category><category><![CDATA[rom-factory]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 11 Oct 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#30 ROM - Mapping is everything]]></title><description><![CDATA[Understand data mapping in ROM, on all levels! In this episode we go through examples of simple to complex data mapping with ROM, with real usecases for each one.]]></description><link>https://hanamimastery.com/episodes/30-mapping-is-everything</link><guid isPermaLink="true">https://hanamimastery.com/episodes/30-mapping-is-everything</guid><category><![CDATA[rom-rb]]></category><category><![CDATA[persistence]]></category><category><![CDATA[hanami]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Fri, 30 Sep 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#29 Leverage ROM Repositories]]></title><description><![CDATA[Relations are the heart of ROM, but for bigger applications, you'll appreciate to know repositories.]]></description><link>https://hanamimastery.com/episodes/29-leverage-rom-repositories</link><guid isPermaLink="true">https://hanamimastery.com/episodes/29-leverage-rom-repositories</guid><category><![CDATA[rom-rb]]></category><category><![CDATA[persistence]]></category><category><![CDATA[hanami]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Thu, 22 Sep 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#28 Configure ROM from scratch]]></title><description><![CDATA[Hanami 2.0 comes without the persistence layer nor views preconfigured. It is useful then to know how to set up the best ORM available in the Ruby ecosystem.]]></description><link>https://hanamimastery.com/episodes/28-configure-rom-from-scratch</link><guid isPermaLink="true">https://hanamimastery.com/episodes/28-configure-rom-from-scratch</guid><category><![CDATA[rom-rb]]></category><category><![CDATA[hanami]]></category><category><![CDATA[relations]]></category><category><![CDATA[sequel]]></category><category><![CDATA[persistence]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 20 Sep 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#27 Integrate Sidekiq with Hanami Applications]]></title><description><![CDATA[Sidekiq is probably the most known background processing engine for Ruby projects. In this episode I'll show you how to integrate it in Hanami applications!]]></description><link>https://hanamimastery.com/episodes/27-integrate-sidekiq-with-hanami</link><guid isPermaLink="true">https://hanamimastery.com/episodes/27-integrate-sidekiq-with-hanami</guid><category><![CDATA[sidekiq]]></category><category><![CDATA[background]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 29 Aug 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#26 Generate Sitemaps for Hanami applications!]]></title><description><![CDATA[Sitemap is one of the core features for any web application, to make sure your site is indexed properly. Here is how to generate sitemaps in Hanami applications using sitemap_generator gem!]]></description><link>https://hanamimastery.com/episodes/26-sitemap-generation-in-hanami-apps</link><guid isPermaLink="true">https://hanamimastery.com/episodes/26-sitemap-generation-in-hanami-apps</guid><category><![CDATA[sitemap]]></category><category><![CDATA[seo]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 08 Aug 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#25 Branch for a next Launch - Simplecov!]]></title><description><![CDATA[Enchance your test coverage reports by mastering the Simplecov gem!]]></description><link>https://hanamimastery.com/episodes/25-simplecov-introduction</link><guid isPermaLink="true">https://hanamimastery.com/episodes/25-simplecov-introduction</guid><category><![CDATA[tests]]></category><category><![CDATA[simplecov]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 25 Jul 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#24 7 Levels of test coverage]]></title><description><![CDATA[Do you measure your test coverage? Do you know that everything below 80% is irrelevant? Here I list 7 levels of test coverage, check out where you are!]]></description><link>https://hanamimastery.com/episodes/24-different-levels-of-test-coverage</link><guid isPermaLink="true">https://hanamimastery.com/episodes/24-different-levels-of-test-coverage</guid><category><![CDATA[tests]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 19 Jul 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#23 Rubocop - 4 ways to reduce your frustration!]]></title><description><![CDATA[Rubocop recently managed to be listed as one of the most loved and most frustrating ruby gems which is quite an achievement. In this episode, I'll show you how to keep it only in the loved section.]]></description><link>https://hanamimastery.com/episodes/23-rubocop-most-frustrating-to-most-loved</link><guid isPermaLink="true">https://hanamimastery.com/episodes/23-rubocop-most-frustrating-to-most-loved</guid><category><![CDATA[linters]]></category><category><![CDATA[quality]]></category><category><![CDATA[rubocop]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 27 Jun 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#22 Hanami Router with TDD]]></title><description><![CDATA[Routing is one of the basic components of any web application. In this episode I'll dig a bit into the Hanami router from the usage point of view, covering why it's great and how to work with it.]]></description><link>https://hanamimastery.com/episodes/22-testing-hanami-router</link><guid isPermaLink="true">https://hanamimastery.com/episodes/22-testing-hanami-router</guid><category><![CDATA[hanami]]></category><category><![CDATA[hanami-router]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 13 Jun 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#21 JSON Serialization with Alba in Hanami]]></title><description><![CDATA[Serialize your API responses in Hanami applications with alba - the fastest ruby serialization gem]]></description><link>https://hanamimastery.com/episodes/21-serialization-with-alba</link><guid isPermaLink="true">https://hanamimastery.com/episodes/21-serialization-with-alba</guid><category><![CDATA[hanami]]></category><category><![CDATA[api]]></category><category><![CDATA[rom-rb]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 10 May 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#20 dry-validation - The one gem to validate them all!]]></title><description><![CDATA[Validating data input is an extremely important problem to tackle in all applications. In Ruby ecosystem there is no better tool for that than dry-validation. Here is why!]]></description><link>https://hanamimastery.com/episodes/20-dry-validation</link><guid isPermaLink="true">https://hanamimastery.com/episodes/20-dry-validation</guid><category><![CDATA[dry-rb]]></category><category><![CDATA[dry-validation]]></category><category><![CDATA[hanami]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 25 Apr 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#19 The underrated power of dry-schema]]></title><description><![CDATA[dry-schema is an extremely powerful validation engine for Ruby applications and as it's a built-in validation solution for Hanami projects, It is important to get familiar with it.]]></description><link>https://hanamimastery.com/episodes/19-dry-schema</link><guid isPermaLink="true">https://hanamimastery.com/episodes/19-dry-schema</guid><category><![CDATA[dry-rb]]></category><category><![CDATA[dry-schema]]></category><category><![CDATA[hanami]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 19 Apr 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#18 Fun with Hanami Actions]]></title><description><![CDATA[Hanami actions are one of the richest building blocks in terms of available features and in this episode I want to go over them, showing how to validate params, handle errors and and use before or after hooks.]]></description><link>https://hanamimastery.com/episodes/18-hanami-actions-basics</link><guid isPermaLink="true">https://hanamimastery.com/episodes/18-hanami-actions-basics</guid><category><![CDATA[hanami]]></category><category><![CDATA[hanami-actions]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 12 Apr 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#17 Inline documentation - the secret habit of successful devs.]]></title><description><![CDATA[Everyone would love to have a secret power. A skill that makes you a hero. There is no one such skill, but in this episode, I'll talk about inline documentation - a great skill that can make you a better developer.]]></description><link>https://hanamimastery.com/episodes/17-inline-documentation-with-yard</link><guid isPermaLink="true">https://hanamimastery.com/episodes/17-inline-documentation-with-yard</guid><category><![CDATA[documentation]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 08 Mar 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#16 Your app is not your business!]]></title><description><![CDATA[Check out these 4 ways to separate your business logic aside of your application layer in Ruby applications.]]></description><link>https://hanamimastery.com/episodes/16-extract-your-business-layer</link><guid isPermaLink="true">https://hanamimastery.com/episodes/16-extract-your-business-layer</guid><category><![CDATA[hanami]]></category><category><![CDATA[rails]]></category><category><![CDATA[architecture]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 01 Mar 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#15 Dependency Injection in Ruby - GOD Level! Meet dry-system! (Part 2)]]></title><description><![CDATA[Dependency injection brings you great power, but comes with its own headaches. If you can get rid of them, You're left with the power only. In Ruby, with dry-system, it's possible. Here is how!]]></description><link>https://hanamimastery.com/episodes/15-dependency-injection-god-level-part-2</link><guid isPermaLink="true">https://hanamimastery.com/episodes/15-dependency-injection-god-level-part-2</guid><category><![CDATA[dry-rb]]></category><category><![CDATA[dry-system]]></category><category><![CDATA[dependency-injection]]></category><category><![CDATA[hanami]]></category><category><![CDATA[dry-inflector]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 07 Feb 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#14 Dependency Injection in Ruby from 0 to hero (Part 1)]]></title><description><![CDATA[Dependency Injection is an extremely useful programming technique and can be easily implemented in Ruby! Mastering it is an important skill to leverage the power of Hanami applications! dry-container is one way to help you with it!]]></description><link>https://hanamimastery.com/episodes/14-dependency-injection-in-ruby-from-zero-to-hero-part-1</link><guid isPermaLink="true">https://hanamimastery.com/episodes/14-dependency-injection-in-ruby-from-zero-to-hero-part-1</guid><category><![CDATA[dry-rb]]></category><category><![CDATA[dry-container]]></category><category><![CDATA[dependency-injection]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 31 Jan 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#13 A sneak-peak into dependency loading with Hanami and dry-container]]></title><description><![CDATA[dry-system and dry-container are extremely powerful tools and if you understand how to work with them, you'll never look back. It's amazing that Hanami uses them by default! Check out some useful debugging tips!]]></description><link>https://hanamimastery.com/episodes/13-dry-container-tips</link><guid isPermaLink="true">https://hanamimastery.com/episodes/13-dry-container-tips</guid><category><![CDATA[dry-rb]]></category><category><![CDATA[dry-container]]></category><category><![CDATA[dry-system]]></category><category><![CDATA[hanami]]></category><category><![CDATA[dependency-injection]]></category><category><![CDATA[persistence]]></category><category><![CDATA[rom-rb]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 25 Jan 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#12 Authorization with JWT in Hanami applications!]]></title><description><![CDATA[Authorizating your API applications can be trivial, if you have proper tolls to do it. Here I showcase how authorization with JWT can be done effortless in any ruby application by using Hanami 2 as an example.]]></description><link>https://hanamimastery.com/episodes/12-authorization-with-jwt</link><guid isPermaLink="true">https://hanamimastery.com/episodes/12-authorization-with-jwt</guid><category><![CDATA[hanami]]></category><category><![CDATA[authorization]]></category><category><![CDATA[dry-effects]]></category><category><![CDATA[dry-rb]]></category><category><![CDATA[dry-configurable]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 03 Jan 2022 00:00:00 GMT</pubDate></item><item><title><![CDATA[#11 Effective programming in ruby]]></title><description><![CDATA[2 real-world examples of using algebraic effects in Hanami ruby applications with dry-effects.]]></description><link>https://hanamimastery.com/episodes/11-effective-ruby-programming-with-dry-effects</link><guid isPermaLink="true">https://hanamimastery.com/episodes/11-effective-ruby-programming-with-dry-effects</guid><category><![CDATA[dry-rb]]></category><category><![CDATA[hanami]]></category><category><![CDATA[dry-effects]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 29 Nov 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[#10 Model your business with structs on steroids - dry-struct in action!]]></title><description><![CDATA[A struct with static type check for all attributes is a pretty useful thing in Ruby and all other languages. Here are 3 examples of useful applications for typed structs using dry-struct.]]></description><link>https://hanamimastery.com/episodes/10-dry-structs-in-action</link><guid isPermaLink="true">https://hanamimastery.com/episodes/10-dry-structs-in-action</guid><category><![CDATA[dry-rb]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 22 Nov 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[ROM and Sequel over ActiveRecord?]]></title><description><![CDATA[I've wondered why Hanami uses sequel under the hood. There are some problems with ActiveRecord, but I've wanted to know exactly, what it is about. Here is the summary of my foundings.]]></description><link>https://hanamimastery.com/articles/sequel-over-activerecord</link><guid isPermaLink="true">https://hanamimastery.com/articles/sequel-over-activerecord</guid><category><![CDATA[hanami]]></category><category><![CDATA[rails]]></category><category><![CDATA[persistence]]></category><category><![CDATA[rom-rb]]></category><category><![CDATA[activerecord]]></category><category><![CDATA[sequel]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Fri, 19 Nov 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[The secret of stunning OSS contributions!]]></title><description><![CDATA[If you can contribute to open-source, do it only if you can benefit from it. So if you can't benefit, either drop the idea or... make it beneficial!]]></description><link>https://hanamimastery.com/articles/secret-of-stunning-oss-contributions</link><guid isPermaLink="true">https://hanamimastery.com/articles/secret-of-stunning-oss-contributions</guid><category><![CDATA[thoughts]]></category><category><![CDATA[hanami]]></category><category><![CDATA[open-source]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Wed, 20 Oct 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[#9 Integrate Hanami 2.0 with your Database using ROM]]></title><description><![CDATA[Every application needs persistence. Saving records in a database is just a must. Here is how you can do it in Hanami applications!]]></description><link>https://hanamimastery.com/episodes/9-guide-to-models-in-hanami-and-rom</link><guid isPermaLink="true">https://hanamimastery.com/episodes/9-guide-to-models-in-hanami-and-rom</guid><category><![CDATA[hanami]]></category><category><![CDATA[rom-rb]]></category><category><![CDATA[persistence]]></category><category><![CDATA[sequel]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Sat, 02 Oct 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Why ALL APIs are inconsistent?]]></title><description><![CDATA[One of the most common problems in web applications, is to update the application state based on the business rules. How it's possible, that API specification does not cover it?]]></description><link>https://hanamimastery.com/articles/why-all-apis-are-inconsistent</link><guid isPermaLink="true">https://hanamimastery.com/articles/why-all-apis-are-inconsistent</guid><category><![CDATA[thoughts]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Fri, 17 Sep 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[#8 Learn new things easily - mapping Rails to Hanami!]]></title><description><![CDATA[When I've started with learning Hanami, I've struggled a lot because of the different concepts Hanami has over Rails. In this episode of Hanami Mastery I'm mapping Rails to Hanami for easier learning.]]></description><link>https://hanamimastery.com/episodes/8-rails-vs-hanami-mapping-frameworks</link><guid isPermaLink="true">https://hanamimastery.com/episodes/8-rails-vs-hanami-mapping-frameworks</guid><category><![CDATA[rails]]></category><category><![CDATA[hanami]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Thu, 09 Sep 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[I've made a dependency graph for all DRY gems of Ruby gems family!]]></title><description><![CDATA[Have you ever wondered which DRY-RB library learn first? I did when I started with DRY-RB. I hope this will help!]]></description><link>https://hanamimastery.com/articles/dry-rb-dependency-graph</link><guid isPermaLink="true">https://hanamimastery.com/articles/dry-rb-dependency-graph</guid><category><![CDATA[dry-rb]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 27 Jul 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[#7 Untangle your code with MORE than service objects! Meet dry-monads!]]></title><description><![CDATA[Everyone knows how messy Rails controllers can be come. In this episode, I'm implementing the service-pattern on steroids using dry-monads in my sample Rails application.]]></description><link>https://hanamimastery.com/episodes/7-untangle-your-app-with-dry-monads</link><guid isPermaLink="true">https://hanamimastery.com/episodes/7-untangle-your-app-with-dry-monads</guid><category><![CDATA[rails]]></category><category><![CDATA[dry-rb]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Fri, 23 Jul 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Why I'm giving so much appreciation everywhere?]]></title><description><![CDATA[People seem to be surprised being mentioned in my articles, tweets, videos, or when I send a personal 'thank you' email. I've decided to sort it out here...]]></description><link>https://hanamimastery.com/articles/giving-appreciation</link><guid isPermaLink="true">https://hanamimastery.com/articles/giving-appreciation</guid><category><![CDATA[thoughts]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 12 Jul 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[#6 Complex Ruby Transformations made simple with dry-transformer!]]></title><description><![CDATA[Have you ever need to stringify keys outside of rails? Whether you want to import or export CSVs or communicate with external services you may need to parse the input to different output. 'dry-transformer' can help you with it.]]></description><link>https://hanamimastery.com/episodes/6-complex-ruby-data-transformations-made-simple</link><guid isPermaLink="true">https://hanamimastery.com/episodes/6-complex-ruby-data-transformations-made-simple</guid><category><![CDATA[dry-rb]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Fri, 09 Jul 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[Hanami architecture explained]]></title><description><![CDATA[People ask me about the simple explanation of Hanami architecture. Why is it so complicated? Is it? I'll try to explain it in simple words.]]></description><link>https://hanamimastery.com/articles/hanami-architecture-explained</link><guid isPermaLink="true">https://hanamimastery.com/articles/hanami-architecture-explained</guid><category><![CDATA[hanami]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Tue, 29 Jun 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[#5 Configure anything with dry-configurable]]></title><description><![CDATA[Configuring projects and components is one of the most common features in programming in general. dry-configurable is a standalone gem providing you exactly this in Ruby! Read about how to use it.]]></description><link>https://hanamimastery.com/episodes/5-configure-anything-with-dry-configurable</link><guid isPermaLink="true">https://hanamimastery.com/episodes/5-configure-anything-with-dry-configurable</guid><category><![CDATA[dry-rb]]></category><category><![CDATA[dry-configurable]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Sat, 19 Jun 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[#4 An easy string manipulations in Ruby with DRY-INFLECTOR!]]></title><description><![CDATA[Use constantize, classify, underscore and MORE on Strings in Pure ruby! Use dry-inflector to quickly apply non-standard string transformations!]]></description><link>https://hanamimastery.com/episodes/4-string-transformations-with-dry-inflector</link><guid isPermaLink="true">https://hanamimastery.com/episodes/4-string-transformations-with-dry-inflector</guid><category><![CDATA[dry-rb]]></category><category><![CDATA[dry-inflector]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 14 Jun 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[My attempt to change the world of Open-Source financing.]]></title><description><![CDATA[Open-Source development is hard nowadays. Here I explain how I want to make it easier.]]></description><link>https://hanamimastery.com/articles/hanamimastery-origins</link><guid isPermaLink="true">https://hanamimastery.com/articles/hanamimastery-origins</guid><category><![CDATA[open-source]]></category><category><![CDATA[thoughts]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 07 Jun 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[#3 Style your Hanami App with Bulma using Hanami Assets]]></title><description><![CDATA[In this episode I make use of Bulma CSS framework and integrate it with Hanami 2.0 application to prettify it with the least effort possible.]]></description><link>https://hanamimastery.com/episodes/3-style-your-app-with-bulma</link><guid isPermaLink="true">https://hanamimastery.com/episodes/3-style-your-app-with-bulma</guid><category><![CDATA[hanami]]></category><category><![CDATA[views]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Sun, 30 May 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[#2 Listing articles in Hanami and Dry-View]]></title><description><![CDATA[In this episode I explain the Hanami architecture related to view rendering, by using Hanami View, Hanami Actions, and templates, to list articles for a blog application.]]></description><link>https://hanamimastery.com/episodes/2-listing-articles-with-hanami-view</link><guid isPermaLink="true">https://hanamimastery.com/episodes/2-listing-articles-with-hanami-view</guid><category><![CDATA[hanami]]></category><category><![CDATA[views]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Sat, 15 May 2021 00:00:00 GMT</pubDate></item><item><title><![CDATA[#1 Creating a new Hanami app from the template]]></title><description><![CDATA[How to create a brand new Hanami app lighting fast by using the Hanami application template.]]></description><link>https://hanamimastery.com/episodes/1-creating-hanami-application</link><guid isPermaLink="true">https://hanamimastery.com/episodes/1-creating-hanami-application</guid><category><![CDATA[hanami]]></category><dc:creator><![CDATA[Sebastian Wilgosz]]></dc:creator><pubDate>Mon, 10 May 2021 00:00:00 GMT</pubDate></item></channel></rss>