Skip Navigation

Posts
3
Comments
163
Joined
2 yr. ago

  • One of my kids gets a lot of fevers and headaches. He also is a very picky eater, and doesn't drink enough water. (We're working on both of those.)

    My other kid is not so picky, and rarely has fevers or headaches.

    You can probably tell I have an opinion on the nature of these correlations.

  • TIL - I thought of this as a Persian tradition. Apparently the idea of a deliberate flaw in a woven work features in both cultures.

  • No problem! I thought there was a good chance you already know the concept, just not in the exact, unfortunately-overloaded words of your post title.

  • That advice does not literally refer to interface the programming language feature. It means to test the observable behavior of a component, not internal implementation details.

    In your example, write tests for both Rectangle and Triangle that call area, and assert the result is correct. But do not test, for example, the order of mathematical operations that were run to calculate the result. The details of the math are an internal detail, not part of the "interface".

  • No, I prefer to focus on the game. Or if I do have a video going it's on my phone.

  • You're probably already aware that there have been literacy requirements to vote in the past in some places in the US, but those were actually an excuse to disenfranchise black people. https://history.iowa.gov/history/education/educator-resources/primary-source-sets/right-to-vote-suffrage-women-african/voter-registration-literacy

    Literacy tests were banned by the Voting Rights Act in 1965. There have been recent attacks on that law including the 2013 Supreme Court case Shelby County v Holder which overturned election oversight in jurisdictions with a history of racist disenfranchisement; and Allen v Milligan from a couple months ago was an attempt to overturn gerrymandering restrictions, but thankfully it failed. Combine that with continuing voter disenfranchisement (for example far too few polling places in Atlanta leading to black voters waiting in line many hours to vote), and there is no doubt in my mind that if literacy tests were legal again they would be used the same way they were in the 60's.

    Personally I think history has shown that we get better leaders when more votes are counted.

  • Maybe I'm the only one who is happy with a single, ultrawide monitor. I used to have two monitors, but with one big screen I don't have to deal with keeping track of which screen has focus, or with the gap between them.

    I did hold out for an ultrawide with the same vertical pixel count as a 4k which it turns out is expensive. With more pixels I can make the code smaller and still read it comfortably.

    It helps to have a window manager that is good at laying out windows side-by-side. I'm a big fan of PaperWM which is an extension for Gnome.

  • Lots of articles on fusion deserve to be summarized because they have paragraph after paragraph explaining what fusion is, that it produces electricity, why electricity is useful, and the problem of climate change.

    But this article gets straight to the point, and manages to limit the-protons-and-the-electrons talk to a single paragraph further down.

  • I second kitty. I switched from urxvt to konsole to get support for ligatures. Then I switched to kitty because it also has ligatures, it's faster than konsole, and it's easier to configure with version-controlled files.

    I don't do very much customization: font, line spacing, color scheme, and a couple of custom key bindings.

  • I read in another comment somewhere that introducing a superconductor wouldn't change the properties of the semiconductor bits. So the transistors themselves would still produce heat. But there are also full-conductor bits that produce heat that might be eliminated.

  • Yeah, I've had similar anxiety recently choosing a new place for my family to live. I think keep in mind that if both choices seem like good options you're likely to get some good outcomes either way. My wife put it like this,

    What's nice is the way the human brain works, down the road we'll be thinking, "I'm glad we made this choice because then X happened."

  • Taking a quick look at the changes, most of the changed code is in a block, not a function. I know the argument to Box::pin looks like a function, but it's actually an async block. So you don't have a function to return from.

    An anonymous function is introduced with an argument list surrounded by pipe characters (|) which you don't have here. OTOH a block is introduced with curly braces. It is very common to use a block as the body of an anonymous function so it's easy to mix those up.

    A block introduces a new variable scope. It can have keyword modifiers, async and move, as you have here. The entire block is a value which is determined by the last expression in the block.

    That's a long way of saying: delete the return keyword, and remove the semicolon from the same line. That makes the value you want the last expression in the if body, which makes that become the value of the if expression, which then becomes the value of the block.

  • I totally agree.

    Right now I'm on a new project with a teammate who likes to rebase PR branches, and merge with merge commits to "record a clean history of development". It's not quite compatible with the atomic-change philosophy of conventional commits. I'm thinking about making a case to change style, but I've already failed to argue the problem of disruption when rebasing PR branches.

  • Oh no - I didn't realize my preference for the Oxford comma might lead to trouble! I am a fan. When that Vampire Weekend song comes on I always whisper, "me…"

  • I believe your last Linux experience in 2015 predates DXVK which has been transformative for Linux gaming. Wine used to have to implement its own DirectX replacement which necessarily lagged behind Microsoft's implementation, and IIUC didn't get the same level of hardware acceleration due to missing out on DirectX acceleration built into graphics cards.

    Now DXVK acts as a compatibility bridge between DirectX and Vulkan. Vulkan is cross-platform, does generally the same stuff that DirectX does, and graphics cards have hardware acceleration for Vulkan calls the same way they do for DirectX calls. So game performance on Linux typically meets or exceeds performance on Windows, and you can play games using the latest DirectX version without waiting for some poor dev to reimplement it.

    If you are using Steam with Proton, Lutris, or really any Wine gaming these days you are using DXVK. It's easy to take for granted. But I remember the night-and-day difference it made.

  • Welcome to the mechanical keyboard experience!

    Any MX-compatible keycaps will fit on the switch stems.

    Keycap widths are measured in units: you want 1u caps for Escape, and the cursor key; 1.5u for Tab, 1.25u for the other three keys on the lower row.

    Ideally you want replacements to match the "profile" of the other keys so that sizes and shapes match. I think this board uses OEM profile, but I'm not 100% certain.

    A sculpted profile like this one uses different keycap shapes for different rows. For example the Escape keycap should be taller than the cursor keycap.

    If you want to replace all of the keycaps with a new set, any MX-compatible set designed for a standard keyboard should work. If you want to see the backlights properly go for a shine-through set.

    There is lots more information here: https://www.keyboard.university/100-courses/keycaps-101-ydy8j

  • Apple controls what may be installed on iphones with an iron fist. Did you know there is only one option for a web browser? Chrome, Firefox, and other apparent alternatives are actually re-skinned Safari. They don't want to allow real competition to their own browser. This is certainly not the only case where they use app store approval powers to block competition.

    Plus Apple takes 15-30% of every transaction on iphones. That includes payments in the app store, and also in-app purchases. Sure they have to fund the store, but given that Apple has an absolute monopoly over iphone app distribution this seems predatory to me.

    Apple is anticompetitive, and seems to have little regard for their responsibility as a platform provider to allow application diversity to flourish.

    So Google has a similar app store approval process, and takes basically the same percentage from transactions. But they are much more generous in what they allow in their store in terms of competing apps. And most importantly, Google does not have a monopoly on Android app distribution. You don't need to do any jailbreaking to set up F-Droid, or to install apps from the web.

    It's true that the vast majority of Android users use Google's app store. And I think that Google taking a cut of in-app purchases is also predatory. Apps should be able to not use Google Pay, and to not pay Google a cut. But the fact that there are other options puts a limit on how much Google can block competition, and gives some option for publishers to avoid that 15-30% cut.

  • Instead of trying to get Steam to write outside of its sandbox, I would configure the OS to search Steam's files for application launchers.

    Your system searches "data" directories for directories called applications, and loads .desktop files from there. You can customize locations for data directories using the XDG_DATA_DIRS environment variable. See https://unix.stackexchange.com/a/492878

    In this case you want to set XDG_DATA_DIRS to include ~/.var/app/com.valvesoftware.Steam/.local/share because that is the parent of the applications directory.

    I think you'll want to include the default data dirs so you don't lose your other launchers. So something like,

     sh
        
    export XDG_DATA_DIRS="/usr/local/share/:/usr/share/:$HOME/.var/app/com.valvesoftware.Steam/.local/share"
    
      

    If I'm understanding the spec correctly you don't need to include ~/.local/share because that is the default path for XDG_DATA_HOME which is always searched, and XDG_DATA_DIRS specifies additional paths to search.

  • Neat! It looks like it will still be a while, but I'm hopeful that with Wayland support I won't have to change my display scaling when I start up Overwatch

  • Good to know, thanks! Do you find steam-run to be helpful even for non-steam binaries that need an FHS? Or do you use it mainly for games?