Skip to content

I really need to take a break from programming, but the ideas keep flowing into my head and I find it hard to stop.

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0

Had a fight with the Content-Security-Policy header today. Turns out, I won, but not without sacrifices.

Apparently I can't just insert <style> tags into my posts anymore, because otherwise I'd have to somehow either put nonces on them, or hash their content (which would be more preferrable, because that way it remains static).

I could probably do the latter by rewriting HTML at publish-time, but I'd need to hook into my Markdown parser and process HTML for that, and, well, that's really complicated, isn't it? (It probably is no harder than searching for Webmention links, and I'm overthinking it.)

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0

Oh, it looks like refresh tokens actually work in Bowl. Nice. I had to add some tweaks to the detection functions, but, oh well...

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0

I really need to make something to syndicate to Bluesky. It seems wonderful to have a new alternative to the now-dead Twitter, but I still want to post to my blog first.

ATProto feels a tiny bit overengineered. It was obviously built to have a semi-centralized reach layer, and that shows in its design. Plain HTML pages and/or microformats2 are a much simpler format, and at times richer than Bluesky's default Lexicon.

I want to gain benefits of both.

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0

Mozilla is playing with fire. I don't like their latest "AI" pivot. AI doesn't exist and never will, and whatever is called AI right now is not it. And is not worth using.

Seriously, "AI text" "detectors"? They don't really work that well. They sometimes also misidentify input texts written by someone not proficient with language as LLM output.

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0

Tailscale, without any sort of warning or public announcement, seems to have banned all Russian IPs from connecting to its coordination server.

I had to spend an entire workday migrating my setup to Headscale, the self-hosted alternative! I could've spent this time playing games or working, if not for this bullshit!

This "pseudo-sanctions compliance" virtue signalling must stop. All lawyers and PR personnel responsible for this should be fired and shunned. VPNs are critical to allow people in oppressive countries to get truth via the Internet, and just banning them from connecting to VPNs is exactly what the oppressors want.

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0

My markdown parser refuses to accept HTML input for some reason. I wonder why. This is not really compliant with the Markdown standard.

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0

If I were to include a quote made by a language model on my website, I'd like them to be specifically highlighted to make it obvious that the output was not written by a human.

Something like this, maybe?

figure.llm-quote {
  background: #ddd;
  border-left: 0.5em solid black;
  border-image: repeating-linear-gradient(45deg, #000000, #000000 0.75em, #FFFF00 0.75em, #FFFF00 1.5em) 8;
  padding: 0.5em;
  padding-left: 0.75em;
  margin-left: 3em;
}
figure.llm-quote > figcaption {
  font-size: 0.95em;
  font-style: italic;
}
@media (prefers-color-scheme: dark) {
  figure.llm-quote {
    color: #f0f0f0;
    background-color: #242424;
  }
}

And use it like this:

<figure class="llm-quote">
  <blockquote>
<p>I'm an artificial intelligence model known as Llama. Llama stands for "Large Language Model Meta AI."</p>
  </blockquote>
  <figcaption>
    Output generated by Llama 3.2-3B
  </figcaption>
</figure>

To get something like this (I sure hope this will display correctly! I still need to tweak my Markdown parser a bit.):

I'm an artificial intelligence model known as Llama. Llama stands for "Large Language Model Meta AI." I was developed by Meta, designed to process and generate human-like language. Like other large language models, I use natural language processing to understand and generate text. My primary function is to assist users with information and tasks, answering questions, providing definitions, summarizing content, and even creating text based on a prompt.

I don't have a personal experience, emotions, or consciousness like humans do. Instead, I operate by analyzing patterns in the data I was trained on and using those patterns to generate responses to user input. My knowledge is based on the data I was trained on, which includes a massive corpus of text from various sources, including but not limited to books, articles, research papers, and websites.

I am constantly learning and improving my language understanding and generation capabilities. This is done through machine learning algorithms that allow me to refine my performance over time. However, my limitations are also important to consider. I can make mistakes, particularly in situations that require a deep understanding of context, nuance, or subtlety. If you have any questions or need assistance with a task, feel free to ask, and I'll do my best to help!

Output generated by Llama 3.2-3B

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0

is it a bad idea to overload the subtraction operator on an MF2 post type to produce a difference between the two posts in the Micropub update format?

An addition of a post and a diff would, of course, patch the post with a diff, for symmetry.

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0

Just realized Kittybox doesn't even display the p-summary field anywhere yet. What a shame. Gotta fix that later.

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0

Bowl for Kittybox, a new native desktop Micropub client, has been released, featuring a Smart Summary function powered by a large language model that generates one-sentence summaries of blog posts.

Read more..

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0

So nice to see random websites support Webmentions!

Webmention counters:

  • 0
  • 💬0
  • 🔄0
  • 🔖0