Skip Navigation
Daniel Quinn

Canadian software engineer living in Europe.

Posts
23
Comments
702
Joined
2 yr. ago
  • “Canada would then have to put the customs border between itself and the U.S. and apply EU tariffs and regulations on imports from the U.S. … It would be incredibly economically destructive. It would outweigh any benefits that it might expect to get from the [EU] membership over many, many years,”

    With what Trump's been doing with the tariffs, the above statement may not be true for much longer. It may well be cheaper to ship to Rotterdam than to Rochester.

  • He definitely says "gagged". This post is ridiculous.

  • Well shit. What good is pasta without parmesan? And no feta? Gouda? How is life worth living without good cheese?

  • I've been a Green supporter for a very long time. I even ran as a candidate for the BC Greens way back. I hate it, but I don't really have a problem with this ruling. The Greens rose to our highest levels of support when we ran a full slate of candidates across the country, and while we have on occasion chosen to not run in a few strategic ridings (don't blame us, it's FPTP), 15 ridings fewer wouldn't be a problem if we were running everywhere else.

    The big caveat though is that it's really hard to run a full slate as a small party. The vetting alone is a brutal (and costly) amount of work, and getting 343 candidates mobilised in time for a short-notice election is near impossible for a small party. In other words, when election dates are controlled by the ruling party, elections (and debate rules) will inevitably favour larger parties, diminishing our democracy.

    The rules seem reasonable to me, and objectively we didn't meet them, so we shouldn't be included. I just think it's worth noting exactly why we didn't meet them.

  • I read this headline, thoroughly confused as to why Francesca Albanese would be wasting her time talking about vegemite.

  • In Star Trek: Insurrection, the Enterprise protected the Baku from the So'na, though if I remember right, there was some debate as to whether the prime directive applied as the Baku weren't native to the planet.

  • I was one of the people who based my opinion of Proton on that tweet and swore off them until someone else shared that link with me. It's excellent, thorough, and makes a convincing case that Yang is actually left-leaning. I can only assume that you're getting downvotes from people who haven't read it.

  • What you're describing is winning elections by letting the public dictate your position. This is not the same thing as leadership. To be fair though, genuine leadership is in short supply all over the world right now, so it's easy to conflate cowardice with strategy.

    Leadership is when someone steps away from the crowd, paints a picture of the world they want, and asks people to join them. Think: "I have a dream", or "we choose to go to the moon". Leaders are charismatic visionaries that take you with them rather than taking popular positions once the polling reports in.

    Canada deserves the sort of leadership that understands the critical nature of the climate issue, and leaders who will convince us to come with them in building the world we want. May is criticising the other parties for their lack of conviction regarding the most important issue of our time, and she's right to do it.

  • It was Castlevania that did this to me.

  • Well, welcome to the Free side fellow traveller :-) I too ditched Windows for (different) political reasons 25 years ago, and haven't looked back. You'll love it here, 'cause if you don't, you now have the power to change it 'til you do.

  • Sorry, I was on mobile so I over-simplified 'cause digging up the details on Wikipedia wasn't so easy while also juggling my kid :-) I'll try to amend the original post.

  • I don't know what to tell you. I've been shouted down more than a few times for suggesting that Ubuntu is a bad gateway distro.

  • I'll likely be downvoted for this, but if you're committed to Linux, you might want to reconsider using Ubuntu (or Fedora for that matter). Ubuntu has a well-earned reputation for trying to make things "easy" by obfuscating what it's doing from the user (hence that useless error message). They're also a corporate distro, so their motivations are for their profit rather than your needs (wait 'til you had about Snap).

    A good starting distro is Debian (known for stable, albeit older) software. It's a community Free software project and the 2nd-oldest Linux distro that's still running as well as the basis for a massive number of other distros (including Ubuntu). The installer is straightforward and easy too.

    Or if you're feeling ambitious, I'd recommend Arch or Gentoo. These distros walk you through the install from a very "bare metal" perspective with excellent documentation. Your first install is a slog, but you learn a great deal about the OS in the process, ensuring that you have more intimate knowledge when something goes wrong.

  • If only he'd done that, I'd have respect for him. Instead he walked back a half-assed confirmation of someone else's question. Hardly the conviction we should expect from our Prime Minister.

  • I think you're misunderstanding the purpose behind projects like c2pa. They're not trying to guarantee that the image isn't AI. They're attaching the reputation of the author(s) to the image. If you don't trust the author, then you can't trust the image.

    You're right that a chain isn't fool-proof. For example, imagine if we were to attach some metadata to each link in the chain, it might look something like this:

    Author Type
    Alice the Photographer Created
    AP photo editing department Cropping
    Facebook Resizing/optimisation

    At any point in the chain, someone could change the image entirely, claim "cropping" and be done with it, but what's important is the chain of custody from source to your eyeballs. If you don't trust the AP photo editing department to act responsibly, then your trust in the image they've shared with you is already tainted.

    Consider your own reaction to a chain that looks like this for example:

    Author Type
    Alice the Photographer Created
    AP photo editing department Cropping
    Infowars Cropping
    Facebook Resizing/optimisation

    It doesn't matter if you trust Alice, AP, and Facebook. The fact that Infowars is in the mix means you've lost trust in the image.

    Addressing your points directly:

    1. I'm not sure how a TPM applies to this as I haven't dug deep into c2pa other than the quick review I did this morning. I'm more interested in the high-level: "can we solve this by guaranteeing the origin" question, and I think the answer to that is yes. See my other comment for my own take on this.
    2. I don't think we need any sort of controls on defining the types of edits at all. If AP said they cropped the image, and if I trust AP, then I trust them as a link in the chain.
    3. Worrying about MITM attacks is not a reasonable argument against using a technology. By the same token, we shouldn't use TLS for banking because it can be compromised.
    4. Absolutely, but you can prevent someone from taking a picture of an AI image and claiming that someone else took the picture. As with anything else, it comes down to whether I trust the photographer, rather than what they've produced.
  • Yes, but starting a new chain would necessarily reallocate the ownership. So if reuters.com created a real image and then Alex Jones modified it, stripped the headers, and then re-created them, then the image would no longer appear to be from Reuters, but rather from infowars.com.

  • Absolutely, but that's not really the point. If you remove the chain, then the file becomes untrusted. We're talking about attaching trust to an image, and a signature chain is how you ensure that that trust.

  • Thanks! And no, this is absolutely nothing like NFTs.

    NFTs require the existence of a blockchain and are basically a way of encoding a record of "ownership" on that chain:

    Alice owns this: https://something.ca/...

    If the image at that URL changes (this is called a rug pull) or a competing blockchain is developed, then the NFT is meaningless. The biggest problem though is the wasted effort in maintaining that blockchain. It's a crazy amount of resources wasted just to establish the origin.

    Aletheia is much simpler: your private key is yours and lives on your computer, and your public key lives in DNS or on your website at a given URL. The images, videos, documents, etc. are all tagged with metadata that provides (a) the origin of the public key (that DNS record or your website) and a cryptographic proof that this file was signed by whomever owns the corresponding private key. This ties the file to the origin domain/site, effectively tying it to the reputation of the owners of that site.

    The big benefit to this is that it can operate entirely offline once the public keys are fetched. So you could validate 1 million JPEG images in a few minutes, since once you fetch the public key, everything is happening locally.

  • Much of these problems can be solved by introducing a signature chain:

    • Company A created the image
    • Company B resized it

    In this example, "Company A" can be a reliable news source, and "Company B" could be an aggregator like Mastodon or Facebook. So long as the chain is intact, the viewer can decide whether they trust every element in the chain and therefore trust the image.

    This even allows people to use AI for responsible editing, because you're attacking the real problem: the connection between the creator (in whom you may or may not vest a certain amount of trust) and the media you're looking at.

  • Linux @lemmy.ml
    Daniel Quinn @lemmy.ca

    Can you configure tmux to use "normal" modifier keys?

    I find the whole "Ctrl+b followed by another key" way of navigating tmux to be too cumbersome to warrant a switch away from something like Tilix where I can hit Ctrl+Alt+| and the screen splits vertically, or Alt+Left to switch to the terminal on the left. I think it's the mandatory release of all keys followed by more keys that does it.

    Is there a way to tell tmux to understand that "Alt+Left means switch to the terminal on the left" and bypass the whole Ctrl+b song and dance altogether?

    Android @lemmy.world
    Daniel Quinn @lemmy.ca

    An app to post to an arbitrary URL?

    I'm a web developer, mostly with Python and have close to zero Java or Kotlin experience, but I want to build a bunch of tools for my phone where I can Share a URL (for example) to an app that simply takes that URL string and sends an HTTP POST request to a pre-arranged URL with some pre-arranged headers or POST data.

    So basically I'm looking for an app that:

    • Lets you define a series of endpoints
    • Accepts share intents from other apps to then bring up a selector asking "Which endpoint do you want to send this to?", sends it, and exits.

    It seems a little nuts that I should have to develop a separate app for each endpoint, when the app experience isn't really something I'm interested in. Can someone here point me to an app that already does something like this? I'd prefer a FOSS option if possible, but at this point I don't even know what to search for.

    Example use-cases:

    • Send a YouTube URL to a service that downloads said video and stores it on a share on my VPN
    • Send a
    gemini @lemmy.ml
    Daniel Quinn @lemmy.ca

    What's the "gunicorn/uwsgi" for Gemini

    I've recently learnt about Gemini and I'm reasonably sure that I can write a Django extension to allow the same code I use to run my website also serve more-or-less the same information over Gemini. Unfortunately, while I'm familiar with Django internals, I've always relied on Gunicorn + Nginx/Traefik to handle the HTTP portion of the request/response.

    So if I'm going to do this, I need to know what to use to speak Gemini. I found the very simple aiogemini, which I can improve upon and probably link to Django's URL handler, but it's based on asyncio, while Django only partially supports async. I also have no idea what might be fine to replaced the traefik (let alone cert-manager) portion of the process.

    I could try to write something from scratch, but there's no sense in reinventing a square wheel, so I thought I'd ask here.

    Fuck Cars @lemmy.world
    Daniel Quinn @lemmy.ca

    Amazon delivery vans were parked in bike lanes all over Cambridge today.

    cross-posted from: https://lemmy.ca/post/33126960

    Cambridge @feddit.uk
    Daniel Quinn @lemmy.ca

    Amazon delivery vans were parked in bike lanes all over Cambridge today.

    Linux @lemmy.ml
    Daniel Quinn @lemmy.ca

    How to find what's eating 100% of just one core?

    From time to time, often after I've restored from sleep or finished playing a Steam game, one of my CPU cores is pinned at 100% with no indication of what might be doing it. Running htop, btop, or GNOME system monitor all show the same thing: CPU0 at 100% while the rest are doing near-nothing, and no process in particular seems to be using those resources.

    If I restart, it's back to normal, and sometimes I can play a game in Steam or let the computer go to sleep and it doesn't do this, but it happens often enough that's annoying/confusing so I'd like to know if there's a way to either (a) diagnose which processes are using which CPU cores, or (b) somehow "reset" the checking of these values to make sure that something's not just being misreported.

    This is a desktop system running Arch & GNOME.

    Python @programming.dev
    Daniel Quinn @lemmy.ca
    danielquinn.org Developing with Docker

    > **Update**: there's now a [companion repo](https://gitlab.com/danielquinn/developing-with-docker-demo) to serve as a demonstration of the below. You'd think that this topic would have been done to …

    Developing with Docker

    I've been writing code professionally for 24 years, 15 of which has been Python and 9 years of that with Docker. I got tired of running into the same complications every time I started a new job, so I wrote this. Maybe you'll find it useful, or it could even start a conversation, but this post has been a long time coming.

    Update: I had a few requests for a demo repo as a companion to this post, so I wrote one today. It includes a very small Django demo user Docker, Compose, and GitLab CI.

    Fairphone @lemmy.ml
    Daniel Quinn @lemmy.ca

    My UX seemed to really slow down after the update

    mastodon.social Daniel Quinn (@[email protected])

    Attached: 1 image After an update, my #Fairphone appeared to slow down, but it wasn't overloaded. Apps all performed their jobs quickly, but the *animations* were sluggish. Digging into the "Developer Options", I noted that the drawing animations were all set to `2x`, and bumping them down to `1`...

    Daniel Quinn (@danielquinn@mastodon.social)

    ...so I found out how to fix it

    Star Trek Social Club @startrek.website
    Daniel Quinn @lemmy.ca

    The number of lines for each character by percentage of the series

    It would seem that I have far too much time on my hands. After the post about a Star Trek "test", I started wondering if there could be any data to back it up and... well here we go:

    Those Old Scientists

    Name Total Lines Percentage of Lines
    KIRK 8257 32.89
    SPOCK 3985 15.87
    MCCOY 2334 9.3
    SCOTT 912 3.63
    SULU 634 2.53
    UHURA 575 2.29
    CHEKOV 417 1.66

    The Next Generation

    Name Total Lines Percentage of Lines
    PICARD 11175 20.16
    RIKER 6453
    Django @programming.dev
    Daniel Quinn @lemmy.ca

    I made a thing: "django-cool-urls"

    danielquinn.org django-cool-urls

    It's taken the better part of six months, working a few hours in the evenings when I can scratch the time together, but my latest …

    django-cool-urls
    Cambridge @feddit.uk
    Daniel Quinn @lemmy.ca

    Boy on quad bike arrested on Chisholm Trail for 'dangerous driving'... carrying a machete

    Linux @lemmy.ml
    Daniel Quinn @lemmy.ca

    What're some of the dumbest things you've done to yourself in Linux?

    I'm working on a some materials for a class wherein I'll be teaching some young, wide-eyed Windows nerds about Linux and we're including a section we're calling "foot guns". Basically it's ways you might shoot yourself in the foot while meddling with your newfound Linux powers.

    I've got the usual forgetting the . in lines like this:

     undefined
        
    $ rm -rf ./bin
    
      

    As well as a bunch of other fun stories like that one time I mounted my Linux home folder into my Windows machine, forgot I did that, then deleted a parent folder.

    You know, the war stories.

    Tell me yours. I wanna share your mistakes so that they can learn from them.

    Fun (?) side note: somehow, my entire ${HOME}/projects folder has been deleted like... just now, and I have no idea how it happened. I may have a terrible new story to add if I figure it out.

    kodi @reddthat.com
    Daniel Quinn @lemmy.ca

    I'm having serious problems with Omega

    I've got a very simple Kodi setup:

    • Arch Linux on a laptop behind the TV
    • Media files on a server upstairs, shared over NFS

    I've been running Kodi quite successfully on this machine for years, but with the Omega update, videos play without audio for about 10seconds, then freeze. Sometimes if I wait a while, I see subtitles for the episode while the video is frozen. Music doesn't play either. The interface freezes too, to the point where I have to kill -9 it. Switching from Wayland to Xorg hasn't had an effect.

    I tried deleting ~/.kodi and restarting, but nothing changes.

    Has anyone else run into this?

    Solarpunk @slrpnk.net
    Daniel Quinn @lemmy.ca

    Some dude 3D printed a little house for his local frog

    A break from the usual in this community, but I trust it'll be appreciated. I think this is very solarpunk: using technology to improve the lives of all creatures.

    Steam Deck @sopuli.xyz
    Daniel Quinn @lemmy.ca

    I lost days of play time to a stream cloud sync error

    I've been playing a lot of Fallout 4 over the holidays. I started and finished the Nuka World DLC (killed all the baddies), made it to level 90, etc.

    Today I was playing on my Deck as the battery got a little low (11%) so I saved my game, exited the game, and went to shut down.

    As it was shutting down, the Deck displayed a message, something like "Syncing to Steam Cloud" as the logo was spinning.

    A few hours later, on a full charge, I booted it back up, started Fallout 4 again and... some of my old saves are there, but only about 30% of them, and critically not the most recent ones.

    Has this ever happened to anyone else? Is this a known issue? Can I fix it, or report it? I've basically lost interest in finishing the game now.

    Open Source @lemmy.ml
    Daniel Quinn @lemmy.ca

    9 days after writing in defence of a Free Palestine, Paul Biggar is dropped from his director role at CircleCI

    His original post , titled I can't sleep, is some brilliant writing. When we talk about the chilling effect that criticism of Israel creates in industries everywhere (including ours) this is what that looks like.

    AI Generated Images @sh.itjust.works
    Daniel Quinn @lemmy.ca

    A giant, muscular penguin roaring in a comic book style

    I needed something for a presentation I'm doing on advanced Linux, so I thought something like this might be appropriate.

    Annoyingly, I can't seem to get Bing to generate an image that isn't square.

    Linux @lemmy.ml
    Daniel Quinn @lemmy.ca

    Ash Vs Bash

    [For reference, I'm talking about Ash in Alpine Linux here, which is part of BusyBox.]

    I thought I knew the big differences, but it turns out I've had false assumptions for years. Ash does support [[ double square brackets ]] and (as best I can tell) all of Bash's logical trickery inside them. It also supports ${VARIABLE_SUBSTRINGS:5:12}` which was another surprise.

    At this stage, the only things I've found that Bash can do that Ash can't are:

    • Arrays, which Bash doesn't seem to do well anyway
    • Brace expansion, which is awesome but I can live without it.

    What else is there? Did Ash used to be more limited? The double square bracket thing really surprised me.

    Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ @lemmy.dbzer0.com
    Daniel Quinn @lemmy.ca

    I made a thing to make playing YouTube videos locally from your browser easier

    The other day someone was complaining about the new ad blocker-blocker on YouTube and I mentioned that it might be fun to write a Firefox extension that would just load up yt-dlp and play the video through mpv.

    It turns out, writing a Firefox extension is easy and tricking Firefox into launching yt-dlp isn't much harder (though it does require some annoying configuration on the user's end).

    Anyway, if you're a Linux user, feel free to try it out. I don't know how much I'm going to pour into this, but as an exercise of "can this be done", it was pretty good for a few hours on a Friday night.

    Gnome @discuss.tchncs.de
    Daniel Quinn @lemmy.ca

    How do you get an application onto this list?

    I'm working on a little program that'll launch different browsers based on the content of the URL passed and I'd like to set it as the default Web app in this list (under Settings → Default Apps). I've written a .desktop file based on the epiphany.desktop file, but it doesn't show up when I hit [Win]+o+p+e and it doesn't show up in the default apps either, so I'm hoping that someone here can explain what I've done wrong.

    Here's the contents of the opening.desktop file:

     undefined
        
    $ cat ~/.local/share/applications/opening.desktop 
    [Desktop Entry]
    Name=Opening
    GenericName=Web Browser
    Comment=Open links in the right browsers
    Keywords=web;browser;internet;opening;
    Exec=opening %u
    StartupNotify=true
    Terminal=false
    Type=Application
    Icon=/home/daniel/.local/share/applications/opening.png
    Categories=Network;WebBrowser;
    MimeType=text/html;application/xhtml+xml;x-scheme-handler/http;x-scheme-handler/https;multipart/related;application/x-mimearchive;message/rfc822;application/x-xpinstall;