12:17 AM
@derobert I think I'll try out Quod Libet.
(I found it years ago but never tried it out.)

7 hours later…
6:55 AM
In some of my rather sparse free time...haha.

7 hours later…
1:44 PM
Celebration of Unix 50 years
@Wildcard I am reading about a process calculus (channels, processes and events). Do they sound familiar to your Go experience? I am trying to figure out the meanings of the two actions "signal" and "query" that a process can take on a channel
-----------------------
I saw some news about Syracuse University. That reminded me of hearing similar things about upper state New York.
Syracuse is already one of the most liberal places there.

2 hours later…
4:14 PM
@Tim Go has channels for communication. But "signal" and "query" don't have special specific meaning in Go. Channels can be created for any type of value, in Go.

4:42 PM
@Wildcard Hah, I still use Clementine on my workstation (just for playback, tagging I do with Musicbrainz)

4:58 PM
Installed Quod Libet just to try it... and this doesn't look promising. For example, it has "People" on the left. And it has two entries for "NDR-Chor (vocals)" with different tracks in each.
$metaflac --show-tag='PERFORMER' *.flac | xxd 00000000: 5045 5246 4f52 4d45 523d 4e44 522d 4368 PERFORMER=NDR-Ch 00000010: 6f72 2028 766f 6361 6c73 290a or (vocals).$ metaflac --show-tag='PERFORMER' *.flac | xxd
00000000: 5045 5246 4f52 4d45 523d 4e44 522d 4368  PERFORMER=NDR-Ch
00000010: 6f72 2028 766f 6361 6c73 290a            or (vocals).
... that's from one file in each group, so the tag is actually identical.
Ugh, it's scroll bars have confused middle-click for left click.
People are alphabetical—mostly. Just random ones out of place.
Scroll wheel ignored....

5:21 PM
Does anyone know of a reason to do: while read -r line || [[ -n "$line" ]]; do (line is not being set anywhere else in the script) "It turns out that ... are even more of a disaster than I had at first realized." is a fun phrase @Jesse_b trying to gobble up all of stdin? (brb, rebooting for kernel upgrade) @derobert It's run within a script and the while read loop is reading a text file so I don't think it could get anything from stdin passed 6:08 PM @Jesse_b This handles the case where the last line of the input is not terminated by a newline. read would fail, but the data would still be read into $line. Without the || bit, you would miss the data from that incomplete last line.

@Kusalananda ah, nice thanks

The code also possibly lacks IFS= before read.
@Jesse_b Welcome you are.
The question doesn't even mention passwords...

> How can I make sure a string contains at least one uppercase letter, one lowercase letter, one number and one punctuation character?
Seems like it's testing password complexity requirements

It doesn't use the words "password" or "pass phrase" anywhere.

lots of ass u and me's?

6:21 PM
parse: error on line 1: can't parse string, does not conform to grammar

"When you assume you make an ass out of you and me"

@Kusalananda I can see how -- it's password-adjacent, requiring certain classes of characters in a string; something that isn't common elesewhere
if it continues, though, I wouldn't hesitate to zotz the comments as being distracting (not constructive)

zotz? some mod lingo?

@Jesse_b meaning #7 in en.wikipedia.org/wiki/Zotz -- meant it as a synonym for delete

6:29 PM
ant eater

@FaheemMitha that makes me sad. I like Python, but that just sucks.

@Wildcard Do you think he's right?
Apparently the problems I was having were at least partly Unix related. Which is embarrassing.
I was wondering why this wasn't working in Lua.

@FaheemMitha I haven't worked with Python extensively enough to have to deal with all the edge cases, but yeah, what he says makes complete sense and I agree with his conclusion about how it's a worrying trend.

os.execute([[ echo foo &> foo.log ]])
The answer is pretty obvious in hindsight.
@Wildcard I haven't run into those issues at all. I guess I don't use Python enough.
Or Python 3, anyway.

@FaheemMitha Raw strings are bizarre in their handling of backslashes.

6:35 PM
I wonder how Mercurial deals with it.
Presumably the problems he describes are fixable, but I didn't really try to understand the issues.

@FaheemMitha as I see it, it's just another example of the first few lines of this answer of mine. Except that instead of talking about delimiting filenames, we're just talking about reading them in the first place.

I believe the traditional thing to do after something like that is to send general hatred in the direction of anyone involved in systemd... but it turns out after investigating, that block device that was missing was a RAID array. Which for some reason initramfs didn't assemble. Second try worked. Ugh.

Does anyone have any idea about
0

