Drifting Ruby (driftingruby)

Drifting Ruby

driftingruby

Organization data from Github https://github.com/driftingruby

Ruby Screencasts

Home Page:https://www.driftingruby.com

GitHub:@driftingruby

Drifting Ruby's repositories

template

Base template for "all" Drifting Ruby episodes

Language:HTMLStargazers:18Issues:2Issues:0

445-streaming-llm-responses

In this episode, we look at running a self hosted Large Language Model (LLM) and consuming it with a Rails application. We will use a background to make API requests to the LLM and then stream the responses in real-time to the browser.

Language:RubyStargazers:5Issues:1Issues:0

395-transcribing-with-artificial-intelligence

In this episode, we look at creating an audio transcription service which allows files uploaded from Active Storage to be transcribed with Artificial Intelligence. However, there are a lot of considerations around the approach from both a performance and thread safety perspectives.

Language:RubyStargazers:4Issues:3Issues:0

481-kamal-kitchen-sink

In this episode, we look at creating an entire infrastructure (proxy, load balancer, app servers, worker servers, database server, and a storage server) on our own hardware use Kamal to provision and deploy our Ruby on Rails application.

Language:HTMLStargazers:4Issues:0Issues:0
Language:HTMLStargazers:4Issues:0Issues:0

236-google-maps-api-with-stimulusjs

Add unobtrusive maps to your application using StimulusJS to tie in Google Maps Javascript API and Places API.

Language:RubyStargazers:2Issues:1Issues:0

249-soft-delete-with-discard

Soft deletes for ActiveRecord done right.

Language:RubyStargazers:2Issues:1Issues:0

408-broadcasting-progress-from-background-jobs

In a previous episode, we had created a custom ActionCable channel to assist in broadcasting updates from a background job. With the introduction of Turbo, we can simplify this process as we look at a few different approaches in displaying a progress bar with real time updates from background jobs.

Language:RubyStargazers:2Issues:1Issues:0

427-detect-spam-with-ai

We can create a small python service that uses a Large Language Model (LLM) to detect if a message is spam or not. Using this service, we can tie it into our Rails application so that any comment created will be evaluated for being spam or not. We explore a few different routes on handling any messages flagged as spam.

Language:RubyStargazers:2Issues:1Issues:0

477-kamal-2

In this episode we look at deploying a Rails 8 beta application to a Digital Ocean droplet. We'll also look at a scenario of deploying Action Cable broadcasts and another with recurring background jobs.

Language:HTMLStargazers:2Issues:1Issues:0

413-pdf-reader

When previewing PDF files that were uploaded through Active Storage, we can only get a simple image of the first page. In this episode, we'll look at taking the uploaded PDFs and interacting with them.

Language:RubyStargazers:1Issues:1Issues:0
Language:RubyStargazers:1Issues:1Issues:0
Language:RubyStargazers:1Issues:1Issues:0

472-dependent-fields-with-hotwire

Large forms can be overwhelming to fill out, especially if not all of the fields are required. In this episode, we'll look at creating a stimulus controller to conditionally display fields based on the input of another field.

Language:RubyStargazers:1Issues:0Issues:0
Language:HTMLStargazers:1Issues:0Issues:0

498-conditional-queue

In this episode we look at processing background jobs in a way that can conditionally send the work to be processed to different queues. This can be very powerful in situations where you need to process the job in different ways or send requests to different APIs.

Language:HTMLStargazers:1Issues:0Issues:0

205-push-notifications-with-actioncable

In this episode, we look into using Push Notifications within our Rails application and then using ActionCable to broadcast Push Notifications to the user.

Language:RubyStargazers:0Issues:2Issues:0

231-syntax-highlighting-with-action-text

Set up Action Text with client side Syntax Highlighting using Highlight.js.

Language:RubyStargazers:0Issues:2Issues:0

245-tracking-changes-on-action-text

Without using any gems, we look at tracking changes within Action Text. It seems like a simple thing, but challenges arise through several layers of abstraction due to the flexibility that Action Text provides.

Language:RubyStargazers:0Issues:1Issues:0
Language:RubyStargazers:0Issues:1Issues:0

417-system-tests

In this episode, we look at adding system tests in our application to test our Stimulus Controllers. We'll also look at how to DRY up some of the tests and how to run them in a headless environment.

Language:RubyStargazers:0Issues:1Issues:0

468-processing-large-jobs

In this episode, we will upload a CSV file but need to pass it into a background job. This can prove to be difficult based on the hosting infrastructure so we'll explore some mechanisms to work around them. We'll also look to optimize Solid Queue to handle the large number of jobs.

Language:RubyStargazers:0Issues:1Issues:0

494-outlets-and-permanent-tags

In this episode, we'll explore how we can add a "global" music player that will persist across different pages. Our approach will be unobtrusive and implemented in a maintainable way.

Language:HTMLStargazers:0Issues:0Issues:0
Language:HTMLStargazers:0Issues:0Issues:0

512-marksmith

Easily add Markdown support to your Rails applications with Marksmith. This isn't a drop-in replacement to ActionText, but can be used with text or blob columns. Marksmith integrates easily with ActiveStorage for handling file uploads. In this episode, we'll explore setting up Marksmith and some best practices.

Language:HTMLStargazers:0Issues:0Issues:0
Language:RubyStargazers:0Issues:0Issues:0

521-model-context-protocol

Model Context Protocol (MCP) is an API interface for your applications that are formatted in a way that machine learning platforms can interact with them. They can be used to generate AI insights, perform tasks based on user input or other things.

Language:RubyStargazers:0Issues:0Issues:0
Language:HTMLStargazers:0Issues:0Issues:0