The sibling comment explains why we prefer to use the lower bits as a tag (these are guaranteed to be zero if the value is a pointer on a 64-bit system).
Another reason why we wouldn’t want to use the top bit is that, as the parent comment suggested, the tagged pointer representation of a fixnum integer isn’t a pointer at all but is instead twice the number it represents. Generally speaking, we represent integers in twos-complement representation which uses that top bit to determine if the value is positive or negative.
This is essentially how I work on hobby projects these days. My bus commute is about 45 minutes each way and I find this to be just enough time to get work done. I also try not to work on these projects outside of my commuting hours; this gives me time to mull problems over rather than jumping headlong into writing code.
The lack of internet on the bus has not really been a problem since I plan ahead and make sure any dependencies I need are already downloaded.
I use an old (2010 era) Toshiba netbook which is small enough that I'm not causing problems for my seat neighbours. It's also only got a dual-core 1GHz processor which kind of forces me to find performant solutions to problems.
Much like the author I've also been thinking about how I can make my setup more portable. I've been considering purchasing AR glasses and using my Charachorder2 so I don't even need to get the netbook out of my bag. At this stage I can't justify the cost of a pair of AR glasses though.
Some recent projects my commute has given me the time to work on:
Sadly, only the text editor is on public source control at the moment (https://github.com/jpsheehan/ocaml-edit). The game project and operating system are ongoing until I get bored of them and move on to something else. Most of my obsessions over the last few years have been bus projects. My Tetris clone is another example (C, SDL): https://github.com/jpsheehan/tetris
I'm fairly certain the tone of the HTMX post (https://htmx.org/essays/future/) was positive about its future of becoming "stable" (as opposed to "stale").
In the above example, the normal flow to get a Google address user@company.com relies on setting DNS records for company.com, both to prove control of the domain as well as to route email to that domain. There may be an exploit/bypass I'm not seeing, but I legitimately don't see any way a user who has a legitimate user@company.com email address hosted somewhere besides Google workspace could then setup a user@company.com email address with Google.
If there's a way to do this, I would greatly appreciate a link or brief explanation, as our process for employee termination/resignation does involve disabling in the Google admin portal and if we need to be more proactive I definitely want to know.
The issue here is that if company.com does not use Google Workspace and hasn't claimed company.com, then any employee can sign up for a "consumer" Google account using user@company.com.
There are legitimate reasons for this, e.g. imagine an employee at a company that uses Office365 needing to set up an account for Google Adwords.
You can sign up for google with an existing email. So if example.com is all on MS365 that's where the admins control stuff. No google workspace at all, no DNS records or proof of domain to anyone but MS.
So anyone with an example.com email can make a google account using that email as their login. Verify they have the email and that's their login. A common system for users who need to use google ads or analytics.
But when the company disables 365 login the google account remains. And if you use something third party that offers a "Sign in with google" then assumes because you have a google account ending "example.com" you are verified as "example.com" you've got access even if that account is disabled.
If you have the google admin portal this doesn't work as you're controlling it there. But signing up for Microsoft or Apple accounts with that google workspace address might have the same loophole.
Another reason why we wouldn’t want to use the top bit is that, as the parent comment suggested, the tagged pointer representation of a fixnum integer isn’t a pointer at all but is instead twice the number it represents. Generally speaking, we represent integers in twos-complement representation which uses that top bit to determine if the value is positive or negative.