This is a part of the homework feature of my blog, which is an ongoing conversation with my mate S.F.

Hey mate. Thanks for having me again!

The Man Who Sold The World is my strawberry shortcake. I think this was funnier when we were drunk.

The Mole is the SI unit of substance. One mole contains exactly 6.02214076×1023 parts (atoms, molecules, ions, etc).

Apparently the Ancient Greeks considered themselves facing the past and going into the future backward, as discussed here. It’s actually a cool idea.

Speaking of the Ancient Greeks, there was one bloke Heraclitus who said:

No man ever steps in the same river twice, for it’s not the same river and he’s not the same man.

Not why should I, but how can I.

We listened to Weird Fishes/Arpeggi off Radiohead’s album In Rainbows.

In networking MIMO is multiple-input and multiple-output, wherein multiple signals are used at the same time.

Supposedly safe for humans. Supposedly. Are you brimming with confidence?

An opto-isolator is an electronic component that relays a signal using light and a light sensor. The idea is to make it impossible for high voltage to cross into a low voltage part of a circuit.

The Dave Grohl song I was talking about was The Pretender from the Foo Fighters back in 2007. There’s more info here.

As I mentioned I’ve stopped squishing bugs. I’m hoping to set a good example for future AI. :P If there’s a fly walking around on my computer monitor I just let it be. I did used to squish indiscriminately.

The computers I’m dreaming about are ‘contract‘ ($42,596) and ‘vision‘ ($20,486). Now I just need a cool sixty grand.

The recording settings I use in OBS Studio are these:

John's OBS Studio settings

The other options for Recording Quality are:

  • Indistinguishable Quality, Large File Size
  • Lossless Quality, Tremendously Large File Size

You can read more about Matroska over on Wikipedia.

The word “cromulent” was a made-up word which was used on The Simpsons to mean “acceptable” or “good”. Since then it has entered the English lexicon with the same meaning. ChatGPT has a good explanation.

You mentioned Bombs Over Baghdad.

There is a concept of “information hazard“, the idea is that just by hearing it you put yourself in danger. The classic example is Roko’s basilisk, so read at your peril. :)


This is a part of the homework feature of my blog, which is an ongoing conversation with my mate S.F.

Hey mate. Sorry for the long delay in getting this one to you, I’ve been busy!

The book I mentioned was Overprescribing Madness: What’s driving Australia’s mental health epidemic by Dr Martin Whitely. I haven’t read the whole thing yet but I think it asks important questions.

Begging the question (also known as “assuming the conclusion”) is a logical fallacy that occurs when an argument’s premises assume the truth of the conclusion. Unfortunately this is widely misunderstood and usually when people say something “begs the question” what they really mean is that something “raises the question”, which is different altogether.

We discussed Philip K. Dick, a prolific science fiction author. At least I think we did. My notes actually say “Philip L. Dick”, but my search engine has never heard of him.

When they filmed the Landspeeder in the first Star Wars movie they put Vaseline on the camera lens. Apparently the Vaseline smear was nicknamed “the force field” during editing.

Existential dread (also known as existential crisis) is some negative emotional reactions many people who think too hard about the nature of life and reality often experience when they first come to realize they are living a brief life in an absurd world. It’s a real phenomenon. Actually happens to people.

I have a note here that some people pronounce UTS as “uterus”. Uncultured swine! :)

I’m listening, how can I help?

We discussed neuro-linguistic programming (NLP), which is a fun idea, but probably bunk. I dunno. I do believe that what we say to ourselves (our inner dialog) and others does affect our reality though.

GAF = Gay As Fuck. (Let that start affecting your reality.)

I have a note here that “that’s where modernity fails, and postmodernity triumphs”, but what that was in respect to is now lost to time (unless you remember).

How many dead friends? Easily seven good friends lost to suicide.

The Northern Lights are amazing and beautiful. I suspect I will never see them live.

New website: Take Two

