Canadian software engineer living in Europe.

  • 7 Posts
  • 289 Comments
Joined 1 year ago
cake
Cake day: June 7th, 2023

help-circle







    • Keep everything in an external git service. You can use third party services like Codeberg, GitLab, or GitHub, or host your own on your NAS.
    • When you’re not working on a project and don’t think you’ll need to reference it for a while, just delete it from your laptop. The code always lives in git anyway.

    In terms of local storage, I usually have everything in ~/projects/project-name, and I don’t have tiny file size limits because I don’t use FAT32 filesystems — that’s the default filesystem you usually get on USB sticks and external hard drives you buy. You have to format those drives to something like EXT4 (Linux) or NTFS (Windows) or you get stuck with FAT32 which has 2gb file sizes.






  • So my first impression is that the requirement to copy-paste that elaborate SQL to get the schema is clever but not sufficiently intuitive. Rather than saying “Run this query and paste the output”, you say “Run this script in your database” and print out a bunch of text that is not a query at all but a one-liner Bash script that relies on the existence of pbcopy – something that (a) doesn’t exist on many default installs (b) is a red flag for something that’s meant to be self-hosted (why am I talking to a pasteboard?), and (c) is totally unnecessary anyway.

    Instead, you could just say: “Run this query and paste the result in this box” and print out the raw SQL only. Leave it up to the user to figure out how they want to run it.

    Alternatively you can also do something like: “Run this on your machine and copy/paste the output”:

    $ curl 'https://app.chartdb.io/superquery.sql' | psql --user USERNAME --host HOSTNAME DBNAME
    

    In the case of the cloud service, it’s also not clear if the data is being stored on the server or client side in LocalStorage. I would think that the latter would be preferable.



  • It’s actually rather brilliant.

    In an (d)effective 2 party system like ours, running to your extremes has few costs, since the electorate tend to vote parties out rather than vote them in. When the public tires of the ruling party (it helps if you own most of the media) and you do get elected, it’s by:

    1. your base that votes for you regardless
    2. new voters from the fringe you’ve been courting
    3. people who’ve convinced themselves that you’re just pretending to be crazy to court that fringe.

    Now you can do whatever you like and if people complain they get shouted down by both sides: “What did you expect? They literally told you they were going to do this.”

    In short, it’s how you drag the Overton Window toward that extreme. If only the Left in this country had figured this out years ago, we wouldn’t be saddled with Sir Red Tory.


  • It’ll take at least that long for the EU member states to forgive the UK for its fuckery. The memory of Brexit will have to fade enough in their minds before it’s even considered.

    • It’s doubtful that the same deal will be on the table, as it would be politically untenable domestically.
    • Getting France and Germany on board will be hard, given that they enjoy much more power in our absence.
    • The risk of our exit again when our xenophobia acts up would have to be objectively low, or no member state would take the chance on approval lest we fuck over their economy again when we throw an egocentric racist tantrum.


  • There it is! Thank you! It’s a process owned by root called kworker/0:0+kacpid. Any idea what that is?

    [Edit 1] Interestingly, I can’t even kill -9 it.

    [Edit 2] With kworker kacpid to work with, I did a quick search and found this SO page that has some interesting information that I only partially understand, but the following worked like a charm:

    # grep -Ev "^[ ]*0" /sys/firmware/acpi/interrupts/gpe?? | sort --field-separator=: --key=2 --numeric --reverse | head -1
    /sys/firmware/acpi/interrupts/gpe09:11131050     STS enabled      unmasked
    # echo disable > /sys/firmware/acpi/interrupts/gpe09
    

    It’s not clear to me what an interrupt is or whether this gpe09 value is meant to be persistent across reboots, or why this only seems to be happening in the last couple months, but if I can make it go away by running the above from time to time, I guess it’s alright?



  • Generally, I agree. I think what I meant by the above is “how would you tell someone how to use the thing”. My favourite example is email vs email-with-PGP.

    How do you send an email?

    1. Open client
    2. Click “send new email”
    3. Type your email
    4. Click send

    How do you send a PGP-encrypted email

    Let’s first talk about this thing called a “keyserver”. Once you know what that is, you’ll have to go out and find some keys to add to it. We’re not going to talk about styling your message 'cause that’s not something you should be able to do… etc. etc.


  • This is a common problem with Free software, and honestly I think it’s our biggest one: we build stuff for ourselves and stop there. If we want our stuff to be adopted (which, for things that rely on network effects, we do) then we need to pay more attention to usability.

    Here’s a suggestion for anyone starting a project they think they might share. Before you start writing any code, write the documentation. Then rewrite it from the perspective of the least tech-literate person you know who you’d still want to use the project. Only after you’ve worked out how easy it should be for this person to get started, then you can start writing the thing.