How to crack open LibreOffice .ODT documents for fun and bug fixing

Posted by on 31 Dec 2020 | Tagged as: robobait, technical support

The .ODT word processor documents produced by LibreOffice and Apache OpenOffice are in fact ZIP archives consisting of XML files, other files, and directories. It is actually straightforward to crack open the archive and get at the files and directories within. This can be helpful for fixing bugs, or just for exploring. I recently had cause to do just that. Here is how to open up .ODT documents, and then turn those files and directories back into a document file.

Continue Reading »

Earth, Moon, and abolishing leap seconds: the curious astronomy and politics of time() (IUC44 session)

Posted by on 30 Nov 2020 | Tagged as: culture, meetings and conferences, time, Unicode

Last month was the pandemic-distanced rendition of the Internationalization and Unicode Conference. This year is the 44th conference, or IUC44.  In addition to a tutorial (blogged about last month), I delivered a presentation: Earth, Moon, and abolishing leap seconds: the curious astronomy and politics of time(). Here are my slides, and a video of me talking through my slides.

Continue Reading »

Email addresses and domain names are NON-latin! Now what? (IUC44 tutorial)

Posted by on 31 Oct 2020 | Tagged as: meetings and conferences, Unicode, Universal Acceptance

Two weeks ago was the pandemic-distanced rendition of the Internationalization and Unicode Conference. This year is the 44th conference, or IUC44.  In addition to a presentation (to be blogged later), I delivered a tutorial: Email addresses and domain names are NON-latin! Now what? Here are my slides, and a video of me talking through my slides.

Continue Reading »

Link from Trac to GitHub using changeset links

Posted by on 30 Sep 2020 | Tagged as: robobait, software engineering, web technology

There is an elegant way to link from the wiki and bug tracker called Trac to GitHub by means of changeset links. Unfortunately, Trac’s documentation on WikiFormatting and on TracLinks does not currently describe this. But one project which I use, MacPorts, uses Trac to track MacPorts bugs and to host wiki documentation. They prefer that contributors use these changeset links rather than URLs when referring to MacPorts on GitHub. So, this is the documentation for these changeset links, in a form which I wish was in the main Trac documentation. It is here to remind me. Maybe it will also help others searching for how to do this.

Continue Reading »

PostScript code converting UTF-8 to UTF-16

Posted by on 31 Aug 2020 | Tagged as: robobait, software engineering, Unicode

This is a little bit of code which was fun and nostalgic to write, even though the motivating project fell through. I wrote PostScript language functions to convert strings with UTF-8 contents, into strings with UTF-16 contents. This was intended to be part of a batch tool to convert PDF documents to PDF/A format, but that did not work out. However, the code works, and here it is.

Continue Reading »

Concise Time Machine logs on macOS 10.13 High Sierra

Posted by on 31 Jul 2020 | Tagged as: mac, robobait

I’m concerned that Time Machine is taking so long to back up my laptop to my file server, that it may be the sign of a problem with my file server. The first step in investigating a problem like this is to get data. I think I have found a way to get useful log data about Time Machine backups, using the log show command or the Consolation3 application. I’d like to share how I do it.

Continue Reading »

Resolving “log archive metadata is missing” and “error number 65”

Posted by on 30 Jun 2020 | Tagged as: robobait

On macOS 10.13 High Sierra, one way to diagnose Time Machine slowdowns and other problems is to use the log shell command. Unfortunately, on my system I sometimes get an error:

% log show --last 2s --style syslog
log: warning: The log archive contains partial or missing metadata
log: cannot use --last when archive metadata is missing

This appears to prevent me from using the --last option to limit output to the most recent time interval. The failed log command returns an exit status of 65, which we can see using echo $? :

% echo $?
65

For the benefit of web searchers, here is what I have found out about how to resolve this error message. Warning: it won’t be a fix, but I do have workaround.

Continue Reading »

Recording “To Shiver the Sky”

Posted by on 31 May 2020 | Tagged as: aviation, culture, music, personal, travel

The conductor beat out a measure. A rich orchestra sound flowed from 80 headphones into 80 heads. With a sound like an earthquake’s rumble overlaid with angelic choirs, 80 voices sang out: “Una Volta che Avrai…“. And I was sitting 10 metres in front of them. Wow.

Continue Reading »

FFmpeg’s fps filter, documented

Posted by on 30 Apr 2020 | Tagged as: FFmpeg, robobait, software engineering, web technology

The FFmpeg media editing software is a valuable tool, but its documentation is only barely adequate. It certainly does not answer all the questions I have, as a user trying to understand why FFmpeg is not doing what I want it to do.

Fortunately, FFmpeg is open source, so when the documentation fails, one can read the source. I wanted to learn about presentation time stamps and time bases. The fps video filter source code, in file libavfilter/vf_fps.c, was an instructive read.

I took what I learned from reading that source, and did a complete rewrite of the fps filter documentation. It is longer than the original fps filter documentation (as archived in April 2020 — you can check if the present documentation is any better). I believe the rewrite is more complete and more accurate. I contributed the rewrite to the FFmpeg project. I submitted it as a patch to the ffmpeg developers list. Discussion continues. I don’t know if this contribution will ultimately get accepted.

So, for the benefit of FFmpeg users who are web-searching for answers, here is my documentation of FFmpeg’s fps video filter.

Continue Reading »

Two musicians, violating social distancing

Posted by on 31 Mar 2020 | Tagged as: community, music

I was annoyed! Today I caught two musicians together. They were violating social distancing. I heard them counting: one was saying “1 2 3, 1 2 3,”…; the other, “1 2 3 4 5, 1 2 3 4 5,”… Actually, their “1”s landed together, so it sounded more like “ONE two twothree fourthree five ONE…”. Anyhow, we all need to be virus police these days, so I confronted them — from a safe distance, of course. “Hey!”, I said, “There’s a pandemic. Don’t be so close together! It’s unsafe.” “No worries”, the musicians replied, “we have two meters between us.”

Next »