#dev 2025-03-29
2025-03-29 UTC
gRegorLove__ and sebbu joined the channel
#
gRegor A couple in https://indieweb.org/Category:2019_sessions

#
carrvo tantek, I disagree that filesystems are so different from databases. The storage of directories is not so different than B-tree nodes that some databases are based off of.
#
carrvo That being said traditional "databases" are actually "relational databases" (SQL is based off relational algebra).
#
carrvo LDAP is an example of contemporary NoSQL databases before they had that name. Amazon's A3 storage thing is more recent.
#
carrvo Filesystems, on the other hand, have very different design features to them (they tend to lack the ACID properties of relational databases).
#
carrvo That is kind of my point: all the storage mechanisms (whether classified as "databases" or not) should really be chosen by their differences in features.
#
carrvo I wouldn't call filesystems "superior". They are more friendly to non-technical users (one of their features and a main reason I use SVN).
#
carrvo And I would disagree. At least as an absolute for everyone in all situations to be better. That is anti-pluralistic and the equivalent to saying we should only have one OS just because one solved the problem first.
#
carrvo sebbu, bit more complex than that...which is why DBs are likely to be "easier" in 90% of cases.
#
carrvo But DBs have other considerations like concurrency and fast read vs fast write that make them worth the extra effort for copy/longevity.
#
carrvo Mind you lower technical personal websites are likely not looking for this (which is a narrow use case).
#
carrvo I would argue that DBs are bad for this community (which is not an absolute statement about everyone). I am also surprised at how many in the community use MySQL or something.
#
carrvo "personal website longevity" is not the same as "longevity".
gRegorLove_ joined the channel
#
[artlung] I can't tell what the goal of these distinctions, disagreements, and definitions are about but there are reasons to use "database" in a "RDBMS" (relational database management system) specific to software. But it's true, the word "database" has a rough meaning of "entity that can have data stored in it" which I feel like is creating ambiguities and worsening the mild, not particularly constructive disagreement here in dev.

#
gRegor Also worth noting: https://indieweb.org/database-antipattern#community_split

gRegorLove_, gRegorLove__, nemonical, jjuran, gRegor, [jamietanna] and [KevinMarks] joined the channel
#
[KevinMarks] A .sql file is a program. Using that for transfer is giving remote execution privilege directly to something you download without it having to do code injection. Most SQL exports start by deleting the target table before recreating it which is going to break production for you. (what you normally want to do is to import to an alternative table, and swap the names over atomically afterwards). TSV or CSV is how you normally share larger

#
[KevinMarks] data.

nemonical and gRegorLove_ joined the channel
#
immibis I literally wrote a sqlite to fuse adapter
#
immibis Filesystems as user-friendly is such a 2010 thing. These days we have photosystems and imessagesystems.
#
immibis related: a website is a service, not a set of data.
shoesNsocks, skeuos[d], gRegorLove__ and ttybitnik joined the channel
#
Zegnat I am not sure what service my website is, I would call it a document rather than a service. But I think all these definitions are super unintuitive anyway. Is SQLite or DuckDB a database or are they just introspection tools when I run them against a multiple gigabyte CSV file? Is a multi-GB CSV file any more or less easy for portability than if it had been in a SQLite binary format, considering I probably cannot open it with whatever

#
Zegnat my OS text editor is anyway? I find it is often much more productive to talk about “tools for the job” and why you chose them. (Note that this is not the “right” tool, it is just tool. Chances are you are not using the most correct tool, and you do not have to. But it is always worth thinking about why you ended up with the tool that you have :) )

nemonical and CRISPR joined the channel
#
Zegnat Not sure where this goes, but thought it was an interesting case and something we have seen before with microformats class names being used to other things as well. A browser extension that overwrites a CSS variable, breaking styling on a website: https://dbushell.com/2025/03/29/et-tu-grammarly/

#
immibis a website is a machine that converts HTTP requests into HTTP responses
#
immibis def website(req : Request) -> Response:
#
immibis the responses should be something that's useful for displaying in a browser
#
immibis of course *one possible* implementaion is def website(req : Request) -> Response: assert ".." not in path; return readfile("/var/www/html/"+req.path)
#
[schmarty] Regression to formalisms? Wow we have got really far away from the initial discussion of how storage choice affects admintax https://indieweb.org/admin_tax

#
immibis imagine a channel where people are afraid to civilly discuss on-topic things
#
immibis [artlung]: i wasn't aware - is it a requirement that everyone in a channel should be interested in every conversation in the channel?
#
[artlung] On topic, and not boring (to me) was yesterday I replaced my handwritten prints and printfs in php for my mixtape code and replaced it with Twig code that's going to be far nicer to adapt as I inevitably change things. https://gist.github.com/artlung/b79f928b45b85c177656e6bdc9ce64e0

#
[schmarty] I think twig escapes by default, hence some of the values being piped thru the "raw" filter

geoffo joined the channel

#
[schmarty] artlung: was twig already in use on your site? I'm interested to hear what led you to choose it!

#
[artlung] https://artlung.com/mixtapes/1984-untitled-safety-dance is the page that's associated with.

#
[schmarty] artlung: thanks! That makes sense! I have considered Twig (and sometimes Blade) for projects but usually the "PHP is a template language" voice in my head wins out and I just reach for PHPLeague's Plates 😅

#
[artlung] The mixtapes project is weirdly more complicated. I have tapes that are a single tape with 2 sides. I have tape series with multiple tapes. I have ones with artwork, ones without. I have CDs which don't have "sides". The data might have track timings or not. They may have additional notes or not. I have some with text in other languages. So doing that all in PHP gets to be really complicated.

#
[artlung] <li><b>

{{ title }}</b> <span>{{ artist }}</span> <a href='https://artlung.com/mixtapes/{{ slug }}'>{{ slug }}
</a> </li>#
[schmarty] artlung: haha, yeah that sounds like a great case to let a template engine do its thing! I recently experienced the reverse in a work project, turning client-side handlebars templates into PHP templates and having to resolve all the ambiguity that handlebars syntax happily hides was a pain 😅

#
[schmarty] Those look nice and clean!

#
[schmarty] artlung++ testing++

#
[schmarty] I am attracted to the custom component system in Blade but my understanding is that it's hard to use outside Laravel.

#
[schmarty] I want an excuse to try https://github.com/enhance-dev/enhance-ssr-php

#
[schmarty] (HTML custom element syntax in your templates, processed by your own PHP custom components)

#
[KevinMarks] That twig syntax looks very like nunjucks/jinja2 - is that the design centre for twig?

#
[KevinMarks] [Zegnat] I use nunjucks to generate svg and js code as well, so clearly I am a reprobate.

#
[KevinMarks] I miss nunjucks chill handling of null elements when I go back to node or python

#
Loqi A template is a file used to generate a page https://indieweb.org/template

#
[tantek] The wiki says twig is like Liquid. Perhaps that needs updating? https://indieweb.org/template#Twig

#
[KevinMarks] There is some commonality there with

{% %} for flow control and {{ }}
for evaluation, and | for applying functions.gRegorLove_, luca, NaomiAmethyst and nemonical joined the channel
#
[schmarty] fwiw i like the way you're explicitly unpacking the numerically-indexed array into human-meaningful variable names. ✨

#
Loqi twig may refer to TWiG (This Week in Google), or the Twig (template engine) https://indieweb.org/twig

rrix, ttybitnik and SylvatiCodes joined the channel