Reaction Archives

To whom this MySQL UTF-8 news may concern

Strictly speaking not news exactly, given that it dates from early 2018, but it was news to me, and since I haven’t seen it make the rounds I still find it worth disseminating. From the MySQL 8.0.11 release notes:

The utf8mb3 character set will be replaced by utf8mb4 in a future MySQL version. The utf8 character set is currently an alias for utf8mb3, but will at that point become a reference to utf8mb4. To avoid ambiguity about the meaning of utf8, consider specifying utf8mb4 explicitly for character set references instead of utf8.

This a declaration of intent rather than a change that has happened… but still. It’s been a very long September

(To prepare for this you’ll want to note what you need to take into account regarding the way utf8mb4 and indexes interact.)

Modern Perl CGI

The contemporarily unique strengths of CGI as a deployment strategy are that CGI scripts ⓐ can just be dumped in the filesystem to deploy them and ⓑ do not have any of the issues of long-running processes: they tie up no resources when not in use and are extremely reliable because of the execution model, in which global state always starts from a blank slate when serving a request and there is no process that outlives the request and could wedge itself. Anyone who consciously chooses CGI over alternative deployment strategies nowadays probably has a fire-and-forget use case where the script will be seeing too little traffic to be worth any effort to tend to it regularly.

In his article about modern CGI, Grinnz suggested using Mojolicious rather than as a framework for writing CGI scripts. Mojolicious is explicitly intended for users who are willing to keep changing their own application code in order to enjoy a framework whose API design can be changed (hopefully for the better) without sacrificing the framework’s code quality. In the Venn diagram of the CGI-for-deployment and Mojolicious-for-framework audiences, there is no overlap. So I consider Mojolicious an oxymoronic alternative to

A much better alternative to is simply raw Plack. It is lower-level than Mojolicious, so the code will be more verbose, but Plack’s stance on compatibility matches a fire-and-forget use case far better. CGI::Alternatives does not do a great job of selling that option, so let’s just see what it would look like in practice for the given example.

Alan Kay’s critique of the TPF grants program

Alan Kay:

A few principles:

Perl 6

Wow, you people.

Is Perl dead?

Or just deader than Ruby?

(Does this constitute a Ruby-o-meter++? Can it increment in reverse?)

It’s the things we know that just ain’t so


Posting grand pronouncements about what Perl 5 has to become or the new name it absolutely must adopt won’t do anything. That’s irrelevant.

“What people manning the booths at non-Perl conferences say is the perception of Perl among those outside the echo chamber is irrelevant; I know the REAL problems Perl is having: they are the ones we think mu…

Something for Perl event organisers to take into consideration

Jacob Kaplan-Moss:

I’ve decided this is so important to me that I’ll no longer attend or speak at conferences that don’t adopt and publish a code of conduct. I’ll also be using whatever clout I’ve got to encourage conference organizers to adopt and publish anti-harassment policies. […] So why, given the issues [with codes of conduct that] I outlined above, do I take this so seriously?

He makes the point, but does not emphasise it enough in my opinion: the code of conduct is not there to communicate to attendants how or how not to behave (in which capacity it is superfluous with the well-behaved majority and ineffective with perpetrators): it is there to reassure members of minorities that they will be heard and their concerns are understood.

Bead, ivory, off-white

Chromatic makes fun of Alberto. I understand the sarcasm: much of it, I share. (Falling into editorial we seems common in Alberto’s posts.) And yet, Perl From The Outside.

Calling it Perl 6 was sensible at the time of its inception, for all the reasons chromatic outlined there in caricature. But the premise and direction of The Language has evolved dramatically since the time its name was chosen. In premise it’s a similar idea now, and at the same time one with naught in common with the original. And still, the name persists.

As programmers we (yes, us, us all, not editorial we) should know of the importance of naming: any good programmer spends a lot of time in agony over variable names and function names.

What we (the editorial, this time) have done here is refactor the entire codebase rug from underneath the variable, yet insistently kept its now-misleading name the same. Become, became: we left the frame.

On the other hand – of course! –, names create. There are no things until there are words to name them. And also: names identify. You don’t rename your son or daughter because they’ve grown and changed.

And Perl 6 is Larry’s baby.

I get that. And yet: Perl From The Outside. Perl From The Outside.

I don’t know what to say.

Hey Nelson, or, Perceptions

Hey Nelson,

While I’m delivering the news, here’s something for you ignorant American backwoods motherfuckers. Some people’s names have “special characters” in them. Like François Rabelais or Björk Guðmundsdóttir or 艾未未. It’s 2011; the only software that can’t handle Unicode properly is Perl. (As if you needed another reason not to use Perl.)

please quit being an ignorant backwoods motherfucker and stop talking shit about crap you don’t know anything about.

To the Perl folk reading this — the problem we’re dealing with in terms of perception nowadays is confirmation bias. Nelson hates Perl, sees one question on StackOverflow that is making the rounds because Tom answered with one of his obsessively detailed (and therefore huge) missives, generalises wildly from a shallow read of the QA, and then – surprise – finds his opinion further confirmed.

I don’t know that there is a way to get out of this bind. Reasoning is flawed because it evolved as a means to convince others, not to figure out the best decisions to make. This is why we are addled with so many cognitive biases. That hypothesis also explains why people slip entirely unrelated jabs (or memes in general) into some other argument they’re making, as Nelson did there: a bonding ritual for the likeminded.

Finding a community that largely has no prior opinion of Perl (which likely means it has cohered around something other than programming) might be the only way to overcome this. Cf. BioPerl as an example.

Does this sound familiar to anyone?

David N. Welton:

This is actually, in my opinion, an interesting phenomenon in languages: you risk hitting some kind of local maximum when your language is popular enough to have a lot of users who will be angry if things are changed or accidentally broken in the course of big upheavals. So you have to slow down, go carefully, and not rock the boat too much. On the other hand, there is an opportunity cost in that newer languages with less to lose can race ahead of you, adding all kinds of cool and handy new things, or simply fix and remove “broken” features.

Oh brother.

And this bit as well:

The syntax, for your average programmer who doesn’t want to go too far out of their comfort zone, is perhaps a little bit further afield from the C family of languages than they would prefer. Still though, a “human” problem, rather than a technical one. Perhaps, sadly, the message is that you’d better not “scare” people when introducing a new language, by showing people something that [looks] at least a little bit familiar.

About Aristotle

user-pic Waxing philosophical