• 14 Posts
  • 32 Comments
Joined 10 months ago
cake
Cake day: February 10th, 2024

help-circle
  • I’m with you.

    I think GP has one or two good points about shortcomings of the existing distributed platforms, but I also think these things can be addressed. For example, a centralized system’s single namespace for usernames brings advantages for both identity and usability. This would be harder for a distributed system to implement, of course, but it’s not impossible.




  • Conal’s point is that no, in fact there are almost zero programmers that fully understand even the simplest Python code

    Can you summarize the reasoning there, for those of us who are mildly curious what you’re talking about but don’t have time to spend on a podcast?

    By “fully understand”, does he mean knowing exactly how data are being laid out in memory, or when it is reclaimed? Knowing exactly what CPU instructions are being executed, registers used, and stack frames created behind the abstractions? Something else?

    since it is a dynamically typed language.

    What does Python’s type system have to do with it? Python doesn’t quietly convert objects of one type to another behind your back, like some other languages do.

    What concerns me is your condescending tone.

    I didn’t read condescension in that comment. It’s possible that none was intended.






  • I mostly had fun, and felt the work they did to make Night City feel like a proper city, as opposed to the tiny village-sized “city” typical of open world games, really showed. (For example, the fact that people walking down the street had different ages, body types, and walking styles made it easy for me to forgive the occasional pair of NPC clones spawning next to each other.)

    But yes, many of the activities/events offered by the game ended up seeming a bit pointless because their outcome was more or less predetermined.

    Moreover, the RPG aspect of the game lacked depth, which seemed like a lot of wasted potential given that there were plenty of characters that could have been really interesting to get to know. Instead, the character development was nearly all Silverhand, nearly all the time, and I didn’t even have much influence over how that relationship developed.

    Spoilers ahead:

    What about Jackie? He was supposed to be my best friend, but I never had experiences with him to make me feel that way, and then he was gone in just a few scenes. What about Panam? She was so determined to make a difference in the lives of the people who mattered to her, yet she all but vanished once we bonded, after just a couple of missions. What about Judy?? Her personal mission-like encounter was really promising. We supposedly fell in love and were planning to leave the city together, yet for the rest of the game, we had no interaction but “dates” consisting of the same half-dozen lines of dialogue and two or three brief animations, repeated over and over again. I’m sure there are more examples, but I think I’ve made my point.

    I think the biggest disappointment for me was the ending, though. And the other ending that I got by reloading and picking different options, and then the third ending, and the fourth. They all felt like such empty let-downs that I went online to read about the rest. [Edit: These might have been Phantom Liberty endings; I don’t remember for sure.] Surely there must be some good ones, right? Right?

    The only vaguely satisfying ending that I found was a secret one that (IIRC) requires specific choices early in the game, and a very strong bond with Silverhand, and letting the game sit at a particular dialogue screen for several minutes without picking any option. The endings that players are actually meant to experience left me feeling empty. The great deal of time I had sunk into the game was for nothing after all. I guess that could be considered appropriate for a cyberpunk dystopia, but as an experience and a story, it left me feeling cheated. I wished I had my time back.

    So, as I said, I mostly had fun playing it, and it had its share of highlights, but I don’t expect to ever play it again. I hope CD Projekt Red keep much of the technical progress they made with this game (I was so relieved that my character’s movement was responsive for a change!) and work more on character development and player agency in the next one.


  • Elite Dangerous is my go-to lately.

    It’s different to most other games, by not being goal-oriented except for the goals you set for yourself. No main quest line dictating progress. No mandatory tasks. No win condition. Instead, it drops you into a simulation of our entire galaxy roughly 1300 years in the future, where humanity has mastered hyperspace travel and spread through hundreds of star systems.

    (To give an idea of the simulation’s scope: Around 85 million systems have been recorded by players so far, and those are a vanishingly small fraction of what’s out there. Space is big.)

    I like that it offers a variety of activities to fit whatever mood I might be in on a given day. I can hunt pirates, mine asteroids, engage in a bit of piracy myself, find and collect bio samples, infiltrate rival settlements, venture into vast unexplored areas of space, discover Earth-like worlds that nobody has ever encountered before, defend humanity against hostile forces, photograph beautiful stellar phenomena, rescue stranded survivors, customize and finely tune my ship to perform beyond its original specs, team up with friends, pledge to a political power and expand their influence, or chill out as a space trucker and haul cargo to earn enough money for my next upgrade. It can occupy all my attention, or just be relaxing entertainment while I listen to music or an audiobook.

    It’s an MMO in the sense of having a large game world (galaxy) shared by all players in real time, but PvP is optional. One mode exposes you to other players, while another limits you to NPC encounters. You can switch between them at will.

    One warning: A space ship has more than a few controls to learn, and they’re better suited to a game controller or HOTAS than a keyboard and mouse. I use button combinations for almost everything beyond basic flight controls, since there aren’t enough buttons on a controller for everything.




  • This tool looked interesting to me until I noticed that its external dependency count is in the hundreds, each of which increases exposure to vulnerabilities and supply chain attacks.

    I hope that Rust will some day have a rich enough standard library that the “trust everything” software development model falls out of favour amongst the developers who use it.


  • Some of the APIs in use on Linux today come from older Unix variants. (For this reason, I probably wouldn’t call one of these a “Linux API” as the author did, though I guess it works linguistically for those that are usually present on Linux.) These APIs have semantics that were designed before threading existed on many platforms. Making them thread-safe without breaking existing code can be challenging.

    If setenv(3) is among these, it could explain why glibc’s implementation doesn’t support multi-threaded programs, and why its documentation states as much. To have used it in a multi-threaded environment, ignoring the docs, was a bug in the Steam client. Perhaps it never occurred to the people who ported Steam’s code to glibc that threading issues might be different from what they were used to on other platforms.

    To be fair, the author might be aware of this, as he did refer to glibc’s implementation as a tradeoff rather than a bug.




  • Cloudflare is a provider that you can choose to have as a part of your own infrastructure.

    Indeed.

    man in the middle implies “attack”

    That can be a convenient shorthand if the parties in a discussion agree to use it as such in context. For example, in a taxonomy of cryptographic attacks, it would make sense. It is not the general meaning, though, at least not a universally accepted one. Similarly, “counter” does not imply “counter attack”, unless we happen to be discussing attack strategy.

    More to the point, nothing that I wrote misrepresents the situation as was claimed by that other person. If I had meant attack, I would have said attack. Rather, they made a leap of logic because I (like most of my colleagues) don’t happen to follow a convention that they like, and picked a fight over it. No thanks.



  • It bugs me when people say Cloudflare is a MitM, because that is a disingenuous representation the situation.

    No, it is a clear description of what is happening: Instead of https keeping the traffic encrypted from user to service, it runs only from user to Cloudflare (and then in some cases from Cloudflare to service, although that’s irrelevant here). The result is that a third party (Cloudflare) is able to read and/or modify the traffic between the two endpoints. This is exactly what we in mean in cryptography discussions by man-in-the-middle.

    You can decide that you don’t mind it because it’s not a secret, or because they haven’t been caught abusing it yet, but to say it’s not a man-in-the-middle is utter nonsense.

    and you opt into it.

    No, the service operator opts in to it, without consulting the user, and usually without informing them. The user has no choice in the matter, and typically no knowledge of it when they send and receive potentially sensitive information. They only way they find out that Cloudflare is involved is if Cloudflare happens to generate an error page, or if they are technically inclined enough to manually resolve the domain name of the service and look up the owner of the net block. The vast majority of users don’t even know how to do this, of course, and so are completely unaware.

    All the while, the user’s browser shows “https” and a lock icon, assuring the user that their communication is protected.

    And even if they were aware, most users would still have no idea what Cloudflare’s position as a middleman means with respect to their privacy, especially with how many widely used services operate with it.

    To be clear, this lack of disclosure is not what makes it a man in the middle. It is an additional problem.

    it cannot be a MitM because both sides of the connection are aware of this layer.

    This is false. Being aware of a man in the middle and/or willingly accepting it does not mean it ceases to exist. It just means it’s not a man-in-the-middle attack.





  • music group IFPI complained that while Cloudflare discloses the hosting locations of pirate sites in response to abuse reports, it doesn’t voluntarily share the identity of these pirate customers with rightsholders.

    “Where IFPI needs to obtain the customer’s contact information, Cloudflare will only disclose these details following a subpoena or court order – i.e. these disclosures are mandated by law and are not an example of the service’s goodwill or a policy or measures intended to assist IP rights holders,” IFPI wrote.

    So the corporations enjoying enormous profits from other people’s work are unhappy that Cloudflare doesn’t make it easy for them to circumvent due process. What a surprise.

    (I’m generally not a fan of Cloudflare, because its man-in-the-middle position between users and services has grown to an unhealthy scale, making it ripe for dragnet surveillance and other abuses. But it would be even worse if it was actively helping these greedy, predatory corporations dodge the law.)