• 19 Posts
  • 393 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle

  • Okay:

    You don’t have to deal with scripting and command-line stuff, but all the major tinkering under the hood depends on it. The amount of customisation and tinkering is fairly infinite, so past a certain point you just can’t build graphical stuff to cover every single possible choice - and that’s where the gibberish comes in.

    Baseline concepts:

    ‘Operating system’ means different things in different contexts, and this can be confusing.


    Context 1: technically correct

    Your computer has a big chip that runs programs, and a bunch of hardware that actually-does-stuff: network card, graphics card, disk drive, mouse, keyboard etc. Programs need to talk to the hardware and make it do stuff, or else they don’t actually… do… anything.

    There’s two problems with that:

    There’s a gazillion kinds of hardware out there, that all has its own language for talking to it, and your program would either only run on one EXACT set of hardware, or it would have to speak all gazillion languages and be too big to fit on your machine.

    The second problem is that in order to do more than one thing at a time, you need a bunch of programs all running at once, and they all need to use the hardware, and without something to coordinate the sharing, they’ll all just fight over it and everything falls down in a tangled heap.

    A good analogy for this is a restaurant. They aren’t just public kitchens where you can just wander in and start preparing your own meal, taking ingredients/equipment/space however you want, then just carry it to whatever table takes your fancy - and you definitely can’t have all the customers doing it at once. Especially if they don’t know how all the equipment works, where the different ingredients are kept, etc - it would be an absolute disaster, and there would be fights, injuries, fire and food poisoning.

    So instead there’s an agreed-upon system with rules, and people that do the cooking for you. You make a reservation or queue at the desk, you are told which table you can have, you go sit there and a waiter brings you a menu. You pick the food - and depending on the place, maybe ask for customisation - then wait and they bring it out to you, then you sit there, eat it, then leave.

    That system-with-rules is the operating system, or more specifically the operating system kernel. Any time a program wants to do more than think to itself, it has to asks the OS to do it, and bring it the results.

    In this analogy, fundamentally different operating systems (windows / linux / OSX / android / etc) would be like different kinds of (5-star / sushi-train / pizza place / burger joint / etc) that have different rules and expectations and social-scripts to interact with them. A program written for one OS would have no idea how to ask a different OS for what it wanted, and wouldn’t be able to run there.


    Context 2: what people usually mean

    It’s all well and good to have a machine that can run programs and do things, but the human sitting in front of it needs to be able to interact with the thing, so you can poke buttons and move files around and move windows and stuff.

    And so there needs to be a crapton of programs all working with each other on the thing to provide all this functionality, and the whole user experience - preferably with a consistent design language and general expectation of how everything should work: you need a desktop environment.

    In restaruant terms, this would be the specific brand/franchise/corporate-culture that runs the place. Yes, the general idea is that it’s a burger joint, but specifically it’s a mcdonalds, or a wendy’s, or whatever that homophobic chickenburger place is called - it’s got the decor, it’s got the layout, it’s got the specific combo meals, etc etc, the same uniforms, the same staff policy, etc.

    Now here’s the thing:

    Let’s say there’s only one sushi franchise in the world. That’s like Windows - there’s updates new versions and some slight variations (server versions aside), but you walk into one, you’ve walked into them all. There’s one Windows kernel, and one windows desktop environment that goes with it.

    And say there’s only one pizza-place franchise in the world, and they all look the same, have the same menu. That’s like OSX: there’s one kernel, and similarly one OSX desktop enviroment to go with it. A mac is a mac, and it does mac things.

    But linux… linux is different. With Linux, it’s there’s 900 different burger-joint franchises in the world, and literally anyone can go start a new one if they want to put the time into designing one from the ground up. The paradigm is the same - order at the counter at the back, menus on the wall overhead, grab bench seating wherever or get it to go - but every place can design the look and feel, the menu, the deals, the other amenities, the staffing structure, etc.

    And the different franchises - that’s what distros are.

    It’s the set of programs all working together that create a whole working enviroment, but everything uses the standard kernel to actually get stuff done. If your program can run in one linux distro, then it should be able to run in a different one, because your program uses the same standard set of requests in order to do things.

    The windows and the menus and the desktop apps and the way the interface behaves and how you configure everything can be different, but the core functionality that the software uses, is the same.


    Now, for the most part, Windows is like NO USER-SERVICEABLE PARTS INSIDE, all the fiddly internal bits are carefully hidden away and made deliberately opaque. You don’t need to know, we don’t want to tell you, we’ll let you change the wallpaper, but for everything else, we decide how it’s wired up. If you want it to do things slightly differently to suit your own workflow, tough.

    Macs are kind of the same deal: for the most part it’s no-touchee, you’ll break stuff. Just push the very shiny buttons and be happy that everything Just Works ™.

    But Linux… doesn’t seal anything in plastic. All the gubbins are not only there on display, they’re mostly all human-readable and human-tinkerable with. Instead of mysterious monolithic chunks of software communicating with each other via hidden channels, with configuration in databases you don’t get to see… it’s mostly scripts you can read and tinker with, and plain-text config files you can edit, all writing useful details in highly-visible log files that you can read through when things don’t do what they’re supposed to.

    Now with a lot of distros, you absolutely can just push buttons and treat the thing like a Windows box, and never have to tinker with the fiddly bits. You’ve got a browser, you’ve got apps, you’ve got games, it just does the thing. But if you want to start getting technical, you absolutely can - unlike windows or mac.

    But this very ability to configure and tinker and patch bits on - and the fact that most distros don’t have a gigantic microsoft-sized coordinated team all following one shared vision, but are wired together like a kind of junkyard frankenstein from thousands of separate teams as a labour of love - means that occasionally you will need to get technical to deal with small annoyances or use-cases they didn’t think of.




  • I spent about 20 years getting stuck in the past while the culture got away from me; I just hadn’t got into any bands since the early 2000s, and it was getting pretty sad.

    I also have pretty bad ADHD - music fucks up my ability to concentrate on language-based tasks, so I can’t just play stuff in the background while I do something else - and sitting there staring through multiple songs in a row just isn’t going to happen.

    So I had a great idea: turn it into a game.

    I nuked my youtube data completely, started again from scratch, and set out, not so much to discover new music, but to train the algorithm to fetch me cool stuff. How well can I nudge the thing into a model of stuff I tend to like?

    • Open the home feed, and start going through it
    • Reaction videos, influencers, other garbage, hit don’t recommend channel.
    • Any music videos, open in new tab
    • Rinse and repeat until I have a ridiculous number of tabs open
    • Go through each tab:
    • Skip through representative chunks of song, get at least 20 seconds of music in before making a decision
    • If you just don’t like it, close the tab and move on.
    • If you do like it:
    • If it’s not posted by the original artist account, go find the original instead if possible.
    • Hit like
    • Save to playlists for whatever genres it seems to fit, plus a catch-all list (set public, for reasons I’ll explain)
    • Open a few new tabs off the sidebar
    • If you find three solid bangers from one artist, subscribe.
    • When you run out of tabs, refresh the home feed.

    It’s adjustable to suit my attention span at the time - if I need the dopamine I just skim more, if I want to chill I let it play longer.

    It fits into spare minutes of downtime at work etc.

    I have discovered SO MUCH amazing new music, and my tastes have expanded in all kinds of directions. I’ve started not only recognizing but actually having opinions on bands I see on posters as I walk down the street, which is just plain ridiculous for me.

    I have gone down some weird and amazing rabbit holes, from Armenian music to Femtanyl.

    Probably the best thing I’ve ever done, srsly.

    Sometimes the algorithm can get stale, and you end up with a streak of bland, safe stuff that all seems the same.

    When this happens, find one of the many third-party playlist-shuffle sites (because the built-in shuffle is still horribly broken), and feed it either your main playlist or some of the genre-specific ones you feel aren’t getting enough love, and listen through a bunch of songs there to dredge up the silt. (you may need to open them in separate tabs; the embed doesn’t always update your watch history properly). And this is why the lists need to be public, so third-party sites can browse your playlists.










  • When my kid started out using the internet, it was over-the-shoulder supervision to start out, then slowly dropping to in-the-room supervision (the PC in the living room), and progressively less over time, with the clearly stated proviso that I would occasionally be glancing over history just to make sure he wasn’t getting caught up in anything horrible, but that I wouldn’t be going into any kind of detail. At 13, he got his own PC in his room, and I left him to it.

    I’m a very firm believer that you don’t attempt technical solutions to administrative problems. Privacy is important and monitoring is shit. You equip your kid with the tools and the supervised-experience to make good decisions, and once they can balance by themselves you let go of the bike.

    Teach them to do dangerous things safely, that’s parenting in a nutshell.

    (actually to clear up a misconception: to teach a kid to ride a bike, you hold the shoulders, not the bicycle. With the extra feedback they can actually compensate and learn to balance; if you hold the bike itself it just weirdly fights them and their cerebellum never gets it)