• 1 Post
Joined 6M ago
Cake day: Jun 09, 2023


I guess we can give GIMP a pass to be a bit slower in migrating to new versions of the _G_IMP _T_ool_K_it than others…

Yeah, but x86 was relatively cheap. Alpha and Itanium were in a similar price range.

At that time Alpha belonged to Compaq - and they stopped Alpha development (and canned quite a few good designs which were pretty much ready to go), expecting they’ll be able to replace it with Itanium.

Instead of rofi I’d recommend using anyrun.

I made a quick plugin to also run stuff from path, and am currently working on a proper ssh plugin for that - extending them is a bit more involved than the simple rofi/wofi scripts, but there’s a lot more things an anyrun plugin can do.

I’m still angry at nvidia for buying their remains, and not doing anything useful with it.

3dfx had multi GPU support back then, it took quite a while afterwards until somebody else tried that.

I’ve been using (or, in some cases, trying to use) that when it was brand new. Kernel side was relatively easy - but there was a lot of compiling custom versions of XFree86 trying to get acceleration working properly.

On the one hand a bit sad to see that kind of history I’ve experienced myself go - on the other hand, it’s probably been a decade since I’ve last used something without KMS, and the ease of use of modern KMS drivers is way ahead of all the older stuff.

A few years before Ubuntu quite a few companies tried doing their own distributions. Back then it still was common to sell them in a proper software box - CDs or DVDs, manuals and some swag, at minimum stickers, but quite often also pins or some other stuff.

On exhibitions they’d often give away full boxes to get people to try - sometimes the current version, sometimes the last release. I still have a bunch of those in the garage - I think Corel (yes, the painting program guys) should be one of them.

Will be interesting how much that’ll cost - but generally it looks like we’re finally approaching a point where you can buy small systems with enough RAM and network bandwidth for cheap enough that it makes sense to create ceph OSDs with just one or two disks attached each.

They were interesting, but only good for a very narrow purpose - not really a good thing when the trend back then was going away from special purpose machines toward general purpose.

intel didn’t plan it to be just a special purpose CPU - but it just ended up that way. That they gave their first customers free Alpha workstations for crosscompiling code as that was faster than native compilation should tell you everything you need to know about suitability of itanic as general purpose system.

Additionally there’s not really a good way to enter them, especially when using physical keyboards.

As a shortsighted person - reading with an ebook reader in bed after removing glasses is significantly easier than reading an actual book.

Because it isn’t. This impacts when the scheduler kicks in, not on how many cores stuff is running on. With fewer cores scheduler is faster triggered again, and and at 8 cores the adjustment for that stops. Which may be an intentional decision to avoid high latency issues.

I assume you mean “lookup”, as import doesn’t really make much sense.

I’m currently using this with wofi, though I’ll eventually rewrite it as anyrun plugin, which provides a bit more control:

#!/usr/bin/env python3
from argparse import ArgumentParser
import subprocess
import json
import os
ssh_config_file = "~/.ssh/config"
ssh_known_hosts_file = "~/.ssh/known_hosts"
# Returns a list of all hosts
def get_hosts():
    hosts = []
    with open(os.path.expanduser(ssh_config_file)) as f:
        content = f.readlines()
    for line in content:
        line = line.lstrip()
        # Ignore wildcards
        if line.startswith('Host ') and not '*' in line:
            for host in line.split()[1:]:
    # Removes duplicate entries
    hosts = sorted(set(hosts))
    return hosts
def get_known_hosts():
    hosts = []
    with open(os.path.expanduser(ssh_known_hosts_file)) as f:
        content = f.readlines()
    for line in content:
        line = line.lstrip()
        host_entry = line.partition(" ")[0]
    # Removes duplicate entries
    hosts = sorted(set(hosts))
    return hosts
# Returns a newline seperated UFT-8 encoded string of all ssh hosts
def parse_hosts(hosts):
    return "\n".join(hosts).encode("UTF-8")
