For older posts, see the archive.

Raising Windows in GNOME 3

2021-01-27 18:29:12

Since switching from Windows to Linux as my primary OS, things have mostly been going well, but one thing has been a consistent annoyance: in GNOME 3, new windows opened by applications tend to open in the background, giving a notification that "X is ready". Very annoying.

I found advice (e.g. here) to change a setting using dconf-editor, or from the command line:

gsettings set org.gnome.desktop.wm.preferences focus-new-windows 'strict'

This... didn't seem to work. Some windows would pop up as expected, but others wouldn't. To make emacs windows pop up properly, I tried some code like (progn (raise-frame) (x-focus-frame (selected-frame))), which also only sometimes seemed to work.

In the end, I found a simpler solution: the NoAnnoyance GNOME shell extension by sindex. It doesn't alter the focus-new-windows setting or anything; it hooks the window-demands-attention and window-marked-urgent events, and then calls activateWindow on them.

Simple, and it actually works.

IFComp 2020: Stand Up / Stay Silent

2020-11-22 22:24:30

The revolution begins with you.

Stand Up / Stay Silent is a brief story--about fifteen minutes for all five endings--with an agenda: to promote the idea that taking action, any action, against injustice is preferable to staying silent.

It is positioned outside the game as a part of the Black Lives Matter movement, though within the game it's not clear what is being protested--some kind of unfair treatment of some people, in a far-flung future on the planet Mars. What's clear is only that the security forces are the Enemy.

There's too little story for us to become involved with the characters, and it's too on-point as a metaphor for current events. It is, for example, a little wrong in tone for the protagonist to say:

“But I want to help,” you reply, your voice hoarse. “Is there a fund I can send credits to? Somewhere I could drop off supplies?”

This to your partner, who you have just taken to a fancy restaurant for a birthday celebration. It's distant, and it's the kind of scripted "gosh, but how can I help" that you might see in a PSA. After the opening scene, there is no more life in these characters--they are defined solely in relation to the resistance. They are not real people, merely actors in a piece of propaganda.

As a work of interactive fiction, it's limited. Transitions between scenes are only a single link at the end of a page of text, and occasionally a choice, either to Stand Up or to Stay Silent. It doesn't make good use of the medium.

As a piece of protest art, it expresses a real need, but as IF, it's not sufficient.

IFComp 2020: Last House on the Block

2020-10-22 19:44:03

Mr. Harrison was a quiet old man who lived in the house at the end of the block. No one really knew him, but everyone said he was rich; anyone who lived like as much like a hermit as he did had to be a millionaire. After lunch one day when you overheard your parents talking about how the old man had died with no family and how the city was coming to take the house and everything inside you decided on the spot that they wouldn't take everything...if there was any cash in there it was coming home with you.

In this game, you wander around the departed Mr. Harrison's house, searching for any hidden treasures. For the bulk of the game, you don't find any--no gold and jewels, at any rate. Instead, you find the sort of things you'd expect: old furniture and similar clutter of a home long lived-in.

For some of these items, you are given (brief) descriptions that give you a little insight into the old man's life, but for most items there is no description given. There's something particularly disappointing about reading "You see nothing special about the unusual rock." And there is a profusion of such useless items throughout the game. For example:

You open the knitting chest, revealing eight balls of wool (red wool, green wool, yellow wool, grey wool, black wool, white wool, blue wool and olive wool) and knitting needles.

You open the tackle box, revealing five red-tasseled hooks, ten green-bobbed hooks, three blue-feathered hooks, six fish-shaped hooks, a jelly hook, seven orange-feathered hooks and a fishing line.

I'm reminded somewhat of Hill 160, which similarly included rather too many individual objects:

You open your backpack revealing:

a blanket, a bayonet, a spare pair of socks, a singlet, a bunch of underwear, a mess kit, a shovel, a canteen, a bunch of sweets, a powder jar, a cigarette tin, a cigarette lighter, a boot laces, a bunch of spare buttons, a spool of thread, a needle, some safepins, a bar of soap, a toothbrush, a pair of wirecutters, a gas mask, twelve grenades, twelve ammo clips and twelve shotshells.

Implementation aside, the puzzle design is disappointing. Most of the objects really are useless, and there's only one real puzzle in the game: how to open the trapdoor in the closet. And its solution, unfortunately, involves guessing the correct objects to stack on each other in order to climb high enough to reach it. And to do this while subject to a timer in the form of a dying cell phone battery. Not a pleasant puzzle.

The game has a nice little gimmick: at the beginning, you select a companion who accompanies you throughout the game by picking up an object associated with them. This would be great, except that the characters have very little personality and there's no way to interact with them. They're as underdescribed as the clutter in the house.

