QZ qz thoughts
a blog from Eli the Bearded
Tag search results for blather Page 3 of 5

Iconic Identity


Discourse is software for Internet forums (or fora if you prefer). I joined the instance for discussing Discourse itself, meta.discourse.org very shortly after it first opened up. Up until then, I had never seen a forum I really wanted to participate in. The software just sucked.

(I still feel that way, and am frustrated when I feel forced to use say phpbb. That is the forum for say, Andor's Trail, which I mentioned a couple of weeks ago. Phpbb is particularly annoying in that there is apparently a default block on using the search function unless you become a member. Not just advanced search mind you, any search. It feels stingy. And the UI that encourages long signatures on every post means that an external search will have more chaff to hunt through to find the wheat.)

So anyway, I'm a fan of Discourse as forum software, and have followed Meta for Discourse in various degrees of focused or unfocused for years. I'm back into a bit more focusing on it now because of a project I'm working on. If you have paid any attention to it, which you might not have, you know that it is basically the baby of Jeff "Coding Horror" Atwood.

He explains his choice of nym here: On the Meaning of "Coding Horror", a blog post from a bit over a decade ago. He uses the icon from that book as his user icon anywhere that he uses that username.

About two weeks ago someone at $WORK stole that hair-up-in-the-air face for his Slack icon. The new use of the icon has been jarring, to say the least. I see the face and I think of Jeff Atwood and then why is he here, this isn't Discourse and then see the name doesn't match. It's almost surprising how much that face is Jeff "Coding Horror" Atwood to me. It's not just a random icon, it's his icon.

I suppose that's what comes of using the same picture so consistently. I tried that for a while, with a photo of a toy car positioned on top of a nickel coin (for scale), but eventually decided to stop and use different icons in different contexts.

For one thing, I took that photo on an ancient camera that produced 640x480 photos and no longer have the toy to rephotograph it. That's starting to bump into smaller than recomended file sizes for personal icons on some sites now. 500x500 for example.

For another, there are contexts in which an icon that looks like me, even if it isn't a photo of me, are much more useful. For example the $WORK Slack. I use a photo of a painting of someone who looks vaguely like me, stocky with a long red beard. It's as accurate as some of the sketches I've seen people use.

And lastly, I've come to the conclusion that by using different user names and iconography, I can further my goal of making it more difficult for data miners to match my accounts across the Internet. (Not that I expect it to work perfectly, but I don't want to make it easy either.)

Roguelike


A few weeks ago I read an article at Ars Technica on the history of roguelike games. It certainly brought back memories.

Sometime, probably in 1993 or 1994, I found and got very into playing Moria, one of the major early roguelikes. I've played that game on a variety of computers and computing devices over the years. It was the impetus for learning how to write keyboard marcros for me in the mid-1990s. I delved into the code in the late 1990s and early 2000s. My personal version (with a very lame webpage) has a targeting patch, for more accurate spell / thrown object attacks, which I didn't write but found and applied, plus changes to the map generation that I did author. There might be other changes in there that I don't remember.

The Magic Missile strikes the Giant White Mouse.  -more-
                                                             ############ #
Elf                ##########                                           # #
Mage               #        #                                           # #
Apprentice         # ###### #                             ############### ###
             ####### #    # ###############################.........rrr##   ###
STR :      6         #    #                      '       .@..........rr#### ##
INT :  18/59 #########    ##########       :     ##########.........rrr#  # ##
WIS :     13                    #### #   #########        ########.#####  # ##
DEX :     14                #####    #                                    #
CON :      9                #     ####                                    ###
CHR :     17                # #%##%                                         %
                       %#%%%%.%%####%#%                                    %%
LEV :      2           %..............%%%#%%%%%                           %%
EXP :     21           #..............'   ' ' % %                         # +
MANA:      5           %..............#%#%%#%   #                         % #%%
CHP :     14           ....!..........#       # ##################+#####%## #
                       #..............#       #                    '        %
AC  :      9           ################       ########################%###%##
GOLD:      1

                                                                 50 feet

Yikes! That's a lot of mice for a level two character to face. Those guys breed fast.

{"Giant White Mouse"        ,0x0020000AL,0x00000000L,0x2072,    1,  20,
   8,   4, 11, 'r', {1,3}   , {25,0,0,0}                ,    1}

