Belladonna of Sadness, 1973 - ★★★ (contains spoilers)

This review may contain spoilers.
This movie is not fully animated. At least not in the traditional sense. Most of the motion in the movie consists of the camera panning over long strips of paper showing the progression of the story from right to left. This is not to say there is a complete lack of animation. There's enough of that, and though basic, it fits in its elementary - and at times primal - methodology. You'll need to watch this one with an open mind and a healthy dose of patience.
This mechanism is important to how the movie delivers the story. It allows a gradual change in the tone and mood of what's going on. In a certain scene, for example, a crowd of people seems content, but as the scene goes on, the faces shift, the colors darken, and an angry mob emerges. This kind of transition is often reinforced with sounds and colors, another important element of storytelling. The red of passion and violence (of which there is a lot), the pink of beauty, the green-yellow of evil and sickness, and even the black of nothingness for a pause.
I mentioned passion and violence. This movie swims in those. Nudity is not hidden nor implied. drawings of breasts, vulvas, and penes dance on the screen while orgies of all genders and even a couple of animals blend into violent rivers or red. The cliche elements are here: sex is evil (the devil is shaped like a large penis); pleasure is sin; women corrupt. It's all there and might rub certain folks the wrong way. This is also a good point to mention that rape is a part of this movie. If this is a hard line for you in movie watching, I'd sit this one out.
But this movie doesn't dwell on cliches, and just as I was about to roll my eyes, the movie ask something I didn't see coming.
"Who says anger and hatred are ugly," the devil asks Jeanne after she sold her soul to him. The scene is painted with colorful butterflies, while soft bells chime in the background. Jeane lays naked after, having an orgasm of a lifetime. Can such a thing be fundamentally evil? And if not, are we evil for teaching it is? It's an uncomfortable question to ask, and I was happy to see that not only the film didn't shy away from it, but chose it as a focal point. There is no peace without war, and there's no haven without hell.
The movie draws a direct connection to women in the French Revolution, not too long after they were considered to be witches. The fear of men of women is everywhere in this film. There's a woman who wants to have sex with her husband more often but knows contraception is against god. they are too poor to afford to have more kids. She decides to use contraceptives anyway (a gift from Jeanne, who is called a witch at this point) and finds happiness not just for her husband but for herself.
It's not a coincidence that at the end, when the "witch" Jeanne is burned at the stake, it's not a stake at all: it's a cross. She suffered continuously by the hand of the people she worked hard to serve and help with the aid of the devil. These were the same folks who stood silent while she was burned alive.
An interesting question is not "was this woman evil," but the underlying one: is the devil, who helped the woman and through the abilities, he gave her helped the people, evil, or is it god, who's teachings caused such an artifact of beauty good will be destroyed? Are we born into sin, or are the teachings of the priests the ones who turn us into monsters?
There was nothing evil about Jeanne: not at the beginning of the movie and not at the end. Even when she thirsts for revenge and goes after the people, perhaps blamed for the Black Death in the film, one has to recall the nightmare she spent her waking life living. Why wouldn't she want revenge? Wouldn't we? Don't we?
Of TiddlyWiki, Emacs, And Digital Gardens
A post from my old blog from about 3 years ago, where I discuss digital gardens, tiddlywiki, and Emacs.
I read a good argument in a NYTimes opinion piece by Laura Vanderkam in favor of flexible work hours.
The article contains a couple of interviews with people who adjusted to work with flexibility. Here’s the part that resonates with me:
I hope we can begin to understand that, for many, work is a collection of tasks, not a collection of hours in a certain place. And time is a finite resource, but one that cannot always be neatly divided into “work time” and “free time.” Taking time for yourself during the work day doesn’t make you lazy, and working a bit on vacation doesn’t make you a workaholic. Dispensing with strict time boundaries should also mean ditching the guilt you might feel for either. In org-mode, I measure time by clocking in and out of tasks. These can take days, weeks, or months. Other projects repeat and become routines. I don’t particularly care “when” these hours take place. The nature of the job, not to mention COVID-19, have long deemed most of the “where” irrelevant. I often work outside my dedicated work hours, sometimes as early as 5 in the morning or as late as 9 in the evening. The flip side of this is taking long lunch breaks or leave the office a bit early. It goes both ways.
One of my good work “hacks” are quick naps, from 10 minutes to about half an hour. In return, these breaks allow me to be alert and productive at work, often working beyond the minimal requirements of a certain task. I enjoy what I do, so what’s the big deal?
New York’s Last Movie Clerk Knows More Than You Do nytimes.com
Read: www.nytimes.com
DMing for the first time in 25 years
Last weekend, I ran a DnD session. Three curious players stepped into a fantasy world I created for the first time in over 20 years, took whatever plans I had for them, shredded them to bits, and apparently left satisfied and wanting more. So if you’re curious, this is a chance to understand what’s the fuss about from a perspective of a guy who’s starting it all over again.
DnD (easier to type than D&D) is a phenomenon that has seen a renaissance in the last decade or so. I believe that’s because most of the folks who played the game as teens (myself included) are now old enough to pass the hobby down to the kids: either their own or those who matured after the 90s.
Because DnD is essentially an act of communal storytelling, you can make it whatever you want. This means you don’t have to be a kid to participate; the story can be adult-oriented with everything you’d expect from a good book. While DnD is usually set in a medieval fantasy world, it doesn’t have to be this way (one such example is the unsleeping city, a DnD setting in modern-day New York City).
To me, the story aspect of DnD is primary to everything else, which means the people who create it are of utmost importance. I was on the lookout for a while. I couldn’t just pick a random group online and join a game: sharing the world inside my head is an invitation to a private, intimate domain. I had to pick and choose people that I felt I could open up to and be comfortable with.
The requirements from these people were not easy, especially during these times of COVID. They needed to be geeky, even dorky. They needed to be open-minded and comfortable exploring darker themes, sexual elements, and questionable philosophies. I needed people who are familiar with the game and understand that I haven’t led an adventure in over two decades and that I don’t have the vocabulary they do for medieval terms or the knowledge of the rules. It was also important to me to meet these people face to face and talk to them over a drink or two, pick their brains, and see if they have what it takes1 (more accurately, if I have what it takes). In short, I had to make new friends.
I said led the game, and this is somewhat misleading. A better description of a DM (dungeon master) might be a host. Just like a host, the DM invites the players to play (in my case, the invitation extended to my physical home and the one in my mind). Once the players come, the DM serves as a foundation of a story for the players to take and do what they wish. A good host tries to make their guests feel comfortable and open up, be themselves, and have a good time; a DM’s role should be the same.
Usually, a good game session is full of good laughs, excitement, and a table with snacks and drinks. When a successful meeting ends, the players may ask when is the next session, and the gang you’ve brought together keeps exploring the world you’ve all just built together in chats until the next meeting. These were the moments that gave me satisfaction beyond just the joy of the game. It was the kind of happiness you feel after you feed a group of hungry people with homemade food.
There is more to being a DM than just being a good host. In fact, there is so much more I’d like to talk about just from this one gaming session, I don’t even know how to start (that’s right, I didn’t even start yet). DnD is a game spread over hundreds of pages of content and rules; yet, when it came to just sitting down and creating an adventure, I found that I was drawing from my intuition and past experiences and not so much from the official content. It felt as if there was very little there for me, and the little that I found was not what was needed2.
How does one create a good story? How do you even know you want to? And when you have an idea, how do you bring it to life? Do you just write down a list of bullet points? Start typing until smoke comes out of your fingertips? Do you draw the map first, or do you create NPCs (Non-Player Characters)? Do you know why there are monsters there, and are they automatically the “bad guys”? How do you tell a good story, and how do you roleplay?
I haven’t a clue. Seriously, I don’t. However, asking these questions is rewarding. It’s the stuff that would get your juices flowing and your imagination working as it hasn’t in years.
What I hope to do is to explore what I’ve done so far (which is both barely anything and way too much to write about at the same time) and recapture my passion for this game.
Footnotes
-
These are my requirements, which may be a bit much. Those who just want to pick up the game and play can find it in many places online, from Twitch to roll20 to meetup groups. You can always try to play first and learn what you feel comfortable with later.
-
The DMG (Dungeon Master’s Guide) is filled with good advice and rules, not to mention other additions like Xanathar’s Guide to Everything or Tasha’s Cauldron of Everything. This is not what I’m talking about here, as it will hopefully become clear. There’s an excellent discussion on Reddit about this, as well.
Org ID, Org Attach & Better Folder Names
You might have heard of org-mode header IDs. By default, these are Universally Unique Identifiers (UUIDs). In this post, I want to talk about what they are, why I use them (and you should, too), and how to make them into slugs: human-readable IDs that make more sense. This will be a long explanation of what I discovered in org-mode, so buckle up!
What are UUIDs and why should I care?
The org-mode manual doesn’t exactly point at header IDs unless you know where to look. Because of this, a casual user of org-mode might overlook these powerful organizational tools.
In org-mode, we can link to a file and a head directly: <path to file>/parent header/header, but this is risky because we refile (move) headers between files; old projects get archived, meeting notes get moved under other relevant projects, etc. This means that any links using a path like the one above will break1.
For this reason, we have header IDs: Org-IDs. They require that we include org-id in our init file (as part of org-mode’s modules), and then we can generate them for any header by calling org-id-get-create:2 “create an ID for the current entry and return it. If the entry already has an ID, just return it.”
By default, org-id-get-create creates a string of random numbers and letters: a UUID. Now, every time we want to reference the header, we link to the UUID instead of the header’s path, like so: [[id:our UUID here][description here]].
This is great, but these UUIDs are a string of random characters that make no sense to us. A header with an ID like 05576976-a33c-11ec-9da6-020017000b7b doesn’t tell us anything. We will return to this problem in a bit, because first I want to discuss another great (and perhaps overlooked) org-mode feature that makes this even more problematic.
Referencing to files with Org-Attach
Org-mode comes with a built-in attachment mechanism called org-attach. You can summon it with C-c C-a when inside org-mode under a header. Org-attach was one of the features I always knew existed but never used.
We already have a system to navigate and organize our files ingrained deep into our mind, be it Finder, Windows Explorer, or whatever GUI file manager we have in front of us. For us dedicated Emacs users, there’s of course the excellent Dired.
What’s more though, org-attach is using some seemingly weird system to store our files deep in folders that don’t make sense to us, and the only way to find them later is to use org-attach again to go to these attachments (by calling org-attach with C-c a, then choosing f or F, depending on the case). At least, that’s what I thought.
Assuming you haven’t tweaked your org IDs, org-attach will nest an attachment under three folders. First, the default data folder, which is where all the attachments are stored. Second, under it, a folder with the first two characters of the header’s UUID. Then, third, a folder with the rest of that UUID as its name.
This is a bit confusing, so let’s break it down a bit. Again, the following workflow assumes you don’t have any settings affecting org-attach. Launch Emacs with -q if you have any doubts:
- Go visit an org file, and navigate to one of its headers.
- Summon org-attach with
C-c C-a. This will bring up a menu. For now, just use the first option,a. - Next, org-attach will ask you which file you want to attach. Navigate to one and select it. Don’t worry, this will create a copy. The original will stay where it is.
- With the point on the header you just worked with, which should now have an :ATTACH: tag, summon org-attach again, but this time call option
F, which will open the directory the file is in with Dired.
What you’re going to see is that you’re inside your org file’s folder, inside a data folder, and then inside a weird two-letter folder, and then inside a long string representing the rest of the UUID. Something like this: /home/user/orgfiles/data/ab/f4b2cf-4b38-45ec-9333-346b42861d24.
I’d argue that this way of creating attachments would cause newcomers to Emacs to prefer other methods for storing their files. It looks odd, and it doesn’t make sense when you need to find something later. That’s too bad because you’re missing out on org-mode’s excellent ability to organize your projects with their files attached right to them, of course, but this habit also comes after years of using org-mode (at least that’s how it was in my case).
If only you could make these folders make sense. Well, this is Eamcs. Of course you can.
From Org-IDs to Timestamp Slugs
The idea is simple: change how these IDs are created in org-mode by modifying org-id-method. By default, its value is a UUID. But we can change it to ts3: (setq org-id-method 'ts). That’s it. The next time we create an ID using org-id-get-create, it will produce something like 20220315T083403.413614. Still a bit confusing to read, but much better than UUIDs! The format is: year, month, date, followed by T for time, and then the current time down to the fraction of a second. Why do we need it broken down to these tiny time fractions? To guarantee we get different org-ids if we create several of those sequentially.
This will set up our unique IDs as timestamps4, but we still need to configure org-attach to use them. Because org-mode is set up to use UUIDs by default, org-attach is set to create directories that are meant to work with UUIDs. The directory structure is determined by org-attach-id-to-path-function-list. Specifically, it points to two functions: org-attach-id-uuid-folder-format and org-attach-id-ts-folder-format. You can go into org-attach.el and see that they break down the folder structure in a pretty straightforward way: the UUID function (which is the one used by default) takes the first two characters of the UUID and makes a parent folder out of those (as seen above), while the ts function takes the first six. The first six characters make sense because they include the year and the month.
By default, if we use the above example of 20220315T083403.413614 as a timestamp, we will get the following directory structure: /home/user/orgfiles/data/20/220315T083403.413614: the first two digits are for first two digit of the year: 2022. This is not very useful, as you will need to use org-mode until the year 2100 for a new sub-folder to be created!
This is what happened to me, and it required some head-scratching and diving into org-attach to figure out. I tried to mess around with the functions in org-attach directly, but that didn’t go well. Eventually someone on IRC pointed me to what I missed: what needs to be changed is org-attach-id-to-path-function-list. It is as simple as changing the order of the functions on this list, so org-attach will know to use the ts function first.
Together with org-id-method, which we defined above, we can write the whole thing like so:
(setq org-id-method 'ts)
(setq org-attach-id-to-path-function-list
'(org-attach-id-ts-folder-format
org-attach-id-uuid-folder-format))
Now when you use org-attach, it will use the ts function and create the following directory (to use the example above): /home/user/orgfiles/data/202203/15T083403.413614. This makes much more sense. You could also build your own function that would look like org-attach-id-ts-folder-format, perhaps for using the first 4 characters to create a parent directory for the year only. You will just need to make sure your custom function shows up first in org-attach-id-to-path-function-list.
A few Extra Things
I mentioned I used an excellent package called org-super-links. In a nutshell, this package automates creating org-IDs, linking them to an org-header, and creating a backlink from that header to the one linking from it. You should read Karl’s post about it and how he uses it to get a better idea than what I’m letting on here if you’re interested. As a matter of fact, if you want to get some more background, read the previous post mentioned above and you’ll see I’ve been trying to change org-IDs into timestamp slugs for a while. So much so, in fact, that I wrote my own function to do that for me until I discovered org has a system built-in already. As it goes with Emacs though, there’s no wrong answer. The previous attempt took me deeper into Elisp, which was a fun learning experience in itself.
With org-super-links, the process above is quicker because I don’t need to deal with org-id-get-create. I just search for the header I want to link to, and everything’s created automatically: an ID for the header I’m on, an ID for the header I’m linking to, a link linking to that ID at my marker, and a backlink at the header I am linking to pointing back to the header I’m on. You’d probably need to read that last one again. The bottom line is that if you’re serious about organizing your org headers, you should probably check out this package.
Another post that’s been floating around since 2017 by Matthew Lee Hinman approaches org-mode IDs from a different angle: exporting to HTML. In the post, Hinman explains that if you use IDs in your org file, you will also benefit when you export it to an HTML file: the header links you will use will link where you need them to go, and that’s even after you move headers around.
I’m actually using HTML more and more at work when I want to export my org-mode files into KB articles that go into wikis. This is especially helpful when you include a table of contents: the headers in the TOC will not break if you use IDs. This is maybe a bit more of a niche use, but having a TOC in a how-to article makes a lot of sense, and org-mode creates one for you by default when you export to HTML.
Footnotes
1 As a matter of fact, I think breaking links to headers and losing information is one of the reasons for org-roam’s popularity. Of course, the new versions come up with a lot more than just linking notes across a database, but at its core, I think this is why people started adopting it.
2 In newer versions of Emacs, using org-id-get-create (C-c l) can automatically generate an org-id for a header, if one doesn’t exist, provided that org-id-link-to-org-use-id is set to t. This can be done in the init file in Emacs.
3 Emacs documentation specifies a third method, org: “Org’s own internal method, using an encoding of the current time to microsecond accuracy, and optionally the current domain of the computer. See the variable ‘org-id-include-domain’.” This generates what seems to be a random string of text that is also not human-friendly. I’m not sure about the computer’s domain part, but this might be interesting for folks who have several computers on a domain using Emacs.
4 Giving headers unique IDs as timestamps is also useful because it leaves “clues” to help locate lost information later. For example, when you create a project with this unique ID, and later on you forget what it was, you can use the date to clue you in. It gives you another layer of search on your agenda (“202203” for example) to show all the projects created in March, provided you create an ID for each project, which you totally should. Because this is a simple text string, you can also use this outside of Emacs with other scripts to automate tasks that will look for this ID. It opens a world of options now that you have a range of unique IDs that you understand in your head, AKA, slugs. Also, it just looks better.
Feb 22 Updates
With changes at work and less energy to write here, I wanted to at least write a general update. This usually helps me to “get back in the groove” blogging-wise.
At work, we’re going through a merger of sorts. It’s been in the works for quite some time, but it finally took effect at the start of this month. Because our workflows and scheduling system have changed, I find myself a bit out of sync with my routines. One of the things that came about is our technical documentation: our work wiki and knowledge base, specifically.
As an Emacs org-mode user, I’ve been working on my knowledge base for years. Some of our current workflows started with this personal knowledge base on my office computer’s Emacs, or at least passed through it in some form.
Perhaps I have some talent for writing workflows (I would assume so, since I keep being tagged to do them), but it’s Emacs (and org-mode) that brings it to light. It’s not just about writing information down. Understanding Emacs and building my own wiki in org-mode gave me the confidence to tackle bigger projects on my own, from writing simple bash scripts to troubleshooting my network connectivity last weekend1 (it’s working now, thanks to speskk).
The interest in writing technical documentation brought to mind mind my college days, when I was taking technical writing classes. Funny how sometimes the past catches up with you, especially when you think you’re done with it.
Meanwhile, I feel my writing energy for the blog has diminished a little. Not because I don’t want to write: the impulse to do so persists as it has been for the last 20 years. There’s just a lot going on, and I feel like I can’t break it down into chunks I can express in writing, at least not yet.
Almost at the same time, another part of my past seems to be making a comeback. This one is personal and uncertain, hopefully positive. The collision of the two - professional and personal - made last weekend quite thought-intensive.
Footnotes
1: The mastodon.technology instance was a tech-focused Mastodon server that shut down in 2023. This URL is broken now, but I’m leaving it in case it lives on in some archive.