Consider the following LuaTeX file. ################################# foo.tex ################################# documentclass[12pt]{article} \usepackage{luacode} \usepackage{filecontents} \begin{filecontents*}{foo.lua} assert(os.execute([[ latexmk -pdflua -shell-escape x.tex ]]) == 0) -- ass...

@derobert Well, if you're going to let facts get in the way of your general hatred and flame wars, you're going to get fired from any position as an internet troll.

6:40 PM
I know. Even worse is that journald's logging made it easier to figure out what had actually broken. journalctl -b «N» -o cat makes it really easy to use gvim -d to see what was different between two boots.

@Wildcard That's a well-written answer. The beginning is a model summary.

@FaheemMitha thanks! Just out of curiosity, which part are you referring to as "the beginning"?

That was actually the second boot to fail, the first one was because I forgot to install the kernel headers so didn't have an nVidia module (unfortunately the open drivers don't work as well on this machine, is tempting to switch to an AMD graphics card)

@Wildcard Well, Anthony can think. It's not something humans are particularly good at. We're good at panicking and getting angry. That really plays to our strengths.

@FaheemMitha one thing I notice is that you don't state an explicit question. It might be obvious to me if I were more expert in the field, but I've found it's helpful to make a question so explicit that even a novice or totally uninformed person can at least tell what you are asking.
It might be "Is this a bug?" or "How can I work around this?" or "What is the root cause of this behavior?" or "Should I stop trying to use Lua?" or something else.

6:44 PM
"Should I use Mercurial to compile this instead?"
just teasing

@FaheemMitha people are smart. :P
@JeffSchaller :)

Seems to me the question is in "I would expect an assert failure to be passed to LuaTeX" (but it's not)

@JeffSchaller then the answer is, "Thank you for telling me; I'm glad you have discovered the inaccuracy of your expectations."
:D

@Wildcard case closed

@Wildcard The first two sentences you highlighted.
@JeffSchaller Well, it is in some cases. I gave an example.
More generally, everything up to the "Let's be more specific".

6:48 PM
If I was to guess -- not even knowing what luatex is, it seems to me like latexmk  is not setting a non-zero return code when it hits that failure, and os.execute is checking the return code

@Wildcard Well, all of those, I suppose. "what's going on here", roughly speaking.

@derobert So, I'm curious. Do you actually dislike systemd? (When you said "even worse" it made me wonder.)

I'm not usually more explicit, at least on TeX SE. They want their MWE, but are otherwise not particularly fussy.

@FaheemMitha That's a good question. I recommend editing it in at the bottom, just to make it clear that you're wanting to understand what's happening.

Additionally, does the presence of ./foo.aux make a difference?

6:50 PM
But I don't frequent tex.se so maybe it doesn't matter.

@JeffSchaller I gave the corresponding Lua and LuaTeX versions.

@Wildcard No, I actually sort of like it. I mean, it sucks in the same sense that all software sucks, but it sucks a lot less than all the alternatives

@derobert yep, and the documentation is very good.

The Lua assert fails. But LuaTeX ignores the failure. But it doesn't do that with a different assert failure, also coming from os.execute.

@FaheemMitha man.cx/latexmk talks about a -Werror flag that sets a return code; worth a shot?

6:51 PM
It seem to be that covers the bases.
@JeffSchaller Unless I'm completely misunderstanding the issue, that's not relavant, because I'm already getting an assert failure at the Lua level. And os.execute is returning a return code. And the -Werror flag won't change anything at the LuaTeX level, which is presumably where the problem is.

@derobert ha, I was about to mention my feature request for systemd that got implemented in less than a week, and then I noticed you're the one who answered me on the subject. :)

Incidentally, the assert check is complete rubbish, because os.execute never returns 0 anyway. But that's not really relevant for the purposes of that question.
If you are wondering why I was using it, I was suggested it (apparently) by one of the LaTeX devs. I used it without checking further.

@FaheemMitha then I'm the one that's misunderstanding :)

It's possibly I misunderstood what he was saying. I haven't looked into it.

@FaheemMitha I was wondering about that. Are you sure that's not relevant? What's Lua's type system like?

6:56 PM
Mixed language programming is often a pain.

@Wildcard I was surprised this morning by something similar. I reported a bug in ffmpeg last night. This morning... it was fixed. trac.ffmpeg.org/ticket/8389

@Wildcard It might be relevant. But my main point is that an assert shouldn't get lost, even if the programmer is an idiot, and the assert failure isn't indicative of an underlying problem.

@FaheemMitha I recall a polyglot challenge, might have been on codegolf, where some program was written that was a legal program in like 9 different languages.

