Nicholas Rinard Keene's Little Bit

I don't have a lot to say, but this is my little bit.

Tuesday, May 13, 2025

When did the Mac dock stop working right?

I installed Mac OS X public beta on my G3 bondi iMac in September 2000. I have used every single version of Mac OS X so I'm not sure when this happened, but at some point the dock stopped working right. I've noticed this for a while but I don't think it was always like this.

Today when I put my mouse at the bottom of the screen the dock pops up with maybe 50% predictability. Half of the time it appears, the other half it doesn't, it just remains hidden. My pointer goes all the way to the bottom, I wiggle it back and forth, no dock. I move it up the screen, put it back down, and another 50/50 encounter ensues -- which means I bounce my mouse on the bottom of the screen and it eventually unhides.

That's preposterous. Why would that be the way?

I have fixed this. Below I will tell you how but first I really want to ponder, why in ever living hell would it be this way? The pointer is literally on top of the dock on the bottom-most pixel row of the screen waving left and right for a few seconds. What "stay hidden until mouse is near" algorithm is failing to recognize this? As a software programmer I can't even figure out how to write code which would decide to unhide the dock but would fail to recognize this case. How badly did you screw up the code to make that fail?

if(mouse.loc.isWithin(dock.bounds)) doc.unhide();

Right? I mean, you couldn't possibly screw up isWithin(), so what part of that code is failing, or what part of the Mac code is different than that?

Solution:

defaults write com.apple.dock autohide-delay -float 0; killall Dock

The intent of that setting is to make the dock go away fast, and it does have that effect, and it also has the effect of making the dock appear quickly. The quickness is great but not the primary benefit. The best thing is that the interaction is now 100% consistent, the dock always shows, no problem, no bouncing the pointer. I can't decipher what would make "wait this long before showing" to cause "stay hidden forever", but here we are.

NOTICE: I specifically claim full copyright over the if statement pseudocode I wrote above. It is an original work by me. Nobody may copy that line of code, especially Apple, but I offer to sell it to Apple for the low low price of one million dollars. Because apparently that line of code expresses a brilliance not found in your user interface engineering team. Call me.

Saturday, May 10, 2025

Who the hell designs VW cars?

Despite its association with Nazis my family ended up with a Volkswagen. The brand has a good engineering reputation which is why I am so downright baffled at how awful the user experience is for me, and the main problem is turning the car on and off.

I grew up in old days when you knew a car was running because the engine was revolving, you could feel the vibration and hear the noise. Furthermore, to make that happen you had to put a key into the dash. Also you knew it was off, when that wasn't happening. This was 100% reliable, there was never any question about the state of the car.

I totally understand why cars would automatically turn off the engine when coming to a stop. That's a cool feature, no complaints. But doing that introduces a problem which is huge and simultaneously easy to fix and yet inexplicably the engineers did not even attempt to solve:

How the hell do I know when the car is on?

  • "You know it's on because it's in drive". Nope. You can turn off the engine while it is in drive.
  • "You know it's on because of the dashboard indicator." LOL no that would be great, there is no such thing.
  • "You know it's on because the radio still plays." Nope. The radio plays when it is off.
Here's the one that should be the answer:
  • "You know it's on because you haven't turned it off!" This. This right here. I want THIS, this is the correct solution, and I am totally boggled that this wasn't the solution engineers went with. The car absolutely does not stay on until I turn it off, that would be great, that would allow me to operate the vehicle with confidence.

    But no, I can't operate the car with confidence because it inexplicably turns itself off when things happen that have nothing to do with the engine running -- notably, specifically, opening the door.

Let me talk straight to VW engineers here. Listen. Look me in the eye. Opening the door has nothing to do with the engine. Period, full stop, categorically there should be no linkage between the door and the engine. None. Semantically connecting the door to the engine is a boneheaded error, one that you made.

Moreover, keep listening here: if opening the door turns off the car, then it should always turn off the car. If there is anything worse than the door turning the car off it's the fact that opening the door only sometimes turns the car off. Sometimes it does, sometimes it doesn't. Is there a way to know? Yes, if you pay attention to whether the engine is revolving then you will discover that VW only turns off the car when you open the door after the VW also idled the revolutions on its own.

Here is what I do 90% of the time I park the car.
  • Hum dee dum, driving along happy me.
  • Pull into a parking spot.
  • The car decides all on its own to stop revolving the engine.
  • At the moment I become bewildered, the car is behaving on its own, I have lost locus of control. I wonder, is the engine off or not?
  • I start looking for my key, wherever it is, a different spot every time because there is no key hole to put it into.
  • Not sure what to do I reach over and pull the door handle.
  • Then I wonder, hold on, did I turn the car off? I'm pretty sure I didn't turn the car off. In fact I'm 100% positive I didn't turn the car off -> therefore it must still be on I think to myself because I am reasonable and can't learn unreasonable things.
  • Since I'm certain the car is still on, I push the on/off button to turn it off.
  • The car turns on, exactly the opposite of my expectations.