# Executes wofi with the given input string
def show_wofi(command, hosts):
    process = subprocess.Popen(command,shell=True,stdin=subprocess.PIPE,stdout=subprocess.PIPE)
    ret = process.communicate(input=hosts)
    host, rest = ret
    return host
# Switches the focus to the given id
def ssh_to_host(host, terminal, ssh_command):
    if "]:" in host:
        host, port = host[1:].split("]:")
        command = "{terminal} \'{ssh_command} {host} -p {port}\'".format(terminal=terminal, ssh_command=ssh_command, host=host, port=port)
        command = "{terminal} \'{ssh_command} {host}\'".format(terminal=terminal, ssh_command=ssh_command, host=host)
    process = subprocess.Popen(command,shell=True)
# Entry point
if __name__ == "__main__":
    parser = ArgumentParser(description="Wofi based ssh launcher")
    parser.add_argument("terminal", help='Terminal command to use')
    parser.add_argument("--ssh-command", dest='ssh_command', default='ssh', help='ssh command to use (default=ssh)')
    parser.add_argument("--mode", dest='mode', default='known_hosts', help='where to read from (default=known_hosts)')
    parser.add_argument("--command", default='wofi -p \"SSH hosts: \" -d -i --hide-scroll', help='launcher command to use')
    args = parser.parse_args()
    if (args.mode == "config"):
        hosts = get_hosts()
    elif (args.mode == "known_hosts"):
        hosts = get_known_hosts()
    parsed_hosts = parse_hosts(hosts)
    selected = show_wofi(args.command, parsed_hosts)
    selected_host = selected.decode('utf-8').rstrip()
    if selected_host != "":
        ssh_to_host(selected_host, args.terminal, args.ssh_command)

There’s a lot of other stuff where Wayland improves the experience. Pretty much everything hotplug works to some extend on X, but it’s all stuff that got bolted on later. Hotplugging an input device with a custom keymap? You probably can get it working somewhat reliably by having udev triggers call your xmodmap scripts - or just use a Wayland compositor handling that.

Similar with xrandr - works a lot of the time nowadays, but still a compositor just dealing with that provides a nicer experience.

Plus it stops clients from doing stupid things - changing resolutions, moving windows around or messing up what is focused is also a thing of the past.

You have a list of systems you’ve connected to in known_hosts, though. And the config file is easy enough to parse - throwing away the stuff you don’t care about - to expand on that list.

I have a custom TrueType font embedding the UCS bitmap fonts so I can use it with modern font renderers which dropped support for those old font formats.

And if you do, do you intentionally not use MFA (if it’s available) because you believe it should be those services making sure you are secure instead of you taking steps to make it harder to compromise your accounts?

Yep. We can discuss me using a second factor once they start designing their services better.

Payment on such sites is set to require approval via my bank (hardware token), I don’t care about the purchase history - so if somebody manages to breach the account and order something it’s entirely their problem, not mine. I’m aware they might close my account when confronted with that attitude, but I’m also fine with that.

so both sides have to take steps to secure a transaction

My passwords are stored locally encrypted, with the encryption key stored in a hardware token. The browser doesn’t have access to that. That’s already more than a lot of sites are doing for their security…

yet the minute you need to use a third party service, you let go and put everything on the service, KNOWING they are not doing a good job with it.

That’s exactly why I treat any 3rd party service as throwaway.

A lot of current “best industry practices” - including the ones described - are grossly negligent. It also moves the burden of proof of responsibility for a security incident more in my direction - while providing me less and less means to prevent it.

With the iframe example - I nowadays typically can’t see if I enter my credentials (including potential 2FA to unlock a session) into a form belonging to my bank, or some malicious 3rd party without going into developer settings. That’s not acceptable.

There’s no good reason for a modern browser even allow this - just as there’s no good reason for allowing to load script files from arbitrary domains. But we now have the situation where the business model of the main browser developer depends on not stopping that kind of behaviour.