@Wildcard The assert checks a boolean. Lua can return multiple values. Assert checks the first one. And os.execute returns 3 numbers, based on experiment. The documentation suggests it returns 2. But in any case, the first is indeed a boolean. Or possibly null, Lua's "null" value.

Anyway, I bet setting rootdelay (deprecated, yeah...) will fix the random mdadm assemble failure (odd its needed, since this is SATA); and if not, setting 'nofail' in fstab should at least let systemd ignore the error and boot anyway. That array just has /boot on it, which of course isn't actually needed to boot post-initramfs :-/

6:59 PM
@Wildcard I meant language A calling language B. If it's more than 2, then things get exponentially worse.
So that's best avoided.

@FaheemMitha What's really fun is getting the backslashes right.
Incidentally, I love the solution that Postgres has for nested quoting issues.

Hmm, 14 views and not even a comment. Usually the high rep users are pretty fast on the draw. Sometimes they like to stop by and tell me my question doesn't make sense, or is unclear.
Well, I expect they will get back to me. A watched pot, and all that. BTW, nobody responded to my little (implicit) quiz. Here it is again:
29 mins ago, by Faheem Mitha
os.execute([[ echo foo &> foo.log ]])
What's wrong with this code? Hint: it's an issue everyone here is familiar with.

@FaheemMitha isn't &> a bash-specific feature?

@Wildcard Yes, it is.

Here's the documentation for Postgres's dollar-quoted string constants: postgresql.org/docs/current/…
@derobert I still haven't gotten around to trying it, but I do like the design philosophy mentioned on Wikipedia.
> The main design philosophy is that the user knows how they want to organize their music best; the software is therefore built to be fully customizable and extensible using regular expressions.

7:20 PM
@FaheemMitha hot topic lately!

@derobert interesting. What are the other tags on those files?

Let me go find that file again...
MUSICBRAINZ_DISCID=LhmA8vG.85dJH6G2h_iMJB6jp6o-
REPLAYGAIN_REFERENCE_LOUDNESS=89.0 dB
REPLAYGAIN_TRACK_GAIN=+1.64 dB
REPLAYGAIN_TRACK_PEAK=0.87887573
REPLAYGAIN_ALBUM_GAIN=+1.42 dB
REPLAYGAIN_ALBUM_PEAK=0.87887573
BARCODE=028947781837
TITLE=Marienlieder, op. 22: 1. Der englische Gruß
RELEASECOUNTRY=XW
TOTALDISCS=46
LABEL=Deutsche Grammophon
TOTALTRACKS=18
COMPOSERSORT=Brahms, Johannes
MUSICBRAINZ_ALBUMARTISTID=c70d12a2-24fe-4f83-a6e6-57d84f8efb51
COMPOSER=Johannes Brahms
DATE=2009-07-14

7:52 PM
@derobert and the second file (that sorts separately)?

1 hour later…
9:16 PM
Revised that TeX question somewhat extensively. The error is not thrown if I use the -shell-escape flag.

9:27 PM
@Wildcard I figured out my question. The answer is that os.execute returns different values to Tex depending on whether the -shell-escape flag is passed, or not.
I didn't expect this, but once I'd spelled it out in the question, I realised it was the only possibility, assuming there wasn't some weird bug.

9:40 PM
BTW, recent LWN article about LuaTeX in case anyone is interested

@Wildcard Not sure, I don't have the file in my bash history to check it again :-/ (Was another track on that release)

10:13 PM
@FaheemMitha 2017 is recent?

@derobert Relatively speaking. Why?
LuaTeX is moving fairly quickly, but not that quickly.

I was thinking they'd somehow published something recently that I missed. I was surprised to see 2017... not what I think of as recent. Recent to me would mean this week, or at least this month. But I guess that's because I read LWN articles usually within a day or so of them coming out.

10:36 PM
@derobert LuaTeX has been in development for a while. I was thinking of using in 2012 (I think) but couldn't get it to work for a rather silly reason.
See the answer to my question that year:
27

Let's assume you want this output: If you use LuaTeX, the most innovative way is to include the luasql bindings in your program. First create a simple database (createdb.txt): CREATE TABLE people( name varchar(50), email varchar(50) ); INSERT INTO "people" VALUES('Jose das Couves','jose@co...

And there is a fixup answer by me from May this year
4

This is a minor rewrite of topskip's answer from 2012. That answer has never worked for me, but in 2019 it's fixable with a couple of minor tweaks. I'm currently using Debian testing/Buster, which will soon be Debian 10. Thsi answer was tested with the TeX Live prerelease corresponding to the Deb...

It's actually a really useful technique, once one gets it to work.