Here is what I do the other 10% of the time I park the car.
  • Hum dee dum, driving along so good
  • Pull into a parking spot
  • The car maybe for its own reasons does or doesn't decide to stop revolving the engine
  • I sit there wondering, hold on, why is this time different than the other times.
  • I'm not sure what to do. Should I press the button or is the car already off?
  • I press the button, the car which previously appeared to be off continues to appear to be off, so the button push was non-operational.
It was better when keys went into slots and got turned. That motion was never a problem that needed to be solved, but changing it has created a whole category of unnecessary problems which, while easily fixable, are left by designers unfixed.

I *hate* my VW because of this. In most ways it is a fine unremarkable car, but all cars are fine and unremarkable, the VW should also be predictable and understandable.
  1. Give me a place to put the key in the dash.
  2. Car stays on until turned off.
  3. Some kind of indicator somewhere that the car is on or off. DUH!
  4. Door connected to nothing more than dome lights, maybe not even that.
  5. I control the car. The car does what I say.
On a ten scale where 0 is the worse ignition interaction I can imagine making it to market, and a 10 is how all cars worked until the turn of the century, the VW is a negative seven. It must be true that paid employees of VW sat down together and decided that opening the door would sometimes turn the car off and other times not, and that totally blows my mind. It must be true that they all sat there and positively decided that the car should have no indication whatsoever of whether it is on or off.

"Hey Hans, should it be possible to know if the car is on or off?"
"Why would you ever want that?"

German engineering.

Friday, April 25, 2025

CSS improvements for Gnome Nautilus

I customized my Gnome UI in some ways that I think are really important.

  • The active window is bordered by several pixels of the highlight color, which makes it more visible and also gives the mouse a few pixels by which to resize the window. I have often been frustrated by single-pixel window borders, whats the point of that?
  • The active window also lifts up with a shadow behind it, making it feel extra engaged.
  • The nautilus window uses subtly shaded stripes when listing files, so that the eye has an easy time scanning over from the filename to the metadata.
  • The nautilus window list items lift up with a box shadow and a text shadow when rolled over, and all of the effects apply to selected items too.
  • Similar effects work in the sidebar.



.nautilus-window .view row:nth-child(odd) {

   background-color: rgba(255, 0, 0, 0.05);

   border-right-style: solid;

   border-right-width: 3px;

   border-right-color: rgba(0, 0, 0, 0.05);

   border-bottom-style: solid;

   border-bottom-width: 3px;

   border-bottom-color: rgba(0, 0, 0, 0.05);

margin-top: -3px;

}


.nautilus-window .view row:nth-child(even) {

   background-color: rgba(0, 0, 0, 0.10);

   border-right-style: solid;

   border-right-width: 3px;

   border-right-color: rgba(0, 0, 0, 0.00);

   border-bottom-style: solid;

   border-bottom-width: 3px;

   border-bottom-color: rgba(0, 0, 0, 0.00);

margin-top: -3px;

}


.nautilus-window .view row:nth-child(odd):hover {

   background-color: rgba(0, 0, 0, 0.05);

   border-right-style: solid;

   border-right-width: 3px;

   border-right-color: rgba(0, 0, 0, 0.20);

   border-bottom-style: solid;

   border-bottom-width: 3px;

   border-bottom-color: rgba(0, 0, 0, 0.20);

}


.nautilus-window .view row:nth-child(even):hover {

   background-color: rgba(0, 0, 0, 0.10);

   border-right-style: solid;

   border-right-width: 3px;

   border-right-color: rgba(0, 0, 0, 0.25);

   border-bottom-style: solid;

   border-bottom-width: 3px;

   border-bottom-color: rgba(0, 0, 0, 0.25);

}



.nautilus-window .view row:nth-child(odd):selected {

   background-color: rgba(0, 255, 128, 0.05);

   border-right-style: solid;

   border-right-width: 3px;

   border-right-color: rgba(0, 0, 0, 0.20);

   border-bottom-style: solid;

   border-bottom-width: 3px;

   border-bottom-color: rgba(0, 0, 0, 0.20);

}


.nautilus-window .view row:nth-child(even):selected {

   background-color: rgba(0, 255, 128, 0.10);

   border-right-style: solid;

   border-right-width: 3px;

   border-right-color: rgba(0, 0, 0, 0.20);

   border-bottom-style: solid;

   border-bottom-width: 3px;

   border-bottom-color: rgba(0, 0, 0, 0.20);

}





list {

   background-color: rgba(0, 255, 128, 0.90);

   border-top-style: solid;

   border-top-width: 3px;

   border-top-color: rgba(0, 0, 0, .10);

}

overlay {

   border-top-style: dashed;

   border-top-width: 1px;

   border-top-color: rgba(0, 0, 0, .10);

}


