[Raphael_Luckom], jeremycherfas, ShadowKyogre, KartikPrabhu, [tantek], [antonio], [schmarty], [KevinMarks], [tw2113_Slack_], [chrisaldrich], strugee, swentel and [Rose] joined the channel; ShadowKyogre left the channel
[tantek]if you display "bookmarks" as part of your post footer, e.g. number of people or lists of people that have bookmarked your post, please add yourself to https://indieweb.org/bookmarks#IndieWeb_Examples (adactio is the only one I could remember off the top of my head, and I presume GWG does though via Post Kinds though I'm not sure and hope he has a permalink handy that shows it's been bookmarked by others)
[KevinMarks], hoschi, jeremych_ and ShadowKyogre joined the channel
jackyI'm thinking that I might port my setup to be one that's more content-addressable-friendly (like making it not know the difference if it's stored on disk or in something like dat)
ShadowKyogre joined the channel; ShadowKyogre left the channel
[Raphael_Luckom]I'm convincing myself that the next post in my series on setting up your own cloud infrastructure will be how to set up a serverless static site generator--a generator where you put markdown in an S3 bucket and functions do the rest. Basically the core of my existing site.
[Raphael_Luckom]I keep saying that once you can run terraform you have access to ridiculously cheap+performant designs, and I've run out of excuses not to publish a real one.
[Keith_Axline], hoschi, [antonio], [snarfed], swentel, ShadowKyogre, [KevinMarks], shoesNsocks1, [Rose], [chrisaldrich], gxt and [tw2113_Slack_] joined the channel; ShadowKyogre left the channel
sknebelmight be petty, but the raspishake billed as citizen science/educational etc and then a pile of closed software with "DO NOT REVERSE ENGINEER" pretty much killed my interest in one
jamietanna[Raphael_Luckom] that sounds interesting - why not pre-compile with a "real" static site, instead of dynamically? (super interested, not trying to sound argumentative / "whatabout"ist
ShadowKyogre, petermolnar, mayakate[m], nekr0z, fredcy_, enpo and Salt[m] joined the channel; ShadowKyogre left the channel
[Raphael_Luckom]jamietanna: It's one of those things where I have a few reasons but I haven't put them all in one place, so I'm just going to try here and hope it turns out coherent 😄 ; so you may need to ask a followup or two before I'm able to make good sense:
[Raphael_Luckom]1. My goal is to build a system where the AWS cloud (as a specific example to stand in for "any public cloud with a small set of standard features") behaves for me like an operating system--it maintains windows into a "filesystem" composed of bucket(s) and runs "apps" (cloud functions triggered by events). Under that logic, the function that turns a .md into a .html is conceptually the same as a function that took an openscad file and
[Raphael_Luckom]rendered an stl. Since I want to preserve that openness to arbitrary extensibility, I don't want a purpose-built SSG introducing its own idioms for "rendering a file, when it is a type of authoring format that is traditionally associated with a web site"
[Raphael_Luckom]re-reading and re-writing the whole site all the time. This particular tradeoff has a number of dimensions, so I wouldn't claim any specific "optimalness" for it, but I'm finding that it works well so far.
[Raphael_Luckom]2. As a kind of secondary goal, I've found that I don't actually need to re-render my whole site when there's a new post--I just need to know enough to render the post, and trigger re-renders of lists in which it appears and adjacent posts in those lists. Since the S3 layout means that I need an extra network call for each file I want to get, there's kinda a benefit to rendering the minimal set of files for a given event, rather than
[Raphael_Luckom]One aspect of point #1 that I find attractive is that, since AWS lets you trigger functions off of bucket events, and buckets have very sharply-defined CRUD semantics and permissions, when I get around to needing to write a client for this thing (a phone app or maintenance website or whatever) I can use S3 as the system's interface--actions can be initiated by putting objects in buckets, and output can be placed in those buckets for
[Raphael_Luckom]consumption. This interface can use basic AWS permissions (api key / secret key). I see a lot of options for making almost any permission within the system (i.e. the ability to post on a section of a site) equivalent to a granular s3 permission.
[Raphael_Luckom]plus I can make it all cheap af. That's point 3, but since you can get a static site for free I don't really think it helps me in comparison.
[schmarty][Raphael_Luckom] i've been getting really interested in site build processes that are incremental or "just enough". i have a theory that indieweb building blocks could be used for this, and i find that interesting in particular.
[schmarty]for example when i make a new post i really want that post to go up at its permalink quickly, and get it into my main feed quickly, but then a bunch of stuff can happen after the fact, like adding that post to archives and tag pages.
[Raphael_Luckom]I've had some opportunities to move toward goals like that. So far I have been de-prioritizing speed in general though, in favor of code / configuration "simplicity" and extreme inexpensive-ness.
[Raphael_Luckom]I have also been de-prioritizing documentation, but I'm starting to feel that some of these things are final-ish, so if there's interest I'd be happy to write some of it up. I've already gotten two people to beta test my blog instructions for "how to do a thing with terraform on aws" https://raphaelluckom.com/posts/practitioner_journey.html
jamietanna[m]Sounds like a good idea. I'm finding my site is being super slow to build currently (7min Hugo on Netlify) and am thinking about what my next steps are. Schmarty's idea sounds good too 🤔
[Raphael_Luckom]7min surprises me. I have a pretty small site, but usually I see a post go up about 20s after I drop md in the bucket. Some of my rendering stuff is very inefficient right now (storing post-content in dynamo as a cache). I'm pretty sure it can be fixed though
[Raphael_Luckom]which is to say, I don't have extensive experience with ssgs, so I may not have solved whatever leads to a long hugo build time. but I'd be interested to hear about it
[tantek]it feels like SSGs in general are not (even) making use of well established update algorithms like those used by spreadsheets (when you change one cell, spreadsheets are very smart about only updating/redrawing etc. the dependent cells, rather than updating every single cell)
[tantek]like spreadsheets know how to do this kind of update in under a second, even for very complex spreadsheets. and a structure of "bunch of posts", "bunch of archive pages", "bunch of tag pages" is not complex at all
[Raphael_Luckom]I don't know if it's sloppy. It's conceptually much simpler to always do everything. Maybe you want e.g. template writers to not have to guess about what's going to get rendered when
aaronpkimplementing that kind of algorithm in a static site generator is exactly why you'd use a static site generator library instead of rolling your own
[tantek]aaronpk, I'm curious why no SSG library seems to do that. since no one is hyping any particular SSG that has update times in seconds or less than a second
[tantek]I'm blaming a combination of NIH and lack of depth of understanding of algorithms (yes, having actual CS training / background or being exceptionally well taught with lots of reading like Knuth books)
[Raphael_Luckom]I would guess that most ssgs are initially made by people who know that they, specifically, will have small mostly-text sites and want to build something quickly that works
aaronpk"Static pre-rendering ... has in fact remained the first choice of a small but vital community ... who appreciate the simplicity of the architecture"
[Raphael_Luckom]like when I imagine "preference for pushing to git to deploy a blog post" I have a pretty specific idea of who that is, what they're writing, and how much thought they're going to want to put into it. just my bias though
aaronpk"Gatsby’s data engine automatically tracks dependencies between pages and data, and—when data changes—schedules the minimum amount of work needed to update the site"
[Raphael_Luckom]a lot of the decisions I make--the ones I'm defensive about, and the ones that I think will look weird to people with CS backgrounds--are based on how I think I would've wanted this field to be accessible to enthusiastic amateurs back when that's what I was.
ciccarellome[m]11ty has a pinned issue looking into incremental builds. For something like a new .md file it should be easily do-able but it gets more complicated with data files and remote assets. https://github.com/11ty/eleventy/issues/108
ciccarellome[m]And 11ty doesn't force a strict structure so there's lots of places where you can pass a function which may or may not be functionally pure.
[KevinMarks]well gatsby needs it as it has huge overheads in other ways. Hugo does rebuild in real time locally, but i suppose that is on an ssd with lots of RAM rather than on whetever timeslice you get on default hosting