The concept of an IF game that uses the generic conventions in a realistic setting is nice. Here we have exploration, puzzle solving, a search for a treasure. This has been done better in other games, but the idea is a good one. And the final payoff at the end is suitable: fitting in with the cold war era environment, you eventually find a bunker in which a 'treasure' is stashed.

With deeper implementation and better puzzle design, the basic outline of Last House on the Block could make a very good game, but the game as it stands feels aimless and unsatisfying.

Play time: 58 minutes.

IFComp 2020: Quintessence

2020-10-09 20:10:27

The Forever Cat stalks through this universe, collapsing it when the Others come close or shiny objects are too far apart. Will you end the Forever Cat's destructive cycle and help this universe's quanta join the multiverse?

You begin the story (again and again...) as a particle in a mass of particles before time begins, and as the story proceeds--I think--you become part of larger objects, including (depending on your choices) a dog or a human, in which case you take on their perspectives. The theme of the story is pulling together or pushing apart, whether that is particles attracted by gravity or humans drawn together as a family--or separated by death.

The concept has some merit, but as a game (or interactive story) it fails. In most cases, you are presented with a little text and then two or three choices, and in many cases only one choice allows the story to proceed, the other sending you back to the start. Once you've been through the beginning and handful of times, the only thing to do is click through the early choices on the sole path that allows the story to continue, in order to get back to the point that--maybe--will allow you to proceed. This is dreadfully dull.

Additionally, for all the writing has a common theme, there's not a coherent plot. An individual scene isn't connected with any other. There's no sense of progress, and you learn nothing interesting as the story proceeds.

I reached an ending (number 2 of 5, I believe), and I did play on a bit more, but I found the repetitiveness boring and the dead-end choices frustrating, so I didn't continue to seek out the other endings.

Play time: 18 minutes. Got one ending after about 10 minutes.

Reasons and Persons, post 2 (sections 7--9)

2020-09-07 15:01:58

I'll just cover three sections in this post, in order to finish up the sequence on the Self-interest theory, S.

In these sections, Parfit argues that S might tell us to believe things that are not true. For example, S might tell us to believe that it is rational to ignore threats, even though that is not in fact true, because it will lead to better results, at least some of the time.

Parfit's final statement about S, in section 9, is that even if S told everyone to believe some other theory, this would not mean that S was not in fact the best theory:

Suppose that S told everyone to cause himself to believe some other theory. S would then be self-effacing. If we all believed S, but could also change our beliefs, S would remove itself from the scene. It would become a theory that no one believed. But to be self-effacing is not to be self-defeating. It is not the aim of a theory to be believed. If we personify theories, and pretend that they have aims, the aim of a theory is not to be believed, but to be true, or to be the best theory. That a theory is self-effacing does not show that it is not the best theory.

That's it for S. The next sections deal with Consequentialism, C.

Reasons and Persons, post 1 (sections 1--6)

2020-07-25 21:19:10

Reading a serious book of philosophy is a substantial commitment, but Parfit's Reasons and Persons has been recommended to me a number of times, so I'm taking the plunge. The book is made up of four parts, containing 20 chapters consisting in total of 154 sections, each section dealing with a particular topic, like "How Consequentialism Is Indirectly Self-defeating" or "The Effects of Population Growth on Existing People". That's approximately all the introduction that Parfit gives the book, so I'll leave it at that, as well.

You can click through to the book for my detailed notes, but I'll summarize here my thoughts on the first six sections.

The book begins by discussing the Self-interest theory, S:

I shall first discuss the Self-interest Theory, or S. This is a theory about rationality. S gives to each person this aim: the outcomes that would be best for himself, and that would make his life go, for him, as well as possible.

