department of hack
856 stories
·
16 followers

The poem in time

1 Share

Poems proceed in two ways at once: in time, sequentially, insofar as the first word is read first, the second word second, and so on; and in illo tempore, as a pattern forming as we read the words and formed after we have read them. The latter is indicated by our intuitions of closure—as Yeats said, “The poem comes right with a click like a closing box.” We feel a sequence and pattern join and complete itself. So each word must not only promote its own interest, to stir us out of our linguistic habits, but it must also engage us in the manifold pattern emerging. This may be why we are unsatisfied by a string of brilliant images, no matter how amazing or amusing each is in itself, if that’s all the poem is; and are at least as unsatisfied by poems whose pattern seems too mechanical or static. We want richness, evocation, connections too various for analysis, much less for codification by prosody. We want to feel the poem as we feel the atmosphere when entering a room where so many things are happening we can’t possibly isolate them.

Michael Ryan, A Difficult Grace



Read the whole story
brennen
10 days ago
reply
Boulder, CO
Share this story
Delete

Voting Software

2 Shares
There are lots of very smart people doing fascinating work on cryptographic voting protocols. We should be funding and encouraging them, and doing all our elections with paper ballots until everyone currently working in that field has retired.
Read the whole story
brennen
10 days ago
reply
Boulder, CO
Share this story
Delete

A timesyncd total failure and systemd's complete lack of debugability

1 Share

Last November, I wrote an entry about how we were switching to using systemd's timesyncd on our Ubuntu machines. Ubuntu 18.04 defaults to using timesyncd just as 16.04 does, and when we set up our standard Ubuntu 18.04 environment we stuck with that default behavior (although we customize the list of NTP servers). Then today I discovered that timesyncd had silently died on one of our 18.04 servers back on July 20th, and worse it couldn't be restarted.

Specifically, it reported:

systemd-timesyncd[10940]: Failed to create state directory: Permission denied

The state directory it's complaining about is /var/lib/systemd/timesync, which is actually a symlink to /var/lib/private/systemd/timesync (at least on systems that are in good order; if the symlink has had something happen to it, you can apparently get other errors from timesyncd). I had a clever informed theory about what was wrong with things, but it turns out strace says I'm wrong.

(To my surprise, doing 'strace -f -p 1' on this system did not produce either explosions or an impossibly large amount of output. This would have been a very different thing on a system that was actually in use; this is basically an almost idle server being used as part of our testing of 18.04 before we upgrade our production servers to it.)

According to strace, what is failing is timesyncd's attempts to access /var/lib/private/systemd/timesync as its special UID (and GID) 'systemd-timesync'. This is failing for the prosaic reason that /var/lib/private is owner-only and owned by root. Since this works on all of our other Ubuntu 18.04 machines, presumably the actual failure is somewhere else.

The real problem here is that it is impossible to diagnose or debug this situation. Simply to get this far I had to read the systemd source code (to find the code in timesyncd that printed this specific error message) and then search through 25,000 lines of strace output. And I still don't know what the problem is or how to fix it. I'm not even confident that rebooting the server will change anything, especially when all the relevant pieces on this server seem to be just the same as the pieces on other, working servers.