So what I want is that putting design over sensible security choices gets expensive for companies - and I’m not interested in adding some band-aid reducing their risk while this is not the case.

The only online accounts I care about are my bank accounts - for those I’m using hardware dongles for TAN generation instead of the shitty Android app their pushing (which would allow transactions without external auth, due to some “trusted device” nonsense). Everything else can either be replaced, or is on my own infrastructure.

It’s pretty clear from all the responses here that the view is massively different depending on if you’re from the US, or not.

I’m not from the US - and Bush massively and irrevocably messed up a lot of things for me. And I’m just in the EU, not directly getting bombed by US military.

With Trump the consequences were pretty much all inside of the US, any fallout we felt over here were still from the Bush era, or to some extent Obama. Given all the damage that was done by those two maybe the structure of your government over there is shit and should be attacked - my hope from over here was that the whole Trump situation would lead to finally stuff getting fixed. It won’t be pretty for you guys - but from the outside I’d rather have someone incompetent like Trump mess up your stuff until the pain is big enough to actually do something than someone halfway competent break things on a global scale again.

Yeah, I assumed you meant the master password to the password manager.

Still, that falls under the duty of the page I’m visiting to keep their stuff secure - and while I’m very unhappy about some recent practices¹ I’d more for documenting and battling it out in court, if necessary.

¹ My browser configuration used to prevent 3rd party iframes or similar constructs for entering passwords - unfortunately in recent years some idiots decided that’s good design, so more and more often you nowadays have to allow embedding third party components without it being visible where it comes from.

Even worse, quite often credit card verification or other payment forms get embedded the same way. Until a few years ago my bank was throwing errors in their forms when they got embedded this way, but unfortunately they caved in to the general idiocy out there, and allow that nowadays.

You’re describing a shitty password manager.

In my case I have a local copy of the encrypted password database, and my master password unlocks the encryption key for that, which is stored in a hardware dongle. Browsers and other high risk software are running isolated and have no access to the encrypted password database or the hardware dongle.

I mainly see two factor authentication as a way for service providers to be lazy about account protection on their side, which they try to outsource to me.

Don’t want to go into too much details - from a high level perspective the Windows version integrates better into the overall system. In Rosetta, once you’re in the emulation layer it can be rather complicated to execute native components from there. In Windows - with some exceptions - that’s not a problem.

You do the usual network checks first, check if wireguard packages come in, check latest handshake. Depending on your network setup you might want to set a lower MTU than default, or enable PersistentKeepalive.

If none of that shows something useful you can enable debug logging via debugfs:

echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control

You’ll then have additional messages in dmesg. You can switch it off by doing -p instead.

They have, and in my experience it works nicer than Rosetta.

Windows 10 had it limited to 32bit binaries (but Windows 10 on ARM is generally very broken). Windows 11 can handle both 32 and 64bit emulation.

It’s been a few years since I gave it a try - so I don’t remember specifics, just the impression I described above, and that it put me off from using it.

It is a web designers masturbation phantasy - fancy looking, but convoluted and impractical.

For me personally the shitty UI of discord causes so much friction that I’ll never interact with discord ever again, unless I can reach it via some gateway from some of the messaging systems I use - which so far doesn’t happen as I’d need to log in to discord to configure the gateway. I tried that once, never again.

Bluesky already allows you to use your own domain for your handle. Currently they just use a TXT record in DNS to verify it is your domain - but adding another record to specify on which instance this is hosted shouldn’t be too hard.

User space is not breaking often enough for nvidia users. If it’d break regularly maybe users would either buy something with proper support, or force nvidia to open their stuff so it can be maintained like the rest, and no longer is a roadblock for progress.

On X11 much of the window management was considered a hint, but the application could just ignore it and do whatever it wanted.

On Wayland applications can’t do stuff like self position - they can send some hints, but the compostior is in full control of what to do with them.

