2025-08-11

~500 words lastmod

06:00 Somebody boosted mention of GNU Taler, a “privacy-friendly” FOSS payment system, into my Fedi feed. By the time I’d finished looking it up and reading about it, the toot was long gone. Seems interesting, though.

https://www.taler.net/en/index.html

06:30 AC putting out a funny burned dust smell so it’s off until property management can come take a look.

Today’s forecast high is 36C / 98F. This will be fun. At least it’s cooler than the last couple weeks, which I’m pretty sure contributed to any HVAC issues.

10am local time or so, my GitHub repo count: 170

12:30pm local time, my Microsoft AI Copilot GitHub repo count: 12 (nine archived and three active, pending additional planning)

https://www.theverge.com/news/757461/microsoft-github-thomas-dohmke-resignation-coreai-team-transition

What’s the third “E” again? Oh yeah.

“Extinguish”

data-driven *log with MarkdownDB

I want to add some processing to the workflow for publishing. Initial focus is backlinks, but I have ideas stretching it out to the point of ridiculousness.

Why not stick everything in a database? Just this once, I successfully fought off the urge to write the database-generating tool myself. Today I tried MarkdownDB. Ask again next week.

Using it

I don’t want to confuse Netlify by adding package.json when npx can do the job just fine locally.

    npx mddb ./content/
  

Takes 0.82 seconds with 152 pages. I will eventually need a faster solution, given my tendency to accumulate notes. This is fine for today.

    sqlite3 markdown.db
  

Just remembering the initial query as I’m ironing out fussy details. Between work, life, and brain, I’ve got maybe six minimally interrupted hours per week free to write code. I’ll forgive myself a little sloppiness on first pass.

    # Yeah I know it's not the most efficient collection of queries. I'm in a hurry.

META_SQL = %{
  select
    title
  from files
  where file_path = ?
  limit 1
}

BACKLINK_SQL = %{
  select
    src.url_path,
    src.title
  from files this
  inner join links l
    on l.`to` = this._id
  inner join files src
    on src._id = l.`from`
  where this.file_path = ?
  order by src.title
}

def get_note_meta(item)
  meta = $db.get_first_row(META_SQL, item[:content_filename])
  meta["backlinks"] = []
  $db.execute(BACKLINK_SQL, item[:content_filename]) do |row|
    meta["backlinks"] << row
  end

  return meta
end
  

Maybe on the first few passes. Anyways it’s a start.

Adding it to the build process

Put that npx invocation into my Justfile and ensure every build is working with a fresh database.

    db:
  npx mddb ./content/

build: db
  bundle exec nanoc --env=prod