But are pedestrians considerate and make a contract with the driver eye to eye to signal “hey, I see you, i see you see me, thanks for stopping, I will be crossing”.
Or they are looking at their phones standing on the wheelchair ramp or chatting with someone, kinda going in, maybe, maybe not, and when it looks like they’ll be crossing the street parallel to yours and you start going they change their minds and cross diagonally in front of you?
Because I’m all for pedestrian safety and prioritization. But SF has gone so “safe” that it’s back to unsafe. Runners will join an intersection from behind a tree in front of a car that had stopped and was starting to go without even looking up. People join a crossing looking down or away from the flow of traffic, it’s insane to me.
I find that kids cross streets much better than adults here. A kid will stop, look, check if they were seen and then proceed.
Let’s say person A drive their car through a green light (or any right of way) while person B pass at red with their truck and kills person A. Should we blame A to missed they eye contact with B?
This is a false equivalence. Im not talking about blaming a victim. I don’t know who the victim is when someone stopped, looked started driving and out of nowhere a runner with noise cancelling headphones ran in front of them anyway.
I’m talking about you want to be safe? Don’t just run into the street without looking. It’s the best optimization for the state of affairs in the streets. People are not perfect, pillars are very big now, blind spots are bigger, cellphones, whatever you want.
I like to assume there aren’t that many deranged murderers around for it to matter. The state of affairs all my life has been that drivers are as careful as they have to around crosswalks.
> My recollection is that most CP/M programs were configured via patching. At least that’s how I configured them. I remember my WordStar manual coming with details about which bytes to patch to do what. There was also a few dozen bytes of patch space set aside for you to write your own subroutines, in case you needed to add custom support for your printer.
Huh. That is interesting, it was before my time, and I never heard of this :D
That is interesting, it was before my time, and I never heard of this
It was necessary because both RAM and disk space were so severely limited, and because almost every computer came with an assembler.
Many CP/M programs were expected to run in as little as 32K RAM, and 130K of slow-ass floppy disk. Or worse – From a cassette tape. If you had 64K of RAM and a 360K disk, you were something special.
Unlike today, most programs were optimized for the bottom of the market, not the top. You wanted your program to run on as many system as possible so you could sell more copies. You didn't just shrug your shoulders and tell people to upgrade their hardware. The failure was yours, not your customers'.
There simply wasn't room for any kind of external configuration file, or a program to generate that configuration file. Common functions could be accessed via a command-line parameter, but even that logic eats valuable bytes.
Today people complain about the MacBook Neo having just 8,000,000,000 bytes of RAM, saying you can't do anything in such a limited space.
Meanwhile, in 1978, people could write an entire rudimentary IDE in 2,048 bytes.
Yes, it was definitely a thing. The patching code had to be in Z80/8080 machine code. I wrote higher performance keyboard and display routines for my copy of Wordstar using this feature.
Stuff like that is also cool (reminds me a bit of modding some games), patching machine code to improve performance of a compiled app? Very cool! (My dad might have done that, he has an old ZX81)
But I thought specifically patching something to configure it is such a weird concept that I never would have thought of.
The line between "configuration" and "modding" is pretty thin.
One could say that the difference is whether the developers intended the changes you're making to be possible or not, but what about programs with dedicated modding APIs?
At the time (early to mid 1980s) I think we would say "patching". The Wordstar devs certainly did mean you to do this - the memory locations available were fully documented, and I seem to remember they supplied a small patch utility to incorporate your code into the Wordstar executable.
Some time before that it would have been "painting", when you used conductive paint to patch the microcode on your CCROS (Card Capacitor Read-Only Store) machine.
Yes, most Basics had peek and poke commands with which you could read and write specific memory locations. For example - parentheses may or may net be needed, depending on the Basic implementation:
X = PEEK( 123 )
would read the byte at memory location 123 and store its value in X. Then
POKE( 123, 42 )
would change the byte at 123 to be 42.
But these didn't normally have so much to do with patching executables to add/change functionality.
That unlocked a memory of me seeing my computer lab teacher after class in 5th or 6th grade to ask her about the applications of PEEK and POKE. I’d picked up a copy of the GW-BASIC manual from a used bookstore. She’d never heard of those commands. Ended up promptly locking up one of the school computers by poking random numbers to random addresses.
I remember looking into BASIC sources to figure out how they did some things I had no idea how to do with BASIC... and finding POKE statements with weird numbers, it was looking a bit like magic... (I was probably 10 or so, though)
The ZX81 didn't have so much software around for it - what there was mostly came on tape, or was typed in¹ on the ghastly membrane keyboard, and what there was was very limited in capability (the default RAM size was one kilobyte (yes, just 1024 bytes, though typically you'd buy a "ram pack" upgrade to 16k). Then it was very rapidly superseded by the more capable ZX Spectrum machine. So odds are your Dad didn't patch software on the ZX81 because it was usually already highly optimised to squeeze it into the tiny space available.
What was very common on those devices was using the "poke" command in BASIC to change a handful of values, but while it was possible to change code in this way it was much more common to be changing the value of variables - things corresponding to "number of lives left" and the like. Not all that different.
Fairly quickly, though, the games were entirely in machine code and used fancy loaders (still from tape mostly) so you didn't get access to BASIC. This created a market for devices that let you get at a monitor program - the "Multiface" series of addons². They had at least three generations of that device, but the company slightly weirdly evolved into a music production company³ after that, which is kind of cool.
Er, ok, I'll stop now while I still can...
Edit: PS - you should ask him about it. Tell him another former ZX81 owner says "Hi" and that my fingers still ache from that keyboard. Although I sneer a bit at its capabilities, it kicked off an interest in computing that's still paying the bills 40 something years later...
Cool, yeah, he had the 16 kb extension and his own software written on a cassette/tape.
He says hi back, for him it was purely a work machine (PhD in Chemistry, never did anything with computers as in CompSci), he doesn’t remember too much from back then but he said he loved the architecture of it.
He's likely a good bit older than me then - I was about 9 when we got ours. I think "fancy calculator" was probably one of the best ways to use them given their limitations.
Their success was largely down to their very low price point (clever cost-shaving engineering) at a time when there was a huge untapped public interest in computers.
> > My recollection is that most CP/M programs were configured via patching.
> Huh. That is interesting, it was before my time, and I never heard of this :D
Yep, it was a thing, and for /some/ programs that were originally CP/M programs (i.e., WordStar 7.0 for DOS) it continued for a long time. The WordStar 7 documentation included patch locations to use (this time, IIRC, for DOS debug.exe) to change various behaviors of the program.
Not only that, the operating itself was configured by a process known as "sysgen". You relink the entire operating system with options set the way you wanted. It was generally a miserable slow process.
At least on PDP-11 that's how it went for something like RSX-11. I believe same is true for early IBM mainframe operating systems like DOS 360- I think all programs had to be relinked because one option you had was to move things around in memory, and ancillary programs had to know the memory map.
Even later: I wrote a device driver for Xenix: you got a link kit for the OS, you relinked it with your custom driver object file included.
On CP/M you patched the running image (perhaps with DDT), then use the CP/M SYSGEN command to install it on a disk.
Big Bandcamp fan, I get almost all my music from there. But their AI removal (well, or piracy removal for that matter) is rather lacking. Any action takes over a week, sometimes more. Just like with clear piracy (pre release leaks have been up for months), and when they do, they just remove it, whoever bought it is out of luck.
They have been great for what I use them for, occasion niche discoveries, but I'm not sure they replace Spotify for the "hop in my car and my favorite mainstream hits begin playing without having to think too hard about it" use case.
It certainly was, but unfortunately FM radio has gotten pretty awful around me (which I find strange because we are in a fairly densely populated area).
The only thing I listen to on the radio regularly are baseball games.
My naive idea:
Download 100 TB every 3 month to a 2nd device, create a list of files restored, validate checksums with the original machine, make a list of files differing and missing, check which ones are supposed to be missing? That sounds like a full time job.
That's interesting. Do you have further reading? I've seen AFACT v iiNet, but that doesn't look to be the source of "cost of renting", just that the ISP isn't responsible for their users.
> Justice Perram discussed the idea of speculative invoicing within Australia
> Representing to a consumer that they have a liability which they do not may well be misleading and deceptive conduct within the meaning of s 18 of the Australian Consumer Law and it may be equally misleading to represent to someone that their potential liability is much higher than it could ever realistically be. There may also be something to be said for the idea that speculative invoicing might be a species of unconscionable conduct within one or other of s 21 of the Australian Consumer Law or s 12CB of the Australian Securities and Investments Commission Act 2001 (Cth).
> Further, even if speculative invoicing was deemed to be lawful within Australia, the damages that the individual may be liable to are often calculated differently to that of the United States. In Australia, damages are compensatory in nature, meaning to compensate the plaintiff for the loss suffered. One Intellectual Property Lawyer has been quoted as saying, ‘If a film costs $20, the damages would ordinarily be expected to be $20.’
My wife is Sotho from South Africa. While there were certainly a bunch of, to me, very strange practices when my FiL died, it was nothing like what was mentioned in the article.
That said, funeral insurance is extremely common in SA, as even normal burials can be pretty expensive.
> That said, funeral insurance is extremely common in SA, as even normal burials can be pretty expensive.
This is off-topic, but how does funeral insurance even work? You're guaranteed to die at some point, right? To me, insurance is there to hedge against something not very likely, but expensive. The odds are you're going to pay money in, and never see it back (if you don't get sick / crash your car / whatever).
Is funeral insurance just some form of forced savings?
Profitability comes from three prongs: many policies are canceled before a covered event, premiums are often collected for many years and have time to be invested before a covered event, and bundling with inappropriate investments.
For examples of inappropriate investments, you can look at whole life and variable annuities. Most people would be better off spending the same amount on term life + a stock index fund; assuming access to stock index funds, which is probably not a given in many African countries.
Indeed it is forced savings but with the benefit of covering your funeral expenditure if it is required suddenly and unexpectedly.
For context, it might cost you $5 per month, and give you funeral cover of $500.
As OP mentioned it is very common in South Africa, likely owed to the unpredictable life expectancy. All the large insurers offer it, it’s a massive market.
Funerals are a big thing in South Africa. It can be often to the same level as a wedding, where families will take out loans to host the event. Hence the funeral insurance being common.
You go to an ATM and get advertised Funeral Cover, offered by your bank.
Funerals are huge in india too. It runs for 13 days in some communities. To be clear, the actual cremation happens immediately, but the funeral ceremonies continue for 13 days after that.
Most of the expenses are days of one-meal-a-day for guests, and the general extra expenses of having a lot of relatives over at your house. The ceremonies themselves are fairly cheap - it's mostly prayers.
However there is no insurance and so on, since the aforementioned expenses scale with usual QoL.
Might depend on the tribe, and on personal circumstances. The biggest/weirdest thing for me was the whole night vigil and brewing (Umqombothi) and cooking/roasting of the lamb to honor the elders, which had several guests, but not on a wedding level.
FWIW, this is not new, though. Only the article about it is, I’ve been using it for a long time to redirect reddit links (as I’m not logged in on my phone)
var someUser = new { Name = "SideburnsOfDoom", CommentValue = 3 };
What type is `someUser` ? Not one that you can reference by name in code, it is "anonymous" in that regard. But the compiler knows the type.
A type can be given at compile-time in a declaration, or generated at compile-time by the compiler like this. But it is still "Compiler-verified" and not ad-hoc or at runtime.
the type (Dog, Cat) pet seems similar, it's known at compile-time and won't change. A type without a usable name is still a type.
Is this "ad-hoc"? It depends entirely on what you mean by that.