-
sqlite.directory updates
After the initial launch of sqlite.directory, I have been working on a few updates to the site. Here are some of the updates:
- Show count of apps (
59ba725
) - Show favicon of app (
d89dfbe
) - Randomize the order of app entries (
d703bf9
) - Validate that even the optional Repository URL is a valid URL (
15ad911
- Make the application more responsive (
07a5a3d
,ea01025
,e370f9d
,daed3ab
,5568fdd
,93c5c43
, and3b8cf5e
) - Update the PWA manifest to improve colors, description, and quick actions (
31422f6
)
As of writing this (December 11, 2024 at 1:30 PM CET) there are 17 applications listed on the site. I am excited to see the site grow and to see more applications listed on the site. If you have a project that uses SQLite, please consider adding it to the site. You can do so by visiting sqlite.directory and clicking the “Add entry” button. I am looking forward to seeing your project listed on the site!
Continue reading … - Show count of apps (
-
Select dropdown for polymorphic associations
When building a CRUD-oriented web application with Ruby on Rails, most things are pretty straightforward. Your tables, models, controllers, and views all naturally align, and you can lean on the Rails scaffolds. One gap, however, is dealing with polymorphic associations in your forms. Let’s explore how global IDs can provide us with a simple solution.
Continue reading … -
Introducing sqlite.directory
Continue reading …sqlite.directory
is a directory of web applications that use the SQLite database engine in some meaningful capacity in production. I have just launched the initial release today. Check it out and list your SQLite-backed app today: https://sqlite.directory -
Loading extensions
Rails continues to expand its lead as the single best platform for building web applications backed by SQLite! You can now load extensions directly from the
Continue reading …database.yml
file. This now means you have quick and easy access to the full range of SQLite extensions. This is a major step forward from the previous way, which required writing a custom initializer or using the enhanced adapter. -
Supercharge the One Person Framework with SQLite: Rails World 2024
Continue reading … -
Manipulating
database.yml
This is the second in a series of posts on building powerful and resilient Rails application templates. In the previous post, we discussed parsing and emitting YAML files with comments. Today, we will be looking at manipulating the
Continue reading …database.yml
file’s AST. -
Parsing and emitting
database.yml
Recently, I have been working on Rails application templates. These are scripts that can be run with
rails new
to enhance or extend the setup of a new Rails application with a specific configuration. They can also be ran against existing Rails applications usingrails app:template
. So, they are a powerful tool for automating certain kinds of configuration, modification, and setup tasks. But, there are also many limitations and stumbling blocks to what you can do with them.In this series, I will be sharing some of the things I have learned while working on these scripts. This post is about the difficulty of manipulating the
Continue reading …database.yml
file. Let’s jump into it. -
Problems with a backoff busy handler
In the process of getting the non-blocking
Continue reading …busy_timeout
from thesqlite3
gem used in Rails, I needed to explore the differences between a busy handler implementation that uses a backoff and one that simply polls on a consistent interval. What I found was that a busy handler that backs off kills “tail latency” (how long it takes for the operation in the worst cases). This is because the SQLite “retry queue” behaves very differently from a more traditional queue that we tend to work with and think about, like a background job queue. -
Update to Litestream gem
Version 0.5.1 of the Litestream is out. The 0.5.x versions of the gem adds a new
Continue reading …restore
command along with some useful introspection commands, making it simple to restore a database from a remote backup. This is a huge feature that makes Litestream even more useful. -
The how and why of optimal performance
Continue reading …