The Giant White Mouse in code form. 0x0020000A: 0x00200000 "explosive" breeder, 0x00000008 20% random movement, 0x00000002 normal move and attack; 0x00000000: knows no spells; 0x2072: 0x2000 can be seen with infra vision, 0x0070 hurt by fire, frost, and poison, 0x0002 hurt by slay animal. It is worth at most 1 xp; tends to sleep a lot; but can notice the player from 8 squares away; has an armor class of 4; moves at speed 11, out of a range of 9 to 13; is shown with letter r; starts out with 1d3 health; has only one attack, #25 in that table (which is {1,2,1,2}: a normal attack, described as "bites you", that does for 1d2 damage); and is typically found on dungeon level 1.

I also played it extensively on an early Palm Pilot. No keyboard on that, you had to use a stylus to scribble special shorthand in to enter letters. A novel input system at the time, but it certainly changed mcb to cast the second spell from the third spell book into more of an adventure. But it allowed me to play the game on the go. My daughter was born in the early 2000s and my wife was attending graduate school at the time. I frequently would have an afternoon hour or two in a car with a napping baby waiting for my wife to finish a class. Moria on the go was just the thing.

A decade or so later I got a PocketCHIP hackable computer. The "CHIP" part of it was designed as a Raspberry Pi alternative better suited for embedding in portable hardware. The goal was (a) under ten bucks, (b) built-in storage, (c) built-in bluetooth and wifi. This way you could add $20ish in other parts and have a product you could reasonably expect to retail at $90 to $100. Raspberry Pis at the time were $25, with no built-in storage, blue tooth, or wifi but did have built-in HDMI and ethernet, better for non-portable uses like living behind your TV. Anyway, the "Pocket" part of the PocketCHIP is an add-on board that includes a battery, touchscreen, and keyboard, and was at least partially aimed at being a portable hackable game system. It has a terrible keyboard and a small display, but it does score high on hackable. (The company went out of business, but you can still find new-old-stock on ebay.) Discussion about the system on the official forums went to roguelikes, and I tried Moria. It didn't work because Moria is strongly tied to an 80x24 screen, but then I remembered the Palm version got around that. I tracked down the Palm version source code and started to patch Moria for PocketCHIP sized screens. I never worked all the bugs out before someone else found a way to get 80x24 with an alternative terminal program. That was the last time I delved into Moria source.

There doesn't seem to be a Moria port for Android, although it is playable in Termux. The virtual keyboard play method is even less fun / forgiving than the "Graffiti" shorthand of PalmOS, so that's not a lot of fun. The comments on Ars Technica article pointed to a well-liked roguelike game developed specifically for Android, Andor's Trail which, while still an incomplete game, is rather fun to play.

Gornaud mines battle
You are affected by Weak Poison (2 rounds)
Scaled venomfang hits you for 0 hp!
Your attack misses
    {
        "id":"scaled_venomfang",
        "name":"Scaled venomfang",
        "iconID":"monsters_snakes:3",
        "maxHP":35,
        "maxAP":10,
        "moveCost":5,
        "monsterClass":"reptile",
        "attackDamage":{
            "min":2,
            "max":4
        },
        "spawnGroup":"gornaud_2",
        "droplistID":"cave_serpent",
        "attackCost":3,
        "attackChance":150,
        "blockChance":90,
        "damageResistance":2,
        "hitEffect":{
            "conditionsTarget":[
                {
                    "condition":"poison_weak",
                    "magnitude":1,
                    "duration":2,
                    "chance":"50"
                }
            ]
        }
    }

It's open source and I've perused some of the source. JSON data structures for items and monsters are so much different (notably verbose, thus faster to read) from the C struct tables of Moria. I'm still not sure how the quests actually work, although I have seen the data structure for how quest messages and NPC dialog for quests is stored.

It makes me want to write a new game again. I've long thought about forking Moria into a different game with a more modern setting. I have a rough idea of the code modernizations I'd like to apply.

  • Remove the excess of #ifdef for compiling on various non-Unix systems and similar #define messiness.
  • Track monsters individually allowing them to have actual inventory and preventing monster overflow (the "Compacting monsters" message).
  • Make level generation predicable for a given game, so that you always have the same places. Right now only level 0 is predicatable.
  • Greatly curtail mining, because not-a-mine anymore.
  • Greatly expand the use of "traps" to move between maps. Moria currently uses staircases up and down to move between levels, and traps to implement entering stores.
  • Allow stores to use more screen space if available. Increase store inventory.
  • Enable function pointer callbacks on items and monsters for rare special effects. Enable function pointer callbacks on traps for map movement.

