347 private links
There is a new lh for "line-height" unit in css.
* + * as known as the howl selector: targets all elements that have the previous same selector.
This selector is great because it has no specificity.
An alternative is *:not(:first-child)
Dump the database as SQL statements instead of copying it with indexes. Then compress the resulting txt file.
# Create the backup
sqlite3 my_db.sqlite .dump | gzip -c > my_db.sqlite.txt.gz
# Reconstruct the database from the text file
cat my_local_database.db.txt | sqlite3 my_local_database.db
As complete script example:
# Create a gzip-compressed text file on the server
ssh username@server "sqlite3 my_remote_database.db .dump | gzip -c > my_remote_database.db.txt.gz"
# Copy the gzip-compressed text file to my local machine
rsync --progress username@server:my_remote_database.db.txt.gz my_local_database.db.txt.gz
# Remove the gzip-compressed text file from my server
ssh username@server "rm my_remote_database.db.txt.gz"
# Uncompress the text file
gunzip my_local_database.db.txt.gz
# Reconstruct the database from the text file
cat my_local_database.db.txt | sqlite3 my_local_database.db
# Remove the local text file
rm my_local_database.db.txt
There should be better ways though.
Use types to enforce consistency.
Les Refinement Types sont des objets qui permettent de s'assurer de la cohérence des données en mathématique on appellerait ceci un sous-ensemble.
It can become useful someday
Option has zero cost with Some types in memory.
- Too small target areas
- Not using gap with Flexbox
- Unforgiving target areas for dropdowns
- No delay before closing drodowns
- Not animating anchor links
Better CSS defaults
How the module system works in Rust
About regular links and hx-boost. This hx-boost exists only to compete with SPA. Building good websites requires dropping the sugar high of hx-boost and saying “here’s how to use a cache header.”
Use cache headers: cache-control if possible and etag for dynamic resources. "If I don’t even want to include a version number—maybe for a file like stylesheet.css—I can use a URL query."
Leverage HTML as much as possible: it only gets better.
When to use HTMX then? "Until HTML has an API to keep live content persistent across page navigations, some SPA functionality is required to make that happen."
SPAs are an advanced tool that the industry deceptively marketed as a simple one. Aram is a highly experienced web developer who’s using hx-boost to push the boundaries of what’s possible with page navigations; Most people, who just want to add a little interactivity to their webpage, should stick with the simplest tool available: a regular link.
rgba(from currentColor r g b /. 35
or for better support:
color-mix(in srgb, currentColor 35%, [#0000)](https://shaarli.lyokolux.space/./add-tag/0000))
I can see potential advantages to target all details content (except summary) as one container.
Browser support is not enough (~69% at the time of writing) and Firefox does not support it though: https://caniuse.com/?search=%3A%3Adetails-content
Let's see in months or 1-2 years!
Sometimes the outline is hidden because of some overflow though.
a:not(:is(:hover, :focus)) {
text-decoration-color:
color-mix(in srgb, currentColor, transparent 75%);
}- The HTTP layer is straightforward: it turns HTTP requests into structures to be used by the service layer and vice versa.
- The service layer contains all the business logic of the service: data validation, business invariants, etc...
- The repository wraps the database queries
Then come some strategies:
- Cron jobs
- Caching is done at the service layer because the repository layer must stay dumb and the business rules often impact caching.
- logging with tracing
- Serving SPAs and static assets with a custom axum handler and a fallback URL for everything outside of the
/api. Static assets can be served with therust_embedcrate.
The project structure looks like:
cmd/
my-server/
migrations/
0001.sql
Cargo.toml
main.rs
server.rs
scheduler.rs
worker.rs
webapp.rs
libs/
mailer/
Cargo.toml
mailer.rs
queue/
Cargo.toml
queue.rs
stripe/
Cargo.toml
stripe.rs
services/
users/
repository/
users.rs
sessions.rs
service/
get_user.rs
get_session.rs
Cargo.toml
errors.rs
model.rs
repository.rs
service.rs
Cargo.toml <- Cargo.toml for the workspace
Dockerfile.my-server
Makefile
README.md