I use tiling window managers, and applications doing whatever has become more and more of an issue with ion3 over the last years - together with stuff changing the display resolution (they can’t do that on wayland). Now with Hyprland on wayland pretty much all issues are gone.

Wayland got rid of a lot of the stupidity of apps thinking they know better what to do than the user, fortunately.

Not Op, but:

  • Firefox works perfectly fine natively
  • chrome/chromium work perfectly fine natively when started with --enable-features=UseOzonePlatform --ozone-platform=wayland
  • emacs since version 29 has the pgtk backend, which works without issues. I’ve been running emacs from git for about a year before the 29 release for pgtk already
  • anything Qt does wayland natively, unless they’re doing some weird stuff
  • same for GTK, only one I can remember right now with problems would me GIMP, but I’m typically using Krita nowadays

My 9yo daughter has a tablet with family link, so I can monitor what apps she wants to install. As the garbage games are mostly at the top free, she keeps asking for games that I reject, in most cases because it’s riddled with ads.

Did you ever consider using this as opportunity to educate your daughter about ads in general, how some games try to push adds to get you to do something, and also how some games have game mechanics trying to push you to do specific things, and then just let her figure out if those games are worth playing, or not?

She’s definitely old enough - I had that discussion with my daughter when she was 5, we have an agreement that we limit the number of games installed on her phone - and the kind of shitty game you’re talking about typically gets uninstalled again pretty quickly.

In a few years she’ll be able to install stuff by herself - if you never explained to her what and why games/apps are doing she’ll not be ready to deal with that, and it’ll be out of your control.

I’m aware of that - but I think when you’re marketing as Linux / open source friendly you shouldn’t be selling those systems.

I might get interested if they ever have a modern AMD system with proper coreboot support - but until then they don’t do anything special.

Pretty much the reason I’m not interested in buying their stuff.

I get it as workstation option for very specific purposes - but for 5 years or so you’re just better off with an AMD card.

Before that things sucked a bit if you needed 3d performance - I just stopped gaming after I moved off my last voodoo card as I don’t support companies with that kind of behaviour.

especially if you have Nvidia

This is something that needs to be highlighted over and over again: Don’t buy nvidia if there’s ever a chance of running anything but Windows.

Is this the latest “sneaky” way to insist all phones need headphone jacks?

My current phone has an FM radio, and no headphone jack. It uses the headphones as antenna via the USB-C adapter.

Never used it, though - and rarely used radio in any phone which had that feature before that.

Telegram is not Russian. The founder is a Russian - who left Russia about a decade ago after being pushed out of his local Facebook clone (VK) due to not complying with government requests. They nowadays mostly seem to be in Dubai, but as a legal entity hard to locate due to a cat and mouse game they’re playing to avoid being reachable for authorities worldwide who want to enforce local laws.

The data should be bypassing your internal disk, though depending on the hardware involved it is possible (yet nowadays unlikely) that this will cause swap to be written to the internal disk.

You can watch which device is being written to using iotop.

The trick is to always keep roughly a year worth of corn stored, and only sell off the excess.

After the initial ‘getting the base running’ I usually pay merchants that accept it in corn, up to the amount where they end up giving me all their silver on top of what I wanted to buy.

What’s a skill that’s taken for granted where you live, but is often missing in people moving there from abroad?
I was thinking about that when I was dropping my 6 year old off at some hobbies earlier - it's pretty much expected to have learned how to ride a bicycle before starting school, and it massively expands the area you can go to by yourself. When she went to school by bicycle she can easily make a detour via a shop to spend some pocket money before coming home, while by foot that'd be rather time consuming. Quite a lot of friends from outside of Europe either can't ride a bicycle, or were learning it as adult after moving here, though. **edit:** the high number of replies mentioning "swimming" made me realize that I had that filed as a basic skill pretty much everybody has - probably due to swimming lessons being a mandatory part of school education here.