I worked on Windows apps for many years. The problem is that the Win32 interface only really gets you 90% control. The hardest thing I've ever done was when our product manager decided that color theming our app was an essential new feature. That's when you find out that certain Windows features like scroll bars under certain conditions bypass the usual message loop completely, because they know they can get away with it. The part I remember most vividly was recreating the lowly MessageBox from scratch, because none of the internals of the system supplied one were exposed in a way that you could modify them.
My memory from the old days is you can use Win32 hooks to modify the MessageBox. HCBT_CREATEWND gets you the HWND of the MessageBox, and you can subclass it (in the Win32 sense) to insert your own WndProc. Then you're off to the races--it's your dialog now.
But it wasn't just one window, there were lots of controls on that window and the relationship between them wasn't as obvious as you'd assume. Trust me, recreating the whole thing from scratch was easier.
The fun part was making a C++ class that could build up an in-memory dialog template. You had to do it that way because it was dynamically sized based on the message you displayed and the buttons you needed. If you used the default colors, you might be able to tell they were different if you squinted but you wouldn't know which was mine and which was Microsoft's.
I've done this for real, in commercial code that shipped. No trust needed; I have personal experience. For typical minor MessageBox additions, this can be easier than rebuilding the whole dialog yourself. Sometimes, we just wanted to add a "Don't ask again" checkbox which didn't require touching the existing child windows at all. I also used this technique to simply change the labels on the buttons to custom text. I had a MessageBox wrapper that accepted a list of button strings instead of a predefined constant. We've all built various custom message boxes, of course, but not every situation required that level of effort.
These days you can just use a TaskDialog, of course, and it's way more flexible than MessageBox. But it's fun to remember the old techniques.
You can modify this stuff if you go deep enough and are willing to detour the native Win32 API functions. Some things implemented in User32.dll don't make the appropriate API calls back to other User32.dll functions, and you need to detour Win32U.dll instead.
It was more of you had to know where to grab control. It was not always clear.
With some of them it was dead easy and you can do it on window creation.
Others you had to hook it out by playing with the window params (SetWindowLong) and getting the underlying control and then changing it.
Some controls had their own bespoke way where you would send messages to the control then it would take care of it.
Some you would have to iterate over the control list that window controlled and change it.
In some cases it was just such a pain you were better off making your own custom control window that was just a mashup of other controls that you could control.
It was one part experimentation and one part reading the docs (if the control had it). Now if it was a built in windows control you were playing with. You had to take on the risk on windows version update the customization you did would break if you did non documented things.
The biggest problem was when there was an established protocol, but it wasn't always followed. I remember scroll bars being the worst. Usually you could respond to the messages and everything would work the way you want, but there were some edge cases where Windows would update those scroll bars without even telling you it was doing so. And of course it would paint those updates in the default colors.
I honestly don't know if Qt would have made it any easier. But this was a large and old app that relied on Win32 at its core, and nobody was going to accept rewriting it for just one feature. Plus our customers were very time sensitive, and anything that could have slowed it down by a few ms was off the table.
In a couple of people I have known, some physical capabilities remained long after their memory was gone.
There was also this woman who wrote about her husband Alzheimer's. He could still play tennis and golf while not being able to do much more basic tasks like picking an outfit for the day. I don't know if it was therapeutic but she said he gave him a lot of joy.
I know mine sure did! As a kid I was totally uncoordinated, always the last one to be picked for any sports teams. But I definitely noticed the difference when I picked up juggling as a young adult.
It's theoretically related to color blindness, so you'd expect it to be as common. But the problem is even if your eye has the extra primary, your brain may not have developed the ability to "see" it. They had to test quite a few people with the proper genetic background before they finally found one.
That's fair but even colour blindness is mostly undiagnosed in practice - even with the comparatively high prevalence & awareness, actual figures for colour blindness are still grounded in speculative extrapolation.
I think it fundamentally comes down to whether your sense anomaly represents a significant disability. Colour blindness is a disability, but not one that's significant for the vast majority of people who suffer from it - I've worked with multiple colour blind graphic designers & they were good at their job. There's very little impetus to even seek diagnosis - if they weren't working in a colour-focused industry I suspect they may not have ever realised they had a disability at all.
Tetrachromacy then is an even harder case because it's not a disability at all. The impetus to seek "diagnosis" is zero. Also, even though as you mention there's technically multiple ways of detecting the various factors that need to coexist in tetrachromacy (i.e. (1) sensory testing, (2) physical presence of extra primaries, (3) neurological processing pathways), the latter two are either not directly detectable or never directly tested for - even in speculative cases of people having a 4th primary, the number of primaries present is generally hypothesised via some other avenue like testing for anomalous trichromacy. Ultimately we're heavily relying on direct sensory testing which is almost nonexistent in the general population. There's no way to accurately speculate on how prevalent it might be.
It took me about a second to realize the link took you to a list of articles. It took another second to realize the article referenced was second in the list.
I've never understood one vital thing - if PFAS is by nature totally inert and unreactive, how is it harmful? If you drank a glass of the stuff, what would happen?
As I understand it they discovered a long chain molecule which was highly inert and wouldn’t stick to anything. Which was a useful feature but you know makes it hard to attach to anything. So they created a similar smaller chain molecule which had a reactive tip but was still super stable. Unfortunately it’s also a bit amino acid like. So we ended up with a molecule which is very durable and accumulates in living things.
Then of course we produced it at industrial scale for decades flooding the entire planet with this stuff.
For example PTFE is a large molecule with strong bonds, and as a consequence isn't very reactive and likely safe.
On the other hand, perfluoroalkyls such as PFOA have the same shape as fatty acids, so they bind to the same places such as in the liver, which makes them grave health hazards.
Many precursors used for making PFAS are also toxic, so for example, even if PTFE is safe, manufacturing it isn't.
The bioaccumulate part I understand, for the body to eliminate something it has to bind to it somehow. Tough to do if the chemical won't react with anything.
I'm not sure what "biologically inert" means specifically. Are you saying there are biological chemicals that actually do interact with this stuff? A single example would help me understand.
I don't know the details here for PFAS (and they likely would vary enormously for the different molecules that fall into this broad category). But in general a molecule doesn't have to react to be accumulated. Inert usually means it doesn't react with other substances in a normal environment. It doesn't mean you can't make it react if you add enough energy. For example nitrogen gas is considered inert. Bacteria (or chemical plants) can make it react and produce different nitrogen-containing molecules from it.
Inert doesn't really say anything about toxicity, it's not directly related to that. The opposite is though, pretty much any strongly reactive chemical is dangerous or toxic in some way since it will react with stuff humans are made from.
With PFAS the inert example is also usually Teflon. That is also a solid polymer, so not many individual molecules. There isn't much you body could do to process a macroscopic chunk of Teflon, so you'd almost certainly just excrete it.
Edit: Nevermind, Wikipedia makes it pretty clear that even the non-broken-down PFAS are totally unsafe, evil things which we knew were dangerous since the 70s and did nothing about until recently
As far as I understand the nomenclature, PFAS covers both the inert final products like Teflon and reactive intermediates, degradation products and reactants. It's a very broad category of chemicals.
My understanding is that the bigger danger is e.g. a Teflon-producing plant than the final Teflon products (assuming the Teflon isn't damaged and heated too much). Because the plant has to handle the reactive ingredients, and those can leak into the environment.
Fluoroalkyl chemicals are only "inert and unreactive" in a relatively narrow sense of "wouldn't catch fire", "don't react with strong acids and bases", and similar.
They are plenty reactive in a sense of interacting with enzymes and other cellular machinery.
Not really accurate. These chemicals are quite unreactive. Precursors from manufacturing waste can be very reactive, but most of the problematic contamination regards the forever chemicals themselves, not precursors. This paper is probably the best scientific review of what is going on in the human body. https://www.sciencedirect.com/science/article/abs/pii/S03043...
Maybe sci-hub has a copy of the full paper. Not sure.
As briefly as possible, and therefore glossing over many many details, the toxic effects are mainly due to cell membrane perturbation, cell membrane transport disruption, and binding to hydrophobic protein cavities (thus disrupting the usual function of these cavities).
Making PFAS and having to dispose of byproducts is the nasty part as far as I understand. There is also some kind of reaction that can happen where it will off gas nasty enough stuff to kill your pet bird if you overheat your pan.
PFAS used to be considered totally inert but later research showed correlations between bad health effects and higher concentrations of PFOA and PFOS.
3M and DuPont knew since the 1970s and suppressed the information, not dissimilar to how tobacco and oil industries created disinformation about externalities.
One Google feature that I think is killing the internet is actually useful in this case - the AI summary. If your vital information is on a platform that I will never join, I can't see it directly. But Google can, and many times I can find what I need in the summary. Of course it's not perfect, like when I'm trying to find holiday hours.
reply