Luthis, you're doing God's work here. You are learning by experimentation and then, importantly, documenting and sharing what you've learned. There is absolutely zero wrong and only good to be had in either of those and in combining them, you're doing service to our entire community.
MCS-51
MCS-51, as in the Intel Microcontroller? I'm trying to find some link between that chip and the VHS standard, but I'm not immediately coming up with anything. From my reading, I see that some variants of the MCS-51 incorporate DSP functionality, which would make for a good analogue media device, but I'm not seeing any VHS VCRs that use one.
I'm far sadder to see the various MIPS machines starting to lose support than I am for Itanic.
I REGRET buying an nvidia adapter when I had the opportunity to buy an AMD/Radeon adapter.
During the pandemic, I purchased an GeForce GTX 1650. It's an older, Turing hardware-based card, so you'd think the driver support would be pretty mature, right? It has been NOTHING but problems.
On nouveau, it's stable, but 3d acceleration just doesn't work right. Under the nvidia open source driver, it corrupts the screen after boot and locks up entirely second later. Under the proprietary driver, it freezes on boot a good amount of the time.
Now, once I get it booted, it's solid as a rock. I've gotta crank the engine over five or six times every time I DO boot, though. If I had it to do over again, I'd definitely have stuck with AMD.
"Brave Hero from Finland, you've been struck by a bus and are going to reincarnate into--"
"No I wasn't. That bus CHASED ME DOWN two alleys, over a fire hydrant, into, and out of a Starbucks. It did NOT hit me. You just summoned me here."
"Err... anyway, this world needs a hero to--"
"Write hardware drivers? A kernel module? Some inline assembly?"
"Err... the demon lord... er... "
"DID YOU EVEN MAIL THE LIST? Hah.... Okay. Does this world have logic gates of any kind? I need to get this knocked out as soon as possible. I've got the entirety of the bcachefs patchset to review before 6.7 is in release."
Yeah, that was close to the end of that job. I didn't want to be there, and that particular manager was really upset that they couldn't just eliminate those servers. He wanted his folks trained on them, but then refused to actually let them spend any time training on them. I was a scapegoat and took the severance deal ASAP.
"I'll Become the Strongest Adventurer in the Other World with My Maximum Level Open Source Operating System Development Skills."
You’re using it well. Nothing wrong at all.
This. Too many partitions for a home system can get pretty stupid pretty quick. But OP has just the right amount of separation between system and data. I've known people that were uncomfortable without breaking /var (or /var/log) off into its own partition, but that's really overkill for a stable, personal system, IMO.
computer isn’t a dino that can’t handle it.
I feel personally called out by this statement!
Seriously, the big one for me, is that I like having drive encryption. It protects my computer and data should it fall into the hands of, say, burglers. I also like turning it up to the elevens simply because I'm a bit TOO paranoid. You really need more than 1GB of ram to do argon2id key derivation, which is what fde is all moving to for unlocking purposes, and BIOS just can't do that. My main workstation is using a powerful, but older mobo with gigabyte's old, horrid faux EFI support.
Another good one for the security-conscientious person is Secure Boot, meaning that you control what kernels and bootloading code is allowed to boot on your computer, preventing Evil Maid-type attacks: https://wiki.ubuntu.com/UEFI/SecureBoot
That's pretty far fetched, but maybe not too out of the question if you, say, work for a bank or accountant.
Of course none of that matters if you don't practice good operational security.
https://en.wikipedia.org/wiki/Bus_factor is a thing that any GOOD project or IT department considers. How many of your staff can you afford to lose if they all happen to be travelling in the same bus, on their way to eat at the same place for lunch when an asteroid inevitably punches through said bus and/or diner.
'Hit by an asteroid' is a little unrealistic. Sentenced to prison for 15 to Life has happened in the Open Source community at least once before. The project I linked to had a Bus Factor of about one. It's now 'old code using outdated APIs' and is considered obsolete.
I've personally seen legal and criminal issues for a single individual cripple IT departments before, meaning their bus factor was also way too low. I've been on trips that have been rudely interrupted by screaming executives when I came down out of the mountains into cell range because I was the only bus factor left on certain systems. Natural disaster, such as hurricanes, wildfires, and floods are very serious existential threats to even the largest of organizations.
Since Linux seems to be a good project, I can't imagine that the discussion hasn't been had, in public or in private. Millions of individuals and dozens upon dozens of big corporations depend on Linux, Open source and otherwise. If the bus comes for core maintainers or project leaders we have at least SOME backup.
"Here's something I made for my school work. It occurs that it might be useful to others in my line of study."
WTG! You just EXEMPLIFIED the open source ethic!
My favorites:
Mono:
https://github.com/be5invis/Iosevka
Period. Full stop. A line of nothing but exclamation points. The Iosevka family blows every other mono-width font out of the water with at LEAST one, if not more, of its extremely customizable variations.
F/W:
https://fonts.google.com/specimen/Comfortaa
This almost seems like a good idea... if unicode weren't already shaky enough.
UTF-8 is, honestly, pretty amazing. It lets you do things like compose latin-character text, and then interpose words like 𰻞.
That's 'biáng', which is, to my understanding, a kind of Chinese noodle dish. It's apparently the most complex Chinese character, comprising more than 50 strokes. (https://www.compart.com/en/unicode/U+30EDE).
In hex it's encoded as: 0xF0 0xB0 0xBB 0x9E
So, yeah, only 8 bytes to describe a character that looks like white noise to me unless I zoom WAY in on it! (My vision's getting pretty bad, tbh. I need it to be about the size it shows up on compart.com to make out the individual radical characters.)
If you were to count strokes on 'biáng', you end up with 5 bytes to encode 11 pen strokes or 2.2 strokes per byte. At 8 bytes to 57 pen strokes, the information density goes up to 7.125 strokes per byte.
So in Latin characters provided by UTF-8, you end up with very similar storage requirements. To encode the much more complex character, you get more than 3 times the information density.
I will never not be impressed with people who get themselves off drugs and have endless respect for that.
Manjaro was NOTHING but problems when I installed it.
I am offended by snaps. I feel they're a disingenuous attempt to control the FOSS ecosystem.
I am OFFENDED by content blocking and policing. It's a very blatant attempt to keep kids from getting important healthcare information. It ends up spreading disease and creating miserable people.
I, personally, think that many rabbis would be offended at making a symbol the focus of your worship, and that a certain rabbi in particular would be perhaps more than offended if you made the particular gibbet they nailed him to the focus of your worship.
This. My spouse is working on an online business and needed a laptop to carry around to do inventory with. I happen to have an old Asus 32-bit Celeron netbook collecting dust, so I gave it a bit of a wipedown, installed the latest version of Debian with XFCE on it, and let them install what they needed from there.
So if you get a 64-bit machine AT ALL, it will absolutely run the latest versions of Linux.
(Why is this a thing?
Lots of computers in industry are very low-spec. They use less power and have fewer requirements. As long as there are people who use that hardware and/or are willing to port fixes and new kernel features to it, it'll keep getting updates. You only run into the 'dropped compatibility' thing when really no one is using it.)
I'm always nervous when hearing about new filesystems since a certain high profile news incident a several years back.
I really, really, really hope that Kent Overstreet has a really good relationship with any partner or spouse he may or may not have.
There are a couple factors that play into future-planning. The first, and most important factor is that most people neither care what OS their hardware uses or actually need more than the barest baseline. They want to spend time with their friends doing the things their friends are doing.
This is what has allowed Android to gain such massive prominence in the mobile space. It's all that's needed to play crap web games, listen to music, watch videos, and commune on social media. Expect more and more consumer hardware to be ARM-based devices running Android for the next few years.
The next big factor is that Linux has become a sort of driver dumping ground for reputable hardware manufacturers. Want to sell a piece of hardware? Better make damn sure it's got Linux driver support so that it can be part of an Android device. This means that more manufacturers are contributing drivers and code to the rest of Linux. It doesn't necessarily mean that code that works with Linux is going to be open source or play well with others. nvidia has proven to be an absolute bastard in this regard.
I don't think that means the future for Linux is going to be dim. I do think we need to expect and plan for more corporate presence. Some of that presence will be good. It doesn't take much to be a good member of the community. However, we do need to keep our collective eyes out for nvidia-like presences that will only serve to anchor everyone else down.
Where I'd personally LIKE to see Linux going is to provide more power to older hardware. We have a wealth of hardware that's in the 10-20 year-old range that can be doing useful work. The problem there is maintainership. It's harder to get volunteers to work with older hardware. If you can get people to work on supporting that hardware, it means fewer PCBs in landfills and more doing hobbyist or scientific work.
In the 'modern' Desktop Linux space, I'd like to see a renewed focus on privacy. I'd like to see privacy features baked into the kernel alongside security features. In a lot of cases those are the same feature.
Start with Mint or Pop!OS. I'm not familiar with the Surface hardware, but Mint, in particular, seems to make driver handling a breeze. I'm very comfortable recommending Mint to folks new to Linux.
The last version of PS I seriously spent time to try to get working on WINE was CS2, which is now 'EOL' according to Adobe. It's quite a few years old at this point, so things may be different with newer versions.
There are technical issues, which may have changed since, like PS's scratch file handling. Adobe stuff in general tends (tended) to simply ignore the fact that modern operating systems all do swap files or partitions and do all their own virtual memory. WINE just didn't work well with this approach, and various memory-related errors were common, especially when working with larger files.
The single biggest issue for me actually working with the painting tools was WINE tended to vomit when PS wanted to display any kind of hardware-accelerated cursor on screen, like for most painting brushes. Selection tools tended to be okay, but my experience was that when you wanted a painting brush, WINE would simply not render what PS was trying to do, even for things as simple as the round brush outline.
Open-Source-Software
chb's list of preferred open source software -- This list is available at https://github.com/chunkyhairball/Open-Source-Software
Operating Systems
On operating systems, I like either super-reliable, never breaks, never crashes.... or something that's great to tinker with. I don't really care for the in-between options so much.
Debian Linux - https://www.debian.org/
Debian is one of the very first Linux distributions, and features EXHAUSTIVE testing and amazing stability. If I had to provision a server, Debian would be my first choice.
Linux Mint https://linuxmint.com/
Mint is derived from Debian via Unbuntu. It's not quite as stable as Debian, but that's like saying quartz isn't as hard as diamond. If a personal machine needs to be up and available to work on, I'd recommend Mint every time.
EndeavourOS https://endeavouros.com/
Endeavour is currently my daily driver simply because it occupies a sweet-spot of ease of use and tinkerability. It's derived from Arch Linux and uses the fantastic pacman/libalpm package-manager, which includes mkpkg.
Arch Linux https://archlinux.org/
Despite all the memes to the contrary, Arch Linux is not the cool Linux OS. It's a great OS for learning what the individual parts do and how to configure them to get exactly what you want. Importantly, the Arch Wiki is one of the single best resources for Linux configuration available: https://wiki.archlinux.org/ (Also, check the Gentoo wiki: https://wiki.gentoo.org/wiki/Main_Page )
Artix Linux https://artixlinux.org/
Artix Linux is a rolling-release distribution, based on Arch Linux. >It uses real init systems, because PID1 must be simple, secure and stable. > Artix is an Arch-based distribution that eschews the popular systemd init system in favor of less complex systems like runit and s6. Like Arch, it's got great tinkerability.
OpenWRT https://openwrt.org
OpenWRT is aimed at embedded devices, and, in particular, ARM-based routers and firewalls. It's fantastically configurable, but also rock-solid stable. If you use the internet, you NEED a firewall, and it probably needs to be running OpenWRT.
Cinnamon Desktop Environment - https://github.com/linuxmint/cinnamon
>Cinnamon is a Linux desktop that provides advanced innovative features and a traditional user experience. The desktop layout is similar to Gnome 2 with underlying technology forked from Gnome Shell. Cinnamon makes users feel at home with an easy-to-use and comfortable desktop experience.
(chb's notes: Desktop preference is a very charged topic, almost as much as preferred text editor. Cinnamon is not perfect, but, for me, it's the only Linux GUI DE that doesn't make me want to rip my hair out. Before Cinnamon, I worked with Linux at the command prompt, period. It works intuitively and allows for reasonable customization. Cinnamon comes by default with the excellent Nemo file manager.)
Media
gThumb - https://wiki.gnome.org/Apps/Gthumb
gThumb is an image viewer and browser for gtk environments with robust organization and image management features. It was originally a fork of Geeqie (https://www.geeqie.org/)
Inkscape - https://inkscape.org/
>Inkscape is a Free and open source vector graphics editor for GNU/Linux, Windows and macOS. It offers a rich set of features and is widely used for both artistic and technical illustrations such as cartoons, clip art, logos, typography, diagramming and flowcharting. It uses vector graphics to allow for sharp printouts and renderings at unlimited resolution and is not bound to a fixed number of pixels like raster graphics. Inkscape uses the standardized SVG file format as its main format, which is supported by many other applications including web browsers.
(chb's notes: Inkscape is one of those 'Best of Breed' applications that all other open source applications should look up to since it blows similar closed apps out of the water. Inkscape does one thing, vector drawing, and does it blindingly well.)
MComix - https://sourceforge.net/p/mcomix/wiki/Home/
>MComix is a user-friendly, customizable image viewer. It is specifically designed to handle comic books (both Western comics and manga) and supports a variety of container formats (including CBR, CBZ, CB7, CBT, LHA and PDF)
mpv - https://mpv.io/
>mpv is a free (as in freedom) media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types.
yt-dlp - https://github.com/yt-dlp/yt-dlp
>yt-dlp is a youtube-dl fork based on the now inactive youtube-dlc. The main focus of this project is adding new features and patches while also keeping up to date with the original project.
(chb's notes: If you weren't familiar with yt-dlp or youtube-dl, it's a command-line utility to download videos from YT and MANY other sites. GUI front ends exist, but I use it primarily from the command-line and as an add-on for mpv. I download music and videos for later viewing because who knows when your internet is going to go out, or those videos just disappear forever.)
gallery-dl - https://github.com/mikf/gallery-dl
>gallery-dl is a command-line program to download image galleries and collections from several image hosting sites. It is a cross-platform tool with many configuration options and powerful filenaming capabilities.
Intertubes
Librewolf - https://librewolf.net/
>This project is a custom and independent version of Firefox, with the primary goals of privacy, security and user freedom. LibreWolf is designed to increase protection against tracking and fingerprinting techniques, while also including a few security improvements. This is achieved through our privacy and security oriented settings and patches. LibreWolf also aims to remove all the telemetry, data collection and annoyances, as well as disabling anti-freedom features like DRM.
Gaming
Retroarch - https://www.retroarch.com/
>RetroArch is a frontend for emulators, game engines and media players. It enables you to run classic games on a wide range of computers and consoles through its slick graphical interface. Settings are also unified so configuration is done once and for all.
(chb's notes: Retroarch's setup and config is a PAIN. It's playlist-based console ROM selection is very counter-intuitive. However, once you do get it set up and configured, it's pretty amazing. If there's an emulator available for whatever console game you want to play, Retroarch will absolutely handle it.)
Utilities
Baobob - https://apps.gnome.org/app/org.gnome.baobab/
> A simple application to keep your disk usage and available space under control. Disk Usage Analyzer can scan specific folders, storage devices and online accounts. It provides both a tree and a graphical representation showing the size of each folder, making it easy to identify where disk space is wasted.
(chb's notes: Baobob is already part of many default GTK-based Linux installs. If you see a 'Disk Usage Analyzer' in your launcher, it's probably Baobob.)
Bulky - https://github.com/linuxmint/bulky
>Bulky is used to rename files and directories.
Bulky is a bulk file renamer from the Linux Mint team. It allows you to rename multiple files based on several different conditions and with different patterns. It's very useful for, say, managing media collections, photographs, or the like.
Gnome Disk Utility - https://wiki.gnome.org/Apps/Disks
>A GNOME utility for dealing with storage devices.
Gnome Disk Utility, often installed by default as 'Disks' in many Linux distributions, is an application for handling physical disks and disk images. It can be used to mount disks, format, create disk images, or otherwise maintain any of the above.
(chb's notes: This is the best piece of software ever ripped off from Apple.)
GtkHash https://github.com/tristanheaven/gtkhash
>GtkHash is a desktop utility for computing message digests or checksums. Most well-known hash functions are supported, including MD5, SHA1, SHA2 (SHA256/SHA512), SHA3 and BLAKE2.
(chb's notes: An important part of the Linux ecosystem is the fact that we can verify the authenticity and correctness of downloads and any other file on our system with cryptographic hashes. Most of the time, with your package manager, this happens automatically. Sometimes you need to do it manually. GtkHash is what I use for that. Additionally, it integrates pretty seamlessly into Nemo and other GTK-based file managers.)
kitty - https://sw.kovidgoyal.net/kitty/
kitty is a feature-rich terminal emulator that takes advantage of OpenGL hardware video acceleration. It's capable of displaying images, 32-bit color, Unicode emojis and a lot more.
alacritty - https://alacritty.org/
alacritty is a very fast terminal emulator written in Rust.
htop - https://htop.dev/
htop is a cross-platform, interactive process viewer. It is a text-mode application for consoles or terminals.
btop++ - https://github.com/aristocratos/btop
btop++, like htop, is a text-mode, interactive process viewer with a highly configurable interface and an aesthetic user interface.
(chb's notes: btop is pretty bloat!)
Qalculate! - https://qalculate.github.io/
>Qalculate! is a multi-purpose cross-platform desktop calculator. It is simple to use but provides power and versatility normally reserved for complicated math packages, as well as useful tools for everyday needs (such as currency conversion and percent calculation).
(chb's notes: Qualculate! comes in command-line, GTK, and Qt versions. You'd want to use the Qt version if you're also using KDE. I find myself having bound a lot of features to command-line aliases and using it there more than via the GUI.)
Fonts
Iosevka - https://typeof.net/Iosevka/
>Iosevka is an open-source typeface family, designed for writing code, using in terminals, and preparing technical documents.
Comfortaa - https://fonts.google.com/specimen/Comfortaa
>Comfortaa is a rounded, geometric, sans-serif type design intended for large sizes. It is absolutely free, both for personal and commercial use.
(chb's notes: As the name suggests, Comforta's rounded glyphs are very low-stress and comforting. It's very comfy.)
Raleway - https://fonts.google.com/specimen/Raleway
>Raleway is an elegant sans-serif typeface family. Initially designed by Matt McInerney as a single thin weight, it was expanded into a 9 weight family by Pablo Impallari and Rodrigo Fuenzalida in 2012 and iKerned by Igino Marini. A thorough review and italic was added in 2016.
Rowdies - https://fonts.google.com/specimen/Rowdies
>Rowdies is a Latin display typeface inspired by the rough & tough Indian action cinema. Roughness and oddness of each individual letter contribute collectively as a typeface to the fantasy of being bold, fearless and strong. Designed by Jaikishan Patel for action, drama, adventure, thriller, noir & crime genres of storytelling.
(chb's notes: Rowdies is AESTHETIC. I use it for game splash text.)
System
VirtualBox - https://www.virtualbox.org/
>VirtualBox is a powerful x86 and AMD64/Intel64 virtualization product for enterprise as well as home use.
QEMU- https://www.qemu.org/
>QEMU is a generic and open source machine emulator and virtualizer.
(chb's notes: VirtualBox vs. Qemu. Yeah. This is a charged subject. When it comes to actual virtualization, Qemu does a better job. VirtualBox's config is FANTASTICALLY better, IMO, especially when it comes to Network handling. If you use Qemu, get ready to install some drivers and hunt for cryptic configs if you need the niceties.)
ufw & gufw - https://gufw.org/
ufw is the uncomplicated firewall interface for iptables, allowing quick firewall administration on Linux. gufw is ufw's graphical front-end
s6 - https://skarnet.org/software/s6/ & https://www.skarnet.org/software/s6-linux-init/
>s6 is a small suite of programs for UNIX, designed to allow process supervision (a.k.a service supervision), in the line of daemontools and runit, as well as various operations on processes and daemons. It is meant to be a toolbox for low-level process and service administration, providing different sets of independent tools that can be used within or without the framework, and that can be assembled together to achieve powerful functionality with a very small amount of code.
(chb's notes: It's a good idea to use s6 as part of a Linux distribution that has already integrated it, such as Artix Linux: https://artixlinux.org/ . I don't recommend using this on distributions that use systemd)
Programming
Ruby - https://www.ruby-lang.org/en/
>Ruby is a dynamic, open source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write. Ruby is an interpreted language with duck typing (https://en.wikipedia.org/wiki/Duck_typing).
Crystal - https://crystal-lang.org/
>Crystal is a statically typed (https://en.wikipedia.org/wiki/Type_system#Static_type_checking), compiled programming language with syntax heavily inspired by Ruby’s, so it feels natural to read and easy to write, and has the added benefit of a lower learning curve for experienced Ruby devs.