New Stuff!

My VS Code setup

Just a quick post to share my current set of extensions!



Most recently used tab stays on the far left



Use the command pallete, type the short name of a license, get a license header.

Rainbow Tags


Make HTML tags have colors that match their matching closing tag



Insert a UNIX timestamp



A ton of random utils like base64 and timestamp conversion and uuidv4



Highlight the current indent depth

2022/01/03 05:12 · admin

Secret Society Passwords

(Inspired by the challenge to enter Papa Midnite's Club!)

This code was originally thought to be a simple password, but later became considered a test of wisdom and understanding as much as a test of membership.

It has the property that a spy who overhears the code works cannot repeat the challenge himself, and according to legend, tests your ability to see how a situation will play out in the future, making it beloved be occult and psychic societies, and your ability to clearly describe an event, making it popular in politics.

Our secret password we agree on beforehand is a selection of one each from these pairs of opposites, plus one number between one and five.


This password together is called the secret place, and the number is always described as a day, for herein we describe the conditions in a location. For example, a secret might be The secret place is hot, dry, dead, angry and falling on the third day.

Our challenge which a guard speaks to an guest is one each from two lists of words, described as a quantity.

Challenge Nouns

The first list is thought to represent the main character in the start of the story, and from it combined with the secret place, our guest must determine the main character of the next part of the story.


If dead, the response word will involve flies
If alive, the response will involve water


If hot, the response word will involve a lizard
If cold, the response word will involve snow


If calm, the response word will involve a ring
If angry, the response word will involve a sword


If wet, the response will involve a fruit
If dry, the response will involve fire


If rising, the response involve a song
If falling, the response involve a scream

Challenge Places:

Our second word determines the place where the story is set. It is the place for which the Secret Place describes the conditions, but described only in generic terms.


If wet, the response description will be dancing
If dry, the response description will be crawling


If calm, the response will be watching
If angry, the response will be grieving


If rising, the response will be strong
If falling, the response will be weak


if hot, the result will be one
If cold, many


If alive, the sailors are working
If dead, resting.

Challenge Numbers

Finally, we come to the number, which is very simple. The response is the continuation of a story that will always take place one day after the number in the challenge, UNLESS the challenge is the same as the day of the secret place. In that case, the story takes place On the last day.


Secret Place: Hot, wet, dead, calm, and rising on the fourth day

Guard: One frog on an island

Guest: Flies are dancing on the second day

We obtain this because frog+dead=flies, island+wet=dancing, and the number one becomes the second day.
In modern times, both the Secret Place and challenge are given publicly, as the intent is to test the guests wisdom more than to test knowledge of a code, and even a stranger may be welcomed if he speaks well.

Changing the Story

In some cases, the answer won't really make sense, as rings and snow do not scream, etc. In these cases the guest has full freedom to speak any sentence he wishes, so long as it involves all three elements. In some cases the words may not even be literally used, but only alluded to, or described with synonyms.

Local tradition will often dictate certain things, however, and you may raise suspicion if you do not understand this.

For example, in some circles, responses to two people are special. If the response involves a ring, the response may be spoken as A wedding, and if a sword, a duel. If the story takes place in the city, responses to One man may be met with something like The weak man steals the ring on the last day.

There are also various traditions in seaside towns regarding the ocean. A response to one man in the ocean in a dead and angry place may be met with The captain sleeps with a sword on the fourth day.

Large numbers of men in the ocean may be referred to as a mutiny, but this is never used except in angry places, with the exception of the Thieve's Guild of one city, who have great regard for secrecy, and only use the mutiny in calm times, as a nod to the idea of Striking when they least expect it.

These and many other traditions contribute to the use of this code even in the modern age.

In some cases, the secret place may even be given in public together with the challenge, and all who understand the system(Or the local variant) even strangers, are welcome.

2021/05/11 20:49 · admin

Programming is NOT like woodworking

Software is unique in that it is easy. Complicated math algorithms, web scale, or client demands, or any number of other things make it hard, but coding itself is not difficult.

Woodworking, like drawing, painting, driving a car, sports, musical instruments, and everything else a person might see value in, are not easy, unless you're like, using CAD and CNC tools.

There's no process to follow. At some point it comes down to you alone, and your skill with your own hands, and there's no methodology that can save you, no copy and paste from GitHub, nothing like that. There's no easy hello world. That's why people get so up in arms about the minimum wage. I have no doubt in my mind that every fry cook has a harder job than me.

Software is absolutely hands off. If you're doing things right you might never touch anything that matters directly. You'll write the code, trying as many times as needed, and never run it till it's tested.

Software is full of cheats and hacks and shortcuts, and most of the time, the more you cheat, by reusing libraries, patterns, etc, the better the product. The more you put the load on the plan and architecture rather than your own skill, the better. The less beautiful, less amazing, and less clever the code, the more it's going to work reliably. And the more you encapsulate and hide things so people only have to see the world through a toilet paper tube, one part at a time, the better.

Building things with wood has cheats and hacks too, in the design stage. And they're great. You can make stuff easy to build and repairable if you're willing to use some tricks and hide screw holes and skip the real joinery. You can use rustic elements(which I love), that are very aesthetically forgiving even if you don't cut the board straight.

But that's design. The actual hands on part is as far away from coding as it gets. That's the real challenge of life, the actual doing of things, yourself.

And that's what makes coding different from everything else people do. It has almost no element of actually doing it that affects the product, with the exception of math heavy stuff that takes some real talent because math can't be broken down into steps as tiny as basic coding can.

Equating programming to anything else does both a disservice. Why is there a stereotype of coding at work, coding at home, coding in your dreams, and then dying at the computer? Basically eerything else worth doing is hard, unless you were born with exceptional talent.

Many programmers enjoy other pursuits, or want to, and they deserve the truth. There will be no stack overflow to copy from when it's just your hand and the pencil. You practice for a hundred or ten thousand hours as the case may be, and be sure to actually practice, not just do whatever your hobby's equivalent of noodling is.

The fundamentals that in programming seem like useless excercises to build sorting algorithms that already exist, really ARE fundamental everywhere else.

In programming you think you know it all because you can use pip3 install. And it works. The client are happy. Maybe you're more reliable that the smart guys and traditionalists who insist you start with all the CS.

Tech constantly changes, so maybe you do better just by keeping up with new stuff than they do by mastering the science.

But I don't know any woodworkers who use an algorithm to know how fast to cut something.

Trying to compare the two makes software worse, and analog pursuits just plain impossible.

2021/02/26 12:39 · admin

If they have eggs, get a dozen

A programmer's wife sends him to get groceries. Get a gallon of milk she says. And if they have eggs, get a dozen. The programmer returns with 1 dozen gallons of milks.

Some people have complained that this is not funny, or not sufficiently programmer-y because the
syntax doesn't make sense.

But since this joke is pretty much made for overanalyzing, let's take a look at how this could actually happen.

This will make life so much easier!

Being a coder stereotype, he's not an idiot. He can listen with his ears. But in this case, perhaps he didn't.

Perhaps he invented an Alexa-like to-do list app or similar, that allows you to use voice commands
to send texts, but also rephrases the message for clarity. Useless? Maybe, but coders do this kind of toy app all the time.

Sittin' down to code

Presumably the language is some kind of NLP intent processor, not truly a programming language.

The syntax seems to involve locking onto the first object mentioned and treating that as the object to be acted upon.

Presumably someone was trying to write a parser to handle stuff like Get milk, unless we already have some or Get milk, but if they have soy milk get that instead.

And of course, being a programmer who likes tinkering more than actual software, he probably started with a few examples like that, built an oversimplified model of how commands work, and figured out a contrived way to fit most everyday things into that format.

And then of course, being a big fan of simplicity, he decided that it shouldn't be too hard to just teach his family the limitations of the system, so there was no reason to add a proper parse engine or anything more complicated.

And being the smarty pants he is, using an algorithm to parse this stuff instead of just using his ears seemed like a great idea. With a little sunk cost fallacy the system expanded to be almost a part of his identity that would emotionally hurt him to discard.

And so everyone around him has to deal with this hacked together version of Google assistant, that sends people the distilled summary of what you tell it to text them, which can never be truly useful, because that would be bloat, and can't go away, because that would be giving up.

Her side of the story

But why does his wife put up with it? And why does she feel the need to speculate about the possibility that eggs might not be in stock?

Well, because she is also a programmer. Any great piece of software handles all the errors and edge cases it may be exposed to. She's in the habit of thinking general purpose. There's almost certainly eggs at the store, but it's only a few extra words. Next week they leave for a country that is experiencing an egg shortage.

Might as well do everything the same, consistent, bulletproof way, because it takes less effort than designing the perfect custom solution for every task. You're gonna need to learn the enterprise grade version anyway, don't mess with the rest.

Thoughts at the weekly standup

Or, perhaps, she isn't so much a programmer as a software developer. She makes software. He on the other hand, is a programmer through and through. He clearly loves solving problems and learning new things more than actually making practical apps.

Perhaps it's a good thing that they are married, because pure abstract research sometimes leads to great things, but often just spirals off to nonsense without a few reminders.

Seems pretty plausible to me, even if it requires an uncomfortable amount of gendered stereotypes. But there's not much I can do there, since the stereotypes are in the original joke.

2021/02/13 12:20 · admin
start.txt 繚 Last modified: 2021/01/05 17:31 by admin