This theory, he claims, is indirectly individually self-defeating because a person who always follows it (in Parfit's terms, a person who is never self-denying) may, in many circumstances, actually do worse than if he did otherwise. He gives a couple of interesting examples of such situations, though I don't agree with them fully.

He rescues S by saying that, after all, S does not tell us we must believe S if it is worse for us, so it is not failing in its own terms.

Parfit argues that it could be rational to cause oneself to act irrationally, using an example of an imaginary drug that causes one to behave irrationally, which he employs as a defense against blackmail, more or less. He says that this is a rational irrationality, but I'm not very happy with that term or, frankly, the hair-splitting he's doing.

Parfit claims that it's okay if a theory about rationality tells us that we cannot avoid acting irrationally.

That's it for the first six sections. The next few also deal with S, and then Parfit takes up Consequentialism.

Fiction catalogued

2020-07-20 19:14:26

At last, I have finished (re-) cataloguing the books in the fiction section of my library. For the most part, the data that was already in the catalogue wasn't too far off, though there were lots of books with series info in the title. Most books, though, needed the page numbering cleaned up (e.g. they often had the numbering type set to roman numerals, which breaks ordering by number of pages). Anyway, lots of validation done, and a few mis-shelved books rearranged, and it's done. Now, I just have to shelve the rest of the totally uncatalogued fiction... and the children's books... and the nonfiction... well, it's progress, at least!

IFComp 1995: Uncle Zebulon's Will

2020-05-01 00:40:35

The 1995 ifcomp had two first-place winners: Andrew Plotkin's A Change in the Weather took first place in the Inform division, and the winner of the TADS division was this game, Uncle Zebulon's Will by Magnus Olsson. A more recent version is available, but I played the original comp release.

Uncle Zebulon's Will is a fantasy game: your uncle Zebulon, a wizard, has died, and named you in his will. You may remove one item from his home--which your relatives have already picked clean of anything remotely valuable. Make the best of it!

UZW is a short series of fairly simple puzzles, but it's fun. For the most part, it's clear how to proceed, and just a little thought is required to solve the puzzles, when you come to them. I did find the puzzle involving a tomato to be non-obvious; the only thing hinting at it was a conspicuously useless item.

Coming to this game after years of more modern IF, I nearly forgot to make a save before an (obviously) irrevocable action. Happily, I caught myself in time. It's differences like these that make me interested in playing though old IF, in particular, so that was not a negative experience!

We'd expect more of a game that ranks first in the ifcomp, today, but it's clear why UZW did so well. It's full of character, and the puzzles are entertaining. Sadly, the promised sequel didn't materialize.

IFComp 1995: Toonesia

2020-04-03 22:00:42

Another in my long-overdue series of ifcomp reviews, Toonesia by C. J. T. Spaulding.

This is a parody of Looney Tunes cartoons, featuring (parodies of) Elmer Fudd, Bugs Bunny, Daffy Duck, and the Tasmanian Devil.

Oooh, that rascally rabbit! You were out hunting him when he somehow got the jump on you, blindfolded you, and dumped you into a cell. Well, you'll show him. He'll be hasenpfefer by dinner tonight, or your name isn't Elmo Fuld.

The puzzles proceed linearly, and the solutions work largely according to cartoon logic--if you haven't seen the classics, then, for example, it may not occur to you to draw a door on the wall to escape the first room. If you are familiar with the cartoons, then the solutions will largely be familiar, too.

The implementation isn't too deep, and there are a couple of flaws, for example:

>x cliff
Which cliff do you mean, the canyon, or the canyon?

Additionally, feeding Taz an object doesn't actually remove it from your inventory.

I got stuck for a few minutes when I needed to reach the mesa, but that's not really the game's fault--I just didn't notice obvious solution, and guessed that I was supposed to do something else first.

All in all, it's an amusing game, though not one I'm likely to turn to again in the future.

Total play time: about 40 minutes.

IFComp 1995: Mystery Science Theater 3000 Presents "Detective"

2020-03-27 04:26:56

With the current global crisis, people are eager to find a silver lining--"now there's time to play all those games I've been saving!", or such. I'm fortunate enough that this isn't impacting me much (I already work from home), but in solidarity with everyone else, here's one from my backlog: Mystery Science Theater 3000 Presents "Detective", an entry in IFComp 1995.

If you're familiar with MST3k, you know what to expect. It's a bad IF game, Detective, its text interspersed with jeering commentary by the characters of MST3k.

The jokes don't make the game more playable, but they are entertaining. The sheer incomprehensibility of the original game makes the despairing comments relatable. They're not just funny; they give a sense of camaraderie that is just enough to keep you going to the end.

There was a later release of this game featuring a brief interview with the author of Detective: he made the game when he was 12 years old, and he's fine with the parody. Honestly, I'm glad to know it. This parody was, apparently, written without his knowledge, and Detective is so obviously the work of a child that it seems mean-spirited to make fun of it. This story was entertaining, but I'm glad we didn't see a deluge of these in the ifcomp in the following years.

The IFDB only lists two other stories tagged 'MST3K', but MST3k was popular enough to inspire works in various media. I have an email in my archives dated 1996-03-04, Mystery Fanfic Commentary Theatre 3000 comments on "Natsumi, the Magical Girl, chapter one.", and there were plenty more like it in the succeeding months and years.

Total playtime: about 20 minutes

For older posts, see the archive.