Uploaded May 2024 | Updated September 2026, 2 weeks ago
Updated version for Ubuntu 24.04: youtu.be/mRRyFnMeXLk
balenaEtcher is a tool for flashing SD cards or USB drives to make them bootable. Canonical recommends balenaEtcher for creating a bootable USB in its tutorial for installing Ubuntu (which we will do in our next video) because it runs on Linux, Windows, and Mac OS. The installers for Windows and Mac OS are fairly self-explanatory, so we don't cover them in a video.
Linux is a bit more involved, as you either need to either download an AppImage or a Debian package. We go to balenaEtcher's GitHub page and get the .deb package for the latest stable release (1.18.11 at the time this video was recorded.)
After downloading we are able to install it with apt. (Command below from the directory containing the downloaded file):
```
sudo apt install -f ./balena-etcher_1.18.11_amd64.deb
```
To launch, we hit the Super Key and start typing balenaEtcher. It comes up as an installed program, and we are up and running.
This video covers:
00:00:00 Introduction
00:01:38 Click the Download Etcher button and review options
00:02:19 Visit the GitHub page for balenaEtcher and download the .deb file for the latest release
00:03:28 Install the .deb file from the terminal using apt
00:04:07 Launch and run the program
00:04:39 Conclusion
00:05:31 Blooper reel
#setup #configuration #install #apt #linux #ubuntu #etcher #balenaetcher #debian #deb #terminal #installationmedia #bootableusb #bloopers
See other related StatelessCode videos:
- youtu.be/mRRyFnMeXLk
- youtube.com/playlist?list=PL9kkbu1kLUeNWCKuMbpzE8r1xkx8L1Xf0
Featured Playlist:
- youtube.com/playlist?list=PL9kkbu1kLUePk2NNqMT14iL3Dis2mbMdK
Resources that we relied upon for this solution:
- balenaEtcher website etcher.balena.io
- balenaEtcher GitHub repo github.com/balena-io/etcher
- Microsoft Support Article: Create installation media for Windows support.microsoft.com/en-us/windows/create-installation-media-for-windows-99a58364-8c02-206f-aa6f-40c3b507420d
This video is CC0 - No rights reserved. (YouTube doesn't allow this option when publishing.) All code is released under the UNLICENSE. Stateless Code denies the concept of "intellectual property". Copying is not stealing.
Updated version for Ubuntu 24.04: youtu.be/mRRyFnMeXLk
balenaEtcher is a tool for flashing SD cards or USB drives to make them bootable. Canonical recommends balenaEtcher for creating a bootable USB in its tutorial for installing Ubuntu (which we will do in our next video) because it runs on Linux, Windows, and Mac OS. The installers for Windows and Mac OS are fairly self-explanatory, so we don't cover them in a video.
Linux is a bit more involved, as you either need to either download an AppImage or a Debian package. We go to balenaEtcher's GitHub page and get the .deb package for the latest stable release (1.18.11 at the time this video was recorded.)
After downloading we are able to install it with apt. (Command below from the directory containing the downloaded file):
```
sudo apt install -f ./balena-etcher_1.18.11_amd64.deb
```
To launch, we hit the Super Key and start typing balenaEtcher. It comes up as an installed program, and we are up and running.
This video covers:
00:00:00 Introduction
00:01:38 Click the Download Etcher button and review options
00:02:19 Visit the GitHub page for balenaEtcher and download the .deb file for the latest release
00:03:28 Install the .deb file from the terminal using apt
00:04:07 Launch and run the program
00:04:39 Conclusion
00:05:31 Blooper reel
#setup #configuration #install #apt #linux #ubuntu #etcher #balenaetcher #debian #deb #terminal #installationmedia #bootableusb #bloopers
See other related StatelessCode videos:
- youtu.be/mRRyFnMeXLk
- youtube.com/playlist?list=PL9kkbu1kLUeNWCKuMbpzE8r1xkx8L1Xf0
Featured Playlist:
- youtube.com/playlist?list=PL9kkbu1kLUePk2NNqMT14iL3Dis2mbMdK
Resources that we relied upon for this solution:
- balenaEtcher website etcher.balena.io
- balenaEtcher GitHub repo github.com/balena-io/etcher
- Microsoft Support Article: Create installation media for Windows support.microsoft.com/en-us/windows/create-installation-media-for-windows-99a58364-8c02-206f-aa6f-40c3b507420d
This video is CC0 - No rights reserved. (YouTube doesn't allow this option when publishing.) All code is released under the UNLICENSE. Stateless Code denies the concept of "intellectual property". Copying is not stealing.

![Upgrade to Devise 4.9 on Rails 7 and Decommission the 4.8 Hacks
Some exciting developments have taken place while we were working on our RubyGem! Devise released a new minor version 4.9 that works with Rails 7 and Turbo without requiring a custom responder class or TurboDeviseController.
We intentionally held off on doing the upgrade in our video and commit where we upgraded to Ruby 3.2.1 and Rails 7.0.4.3 to isolate the Devise change. (We even needed to modify our Gemfile.lock to explicitly hold the Responders gem back at 3.0.1 because it was breaking our system tests.)
Situations like this illustrate why its so important to have a robust automated test suite. In the devise epic, we created system integration tests for all of our Devise scenarios so that we could discover whether the upgrade attempts would cause a breaking change or not.
To upgrade our app, we refer to the How To: Upgrade to Devise 4.9.0 [Hotwire Turbo integration] guide on the Devise Wiki. We start by removing the hacks we introduced to get Devise 4.8 working with Turbo and Rails 7. We delete our custom TurboDeviseController file altogether and remove the custom failure app code from our initializer.
We already modified the views to work with Turbo, so we can skip that part of the upgrade guide. The actual code change to upgrade to Devise 4.9 once we roll back our hacks is fairly simple. We just need to add configuration options for config.responder.error_status (:unprocessable_entity) and config.responder.redirect_status (:see_other).
When we run our full test suite, there is one failure. We investigate the screenshot and development environment of our application. It looks like the flash message for a blank email when Devise is configured to paranoid mode has changed. Were okay with the change, and modify our LogInLogOutTest for blank email to expect the new behavior.
This video covers:
00:00:12 Introduction
00:01:59 Check out the Devise pull request that fixes the Rails issues and the commit to our project where we introduced the hacks to get it working with 4.8
00:04:17 Update the Gemfile to use Devise 4.9.0 and run `bundle update`
00:05:15 Debug gem dependencies were blown away by the general `bundle update`. Reset to Gemfile.lock to HEAD and just run `bundle update devise`
00:07:34 Git Remove on the TurboDeviseController (git rm app/controllers/turbo_devise_controller.rb)
00:07:55 Remove the hacks from the Devise initializer configuration file (config/initializers/devise.rb)
00:10:04 Add in the new configuration options needed for config.responder.error_status and config.responder.redirect_status
00:11:36 Run the full test suite and investigate the one failure
00:13:56 Pull up the scenario in localhost development environment and see what happens. Determine that the change in behavior is acceptable
00:15:26 Modify the test to use the new flash message and refactor out the flash error text into an instance variable
00:16:52 Re-run tests to ensure everything is passing consistently
00:17:55 Review the git diff, run RuboCop, and commit
00:20:25 Remove missed TECH DEBT comment and amend the commit
00:21:52 Push to the branch, pull request, close issue
#ruby #rails7 #rails #rubyonrails #rubygems #codecast #screencast #github #opensource #minitest #TDD #agile #NerdDice #DnD #roleplaying #softwaredevelopment #learntocode #tailwind #postgresql #rubocop #devise #turbo #controllers #views #selenium #capybara #systemtest #debug #responders
See other related StatelessCode videos:
- Playlist: Using Devise 4.8 on Ruby on Rails 7 with Turbo and Tailwind https://www.youtube.com/playlist?list=PL9kkbu1kLUeMnvkrX7EOLSv6glmQzGMXL
- Get Devise Working with Turbo in Rails 7 https://youtu.be/xnuA2K2mohs
- Upgrade to Ruby 3.2.1 and Rails 7.0.4.3 https://youtu.be/XvRzpoWfM9Q
Resources that we relied upon for this solution:
- Devise pull request to fix Turbo https://github.com/heartcombo/devise/pull/5548
- How To: Upgrade to Devise 4.9.0 [Hotwire Turbo integration] https://github.com/heartcombo/devise/wiki/How-To:-Upgrade-to-Devise-4.9.0-%5BHotwire-Turbo-integration%5D
This video is CC0 - No rights reserved. (YouTube doesnt allow this option when publishing.) All code is released under the UNLICENSE. Stateless Code denies the concept of intellectual property. Copying is not stealing. Upgrade to Devise 4.9 on Rails 7 and Decommission the 4.8 Hacks](https://i.ytimg.com/vi/niNuwTu0URs/mqdefault.jpg)








