The ethylenediaminetetraacetic acid is a great idea!
た鼻立ちの日に
How propaganda really works
Generations
This old Gen-X'er is always happy to see he's not alone.
Can Your Boss Legally Kill You And Then Eat You?
The case began after a wealthy lawyer from Australia purchased a yacht named the Mignonette and hired Captain Dudley, an experienced seaman, to deliver it from England. Dudley set out from Southampton in May 1884 with three crew members. They hit a storm off the coast of Africa. The Mignonette was swamped by a massive wave that towered halfway up its masthead and destroyed the ship. The men barely escaped with their lives, and they did so in a lifeboat with almost no food or water.They drifted for over three weeks in that tiny boat, during which, among other misadventures, they had to fight off a shark that rammed them from below. When the captain decided they were in danger of dying of hunger and thirst, he slit the neck of the cabin boy, Richard Parker, an amiable 17-year-old orphan who had been excited to make his first real sea voyage. The captain said he chose Parker because the cabin boy was the weakest of the four, having drunk seawater that made him sick—but the truth was, it was almost always the cabin boys, or racial or national minorities, or others at the bottom of social hierarchies, who were chosen to be eaten. The three surviving men feasted on the boy’s body.
Source: The 1884 Cannibalism-at-Sea Case That Still Has Harvard Talking | Harvard Magazine
Open Reel Ensemble and the Electric Fan Harp
I have seen the future. And that guy is its star.
I'm Gonna Find a Cave
Let's listen to the Banana Splits!
You're welcome.
Scintilla in an MFC app
I'm working on a side project of my own - a Windows desktop application to apply video effects. It's written in Visual Studio (started in VS2022, now VS2026). I wanted to include a text editor to edit the 'script' files that drive the program, and I wanted one that could handle basic syntax coloring. So I looked around and found Scintilla.
Scintilla is a very nice, open source, text editor component. It's been around for a long time and has been used in many well-known applications (it's the editor behind the popular Notepad++ app, for example). But, there are surprisingly few examples of how to make it do all the various things it can do, on the web. There's the Scintilla documentation, but I didn't find it to be very useful when getting started. Once I started seeing how things worked, it did come in handy however.
You can find the source to a few large, open source, applications that use it (ex. Notepad++, SciTX). But those kinds of applications aren't always good references if you're just getting started in something because their usage is probably very complex and have become encrusted with their own patterns and mechanisms. You have to figure out enough of their workings to know which parts are and aren't applicable to what you need and which are just the things that their app needs.
Eventually I was able to get it to do what I wanted, mostly. But it took me a full week of digging on the web, to get it to do what my application needed. And so, I'm going to share what I came up with, in case anyone else finds themselves in my situation.
- Download and build Scintilla (the editor) and Lexilla (the library that contains the lexers to do syntax highlighting for all of the various languages). There are .vcxproj files in the repos that work fine with modern Visual Studio releases. Build both projects and put the DLLs in your project's root folder.
- You'll need to declare a function pointer for the CreateLexer function from Lexilla. So add this in a header file somewhere. I put these at the bottom of my CWinApp-derived class header file.
typedef void* (FAR WINAPI* CreateLexerPtr)(const char* name);
extern CreateLexerPtr gCreateLexer; - Add this global variable to a CPP file. I put it in my CWinApp-derived class CPP file. This is how you will talk to Lexilla.
CreateLexerPtr gCreateLexer; - Load the Scintiall and Lexilla DLLs. I did this in the InitInstance() method of my CWinApp-derived class.
m_hModScintilla = LoadLibrary("Scintilla.dll"); if (m_hModScintilla == NULL) { TRACE("Scintilla load error : %d\n", GetLastError()); AfxMessageBox("The Scintilla DLL could not be loaded.", MB_OK | MB_ICONERROR); } else { m_hModLexilla = LoadLibrary("Lexilla.dll"); if (m_hModLexilla == NULL) { TRACE("Lexilla load error: %d\n", GetLastError()); AfxMessageBox("The Lexilla DLL could not be loaded.", MB_OK | MB_ICONERROR); } else { gCreateLexer = reinterpret_cast(GetProcAddress(m_hModLexilla, "CreateLexer")); if (gCreateLexer == NULL) { TRACE("Lexilla CreateLexer load error: %d\n", GetLastError()); AfxMessageBox("The CreateLexer Lexilla from could not be loaded.", MB_OK | MB_ICONERROR); } } } - FreeLibrary on each, when you're done. I did this in my app's dtor.
Now your application is ready to create a Scintilla window and give it a lexer to do syntax highlighting.
So here is my fairly-simple MFC CDialog-based class that creates a Scintilla editor, sets it up for JSON lexing, sets some styles, does basic auto-indent, deals with the document's 'dirty' state, shows reading and setting of the document text. It can use either Scintilla's SendMessage API or the direct-call API (which end up being essentially identical once you define a couple of helper functions). In my application, it is used as a modeless dialog, and is based on a simple resizable CDialog base class, but neither of those things add any real complexity to the class. So, you should be able to take the Scintilla-related bits from this without much trouble.
I am far from a Scintilla expert, but if you have any questions, feel free to ask.
The Personal Touch
I am working on a programming-related post. So, I'm writing some comments in the code, explaining some things. Copilot, seeing that I'm using a personal tone, gives some suggestions about how I could sign my comment.
Of course, it doesn't know who I am, or what year it is, or anything at all about reality. But it does know how to spit out the stuff it was trained on:





Smooth Criminal
Pete got into one his Mr Hyde moods the other night and bit me on the arm. In the morning, one of the punctures had started to swell. So, I went to the urgent care to get some antibiotics.
Apparently there's a county regulation that any doctor treating an animal bite has to report it to the local animal control department. So, last night I got a call from an animal control officer who took a statement about the incident and asked for Pete's vaccination records, etc.. He also said that Pete has to be quarantined for ten days - but, he can do that at home. Which is no different from any other 10 days, because Pete isn't allowed outside. And, they're going to send an animal control officer around to check to make sure that he's in quarantine (aka: in the house) twice during those ten days.
Our little guy now has a permanent record.

