Comments

This profile is from a federated server and may be incomplete. Browse more on the original instance.

aard, to linux in Mandrake Linux 10.0, from 2004. They still work too. Had to buy them on disc, slow dialup internet in those days.
@aard@kyu.de avatar

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.

aard, to linux in Will Linux on Itanium be saved? Absolutely not
@aard@kyu.de avatar

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.

aard, to linuxmemes in Can you install thid 25 year old program?
@aard@kyu.de avatar

There’s a lot of enterprise stuff that only ships as binaries. I had some fun in the late 00s trying to find the most recent distribution still shipping packages for egcs as that was the only compiler supported by the Lotus Domino SDK.

(For the younger ones here: There was some disagreement about gcc development, which resulted in the egcs fork. It got merged back into mainline gcc by he late 90s already, though)

At the time when the Loki ports happened it was a great thing - before that you pretty much had doom and quake available. Nowadays things are better with steam, but it’s quite likely that we’ll see some stuff break there in a few years as well, at least for older games.

aard, to linuxmemes in Can you install thid 25 year old program?
@aard@kyu.de avatar

Installing 25 year old binaries on Linux is rather interesting - relevant for stuff like some of the old Loki ports. Problem is mostly that they’ve been written with kernel 2.2 in mind, which does have different behaviour for quite a few things - you generally can find old libc versions compatible with the binary, but those libc versions don’t necessarily play nice with the kernel.

There are some compatibility flags which made things work last time I checked - but not sure if that’s the case, and it definitely won’t work forever, given that 32bit x86 support is likely to be dropped eventually.

aard, to linuxmemes in The most secure OS named windows
@aard@kyu.de avatar

Windows NT 3.5 and later NT 4 had C2 security certifications - assuming the system was not connected to a network, and didn’t have floppy drives (this was before USB was a thing).

aard, to linuxmemes in Debian being insanely stable
@aard@kyu.de avatar

There’s the old saying that Debian is available in three flavours: Stale, rusting and broken.

aard, to linux in I created a shitty Python script to manage multiple SSH connections because I couldnt find a decent one
@aard@kyu.de avatar

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:


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

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.

aard, to linux in I created a shitty Python script to manage multiple SSH connections because I couldnt find a decent one
@aard@kyu.de avatar

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.

aard, to linux in Migrated from Windows to Linux. Decided to share list of answers/statements I was looking for before did it (and could not find).
@aard@kyu.de avatar

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.

aard, to maliciouscompliance in Here's all the source code
@aard@kyu.de avatar

Did the device happen to be the CueCat?

  • All
  • Subscribed
  • Moderated
  • Favorites
  • localhost
  • All magazines
  • Loading…
    Loading the web debug toolbar…
    Attempt #