(I do know that according to logs this failure started happening immediately after the systemd package was upgraded and re-executed itself. On the other hand, the systemd upgrade also happened on other Ubuntu 18.04 machines, and they didn't have their timesyncds explode.)

Since systemd has no clear diagnostic information here, I spent a great deal of time chasing the red herring that if you look at /var/lib/private/systemd/timesync on such a failing system, it will be owned by a numeric UID and GID, while on working systems it will be the magically special login and group 'systemd-timesync'. This is systemd's 'dynamic user' facility in action, combined with systemd itself creating the /var/lib/private/systemd/timesync directory (with the right login and group) before exec'ing the timesyncd binary. When timesyncd fails to start, systemd removes the login and group but leaves the directory behind, now not owned by any existing login or group.

(You might think that the 'failed to create state directory' error message would mean that timesyncd was the one actually creating the state directory, but strace says otherwise; the mkdir() happens before the exec() does, while the new process that will become timesyncd is still in systemd's code. timesyncd's code does try to create the directory, but presumably the internal systemd functions it's using are fine if the directory is already there with the right ownership and so on.)

I am rather unhappy about this situation, and I am even unhappier that there is effectively nothing that we can do about any aspect of it except to stop using timesyncd (which is now something that I will be arguing for, especially since this server drifted more than half a second out of synchronization before I found this issue entirely by coincidence). Reporting a bug to either systemd or to Ubuntu is hopeless (systemd will tell me to reproduce on the latest version, Ubuntu will ignore it as always). This is simply what happens when the systemd developers produce a design and an implementation that doesn't explain how it actually works and doesn't contain any real support for field diagnosis. Once again we get to return to the era of 'reboot the server, maybe that will fix it'. Given systemd's general current attitude, I don't expect this to change any time soon. Adding documentation of systemd's internals and diagnosis probes would be admitting that the internals can have bugs, problems, and issues, and that's just not supposed to happen.

PS: The extra stupid thing about the whole situation is that the only thing /var/lib/systemd/timesync is used for is to hold a zero-length file whose timestamp is used to track the last time the clock was synchronized, and non-root users can't even see this file on Ubuntu 18.04.

Read the whole story
brennen
12 days ago
reply
Boulder, CO
Share this story
Delete

Firefox removes RSS support

1 Share

gHacks recently reported that Mozilla plans to remove support for RSS & Atom related features. Specifically Live Bookmarks and their feed reader.

The reasons cited are the lack of usage. This doesn’t completely surprise me. Both of the features don’t fit that well with modern workflows. There’s not a lot of people using bookmarks actively except through auto-complete, and the reader interface never really was as effective as just looking at a website. Not to mention that the ‘feed discovery’ button is these days hidden by default.

I can’t help being sad about this though. For a little while feeds were a very prominent and exciting feature of the web. More than an effective tool to replace mailing lists, they represented an idea that anyone can start a website and become part of the non-obsolete sounding blogosphere. The dreams were pretty big in the 2000’s. Aside from standard protocols for getting updates from websites, many platforms supported standard API’s for authoring blogs, and API’s for federated commenting and even API’s for federated identity (OpenID).

At its height, even Microsoft Word got integration with these standard blogging (Metaweblog) APIs for easy authoring.

Today it feels like a lot of that dream has died, and we’ve moved back to censored corporate-controlled content-silos such as Facebook and Twitter. Each with their proprietary API’s, incompatable with anything besides themselves and no interest to open up their networks to federation with other providers. These large vendors are worried about losing control of where content lives and where your firends are, because once, they lose the network effect and the only thing that’s left is a steaming pile of garbage where nobody really wants to hang out anyway.

So I’m sad to see this feature being removed from Firefox. It wasn’t a really a fleshed out or well maintained feature, and it can be recovered with add-ons but I’m sad for what it represents.

Mozilla’s mission is:

Our mission is to ensure the Internet is a global public resource, open and accessible to all. An Internet that truly puts people first, where individuals can shape their own experience and are empowered, safe and independent.

I don’t necessarily want Mozilla to save Live Bookmarks from Firefox, but I sure do want them to be a catalyst for taking control back from corporate controls back to the individual.

Mozilla is in a unique position to give this type of technology and edge. Removing RSS/Atom support while not providing a better replacement goes against the mission that Mozilla set out to do.

Read the whole story
brennen
16 days ago
reply
Boulder, CO
Share this story
Delete

insensibly

1 Share

Careful writers of narrative, whether that narrative is fictional or historical or journalistic, will, like composers, work with themes and variations on those themes. For example, consider Edward Gibbon: reading his account of Rome’s decline and fall a few years ago, I noticed his fondness for a particular adverb: insensibly. “It was by such institutions that the nations of the empire insensibly melted away into the Roman name and people.” “We have already seen that the active and successful zeal of the Christians had insensibly diffused them through every province and almost every city of the empire.” “The heart of Theodosius was softened by the tears of beauty; his affections were insensibly engaged by the graces of youth and innocence: the art of Justina managed and directed the impulse of passion; and the celebration of the royal nuptials was the assurance and signal of the civil war.”

Why does Gibbon like this word so much? Is it just a verbal quirk? I think not: rather, it embodies a key theme of the whole history, which is that major transformations in the life of the Roman empire happened slowly, gradually, and without anyone noticing them: people were insensible to the changes, and by the time anyone figured out what had happened, it was too late for a reversal of course. And this insensibility affects political structures, social and religious developments, military cultures, and the hearts of emperors alike; this particular theme has many and wide-ranging variations.

The reader who notices this word, then, notices a vital, not a trivial, point about the story Gibbon tells. 

— Me, in The Pleasures of Reading in an Age of Distraction 

Read the whole story
brennen
24 days ago
reply
Boulder, CO
Share this story
Delete

Stuff that didn't work

1 Share

I want to use this story in a future article about novices with inaccurate mental models.

When I was a young teenager, I had a Commodore 64 computer. It could do bitmapped graphics. You would tell it which pages of memory should be displayed on the screen, and then poke bytes into that region of memory to switch the dots on and off. I had a lot of fun with this.

I did not have a dedicated monitor. Instead I had an old color TV that the computer used as a display. There was a device on the back of the TV that switched it between displaying the computer output and displaying the received TV signal. One day I had a wonderful idea: I would switch the device to TV mode and put on some TV program — I imagined Star Trek specifically. Then instead of poking data into the computer memory to make dots appear on the screen, I would read the memory into a file to get a screenshot of the TV program.

I didn't expect that this would work well; I thought if it worked at all there would be a huge amount of sampling skew, because the TV image would change drastically during the memory copying process. But I hoped the results might be interesting anyway, and at least part of it might be partly recognizable.

Of course, it didn't work at all. The connection from the computer to the TV was entirely one way. The device on the back of the TV was an RF modulator, which transformed the computer's video output into a fictitious radio signal that the TV would interpret. Switched into the TV position, the computer's video output went nowhere. In no case was the TV image accessible to the computer. My program to read the contents of the bitmapped memory read nothing but zeroes.

I think it's useful to remember times like this when I was so utterly confused about what was really happening.

Read the whole story
brennen
24 days ago
reply
Boulder, CO
Share this story
Delete
Next Page of Stories