Easter Eggs of 2020


About five years ago someone went around my neighborhood leaving plastic Easter eggs to be found. Inside each of those was a trinket, a small piece of candy, and slip of paper with an Instagram hashtag.

This year someone went around my neighborhood leaving plastic Easter eggs to be found. Inside each of these are one or more slips of paper with fortunes. I found five and opened two.

Lavender egg with one fortune
  1. Religion: the original pyramid scheme
Gold egg with five fortunes

There were two eggs side by side here. I opened the gold one, and didn't touch the blue. (I closed the gold one back up and left it, minus a few of the meaner fortunes.)

  1. Avert thy gaze!
  2. FREEDOM ISN'T FREE.
  3. Don't forget to die
  4. Some people are only alive because
  5. just believing something can make it happen

I also found two fortunes, with no egg, left on the sidewalk. I presume someone kept the egg and ditched the slips. If I had to guess, I'd say this is the work of the same person who goes around the neighborhood putting up Inforwars propaganda. I saw him once, at night while walking dogs, pasting up a poster about flouride claiming the Nazis used it for mind control, with an infowars.com URL. Mostly I just see the handywork, not the worker.

Over the last year most of that handywork has apparently been in two forms. One is anti-vaccine messages in chalk on the sidewalk. I've seen a few get "corrected". VACCINES CAUSE immunity to disease

The other form has been messages inserted into / taped onto empty newspaper boxes. For example, this one from last July Fourth makes me think of the above "freedom isn't free" fortune:

FREEDOM! poster with security camera picture

Is Goldman Sachs really a peer of the Pentagon and the TSA?

White Elephant Sale


Every year I go to the Oakland (California) Museum White Elephant Sale. It's a one weekend per year giant thrift store occupying an entire warehouse. You can find a wide range of stuff there. I generally hit up only a few sections: toys and games, household, electrical, bric-a-brac, hardware, and books. My wife generally looks at clothes, linens (which section includes sewing supplies), bric-a-brac, and household.

This year, right off the bat, I found one of the more better scores of my many visits. In electrical was a large (bigger than a breadbox) wooden box marked "$10" and "Best Offer" and "TRANSFORMER REPAARE KIT / CIRCA 1930 / 10-30 / Rd / Ray". I'm guessing it was a transformer repair kit belonging to Ray, but now it appears to be a very nice box with a bunch of old electrical parts.

box closed

The box closed, just outside the warehouse.

box top

The box top open, showing the only (semi) intact part of the repair kit. The gauge is branded "REL" in a maple leaf and has markings like a multimeter. Top down to the maple leaf: Ohms infinity, 600 ... 0 (looks log scale); DC 0 to 250, 0 to 50, 0 to 10; AC 0 to 250, 0 to 50, 0 to 10; and lastly "2.5V AC ONLY" 0 to 2.5. Some of the buttons work like "radio" buttons, push one down and another pops up. The wiring on the back of this board appears to be missing, as is whatever was supposed to be in the center hole. Presumably probes pluged in the holes to either side of the gauge.

box top drawer

The box front panel removed, and top drawer open. Lots of parts. First compartment has an eraser, a sander for a Dremel-type tool, a spare knob, some resisters, 1/4" plug, and other stuff. Second compartment has a thing that looks like a giant square nut, but is unthreaded; giant resisters; a green choke; another spare knob; and miscellaneous. Third compartment has some switches, an envelope of small screws, giant resisters, another spare knob, a name tag (upside down), a tiny grinding tool in a brass sleeve, various loose screws and stuff. Fourth compartment has some small mirrors wrapped in paper and a bunch of 703A CRYSTAL UNIT things. Probably the crystals are radio related.

box middle drawer

The box front panel removed, and middle drawer open. Lots more parts. I identified a terminal strip, some boxy capacitors (two brown things), a test lamp, a few small black florescent bulbs, a motor that looks a couple of decades newer than other things, giant resisters, variable resisters, and assorted other small things. Oh, and two green painted pencils marked "Made in Australia".

box bottom drawer

The box front panel removed, and bottom drawer open. A few more parts. There are a pair of big alligator clips, some larger capacitors, a Western Electric gauge marked "MILLIAMPS D.C." scaled 0 to 1.0, several small transformers, a few complicated rotary switches, some variable resisters, florescent starter, and some random other stuff.

So, I love the box. A few of the parts (eg switches) I'm sure I could use. I don't know if the rest of it is worth anything to anybody.