• 1 Post
  • 316 Comments
Joined 2 years ago
cake
Cake day: July 2nd, 2023

help-circle
  • Truly, it could be anything that unsettles the market. A bubble popping is essentially a cascading failure, where the dominos fall, when the house of cards collapses, when fear turns into panic, even when everyone is of sound mind.

    The Great Depression is said to have started because of a colossally bad “short squeeze”, where investors tried to corner the market on copper futures, I think. That caused some investment firms to go broke, which then meant trust overall was shaken. And then things spiraled out of control thereafter, irrespective of whether the underlying industries were impacted or not.

    So too did the Great Financial Crisis in 2008, where the USA housing market collapsed, and the extra leverage that mortgagees had against their home value worked against them, plunging both individuals and mortgage companies into financial ruin. In that situation, the fact that some people lost their homes, coupled with them losing their jobs due to receding market, was an unvirtuous cycle that fed itself.

    I can’t speculate as to what will pop the current bubble, but more likely than not, it will be as equally messy as bubbles of yore. But much like the Big One – which here in California refers to another devastating earthquake to come – it’s not a question of if but when.

    Until it (and the AI bubble popping) happens though, it is not within my power to do much about it, and so I’ll spend my time preparing. That doesn’t mean I’m off to move my retirement funds into S&P500 ex-AI though, since even the Dot Com bubble produced gains before it went belly up. I must reiterate that no one knows when the bubble will pop, so getting on or getting off now is a financial risk.

    Preparation means to build resilience, to decouple my home from my job, to keep my family and community safe even when the shaking starts. For some, this means stocking food and water. For others, it means building mutual aid networks. And for some still, it means downsizing and making their lives more financially sustainable, before the choice is made for them.

    This is a rollercoaster and we’re all strapped in, whether we like it or not.



  • I’ll take a stab at the question, but we will need to dive into a small amount of computer engineering to explain. To start, I am going to assume an x86_64 platform, because while ARM64 and other platforms do support hardware-virtualization, x86_64 is the most popular and most relevant since its introduction at the beginning of the 2000s. My next assumption is that we are using non-ancient hardware, for reasons that will become clear.

    As a base concept, a virtual machine means that we have a guest OS that runs subordinate to a host OS on the same piece of hardware. The host OS essentially treats the guest OS as though it is just another userspace process, and gives the guest some time on the CPU, however the host sees fit. The guest OS, meanwhile, is itself a full-blown OS that manages its own userspace processes, divying out whatever CPU time and memory that it can get from the host OS, and this is essentially identical to how it would behave if the guest OS were running on hardware.

    The most rudimentary form of virtual machine isolation was achieved back in the 1960s, with software-based virtual machines. This meant that the host emulated every single instruction that the guest OS would issue, recreating every side-effect and memory access that the guest wanted. In this way, the guest OS could run without change, and could even have been written in an entirely different CPU architecture. The IBM System/360 family of mainframes could do this, as a way of ensuring business customers that their old software could still run on new hardware.

    The drawbacks are that the performance is generally less-than-stellar, but in an era that valued program correctness, this worked rather well. Also, the idea would carry into higher level languages, most notably the Java Virtual Machine (JVM). The Java language generally compiles down to bytecode suitable to run on the JVM (which doesn’t really exist), and then real machines would essentially run a JVM emulator to actually call the program. In this way, Java is a high-level language that can run anywhere, if provided a JVM implementation.

    An advancement from software virtualization is hardware-assisted virtualization, where some amount of the emulation task is offloaded to the machine itself. This is most relevant when virtualizing the same CPU architecture, such as an x86_64 guest on an x86_64 host. The idea is that lots of instructions have no side-effects that affect the host, and so can be run natively on the CPU, then return control back to the host when reaching an instruction that has side-effects. For example, the basic arithmetic operation of adding two registers imposes no risks to the stability of the machine.

    To do hardware-assisted virtualizaton requires that the hardware can intercept (or traps) such instructions as they appear, since the nature of branch statements or conditionals means that we can’t detect in-advance whether the guest OS will issue those instructions or not. The CPU will merrily execute all the “safe” instructions within the scope of the guest, but the moment that it sees an “unsafe” instruction, it must stop and kick back control to the host OS, which can then deal with that instruction in the original, emulated fashion.

    The benefit is that the guest OS remains unmodified (yay for program correctness!) while getting a substantial speed boost compared to emulation. The drawback is that we need the hardware to help us. Fortunately, Intel and AMD rose to the challenge once x86-on-x86 software virtualization started to show its worth after the early 2000s, when VMWare et al demonstrated that the concept was feasible on x86. Intel VT-x and AMD-V are the hardware helpers, introducing a new set of instructions that the host can issue, which will cause the CPU to start executing guest OS instructions until trapping and returning control back to the host.

    I will pause to note why same-on-same CPU architecture virtualization is even desirable, since compared to the emulation-oriented history, this might not seem immediately useful. Essentially, software-based virtualization achieved two goals, the latter which would become extremely relevant only decades later: 1) allow running a nested “machine”, and 2) isolate the nested machine from the parent machine. When emulation was a given, then isolation was practically assured. But for same-on-same virtualization, the benefit of isolation is all that remains. And that proved commercially viable when silicon hit a roadblock at ~4 GHz, and we were unable to make practical single-core CPUs go any faster.

    That meant that growing compute would come in the form of multiple cores per CPU chip, and this overlapped with a problem in the server market where having a separate server for your web server, and database server, and proxy server, all of these cost money. But seeing as new CPUs have multiple cores, it would save a bunch of money to consolidate these disparate servers into the same physical machine, so long as they could be assured that they were still logically running independently. That is to say, if only they were isolated.

    Lo and behold, Intel VT-X and AMD-V were introduced just as core counts were scaling up in the 2010s. And this worked decently well, since hardware-assisted virtualization was a fair order of magnitude faster than trying to emulate x86, which we could have done but it was just too slow for commercialization.


    Some problems quickly emerged, due to the limitations of the hardware assistance. The first has to do with how the guest OS expects to operate, and the second to do with how memory in general is accessed in a performant manner. The fix for these problems involves more hardware assistance features, but also relaxing the requirement that the guest OS remain unchanged. When the guest OS is modified to be better virtualized, this is known as paravirtualization.

    All modern multi-tasking OS with non-trivial amounts of memory (which would include all guest OS’s that we care about) does not organize its accessible memory as though it were a "flat’ plane of memory. Rather, memory is typically “paged” – meaning that it’s divvied out in pre-ordained chunks, such as 4096 Bytes – and frequently also makes use of “virtual memory”. Unfortunately, this is a clash in nomenclature, since “virtual memory” long predates virtualization. But understand that “virtual memory” means that userspace programs won’t see physical addresses for its pointers, but rather a fictional address which is cleverly mapped back to physical addresses.

    When combining virtual memory with pages, the OS is able to give userspace programs the appearance of near-unlimited, contiguous memory, even though the physical memory behind those virtual addresses are scattered all over the place. This is a defining feature of an OS: to organize and present memory sensibly.

    The problem for virtualization is that if the host OS is already doing virtual+paged memory management, then it forces the guest OS to live within the host’s virtual+paged environment, all while the guest OS also wants to do its own virtual+paged memory management to service its own processes. While the host OS can rely upon the physical MMU to efficiently implement virtual+paged memory management, the guest OS cannot. And so the guest OS is always slowed down by the host having to emulate this job.

    The second issue relates to caching, and how a CPU can accelerate memory accesses if it can fetch larger chunks of memory than what the program might be currently accessing, in anticipation. This works remarkably well, but only if the program has some sense of locality. That is, if the program isn’t reading randomly from the memory. But from the hardware’s perspective, it sees both the host OS and guest OS and all their processes, which starts to approximate a Gaussian distribution when they’re all running in tandem, and that deeply impacts caching performance.

    The hardware solution is to introduce an MMU that is amenable to virtualization, one which can manage both the host OS’s paged+virtual memory as well as any guest OS’s paged+virtual memory. Generally, this is known as Second Level Address Translation (SLAT) and is implemented as AMD’s Rrapid Virtualizaion Indexing or Intel’s Extended Page Tables. This feature allows the MMU to consider page tables – the basic unit of any MMU – that nest below a superior page table. In this way, the host OS can delegate to the guest a range of pages, and the guest OS can manage those pages, all while the MMU gives the guest OS some acceleration because this is all done in hardware.

    This also helps with the caching situation, since if the MMU is aware that the memory is in a nested page table (ie guest OS memory), then that likely also means the existing cache for the host is irrelevant, and vice-versa. An optimization would be to split the cache space, so that it remains relevant only to the host or to the guest, without mixing up the two.


    With all that said, we can now answer your question about what would happen .With hardware extensions like VT-x and SLAT, I would expect that cascading VMs would consume CPU and memory resources almost linearly, due to each guest OS adding its own overhead and running its own kernel. At some point, the memory performance would slow to a crawl, since there’s a limit on how much the physical cache can be split. But the CPU performance would likely be just fine, such as if you ran a calculation for digits of Pi on the 50th inner VM. Such calculations tend to use CPU registers rather than memory from DDR, and so could run natively on the CPU without trapping to any of the guests.

    But I like the other commenter’s idea of just trying it and see what happens.


  • What if the ability to communicate freely with other drivers made the experience closer to walking in a crowd.

    In a dense crowd, the information being exchanged amongst the crowd is enormous. It is a constant negotiation, of different parties trying to get somewhere but also trying (hopefully) to respect other people’s space. And the stakes are lower, because bumping into someone is fine at 1 kph but totally unacceptable at 50 kph. And humans are dynamically adjustable, like raising ones arms so that a stroller can pass more easily. Cars can’t really do that (except Transformers: Robots In Disguise).

    In a crowded bazaar, the bandwidth from reading people’s facial cues, from seeing whether they’re distracted by goods on display or from their Instagram posts, plus what people actually say – and what they don’t say – and how quickly or slowly they walk. All of that is context that is necessary to participate in the activity of passing through the crowd, and I think that cost-optimized technology to exchange the same amount of info while also needing to react 50x faster and deterministically, with safety standards suitable for 2-tonne machines that already kill and maim thousands per year, that’s not really feasible.



  • As a thought experiment, I’m prepared to momentarily set aside the practical and societal issues to see whether a mechanism for motorists to communicate to any other nearby motorists would have a use.

    To set some ground rules, I think it’s fair to assert that such a communication mechanism is not meant for lollygagging, but would be used for some sort of operational reason that is related to driving a motor vehicle. So the use-cases would be broader than just safety or traffic management, and could include coordination between drivers all heading to the same place. This criteria means we won’t require the generality of a mobile phone network (which can call anyone) and instead is very local.

    Some examples that might use this mechanism:

    1. Broadcasting a safety hazard to motorists further behind, such as objects in the road or right after a sharp curve
    2. Telling a specific car that their trailer has lost a strap, that it is flailing in the wind, and it might get caught under the rear wheels
    3. Informing all cars in the camping group platoon that you’ll be stopping at Micky-D’s for a bathroom break, and they should keep going
    4. For two cars that already drove over some sharp road debris, they can look at each other’s cars to relay any observable damage, to decide whether to stop on the shoulderless highway or keep driving to an exit

    This selection of examples represent exigent circumstances that arise while driving, rather than something which could have been planned/coordinated in advance. More over, they cover scenarios that are one-to-many or one-to-one, as well as unilateral messages or bilateral conversations.

    We need to also consider what existing cues already exist between motorists, some of which are quite dated:

    • Honking (so that someone else will do something that fixes the situation)
    • Waving through (to indicate that you are yielding and they can proceed)
    • Turning an invisible crank (asking them to roll down their window, despite manual windows being very uncommon now in the USA)
    • High-beam flashing (to request they change lanes so that you can pass them; or at an intersection, that you’re yielding and they can proceed)
    • Stopping and opening the hood (the time-tested signal that your car has malfunctioned and you need assistance)
    • Turning on hazard lights (you have unexpectedly stopped somewhere and cannot move; or you are traveling very slowly; or otherwise, some unspecified hazard exists and you need space to manoeuvre and everyone should be on-alert)
    • Left/right indicators (you are going to turn or change lanes; if a parking space, you are claiming that parking space)

    Before we even check if these existing cues can be used for the examples above, we can see there are already a fair amount of them. The problem with cues, though, is that they might not be universally understood (eg a motorist from flat Nebraska might not understand the hazard lights on a slow-going truck climbing up Tejon Pass heading in/out of Los Angeles). Moreso, some cues are downright dangerous in certain circumstances, such as waving a motorist into an intersection but neither could see the oncoming fire truck that strikes them.

    Notice that for all these cues, only fairly simply messages can be conveyed, and for anything more complicated, it is necessary to “turn the invisible crank”, meaning that you and them need to roll down your windows and talk directly about what the complex situation is. So if a situation is simple, then it’s likely one of the existing cues will work. But if not, then maybe our new car-to-car system might turn out to be useful. Let’s find out.

    Scenario 1 is partially addressed by one very long honk or using hazard lights, depending on if the hazard is avoidable or if the hazard requires all traffic to halt. If it is about a small object in the road, then perhaps no message is needed at all, since we assume all motorists are paying attention to the road. If the hazard is a hidden one – such as behind a curve or it’s black-ice – then only hazard lights would help, but it might not be clear to following motorists what the issue is. They would only know to remain alert.

    A broadcast system could be effective, but only to a point: motorists cannot spend more than a sentence or maybe even a few words to understand some situation that may only be seconds away. We know this from how roadway signs are written: terse and unambiguous. So if a broadcast system did exist for hazards, then it must be something which can be described in fewer than maybe 5 words. This means the system isn’t useful for info about which parking lots at LAX have room, for example.

    Scenario 2 involves a hazard that is moving, and can be addressed by honking and high-beams to get the motorist’s attention. There is no ability to convey the precise nature of the hazard, but outside of nighttime environments where people may be hesitant to stop just because someone is trying to tell them something on a rural Interstate, this generally is enough to prevent a roadway calamity.

    But supposing we did want to use our new system to send that motorist a message, the same concern from earlier must be respected: it is improper to flood a motorist with too much info when the driving task doesn’t really allow for much time to do anything else. An apt comparison would be to air transport pilots, where a jetliner at cruising altitude actually does have a lot of spare time, but not when preparing for takeoff or landing. Driving an automobile is a continual task, and for the time when a car is stopped at a traffic light, then there is virtually no need for a car-to-car communication system; just yell. The need for ACARS for automobiles [pun intended] is looking less useful, so far.

    Scenario 3 is similar to Scenario 2, but is a one-to-many message. But given how such exchanges tend to also become multilateral (“can you get me a Big Mac as well?” and “well, we don’t have to be at the camp site until 4:20”), this once again starts to become a distraction from the driving task.

    Scenario 4 is probably the most unique, because it rarely happens: motorists always have the option of stopping, although stopping can itself create a hazard if the location is not great (eg left lane on an American freeway). It would be truly unusual for two cars to have struck something AND then need to quickly decide if they can press on toward the nearest exit (eg minor body damage) or if they must stop immediately (eg a fuel rupture that starts a small fire beneath the vehicle) AND there is someone else who can mutually exchange info about the damage.

    It’s such a contrived scenario, because I actually made it up, based on the similar situation that occurs for aircraft that suffer damage while in the air. In such situations, the pilot would need external support, which can come from a nearby aircraft, or ATC, or an escort fighter jet. For example, if an aircraft cannot confirm safe extension of the landing gear, diagnosing the problem is helped by a nearby news helicopter confirming that the landing gear is clearly visible and locked.

    Alternatively, if a departing aircraft has struck a piece of metal dropped by an earlier Continental Airlines DC-10, and that bit of metal causes the left tire to explode, further causing a fuel rupture from the left tank and an uncontrollable fire slowly destroying the wing, it would be very useful if ATC can tell the pilots ASAP before the aircraft is going too fast to abort the takeoff, resulting in an inability to remain fly and an eventual crash into a hotel.

    I bring up my contrived automobile Scenario 4 because it shows how things could always be slightly different if a small factor was simply changed, if maybe there were better warnings to the pilots from their aircraft, or if the Continental plane was better maintained, or if Charles de Gaulle ATC was just a little bit faster to radio to the pilots. So it’s perfectly natural to think that by having this one aspect of the driving experience changed, maybe there’s a lot of value we could get from it. Indeed, the Swiss Cheese Model of accident causation tells us that any one layer could have been different and thus stop the holes from lining up.

    But from this thought experiment, we can see that the existing cues between motorists already serve the most common reasons for needing to communicate while on the road. And anything more complicated messages than “I would like to pass” become a distraction and thus less useful and more dangerous in practice. Aviation knows full-well the dangers of introducing a fix which ends up causing more problems in the long-run.


  • Overstating the tax and then being charged less, that’s going to be less jarring to consumers than the opposite situation, where people are charged more than what it says on the can haha. They emboss cans with the worst-case tax rate because the tops are produced separately from the body of the can, so they genuinely don’t know what size of can it will be part of.

    But I get it: taxes are hard, since even the supposed simplicity of a “flat tax” rate still requires exemptions and exceptions everywhere. Otherwise, people will get away with paying less tax than they ought, or more tax than is reasonably fair, or that the purpose of the tax is wholly defeated.

    Taxation systems: simple to administer, easy to understand, fair. Pick at most two. Anyone who says they’ve come up with a system that achieves all three perfectly is a liar or doesn’t understand how taxes work.


  • Some background: retailers in California that sell taxable goods have the choice of either including sales tax in their posted prices (“tax incl”) or not (“+tax”). Whichever they choose, they must disclose which method they use and must be consistent. Retailers of tax-free goods obviously don’t need to make this choice. Vending machines invariably always include the sales tax (and CRV if packaged beverage) to make the price a round number.

    non-prepared food items no longer have sales tax

    This is mostly correct, since the sales tax on food is generally on hot food that is otherwise unprepared. If any other preparation occurs (like with a sandwich from a sandwich shop), then that added preparation makes the whole sandwich taxable, even though the individual food ingredients would have been tax-exempt.

    The only taxes I know I would be paying for a canned soda would be the CRV/California Redemption Tax, which is a flat $0.10 per aluminum can.

    Minor quibble: CRV is California Redemption Value and is a refundable fee. The tiny distinction from a tax is that fees are potentially refundable (and this is, upon recycling the container) whereas a tax is virtually never refunded in any scenario. That said, the California Constitution specifies that taxes and fees have the same requirements when it comes to approving them, since the payment of a tax or fee is mandatory. But I digress.

    Anyway, the rates that you described is not correct. The current rates are:

    5 cents for containers less than 24 ounces

    10 cents for containers 24 ounces or larger

    And only applies to aluminum, glass, plastic, and bi-metal.

    So on a can of NOS (16 fl oz) pays just 5 cents, but a 24 fl oz can will pay 10 cents. I’m not sure which size can you were looking at, but I’m going to guess it was a 16 fl oz can.

    If 16 fl oz priced at $1.98, then add 5 cents CRV, that’s $2.03. The California Department of Tax and Fee Administration (CDTFA) writes that:

    Sales of noncarbonated drinks are generally not taxable, but their containers may be subject to the CRV. On the other hand, sales of carbonated and alcoholic beverages are generally taxable, and the CRV fee that is charged for their containers is taxable

    And:

    Under SNAP, we consider items purchased with CalFresh benefits as sales to the United States government, and those items are therefore exempt from tax in California.

    And:

    Sales of eligible food items purchased with CalFresh benefits are exempt from tax, even if the sale of the food item is normally taxable. For example, the sales of carbonated beverages, ice, and food coloring are exempt from tax when purchased with CalFresh benefit

    So if you’re somewhere within, say, San Luis Obispo city where the sales tax rate is 8.75%, then that brings the $2.03 up to $2.21 if bought without CalFresh, since both sales tax and CRV apply, and CRV is itself taxable. But on CalFresh, neither sales tax nor CRV apply, so the total would just be $1.98.

    This all appears to align with your observations.


  • For a link of 5.5 km and with clear LoS, I would reach for 802.11 WiFi, since the range of 802.11ah HaLow wouldn’t necessarily be needed. For reference, many WISPs use Ubiquiti 5 GHz point-to-point APs for their backhaul links for much further distances.

    The question would be what your RF link conditions look like, whether 5 GHz is clear in your environment, and what sort of worst-case bandwidth you can accept. With a clear Fresnel zone, you could probably be pushing something like 50 Mbps symmetrical, if properly aimed and configured.

    Ubiquiti’s website has a neat tool for roughly calculating terrain and RF losses.



  • I’d say the qualities of the average American park leaves much to be desired, when compared to NYC Central Park, San Diego’s Balboa Park, or SF’s Presidio.

    In suburban areas, the municipal park tends to be a monoculture of grass plus maybe a playground, a parking lot, and if lucky, a usable bathroom. Regional parks are often nicer, with amenities like pickleball courts or a BMX park, though asking for benches (not rocks or concrete verges, but actually bench seats) and shade might be a stretch.

    My point is that the USA has fewer parks and public squares than it ought to. I don’t mean just a place to go jogging or to push a stroller along, but a proper third space where people actively spend time and create value at. Where street vendors congregate because that’s also where people congregate. A place that people – voluntarily, not by necessity, eg a train station but not to catch a train – would like to be. A destination in its own right, where even tourists will drop by and take in the air, the sights, and the social interactions.

    Meanwhile, some parts of the USA actively sabotage their parks, replacing normal park furniture with versions that are actively hostile to homeless people, while alienating anyone that just wants an armrest as they sit down. Other municipalities spend their Parks & Rec funds on the bare minimum of parks, lots that are impractically tiny. Why? Because a public park can be used to exclude registered sex offenders from a neighborhood, leading to the ludicrous situation where whole cities are an exclusion zone. Regardless of one’s position on how to punish sex offenses, the denial of housing and basic existence is, at best, counterproductive.

    So I reiterate: the USA might have a good quantity of parks, but not exactly good quality of parks. People will socialize online unless they are given actual options to socialize elsewhere. And IRL options would build value locally, whereas online communities only accrue to the benefit of the platforms (eg Facebook, WhatsApp) they run on.


  • Even with NA (low/non-alcoholic) beverages, it’d be nice to have third places that don’t come with an obligation to spend money.

    To be clear, I’m not asking for places that ban spending money, but there are third places like parks (eg NYC Central Park) that are destinations in their own right, but one can also spend money there, such as buying stuff and having a picnic on the grass, or bringing board games and meeting up with friends. Or strolling the grounds astride rental e-bikes. Or free yoga.

    Where there’s an open space, people make use of it. But we don’t really have much of that in the USA, that isn’t tied up as a parking lot, an open-space preserve (where people shouldn’t tred upon to protect wildlife), or are beyond reasonable distances (eg BLM land in the middle of Nevada).




  • It very much depends, I think. Ham radio was really helpful to me during 2020 because it was a social activity that was compatible with distancing requirements, and is a great way to talk with people afar. As in, other continents but also local folks as well.

    Fishing, watercraft, and woodworking all have different prerequisites, like a nearby body of water or the space for equipment. They also require some logistical planning, like fishing licenses, how to identify and prep fish, and where to source wood. These things are often easier to learn if you know someone who already partakes in the activity.

    But for civil advocacy, that one has no tangible result that you can put in the living room, earns no awards or points, and puts you directly in the public spotlight, ugly as it may be. And yet, despite all that, it has the potential to impact the greatest number of people in the most accessible way. Paraphrasing a Greek proverb, to commit to this endeavor knowing full well that it will never serve to yourself a benefit, that is a sign of a great and virtuous citizen. Such actions speak loudest.

    All the activities I’ve listed are activities that hone personal development, and can be passed on to another generation, just in case you wanted even more engrossment. I’d say the greatest challenge is just getting started, taking that first step, whatever the activity may be.

    Mistakes will be made early on, but this isn’t amateur aviation or bomb disposal where the consequences are dire. Sometimes you just have to send it and keep at it.



  • One thing which isn’t immediately apparent, even to Americans themselves, is that the large American political parties are less equivalent to individual political parties elsewhere, and are closer to “uneasy coalitions”, like those found in Europe involving multiple parties trying (and maybe failing) to form a government. That makes it harder to draw broad conclusions like “USA Democrats would be right-of-center” because progressives and “DINOs” (Democrats in name only) within the party would be left-wing or right-wing, respectively. Logically, the same applies to the Republican party, although ranging from right-wing RINOs (Republicans in name only) and “moderate Republicans”, to the far-right factions of the party, like neo-Nazis and MAGA.

    With that said, what you’re describing sounds similar to social democracy. Not to be confused with democratic socialism, which is generally further along to the left than social democracy, with the goal to reform the state (or specifically, individual US States) away from private ownership of the means of production and away from capitalism. When Bernie Sanders of Vermont says “I am a socialist”, his positions align well to European social democracy, even though he originally described himself as “democratic socialist”.

    For an example of democratic socialism activities taking place in the USA, consider that the state of Virginia purchased a 35 mile (56 km) freight railroad west of Alexandria, in order to stop paying rent to privately-owned Norfolk Southern railroad and to enable expansion of the existing state-sponsored Amtrak commuter train service serving that region. The acquisition was both cost-effective and still preserves freight train access, but now it’s the state that controls what goes on those rails, much like how they regulate the weight and dimensions of what travels on the public roadways.

    But I must reiterate that the precise definition of political ideology is less important than community-building, since that’s how ideology becomes reality. If you can find a party whose well-stated values you support, then do what you can to help them achieve their goals. That’s going to be more valuable than taxonomy.



  • Tbf, can’t the other party mess it up with signal too?

    Yes, but this is where threat modeling comes into play. Grossly simplified, developing a threat model means to assess what sort of attackers you reasonably expect to make an attempt on you. For some people, their greatest concern is their conservative parents finding out that they’re on birth control. For others, they might be a journalist trying to maintain confidentiality of an informant from a rogue sheriff’s department in rural America. Yet others face the risk of a nation-state’s intelligence service trying to find their location while in exile.

    For each of these users, they have different potential attackers. And Signal is well suited for the first two, and only alright against the third. After all, if the CIA or Mossad is following someone around IRL, there are other ways to crack their communications.

    What Signal specifically offers is confidentiality in transit, meaning that all ISPs, WiFi networks, CDNs, VPNs, script skiddies with Wireshark, and network admins in the path of a Signal convo cannot see the contents of those messages.

    Can the messages be captured at the endpoints? Yes! Someone could be standing right behind you, taking photos of your screen. Can the size or metadata of each message reveal the type of message (eg text, photo, video)? Yes, but that’s akin to feeling the shape of an envelope. Only through additional context can the contents be known (eg a parcel in the shape of a guitar case).

    Signal also benefits from the network effect, because someone trying to get away from an abusive SO has plausible deniability if they download Signal on their phone (“all my friends are on Signal” or “the doctor said it’s more secure than email”). Or a whistleblower can send a message to a journalist that included their Signal username in a printed newspaper. The best place to hide a tree is in a forest. We protect us.

    My main issue for signal is (mostly iPhone users) download it “just for protests” (ffs) and then delete it, but don’t relinquish their acct, so when I text them using signal it dies in limbo as they either deleted the app or never check it and don’t allow notifs

    Alas, this is an issue with all messaging apps, if people delete the app without closing their account. I’m not sure if there’s anything Signal can do about this, but the base guarantees still hold: either the message is securely delivered to their app, or it never gets seen. But the confidentiality should always be maintained.

    I’m glossing over a lot of cryptographic guarantees, but for one-to-one or small-group private messaging, Signal is the best mainstream app at the moment. For secure group messaging, like organizing hundreds of people for a protest, that is still up for grabs, because even if an app was 100% secure, any one of those persons can leak the message to an attacker. More participants means more potential for leaks.