From everything I've read about aphantasia, I'm certain it described me -- I have absolutely no ability to consciously "visualize" things in my head (I was also surprised to learn that some/most people sometimes experience a smell sensation if they recall smells, or "hear" music when they think about music or have a song stuck in their head, etc.)
Really the only thing in my head is my internal monologue. If I'm thinking about something I've seen, it's my internal monologue "saying," with words, physical attributes I remember about it. If a song is stuck in my head, it's my internal monologue (in my own voice) signing the lyrics or my own voice humming the tune in my head. No sensation of it being the original artist or the actual instruments, it's 100% my own voice in my own head.
I have a friend who says she does not have any inner monologue at all, and thinks entirely visually. I can't imagine! We're on the pretty extreme opposite ends of the spectrum of how we think, apparently.
I still remember (semantically) that my parents laughed at me, when they told me to count sheep to fall asleep and I told them all I can see is darkness and white dots when I close my eyes. They probably thought I was joking.
> What is the point of setting up your own email server if all of your sent messages go to spam for the majority of gmail/o365 users?
I set up a new mailserver a few years ago and have had no delivery problems whatsoever. All messages get through to gmail and outlook/o365 inboxes I've sent to. Didn't even have to register the IP with O365, it's just worked flawlessly from day one. That was from an IP address/netblock not associated with cloud or VPS providers, so initial reputation may have been higher.
A few months ago I set up a mail server on a VM in Digital Ocean, and have had no delivery problems to gmail/Google Apps recipients.
More recently, for new IPs sending mail into O365, they appear to be blocked by default but the rejection message gives you a URL to go to where you can register your IP(s). After doing that, we haven't seen any problems.
If you end up getting an IP that has been associated with previous spam or abuse, I assume your experience will be different. But in my experience, my handful of servers have not had delivery problems. This is all, of course, with proper reverse DNS records that match what the server advertises in its HELO/EHLO, SPF and DKIM all set up, etc.
Yeah there are shadow blocks on all these major email services. I have just slowly asking my circles to stop using them.
And I'm NOT just talking about gmail, Rackspace and ATT as well. (Proton and Tuta are good default for non tech ppl ATM.)
For more regular email user, it is better that one host or find some reliable person or entity that can host your email under domain that your own.
Now all we need is for Apache Guacamole to add support into its RDP client for whatever old version of RDP NT 4 Terminal Server uses. Access all those old NT 4 applications through my web browser!
There was a program a long time ago, classic Mac OS days, and I don't remember the name of it but I think it was "<something> Consistency". I loved it because tasks in it were "loose," in the sense that something like "water the plants" didn't have to happen on a strict 7-day repeating event. It could be defined as "should be done 6-8 days after the last time I did it." So when you hit "done" on the current "water the plants" task, it automatically fuzzy-scheduled the next "water the plants" event with a target date of 6-8 days after when you clicked done. You could have the range prefer some days but be "acceptable" for a wider range of days.
Someone once told me emacs org-mode might be able to schedule recurring tasks somewhat like this. But any time I see a new calendar/to-do manager application, I hope the designers keep this "fuzzy" repeating event idea in mind!
Hercules is _not_ used by IBM's own developers. Being found with Hercules on your computer at IBM gets you in trouble. I know people who work on mainframe-related stuff inside IBM and they steer well clear of Hercules. And I've heard that IBM's computer monitoring stuff (antivirus, asset protection, etc.) looks for Hercules and flags it.
But IBM _does_ have their own mainframe emulator, zPDT (z Personal Development Tool), sold to their customers for dev and testing (under the name zD&T -- z Development and Test), and to ISVs under their ISV program. That's what IBM's own developers would be using if they're doing stuff under emulation instead of LPARs on real hardware.
(And IBM's emulator is significantly faster than Hercules, FWIW, but overall less feature-full and lacks all of the support Hercules has for older architectures, more device types, etc.)
There was some of a legal fight between IBM and Turbo Hercules SSA, a company that tried to force IBM to license z/OS to their users. IBM has been holding a grudge ever since (probably at the advice of their legal).
> This naively (or maliciously perhaps) maintains that the "purpose" of the certificate is to identify an entity. [...] identity is not the primary purpose certificates serve in the real world.
Identity is the only purpose that certificates serve. SSL/TLS wouldn't have needed certificates at all if the goal was purely encryption: key exchange algorithms work just fine without either side needing keys (e.g. the key related to the certificate) ahead of time.
But encryption without authentication is a Very Bad Idea, so SSL was wisely implemented from the start to require authentication of the server, hence why it was designed around using X.509 certificates. The certificates are only there to provide server authentication.
> Smalltalk and another esoteric programming environment I used for a while called Frontier had an idea of a persistent data store environment. Basically, you could set global.x = 1, shut your program down, and start it up again, and it would still be there.
Frontier! I played with that way back when on the Mac. Fun times.
But as for programming language with integrated database... MUMPS! Basically a whole language and environment (and, in the beginning, operating system) built around a built-in global database. Any variable name prefixed with ^ is global and persistent, with a sparse multi-dimensional array structure to be able to organize and access the variables (e.g. ^PEOPLE(45,"firstname") could be "Matthew" for the first name of person ID 45). Lives on today in a commercial implementation from Intersystems, and a couple Free Software implementations (Reference Standard M, GT.M, and the GT.M fork YottaDB). The seamless global storage is really nice, but the language itself is truly awful.
TADS, an OOP language + VM for interactive fiction, has this "value database" model. Once loaded into memory, the compiled image can be updated with values stored in a separate save file. The compiled image itself could store updated values as well.
In fact, it does this during a "preinit" stage that runs immediately after compilation. Once all preinit code finishes executing, the compiled image is overwritten with the updated state. The language includes a "transient" keyword to permit creating objects that should not be stored.
This same mechanism permits in-memory snapshots, which are used for the game's UNDO feature. No need to rewind or memento-ize operations, just return to a previous state.
It's not a general-purpose mechanism. After all, the language is for building games with multiple player-chosen save files, and to permit restarting the game from a known Turn 0 state.
The MUMPS database is wild. When I was working in MUMPS, it was so easy and fun to whip up an internal tool to share with my coworkers. You don't have to give any special thought at all to persistence, so you're able to stay in the flow of thinking about your business logic.
But as you said, the language itself is almost unbearable to use.
Image persistence was one of the cool ideas of Smalltalk. And in practice, one of the biggest drawbacks. Cruft and old values accumulated steadily, with very little way to find and eliminate them. Transient execution has some cons. But on the pro side, every run starts from a "clean slate."
Save image... for short-term convenience; build clean every week from archived text files.
----
1984 "Smalltalk-80 The Interactive Programming Environment" page 500
"At the outset of a project involving two or more programmers: Do assign a member of the team to be the version manager. … The responsibilities of the version manager consist of collecting and cataloging code files submitted by all members of the team, periodically building a new system image incorporating all submitted code files, and releasing the image for use by the team. The version manager stores the current release and all code files for that release in a central place, allowing team members read access, and disallowing write access for anyone except the version manager."
I believe it's just a git repo behind the scenes. Not sure if the UI exposes those things as I never used that in multi-developer scenarios!
Give it a go and see.
This may fall in the "you think you do, but you don't category", but I've always wanted a Smalltalk (or similar, not that picky) with a persistent virtual memory.
That is, the VM is mapped to a backing file, changes persisted automatically, no "saving", limited by drive space (which, nowadays, is a lot). But nowadays we also have vast memory space to act as a page cache and working memory.
My contrived fantasy use case was having a simple array name "mail", which an array containing all of my email messages (in email object, of course). Naturally as you get more mail, the array gets longer. Also, as you delete mail, then the array shifts. It's no different, roughly, than the classic mbox format, save it's not just text, its objects.
You can see if you delete a email, from a large (several GBs), there would be a lot of churn. That implies maybe it's not a great idea to use that data structure, but that's not the point. You CAN use that data structure if you like (just like you can use mbox if you like).
Were it to be indexed, that would be done with parallel data structures (trees or hashes or whatever).
But this is all done automagically. Just tweaks to pages in working memory backed by the disk using the virtual memory manager. Lots and lot of potential swapping. C'est la vie, no different from anything else. This what happens when you map 4TB into a 16GB work space.
The problem with such a system, is how fragile is potentially is. Corrupt something and it happily persists that corruption, wrecking the system. You can't reboot to fix it.
Smalltalk suffers from that today. Corrupt the image (oops, did I delete the Object become: method again?), and its gone for good. This is mitigated by having backup images, and the changelist to try to bring you back to the brink but no further.
I'm guessing a way to do that in this system is to use a copy on write facility. Essentially, snapshot the persistent store on each boot (or whatever), and present a list of previous snapshot at start up.
Given the structure of a ST VM you'd like to think this is not that dreadful to work up. I'd like to think a paper napkin implementation PoC would be possible, just to see what it's like. One of those things were the performance isn't really that great, but the modern systems are so fast, we don't really notice it in human terms.
> oops, did I delete the Object become: method again?), and its gone for good.
And then you admit actually it's not gone for good because if you created the method that will be recorded in the changes.log file and if it was a provided method that will still be in the provided sources file.
Have you looked at Pharo? Their git integration makes it relatively easy to export and backup parts of your main image, and to pull the things back into a fresher one once you mess up.
Really the only thing in my head is my internal monologue. If I'm thinking about something I've seen, it's my internal monologue "saying," with words, physical attributes I remember about it. If a song is stuck in my head, it's my internal monologue (in my own voice) signing the lyrics or my own voice humming the tune in my head. No sensation of it being the original artist or the actual instruments, it's 100% my own voice in my own head.
I have a friend who says she does not have any inner monologue at all, and thinks entirely visually. I can't imagine! We're on the pretty extreme opposite ends of the spectrum of how we think, apparently.