Sign in

Dave Kimura

@davekimura.bsky.social
982 followers 153 following 113 posts

Christian, Husband, Father and Rubyist, Screencaster of www.driftingruby.com, Creator of ActionAuth github.com/kobaltz/action_auth, Makes and loves 🍣

PostsRepliesMedia
Dave Kimura @davekimura.bsky.social · 28/09/2026
Episode #582 - Single File Rails #ruby #rubyonrails #programming #code www.driftingruby.com/episodes/sin...
driftingruby.com
Episode 582 - Single File Rails | Drifting Ruby
In this episode, we explore the use cases and caveats of creating and using a single file Rails application.
010
Dave Kimura @davekimura.bsky.social · 21/09/2026
Episode #581 - Semantic Search #ruby #rubyonrails #ai #programming #code #search www.driftingruby.com/episodes/sem...
driftingruby.com
Episode 581 - Semantic Search | Drifting Ruby
Continuing from the last episode, we look at changing the search to become much more powerful. We generate embeddings and persist them to search against so similar words or meanings will produce resul...
010
Dave Kimura @davekimura.bsky.social · 13/09/2026
Episode #580 - Image Descriptions #ruby #rubyonrails #ai #programming #Code www.driftingruby.com/episodes/ima...
driftingruby.com
Episode 580 - Image Descriptions | Drifting Ruby
Using AI, we can take uploaded images and generate descriptions of the images so they can later be used for search.
011
Dave Kimura @davekimura.bsky.social · 06/09/2026
Episode #579 - Native Dialog #ruby #rubyonrails #programming #code www.driftingruby.com/episodes/nat...
driftingruby.com
Episode 579 - Native Dialog | Drifting Ruby
In this episode, we have a look at using native dialogs and popovers in our Rails application. No external libraries necessary!
110
Dave Kimura @davekimura.bsky.social · 31/08/2026
Episode #578 - Birthday Discount #ruby #rubyonrails #programming #code www.driftingruby.com/episodes/bir...
driftingruby.com
Episode 578 - Birthday Discount | Drifting Ruby
In this episode, we look at querying the database for birthdays by the month and day. From there, we generate a code and e-mail the user the discount code on their birthday.
010
Dave Kimura @davekimura.bsky.social · 23/08/2026
Episode #577 - Structured Events #ruby #rubyonrails #programming #code www.driftingruby.com/episodes/str...
driftingruby.com
Episode 577 - Structured Events | Drifting Ruby
In Rails 8.1, structure events were introduced and can be a great instrumentation tool to track complicated workflows.
010
Dave Kimura @davekimura.bsky.social · 16/08/2026
Episode #576 - vCard #ruby #rubyonrails #programming #code www.driftingruby.com/episodes/vcard
driftingruby.com
Episode 576 - vCard | Drifting Ruby
In this episode we look at generating and exporting vCard Contact Cards.
010
Dave Kimura @davekimura.bsky.social · 09/08/2026
Episode #575 - Client TIme #ruby #rubyonrails #programming #code #stimulus www.driftingruby.com/episodes/cli...
driftingruby.com
Episode 575 - Client Time | Drifting Ruby
In this episode we look at displaying timestamps in the time zone of the user without any external libraries.
030
Dave Kimura @davekimura.bsky.social · 03/08/2026
Episode #574 - Function Calling #ruby #rubyonrails #programming #code #openai #llm #ai www.driftingruby.com/episodes/fun...
driftingruby.com
Episode 574 - Function Calling | Drifting Ruby
In this episode, we look at adding function calling or tool use to our Rails application when making generative text LLM requests.
030
Dave Kimura @davekimura.bsky.social · 26/07/2026
Episode #573 - Structured Output #ruby #rubyonrails #programming #code #openai www.driftingruby.com/episodes/str...
driftingruby.com
Episode 573 - Structured Output | Drifting Ruby
In this episode, we look at taking unstructured data from a raw email and turning it into structured data by calling a LLM. We will take the structured response and use it to create a contact record w...
010
Dave Kimura @davekimura.bsky.social · 20/07/2026
Episode #572 - Command Palette #ruby #rubyonrails #javascript #stimulus #turbo #programming #code www.driftingruby.com/episodes/com...
driftingruby.com
Episode 572 - Command Palette | Drifting Ruby
In this episode, we'll explore the power of combining a Stimulus Controller and Turbo Frame Tags to create a seamless user interface. We'll use the example of keyboard shortcuts to launch a search mod...
010
Dave Kimura @davekimura.bsky.social · 06/07/2026
Episode #570 - Claude Skills #ruby #rubyonrails #claude #ai #programming #code www.driftingruby.com/episodes/cla...
driftingruby.com
Episode 570 - Claude Skills | Drifting Ruby
In this episode, we look at creating Claude slash commands. These can be useful when dealing with a complicated task or trying to extract certain information from the application.
030
Dave Kimura @davekimura.bsky.social · 28/06/2026
Episode #569 - Schedule Emails #ruby #rubyonrails #programming #codegeel www.driftingruby.com/episodes/sch...
driftingruby.com
Episode 569 - Schedule Emails | Drifting Ruby
In this episode, we look at how we can schedule an email blast to be received at a certain time in the user's time zone.
000
Dave Kimura @davekimura.bsky.social · 22/06/2026
Episode #568 - Analyze Active Storage #ruby #rubyonrails #programming #code #javascript #stimulus #ai #ollama www.driftingruby.com/episodes/ana...
driftingruby.com
Episode 568 - Analyze Active Storage | Drifting Ruby
In this episode, we look at filling in form data based on the contents of a PDF that is uploaded through Active Storage. We will implement a mechanism to fill out the form data without having to first...
020
Dave Kimura @davekimura.bsky.social · 14/06/2026
Episode #567 - Polling for New Records - Advanced #ruby #rubyonrails #programming #code #stimulus www.driftingruby.com/episodes/pol...
driftingruby.com
Episode 567 - Polling for New Records - Advanced | Drifting Ruby
Continuing from the previous episode, we look at evolving the polling stimulus controller to handle pausing when the user navigates to a different tab, handle network errors, properly construct the UR...
010
Dave Kimura @davekimura.bsky.social · 08/06/2026
Episode #566 - Polling for New Records #ruby #rubyonrails #programming #code #stimulus #polling www.driftingruby.com/episodes/pol...
driftingruby.com
Episode 566 - Polling for New Records | Drifting Ruby
Websockets are great, but they are not always the right approach. In this episode, we will look at implementing a long polling for new records.
000
Dave Kimura @davekimura.bsky.social · 31/05/2026
Episode #565 - Custom Turbo Stream Action Animation #ruby #rubyonrails #programming #code #javascript #turbo www.driftingruby.com/episodes/cus...
driftingruby.com
Episode 565 - Custom Turbo Stream Action Animation | Drifting Ruby
In this episode, we'll look at improving our UX by adding a custom Turbo Stream action to give some animation to deleted records.
040
Dave Kimura @davekimura.bsky.social · 18/05/2026
Episode #563 - Broadcasting Shell Output #ruby #rubyonrails #programming #code #turbo www.driftingruby.com/episodes/bro...
driftingruby.com
Episode 563 - Broadcasting Shell Output | Drifting Ruby
In this episode, we will have a look at a shell command that runs in a background job, but broadcast its output in real time to the browser.
010
Dave Kimura @davekimura.bsky.social · 10/05/2026
Episode #562 - Tone Check #ruby #rubyonrails #hotwire #stimulus #programming #code #ai #huggingface www.driftingruby.com/episodes/ton...
driftingruby.com
Episode 562 - Tone Check | Drifting Ruby
In this episode, we use a small AI model to check the tone of a message in real time on the client's browser. There's no need to send messages back to the server or to an API because it's all done on ...
010
Dave Kimura @davekimura.bsky.social · 04/05/2026
Episode #561 - Ten Years of Frontend This episode marks a significant milestone in my journey, as I’ve consistently released one episode every week for the past decade! #ruby #rubyonrails #programming #code #hotwire #turbo www.driftingruby.com/episodes/ten...
driftingruby.com
Episode 561 - Ten Years of Frontend | Drifting Ruby
In this episode, we look at where we were years ago and the journey where we have landed today. Over the past 10 years, much has changed with our approach to client interactions and in the episode we ...
030
Dave Kimura @davekimura.bsky.social · 26/04/2026
Episode #560 - AI Error Tracking - Part 2 #ruby #rubyonrails #ollama #programming #code www.driftingruby.com/episodes/ai-...
driftingruby.com
Episode 560 - AI Error Tracking - Part 2 | Drifting Ruby
Continuing from the previous episode, we look at adding the LLM insights functionality to examine the error logs. We start simple with the information captured in the error logs, but progress to provi...
010
Dave Kimura @davekimura.bsky.social · 19/04/2026
Episode #559 - AI Error Tracking (Part 1) #ruby #rubyonrails #programming #code www.driftingruby.com/episodes/ai-...
driftingruby.com
Episode 559 - AI Error Tracking (Part 1) | Drifting Ruby
In this episode, we are setting up the error tracking within our Rails application so that in the next episode, we can plug in the AI analysis of the error to hopefully lead to faster identity of the ...
000
Dave Kimura @davekimura.bsky.social · 13/04/2026
Episode #558 - AI Powered Logs #ruby #rubyonrails #ollama #llm #ai #programming #code www.driftingruby.com/episodes/ai-...
driftingruby.com
Episode 558 - AI Powered Logs | Drifting Ruby
In this episode, we will create a middleware that will capture the Rails logs and use an AI model to analyze the logs for any potential performance impact or issues.
000
Dave Kimura @davekimura.bsky.social · 05/04/2026
Episode #557 - Easter Eggs #ruby #irb #rubyonrails #programming #code #easter www.driftingruby.com/episodes/eas...
driftingruby.com
Episode 557 - Easter Eggs | Drifting Ruby
Easter Eggs are often ways that developers can have fun by hiding little gems in the code base or provide additional fun without affecting the function of the application. In this episode, we'll explo...
020
Dave Kimura @davekimura.bsky.social · 01/04/2026
Episode #556 - N+1 Driven Development #ruby #rubyonrails www.driftingruby.com/episodes/n-1...
driftingruby.com
Episode 556 - N+1 Driven Development | Drifting Ruby
In this episode, we look at how we can modify our application from a performance aspect to increase our job security. We'll slow down our application to a still usable level, but then swoop in months ...
000
Dave Kimura @davekimura.bsky.social · 29/03/2026
Episode #555 - Kamal Staging #ruby #rubyonrails #programming #code #kamal www.driftingruby.com/episodes/kam...
driftingruby.com
Episode 555 - Kamal Staging | Drifting Ruby
In this episode, we look at creating a staging environment that will be provisioned and deployed through Kamal. A stating environment can be simple or a production like infrastructure that mimics the ...
020
Dave Kimura @davekimura.bsky.social · 22/03/2026
Episode #554 - Once CLI #ruby #rubyonrails #once #programming #code #deployment www.driftingruby.com/episodes/onc...
driftingruby.com
Episode 554 - Once CLI | Drifting Ruby
In this episode, we look at the new Once CLI where we can reference a docker image and deploy it to a server.
010
Dave Kimura @davekimura.bsky.social · 16/03/2026
Episode #553 - Delegated Types #ruby #rubyonrails #programming #code www.driftingruby.com/episodes/del...
driftingruby.com
Episode 553 - Delegated Types | Drifting Ruby
In this episode, we'll explore the Delegated Types pattern and how to use it. We'll discuss different scenarios where it would be a good fit and where it would also be a bad fit.
153
Dave Kimura @davekimura.bsky.social · 08/03/2026
Episode #552 - Daylight Savings #ruby #rubyonrails #programming #code #DaylightSavings www.driftingruby.com/episodes/day...
driftingruby.com
Episode 552 - Daylight Savings | Drifting Ruby
In this episode, we look at recurring jobs and what happens to them when daylight savings begins or ends. We'll explore some options for handling this situation so that we always run the jobs at the s...
010
Dave Kimura @davekimura.bsky.social · 02/03/2026
Episode #551 - Optimizations #ruby #rubyonrails #programming #code www.driftingruby.com/episodes/opt...
driftingruby.com
Episode 551 - Optimizations | Drifting Ruby
In this episode, we look at a few different ways of improving the speed of a page. There are many paths to take. Some of them leaves a lot of optimizations on the table, whereas others are premature a...
020
Dave Kimura @davekimura.bsky.social · 22/02/2026
Episode #550 - Debounce #ruby #rubyonrails #hotwire #stimulusjs #javascript #programming #code www.driftingruby.com/episodes/deb...
driftingruby.com
Episode 550 - Debounce | Drifting Ruby
Demonstrate how to implement a debounced live search in a Rails application using Stimulus and Turbo, improving UX by reducing unnecessary server requests.
010
Dave Kimura @davekimura.bsky.social · 15/02/2026
Episode #549 - Rate Limit Plans #ruby #rubyonrails #programming #code #api www.driftingruby.com/episodes/rat...
driftingruby.com
Episode 549 - Rate Limit Plans | Drifting Ruby
In this episode, we look at creating a rate limit feature based on the plan a user has subscribed to.
010
Dave Kimura @davekimura.bsky.social · 08/02/2026
Episode #548 - Ratatui #ruby #programming #code #tui #terminal #development www.driftingruby.com/episodes/rat...
driftingruby.com
Episode 548 - Ratatui | Drifting Ruby
A Terminal User Interface (TUI) are nothing new but can be very powerful, especially to those who live in the terminal. In this episode, we'll look at creating pretty terminal interfaces from very bas...
021
Dave Kimura @davekimura.bsky.social · 02/02/2026
Episode #547 - Claude Code #ruby #rubyonrails #ai #claude #programming #code www.driftingruby.com/episodes/cla...
driftingruby.com
Episode 547 - Claude Code | Drifting Ruby
In this episode, we look at how to use Claude Code to assist us in developing Rails applications. This is not about vibe coding, but using tools to assist our development efforts.
010
Dave Kimura @davekimura.bsky.social · 25/01/2026
Episode #546 - Turbo Permanent #ruby #rubyonrails #programming #code #javascript #turbo #stimulus www.driftingruby.com/episodes/tur...
driftingruby.com
Episode 546 - Turbo Permanent | Drifting Ruby
In this episode, we'll look at common problems with broadcasting refreshes and page morphs as well as some paths to a solution to provide a good user experience.
021
Dave Kimura @davekimura.bsky.social · 18/01/2026
Episode #545 - Credentials Override #ruby #rubyonrails #programming #code #development www.driftingruby.com/episodes/cre...
driftingruby.com
Episode 545 - Credentials Override | Drifting Ruby
In this episode, we look at an interesting approach to override Rails Credentials so each developer can customize the credentials without changing the credentials file.
010
Dave Kimura @davekimura.bsky.social · 12/01/2026
Episode #544 - RequestJS #ruby #rubyonrails #programming #code #javascript #stimulus www.driftingruby.com/episodes/req...
driftingruby.com
Episode 544 - RequestJS | Drifting Ruby
In this episode, we'll have a look at a few different examples of how to make AJAX requests in a modern Rails application. We'll also explore some of the different things to be aware of and patterns t...
000
Dave Kimura @davekimura.bsky.social · 04/01/2026
Episode #543 - Self Hosted App #ruby #rubyonrails #programming #code #cloudflare #kamal #raspberrypi www.driftingruby.com/episodes/sel...
driftingruby.com
Episode 543 - Self Hosted App | Drifting Ruby
In this episode, we'll go from a fresh Rails 8 application and a newly provisioned Raspberry Pi to deploying the application on the PI. We'll also set up a domain to point to this application and put ...
010
Dave Kimura @davekimura.bsky.social · 28/12/2025
Episode #542 - Kamal Rollback #ruby #rubyonrails #programming #code #deployment www.driftingruby.com/episodes/kam...
driftingruby.com
Episode 542 - Kamal Rollback | Drifting Ruby
In this episode, we'll have a look at a few different scenarios on using the rollback functionality within Kamal. We'll also explore some best practices when developing our applications and some thing...
020
Dave Kimura @davekimura.bsky.social · 21/12/2025
Episode #541 - Authorization #ruby #rubyonrails #programming #code #fizzy www.driftingruby.com/episodes/aut...
driftingruby.com
Episode 541 - Authorization | Drifting Ruby
In this episode, we look at a pattern used by Fizzy on handling authorization in our Rails applications.
000
Dave Kimura @davekimura.bsky.social · 14/12/2025
Episode #540 - Fizzy JS Patterns #ruby #rubyonrails #programming #code #fizzy #stimulusjs www.driftingruby.com/episodes/fiz...
driftingruby.com
Episode 540 - Fizzy JS Patterns | Drifting Ruby
In this episode, we look at the open source project Fizzy and the Javascript patterns used. We will look at various patterns used and some thoughts of improvement.
020
Dave Kimura @davekimura.bsky.social · 07/12/2025
Episode #539 - Cool Things in Fizzy www.driftingruby.com/episodes/coo... #ruby #rubyonrails #fizzy #37signals #programming #code
driftingruby.com
Episode 539 - Cool Things in Fizzy | Drifting Ruby
In this episode, we look deploying Fizzy to a server and look at some of the notable practices found in the code.
030
Dave Kimura @davekimura.bsky.social · 30/11/2025
Episode #538 - Kamal with Non-Rails Apps #ruby #programming #code #kamal #deployment www.driftingruby.com/episodes/kam...
driftingruby.com
Episode 538 - Kamal with Non-Rails Apps | Drifting Ruby
In this episode, we look at using Kamal to deploy a Python application to a server.
030
Dave Kimura @davekimura.bsky.social · 24/11/2025
Episode #537 - AI Commit Messages #ruby #rubyonrails #programming #code #ai #ollama #git www.driftingruby.com/episodes/ai-...
driftingruby.com
Episode 537 - AI Commit Messages | Drifting Ruby
In this episode, we'll use a local LLM to generate our commit message automatically and then give us a chance to review it before saving the commit message.
010
Dave Kimura @davekimura.bsky.social · 17/11/2025
Episode #536 - Local CI #ruby #rubyonrails #programming #code #ci www.driftingruby.com/episodes/loc...
driftingruby.com
Episode 536 - Local CI | Drifting Ruby
In this episode, we look at a new Rails 8.1 feature gives you a DSL to run your Continuous Integrations steps on your local machine instead from your version control system.
010
Dave Kimura @davekimura.bsky.social · 09/11/2025
Episode #535 - Kamal Registry #ruby #rubyonrails #programming #code #deployment #kamal www.driftingruby.com/episodes/kam...
driftingruby.com
Episode 535 - Kamal Registry | Drifting Ruby
In this episode, we'll look at the two of my favorite changes in the recent Kamal releases. We'll explore some of the flows that the new registry uses and some things to be aware of.
020
Dave Kimura @davekimura.bsky.social · 26/10/2025
Episode #533 - Active Job Continuations #ruby #rubyonrails #8.1 #kamal #programming #code www.driftingruby.com/episodes/act...
driftingruby.com
Episode 533 - Active Job Continuations | Drifting Ruby
In this episode, we'll explore a new Rails 8.1 feature that allows background jobs to "pick up where they left off." We'll look at how the new Continuations feature helps prevent long-running jobs fro...
040
Dave Kimura @davekimura.bsky.social · 20/10/2025
Episode #532 - Pull to Refresh (on a PWA) #ruby #rubyonrails #pwa #programming #code #stimulusjs #javascript www.driftingruby.com/episodes/pul...
driftingruby.com
Episode 532 - Pull to Refresh | Drifting Ruby
When PWA websites are installed (specifically on iOS) there is some functionality lost to refresh the page. In this episode, we explore in how to restore this functionality.
020
Dave Kimura @davekimura.bsky.social · 13/10/2025
Episode #531 - Kamal Logs Upload #ruby #rubyonrails #kamal #hooks #programming #code www.driftingruby.com/episodes/kam...
driftingruby.com
Episode 531 - Kamal Logs Upload | Drifting Ruby
In this episode, we look at shipping application logs via the Kamal Hooks to a webhook endpoint. We'll use Discord as the final log storage.
010
Dave Kimura @davekimura.bsky.social · 05/10/2025
Episode #530 - Omarchy #ruby #rubyonrails #programming #code #omarchy www.driftingruby.com/episodes/oma...
driftingruby.com
Episode 530 - Omarchy | Drifting Ruby
Omarchy is an omakase distribution based on Arch Linux and the tiling window manager Hyprland. It ships with just about everything a modern software developer needs to be productive immediately.
020