Collecting my attempts to improve at tech, art, and life

2025-08-11

Does any of this enlighten, entertain, or otherwise please you? Please consider a Tip. Every little bit helps!

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.

Code Sample
    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.

Code Sample
    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.

Code Sample
    # 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.

Code Sample
    db:
  npx mddb ./content/

build: db
  bundle exec nanoc --env=prod