Hey Craig. I’ve made some changes (hopefully improvements!) to the website:

Only the home page is working at the moment. I will get the other pages working soon, hopefully today.

Please do let me know (in no uncertain terms!) what you think of the new design. I’ve gone “mobile first”, so it should look respectable on your smart phone.

Passing myself off as respectable

There’s been a little bit of spring cleaning around here today!

I’m trying to get my house in order so I can pass myself off as respectable when I start promoting my new show In The Lab With Jay Jay in earnest.

To that end I have reviewed the look and feel of my wiki. It no longer has that black, green, and orange monospaced font vibe going on, but now uses the relatively unoffensive default theme.

It’s not using the latest Vector theme, but rather the legacy one. This was deliberate because I have a lot of big tables in my wiki (such as on my computers and shopping pages) and the legacy theme plays nicer with those.

I’ve also been tweaking the website for my show, including an updated about page.

The blog, the wiki, and the show also now all use my new favicon which is my take on the Hacker Emblem:

John's new icon, based on the Hacker Emblem

Context object versus global variables

I’m reading A Philosophy of Software Design by John Ousterhout and he says:

The context object unifies the handling of all system-global information and eliminates the need for pass-through variables. If a new variable needs to be added, it can be added to the context object; no existing code is affected except for the constructor and destructor for the context. The context makes it easy to identify and manage the global state of the system, since it is all stored in one place. The context is also convenient for testing: test code can change the global configuration of the application by modifying fields in the context. It would be much more difficult to implement such changes if the system used pass-through variables.

Contexts are far from an ideal solution. The variables stored in a context have most of the disadvantages of global variables; for example, it may not be obvious why a particular variable is present, or where it is used. Without discipline, a context can turn into a huge grab-bag of data that creates nonobvious dependencies throughout the system. Contexts may also create thread-safety issues; the best way to avoid problems is for variables in a context to be immutable. Unfortunately, I haven’t found a better solution than contexts.

Okay, so I’m just gonna step way out of line over here and suggest something heretical… but shouldn’t you just use global variables? You only introduced the context object so you could tweak it in unit tests, and you could just change your tests so that each one ran in a new process. Just sayin’.

…I suppose for the sake of completeness I should add a little more from Ousterhout which he said prior to the above:

Another approach is to store the information in a global variable, as in Figure 7.2(c). This avoids the need to pass the information from method to method, but global variables almost always create other problems. For example, global variables make it impossible to create two independent instances of the same system in the same process, since accesses to the global variables will conflict. It may seem unlikely that you would need multiple instances in production, but they are often useful in testing.

…so he is bending over backward to support multiple tests in one process, but he could just run each test in its own process and his problem evaporates.

Oh cringe

Man. So. Today, this happened. I was watching a new video from Adrian Black and his EEVBlog multimeter failed:

It's disappointing that it's already failed

I have been saving my pennies and planning to buy an EEVBlog 121GW Multimeter because a lot of the makers around the interwebs have one as a nod to Dave Jones over on the EEVBlog, but that’s just so embarrassing that it’s failing. Of all the equipment you have you need to trust your test equipment the most and this is… well, just sad I guess.

Logic Analyzer with 1GHz Sampling Rate

Today I was pleased to discover this: DreamSourceLab DSLogic U3Pro32 USB-Based Logic Analyzer with 1GHz Sampling Rate, 2Gbits Memory, USB 3.0 Interface, 32 Channels.

There are some notes from the manufacturer over here: DSLogic Series USB-based Logic Analyzer.

It’s a logic analyzer which can operate at 1GHz that’s within my price range. I’m not rushing off to buy this thing, but it is certainly on my list.

The only other thing I have seen that compares to this logic analyzer is this RIGOL DS70304/DS70504– Digital Oscilloscope 3GHz/5GHz 4 Channel 20GSa/s 2Gpts 1000000 wfms/s which is roughly two orders of magnitude more expensive.