gravitas's recent activity

  1. Comment on What creative projects have you been working on? in ~creative

    gravitas
    Link Parent
    “The worst thing that can happen” has now changed to “only one person listens to it” :) Congrats on the releases!

    “The worst thing that can happen” has now changed to “only one person listens to it” :) Congrats on the releases!

    2 votes
  2. Comment on What creative projects have you been working on? in ~creative

    gravitas
    Link Parent
    Yep, I’m making all of it. The image I had in mind was the car in front of Casey breaking, Casey not breaking hard enough, the bike tipping forwards and ejecting Casey towards the car. Thanks for...

    Yep, I’m making all of it. The image I had in mind was the car in front of Casey breaking, Casey not breaking hard enough, the bike tipping forwards and ejecting Casey towards the car. Thanks for the good feedback here!

    Thank you!

    1 vote
  3. Comment on What creative projects have you been working on? in ~creative

    gravitas
    Link Parent
    Thank you! I’m writing these on-the-day, but I don't think it's quite automatic writing—it’s definitely cleaned up a lot, and I have been (and still am!) too far on the scale towards...

    Thank you! I’m writing these on-the-day, but I don't think it's quite automatic writing—it’s definitely cleaned up a lot, and I have been (and still am!) too far on the scale towards editing-as-I-write; and I’m hoping that the deadline will force me into automatic writing by necessity.

    I haven’t been purposefully tying the music into the writing, but I’m in the same headspace and it seems like it's working out more often than not. And yeah, one of the main motivations was to do something productive with the free time I’ve had lately. And I have found this a lot of fun; thanks again!

    2 votes
  4. Comment on What creative projects have you been working on? in ~creative

    gravitas
    Link
    In an effort to shift my brain away from quality gear, and into quantity gear, I’ve spun up my own website and set a goal to publish some creative work every day (self promotion, you can go visit...

    In an effort to shift my brain away from quality gear, and into quantity gear, I’ve spun up my own website and set a goal to publish some creative work every day (self promotion, you can go visit at https://3e8.dev/daily/, self promotion over). I’m only three days in so far but I’m almost proud of what I’ve made so far, and I'm actually a little surprised that my brain has been able to hit deadlines all along (although, as mentioned before: perhaps a little premature.)

    And I'm a little hesitant to say things like, “we’ll see how long it lasts” (or indeed talk about confidence at all!) because a significant percent of all problems ever are confidence problems, and confidence problems can always be solved by simply lying. I have tried to get myself into the mindset of “I will be doing this” with this project, and to be honest it's been a lot more effective than I expected. Maybe that’s been helped by publishing only on my own website, which has the (deserved) reputation of a ‘screaming into the void’ deal.

    Rambling over. Feedback would be appreciated: do your worst!

    5 votes
  5. Comment on ESA satellites to test razor-sharp formation flying in ~space

    gravitas
    Link Parent
    The occulter (OSC) uses cold gas thrusters. These work by opening a valve to release a high-pressure propellant, where the mass flow itself accelerates the spacecraft. (I'd expect the gas to be...
    • Exemplary

    The occulter (OSC) uses cold gas thrusters. These work by opening a valve to release a high-pressure propellant, where the mass flow itself accelerates the spacecraft. (I'd expect the gas to be something like nitrogen, but I couldn't find any details.) These are pretty much the simplest possible thruster: a tank and a valve. ("Cold" here refers to there being no ignition, not cryogenic temperatures; the OSC's propellant tanks run at a modest 14°C–34°C.)

    The other spacecraft (the coronagraph, or OSC) uses hydrazine thrusters, which run their single propellant over a catalyst to release energy.

    Cold gas thrusters are relatively inefficient, with a specific impulse of around 70, limiting the total delta-v of the spacecraft. This tradeoff is perfectly okay for stationkeeping because there's less atmospheric drag at these altitudes.

    From the article:

    The CSC is responsible of performing the main orbital maintenance impulsive manoeuvres with monopropellant thrusters.

    To me, this reads as the CSC using hydrazine thrusters for coarse alignment (orbital parameters, keeping the right distance away) to the the occulter, which is then only responsible for fine alignment.

    Crewed spacecraft tend to use hypergolic propellants which are relatively efficient, in the ballpark of 300 seconds of specific impulse. These propellants are also storable at ambient temperatures, and hypergolic thrusters are easy to scale up to high-acceleration burns.

    Long-duration stationkeeping in low earth orbit, or (more famously) interplanetary probes, can use ion thrusters which are highly efficient (thousands of seconds of specific impulse, reducing fuel mass requirements for the same delta-v), but use so much electricity that high-acceleration burns aren't feasible.

    For short-lifetime spacecraft (upper stages, orbital transfer vehicles), cryogenic propellants are possible. These run at very low temperatures (ballpark: -200°C), and at least in the case of upper stages, require high thrust to avoid falling back into the atmosphere.

    7 votes
  6. Comment on Can hydrogen help the world reach net zero? in ~enviro

    gravitas
    Link Parent
    Hydrogen has good energy density per mass, but not per volume. As just one data point, the 2014 Toyota Mirai's hydrogen tanks (interior volume of about 120 liters[1]) weigh 87.5kg, and hold only...

    Hydrogen has good energy density per mass, but not per volume. As just one data point, the 2014 Toyota Mirai's hydrogen tanks (interior volume of about 120 liters[1]) weigh 87.5kg, and hold only 5kg of hydrogen.[2][3]. That's somewhere around 170kWH of energy. The equivalent mass in gasoline would be 33 gallons (or 125 liters, roughly the same volume!), containing about 1000kWH of energy. Of course, gas engines are less efficient than hydrogen fuel cells (~66%[4] to ~40%[5]), and I'm ignoring a lot of things around the drivetrain, too—fuel cells, batteries, electric motors, gas engines all take varying masses and volume.

    8 votes
  7. Comment on Introducing the Epic First Run program in ~games

    gravitas
    Link Parent
    For what it’s worth, game publishers set regional prices, not Steam, although they do publish recommended rates.

    For what it’s worth, game publishers set regional prices, not Steam, although they do publish recommended rates.

  8. Comment on YouTube's privacy settings now block you from seeing suggested content in ~tech

    gravitas
    Link Parent
    the homepage blanking happens when view history is disabled, not with subscription privacy.

    the homepage blanking happens when view history is disabled, not with subscription privacy.

    4 votes
  9. Comment on The Val Programming Language in ~comp

    gravitas
    Link Parent
    (this reply is kinda obsoleted by @skybrian's answer because I was too slow on the draw :) Mutable Value Semantics Almost all languages nowadays have some form of reference semantics. For example,...

    (this reply is kinda obsoleted by @skybrian's answer because I was too slow on the draw :)

    Mutable Value Semantics

    Almost all languages nowadays have some form of reference semantics. For example, objects in JavaScript have an identity --- if I have some code that gives someone else an object, and they modify that object, my reference to the same object reflects those changes.

    To contrast this, an array (not like C/C++'s arrays) in Swift has value semantics. If they're passed to a function, and that function modifies it, it doesn't affect the array that it was copied from. If the array's items are reference types, they won't be cloned, however.

    Swift also has implicit memory management. While JavaScript uses garbage collection, Swift uses reference counting --- code is added to your functions that keeps track of how many referents exist to any reference-typed value. It also keeps reference counts for data structures like arrays, so that instead of copying the array all the time, it can only copy it right before it's modified. That's called Copy-On-Write (COW).

    As a lower-level example, Rust doesn't have reference types. If you pass a nontrivial value (roughly any type that implements Drop --- which run code roughly whenever they go out of scope) anywhere, you can't use it again, ensuring that it'll only be "dropped" once.

    But Rust still has first-class references, a way to safely pass pointers around that are verified, at compile time, to be "shared XOR mutable". Mutable references are guaranteed to not be shared, and values are guaranteed to not be modified whenever any references to that value exist. This system is the source of a lot of Rust's complexity.

    Val only has second-class references. This means that it doesn't have to deal with anything like Rust's lifetimes, removing a lot of complexity from the language. Val also has similar "move semantics" to Rust, meaning it doesn't have to do any implicit reference-counting like Swift.

    Zero-Cost Abstraction

    In JavaScript and Swift, garbage collection and reference counting respectively are costs that can't be opted out of. In Swift, passing an array around adds code to increment and decrement the reference count, and modifying it adds code to check if it's aliased, and if so, to copy it.

    Rust and Val have the same "zero-cost abstraction" philosophy.

    For example, Rust has generic code, which can be passed arguments of different types. But a generic function is equivalent to manually duplicating it and changing all the types, so these don't add any overhead at runtime.

    As another example: in languages like Haskell, Ocaml, and Python, almost all values are "boxed" which is a fancy way to say each individual value has its own memory allocation. This adds pointer lookups to nearly all code. (I believe Ocaml at least has small-int optimization, where small integers are instead unboxed.) Whereas in Rust, memory allocation is generally opt-in.

    The rest...

    ...is beyond me. :)

    6 votes
  10. Comment on Distrohoppers, what's your flavor this week? in ~comp

    gravitas
    Link Parent
    Clearing the WAYLAND_DISPLAY environment variable should work. If you're running it from a terminal/command line, you can just run WAYLAND_DISPLAY="" [command]. (If this doesn't work, you may also...

    Clearing the WAYLAND_DISPLAY environment variable should work. If you're running it from a terminal/command line, you can just run WAYLAND_DISPLAY="" [command]. (If this doesn't work, you may also want to try env -uWAYLAND_DISPLAY [command]---this will remove the environment variable instead of setting it to the empty string.)

    From the KDE application launcher, you can right-click on an application, go to "Edit Application" and then the "Application" tab, and put WAYLAND_DISPLAY="" in the Environment Variables input. This may or may not work; I tried it out for Discord and it didn't work, but it looked like it should work for Zoom installed from the AUR---other package managers may be similar.

    1 vote
  11. Comment on Distrohoppers, what's your flavor this week? in ~comp

    gravitas
    Link
    I've been running Arch for a couple of years now. On the other hand, I've hopped through several window managers: i3 bspwm River ...and finally, KDE on Wayland Overall, Wayland has been more...

    I've been running Arch for a couple of years now. On the other hand, I've hopped through several window managers:

    • i3
    • bspwm
    • River
    • ...and finally, KDE on Wayland

    Overall, Wayland has been more stable in my experience. For example: on X, the display defaults to 60hz. (I'm not sure when this started---I only had this experience after switching to Wayland and back again) I can just run lxrandr and change the refresh rate to 144hz every time I reboot, but KDE just works, all the time.

    Annoyingly, KDE only lets me use 60hz or 144hz, whereas my fork of River could switch to 120hz (which is also useful for viewing 60fps content without stutter, but in my experience, I've never noticed this); on Wayland, hitting frame pacing is much more important because of [very complicated reasons] :)

    4 votes
  12. Comment on Lost Ark is being review bombed after incorrectly issuing permanent bans to inactive players, which leaves a mark on their Steam profiles in ~games

    gravitas
    Link Parent
    Not sure about DOTA, but the CSGO Rulebook says “The TO [Tournament Organizer] will not qualify, nor allow in any qualifying event, any player who has been "Valve Anti-Cheat" banned ("VAC Banned")...

    Not sure about DOTA, but the CSGO Rulebook says “The TO [Tournament Organizer] will not qualify, nor allow in any qualifying event, any player who has been "Valve Anti-Cheat" banned ("VAC Banned") in CS:GO.”, i.e. VAC bans for Lost Ark would not affect CS:GO major tournaments.

    But the ban isn't a VAC ban: It's a Game ban, which, as far as I know, any developer can use.

    3 votes