list row {

   background-color: rgba(0, 0, 0, 0.10);

   border-right-style: solid;

   border-right-width: 3px;

   border-right-color: rgba(0, 0, 0, 0.00);

   border-bottom-style: solid;

   border-bottom-width: 3px;

   border-bottom-color: rgba(0, 0, 0, 0.00);

}


list row:hover {

   background-color: rgba(0, 0, 0, 0.10);

   border-right-style: solid;

   border-right-width: 3px;

   border-right-color: rgba(0, 0, 0, 0.20);

   border-bottom-style: solid;

   border-bottom-width: 3px;

   border-bottom-color: rgba(0, 0, 0, 0.20);

}

list row:selected {

   background-color: rgba(0, 255, 128, 0.12);

   border-right-style: solid;

   border-right-width: 3px;

   border-right-color: rgba(0, 0, 0, 0.20);

   border-bottom-style: solid;

   border-bottom-width: 3px;

   border-bottom-color: rgba(0, 0, 0, 0.20);

}


@import 'colors.css';

Friday, January 26, 2024

Why is search so terrible?

My career doesn't overlap very much with the people who code search engines, but I'm bewildered at how they work. Today I'm looking for flight fare alerts. I know for sure there are a whole bunch of good sites for that but search engines are completely incapable of finding and listing those sites.

Consider my search results here. The first link is the one I want: Kayak fare alerts. Perfect. This is the link which will expire before you see this blog post, but when I click it, the page I go to is not Kayak fare alerts as promised, it's just... Kayak or whatever. The result says the page title is "Kayak Fare Alerts" but the actual page isn't that at all.

Listen, how the hell does that happen. Really. How is a search engine showing straight up false results? Don't these sites have robots that check links? I'm pretty sure they do, which means the search engine must be wrong about the page because it was fooled. It must be that the process of a page entering the search engine index allows the owner of the page to lie to the engine, claiming a page is one thing when really it is something else.

And why would it be written like that? Why not have your robot actually visit real links and see what they actually contain? What is the counter-argument to providing customers with accurate search results -- why isn't that incentivized by the market? Why not display the same page title in your search results that you see when you visit the page? Isn't that the obvious way for it to work? Why accept lies and manipulation from pagemakers?

The image is from Yahoo but Google is the same and Bing is the same. All three show Kayak Fare Alerts but clicking it takes you to a page which is not Fare Alerts. So all three have the same basic bug, all three accept lies, all three pass lies on to its users. The result is the internet just doesn't have search anymore, and hasn't for a decade or so. For almost twenty years from 1998 to maybe 2015 we could search for things, it was fast and easy. You can't search the internet anymore; as far as I know, there are no services which turn the text you search for into matching search results.

The Cheapflights link is the same: promises alerts, the page is not for alerts. I didn't try the others, why would I, I assume all the results are lies. I don't like being lied to.

If anyone knows of a search engine which returns only results containing all search terms where all results represent the pages as they exist, let me know.



Thursday, July 20, 2023

Waiting for my replacement

I heard there will be "no more programmers in five years" given the advent of AI, and I don't understand that. What will be the job title of the person who uses AI to create software programs? Sounds like what they probably said when compilers were invented: "well, now it's so easy anyone can do it" yeah good luck with that.

Thursday, March 16, 2023

Typical interaction I've had with ChatGPT

 ChatGPT is amazing but its answers leave a lot to be desired. I can tell it is automatic pattern recognition because the data fed into it would heavily skew to the longstanding standard Elasticsearch REST API because that has been deeply documented for many years, whereas the patterns would be weakly recognized for the newer Elasticsearch Java API which has less documentation behind it.

I go round and round with ChatGPT pointing out its errors but it doesn't really learn from them. It doesn't recognize the chat itself as a strong basis for learning. Look here, I just told it that a method doesn't exist, and it apologizes, says it doesn't exist, then gives an example using that method.



Thursday, January 26, 2023

GMail Search Now Completely Disregards Terms

I'm looking for an old work email. I entered three search terms, each an English language word, and GMail returned results all of which contain none of the search terms. None. The results are 100% disconnected from anything I searched for. I can't even figure out  how the results are related to my terms at all. They're just random, that's it, Google's search products now just return baseless random results.

I've already given up Google search, I now mostly use one of its rivals. I've clung to GMail for a long time and one of the main reasons was the long-lasting archive and searchability. Now, GMail is absolutely unsearchable, so I'm not sure if there's even a reason to keep using it.

Zero of my terms are in this email: automatic, checkpoint, period

Update: I found one of the three search terms in the attachment to the email. Maybe that could make sense, except I didn't search for one term, I searched for three and put them all in quotes. The other terms are not in the email or attachment. Also, using Advanced Search I made sure "Has attachments" was un-selected, to exclude these undesirable results, yet it returned results having attachments. That is an abysmal, useless, incorrect, embarrassingly bad search feature.