Ephes Blog

Miscellaneous things. Mostly Weeknotes and links I stumbled upon.


Weeknotes 2025-03-17

, Jochen
This Is Just To Say

I have shaved
the yak
that was in
the icebox

and which
you were probably
planning
to shave yourself

Forgive me
it was so tempting
so rough
and so hairy
--Rob Ricci


I didn't get much done on my open source projects last week. I'm considering reusing the Auphonic transcript editor for the transcript detail page. I've been thinking about how to handle transcripts with speaker annotations, but that's going to take at least another week of work. I spent a lot of time outdoors though, so I don't regret it.

Articles

Tools

Out of Context Images


Weeknotes 2025-03-10

, Jochen
On behalf of the United Kingdom, I would like to welcome the United States of America into the select club of countries that have voted to impose economic sanctions on themselves. --David Chisnall

Carnival is finally over and the weather's improving! I just released an update to django-cast where transcript models for the feed are now retrieved through a repository, and the feed is primarily generated from cacheable data. This turned out to be more challenging than I expected.

There are still four queries I haven't been able to eliminate yet: one because caching the site object is difficult, two because podcasts have additional fields compared to blogs that prevent me from using the cached blog object, and one query that fetches a post model for reasons I can't figure out. For now, I'm satisfied with the progress - eliminating those remaining queries isn't worth the effort at this point. I might work on transcript detail pages next week.

Articles

Tools

Videos

Out of Context Images


Weeknotes 2025-03-03

, Jochen
just putting this out there but: the technology has emerged. it is no longer "emerging technology." the technology is now a seeping ooze --allison

I managed to avoid going overboard with carnival festivities. Finally published the podcast episode about Auphonic that had been sitting in the queue for over two months. I'm hoping to prevent such long delays going forward. I had planned to release a new django-cast update with properly cacheable transcript data, but it turned out to be more challenging than anticipated - hopefully I can get to it next week.

Articles

Fediverse

Software

Hardware

  • framework | Nice, but maybe I'm waiting a bit for the new mac studios?

Videos


Weeknotes 2025-02-24

, Jochen
One of the advantages of the downfall of the United States will be eradicating the mm/dd/yyyy date format --Myles Eftos

Spring is finally in the air! 🌼 With the warmer weather rolling in, I found myself inspired to set up a Bedrock Minecraft server and wrote a quick blog post about the process – mostly so I wouldn't forget how to do it again later.

The nice weather also made me feel a bit guilty about my neglected kptncook project, so I pushed out a new release with some bug fixes. While I was in a productive mood, I updated django-cast too. The new version now includes transcript URLs in your podcast feed. I tested it with Castro, and it works great – there's now a neat "Transcript" button at the top of each episode that displays the transcript when tapped. I also created a new HTML view for the transcripts, though I haven't linked to it anywhere yet since it's still pretty bare-bones and needs some proper styling and layout work.

Articles

Software

Fediverse

Videos


Deploying a Minecraft Server

, Jochen

Let's talk about one of life's little annoyances: I'm part of that "lucky" generation stuck between helping our parents with printers and setting up our kids' tech. And now, on top of printer duty, I've somehow inherited the job of deploying Minecraft servers. At least it's slightly less painful than dealing with printers.

I found these articles while researching this task:

Since we're an Apple household with iOS devices everywhere, Bedrock edition was really our only option. I decided to keep things simple and install it directly in a dedicated user account without messing with Docker. Here's the Ansible playbook I use to deploy the Bedrock server:

- name: Install Minecraft Bedrock Server
  hosts: all
  become: true
  vars:
    minecraft_user: "bedrock"
    minecraft_home: "/home/bedrock"
    minecraft_download_url: "https://www.minecraft.net/bedrockdedicatedserver/bin-linux/bedrock-server-1.21.60.10.zip"  # Update to latest version

  tasks:
    - name: Create Minecraft user
      user:
        name: "{{ minecraft_user }}"
        home: "{{ minecraft_home }}"
        create_home: true
        shell: /usr/bin/fish

    - name: Create Minecraft directory
      file:
        path: "{{ minecraft_home }}"
        state: directory
        owner: "{{ minecraft_user }}"
        group: "{{ minecraft_user }}"
        mode: "0755"

    - name: Download Minecraft Bedrock Server
      get_url:
        url: "{{ minecraft_download_url }}"
        dest: "/tmp/bedrock-server.zip"
        mode: "0644"

    - name: Extract Minecraft Bedrock Server
      unarchive:
        src: "/tmp/bedrock-server.zip"
        dest: "{{ minecraft_home }}"
        remote_src: true
        owner: "{{ minecraft_user }}"
        group: "{{ minecraft_user }}"

    - name: Ensure Minecraft server is executable
      file:
        path: "{{ minecraft_home }}/bedrock_server"
        mode: "0755"

    - name: Create a systemd service file for Minecraft Bedrock
      copy:
        dest: "/etc/systemd/system/minecraft_bedrock.service"
        content: |
          [Unit]
          Description=Minecraft Bedrock Server
          After=network.target

          [Service]
          User={{ minecraft_user }}
          WorkingDirectory={{ minecraft_home }}
          ExecStart={{ minecraft_home }}/bedrock_server
          Restart=always
          RestartSec=5
          StandardOutput=journal
          StandardError=journal
          LimitNOFILE=4096

          [Install]
          WantedBy=multi-user.target
      notify: Restart Minecraft Server

    - name: Enable and start Minecraft Bedrock service
      systemd:
        name: minecraft_bedrock
        enabled: true
        state: started

  handlers:
    - name: Restart Minecraft Server
      systemd:
        name: minecraft_bedrock
        state: restarted