• 0 Posts
  • 64 Comments
Joined 11 months ago
cake
Cake day: December 6th, 2024

help-circle
  • At times that shit is pretty much the opposite of what should be done.

    Fail Fast is generally a much better way to handle certain risks, especially those around parts of the code which have certain expectations and the code upstream calling it (or even other systems sending it data) gets changed and breaks those expectations: it’s much better to just get “BAAM, error + stack trace” the first time you run the code with those upstream changes than have stuff silently fail to work properly and you only find out about it when the database in Production starts getting junk stored in certain fields or some other high impact problem.

    You don’t want to silently suppress error reporting unless the errors are expected and properly dealt with as part of the process (say, network errors), you want to actually have the code validate early certain things coming in from the outside (be it other code or, even more importantly, other systems) for meeting certain expectations (say, check that a list of things which should never be empty is in fact not empty) and immediatly complain about it.

    I’ve lost count how many times following this strategy has saved me from a small stupid bug (sometimes not even in my system) snowballing into something much worse because of the code silently ignoring that something is not as it’s supposed to be.


  • Yeah, that’s much better.

    Personally I detest not understanding what’s going on when following a guide to do something, so I really dislike recipe style.

    That said, I mentioned recipes because recipes meant to be blindly followed are the style of guide which has the lowest possible “required expertise level” of all.

    I supposed a playbook properly done (i.e. a dumbed down set by step “do this” guide but with side annotations which are clearly optional reading, explaining what’s going on for those who have the higher expertise levels needed to understand them) can have as low a “required expertise level” as just a plain recipe whilst being a much nicer option because people who know a bit more can get more from it that they could from just a dumbed down recipe.

    That said, it has to be structured so that it’s really clear that those “explanation bits” are optional reading for the curious which have the knowhow to understand them, otherwise it risks scaring less skilled people who would actually be able to successfully do the taks by blindly following the step-by-step recipe part of it.


  • For “all documentation” to “cater to all levels” it would have to explain to people “how do you use a keyboard” and everything from there upwards, because there are people at that level hence it’s part of “all levels”.

    I mean the your own example of good documentation starts with an intro of “goals” saying:

    “Visual Studio (VS) does not (currently) provide a blank .NET Multi-platform Application User Interface (MAUI) template which is in C# only. In this post we shall cover how to modify your new MAUI solution to get rid of the XAML, as well as cover how to do in C# code the things which are currently done in XAML (such as binding). We shall also briefly touch on some of the advantages of doing this.”

    For 99% of people almost all that is about as understandable as Greek (expect for Greek people, for whom it’s about as understandable as Chinese).

    I mean, how many people out there in the whole World (non-IT people as illustrated in the actual article linked by the OP) do you think know what the hell is “Visual Studio”, “.Net”, “Multi-platform Application User Interface”, “template”, “C#”, “XAML”, “binding” (in this context).

    I mean, if IT knowledge was a scale of 1 to 10 with 10 the greatest, you’re basically thinking it’s “catering to all levels” when an explanation for something that is level 8 knowledge (advanced programming) has a baseline required level of 7 (programming). I mean, throw this at somebody that “knows how to use Excel” which is maybe level 4 and they’ll be totally lost, much less somebody who only knows how to check their e-mail using a browser without even properly understanding the concept of "browser (like my father) which is maybe level 2 (he can actually use a mouse and keyboard, otherwise I would’ve said level 1).

    I think you’re so way beyond the average person in your expertise in this domain that you don’t even begin to suspect just how little of our domain the average person knows compared to an mere programmer.


  • The more advanced the level of knowledge on something the more foundation knowledge somebody has to have to even begin to understand things at that level.

    It would be pretty insane to in a tutorial for something at a higher level of expertise, include all the foundational knowledge to get to that level of expertise so that an absolute beginner can understand what’s going on.

    Imagine if you were trying to explain something Mathematical that required using Integrals and you started by “There this symbol, ‘1’ which represents a single item, and if you bring another single item, this is calling addition - for which we use the symbol ‘+’ and the count of entities when you have one single entity and ‘added’ another single entity is represented by the symbol ‘2’. There is also the concept of equality, which means two matematical things represent the same and for which the symbol we use is ‘=’ - writting this with Mathematical symbols, ‘1 + 1 = 2’” and built the explanation up from there all the way to Integrals before you could even start to explain what you wanted to explain in the first place.

    That said, people can put it in “recipe” format - a set of steps to be blindly followed without understanding - but even there you have some minimal foundational knowlegde required - consider a cooking recipe: have you ever seen any that explains how does one weight ingredients or what is “boiling” or “baking”?

    So even IT “recipes” especially designed so that those with a much lower level of expertise than the one required to actually understand what’s going on have some foundational knowledge required to actually execute the steps of the recipe.

    Last but not least I get the impression that most people who go to the trouble of writting about how to do something prefere to do explanations rather than recipes, because there’s some enjoyment in teaching about something to others, which you get when you explain it but seldom from merely providing a list of steps for others to blindly follow without understanding.

    So, if one wants to do something way above the level of expertise one has, look for “recipe” style things rather than explanations - the foundational expertise required to execute recipes is way lower than the one required to undertand explanations - and expect that there are fewer recipes out there than explanations. Further, if you don’t understand what’s in a recipe then your expertise is below even the base level of that recipe (for example, if somebody writes “enter so and so in the command prompt” and you have no fucking clue what a “command prompt” is, you don’t meet the base requirements to even blindly follow the recipe), so either seek recipes with an even lower base level or try and learn those base elements.

    Further, don’t even try and understand the recipe if your expertise level is well below what you’re trying to achieve: sorry but you’re not going to get IT’s “Integrals” stuff if your expertise is at the level of understanding “multiplication”.



  • Try Lutris - it integrates with the GOG store so will fetch and install the games from there, with proper scripts to configure Wine so that the game just works with no extra configuration (i.e. with works like the Steam launcher does for the Steam store).

    I believe Heroic Launcher does the same, but I’ve just settled down to use Lutris and Steam so never go around to test Heroic.


  • If the post was about themselves, saying “I am queer” is fine IMHO (as would’ve been to say “I am straight” or imply it for example by saying “I’m a man” and “I have a wife”) as that’s about that person so sharing what they feel defines them as person is the whole point and restricting mentions of one’s sexual orientation there is at best idiotic.

    Had it been on a post about something Canonical or Ubuntu, in my view mentioning one’s sexual orientation would probably not have been appropriate, mainly because it would be raising an irrelevant and (sadly, in the present day) ideologically charged subject, same as it would be inappropriate to mentioning one’s political allegiance in the same context.

    All in all I hope the moderator who made that mistaken moderation action has been taught the difference and been alerted to how their own internal biases are leaking into the professional sphere, which they shouldn’t.


  • I see, with your clarification that does make more sense.

    Frankly I would’ve rather have avoided Intel because, well, they’re Intel, but from what I saw when I looked around, the N100 was an x86 designed for that kind of use, had far more computing power than the dissapointing cheap ARM based Android TV boxes I had tried before (I’ve been using TV Boxes for since well before they were common and the last one was so old that it couldn’t handle newer media anymore, so I started looking around and first tried replacing with with a cheap Android TV box) and I could get a Mini-PC for roughly the same price as a good Android TV box for making my own thing fully under my control (i.e. Linux with my chosen media player and services, rather than a closed Android riddled with bloatware), so I went for it and am happy with the result.

    As for desktop environment, in practice the thing just runs Kodi all the time as the frontend, hence is perfect for controlling with a remote, like the one I linked in my original post. Any linux style kind of management I do remotelly from another computers, either from the command line via SSH or via web interfaces. In practice whilst I do have a keyboard and mouse connected to it, they’re very rarelly used.

    I later found out that using LibreELEC (a whole Linux distro meant specifically for use as a TV box were Kodi is the frontend) would probably have been an optimal choice for a TV box rather than starting from a light ubuntu variant and customizing it myself, plus LibreELEC would’ve worked just as well on an ARM based SBC (something like an Orange Pi 3) which would’ve been cheaper and would’ve used even less power. That said, I had intended from he start to hang more services from that box (for example, I wanted to replace the NAS “solution” I had in place using my router, which only supported SMBv1) so starting from a more generic Linux distro probably made more sense that using a TV Box specific light distro.

    The thing is a bit of a Frankenstein monster on the inside but doesn’t at all look like it when used in my living room to play media on the TV.


  • If the thing is not meant to use as a Desktop, why load it with heavier applications that aren’t delivering anything useful?

    No matter how efficient a core is at most tasks, it can’t beat the power savings of not actually running needless code.

    My homemade TV Box isn’t running a lightweight desktop because I had to “limit myself”, it’s running one because I’m not losing anything by not having that which I don’t use and if that even just saves a few Watts a week, it still means I’m better off, which is satisfying as I like to design my systems to be efficient.

    For fancy Linux Desktop things I have an actual Desktop PC with Linux - the homemade TV Box on my living room is only supposed to let me watch stuff on TV whilst I sit on my sofa.

    Further, there are more than one form of efficiency - stuff like the N100 (and even more, the ARM stuff) are designed for power consumption efficiency, whilst desktop CPUs are designed for ops-per-cycle efficiency, which are not at all the same thing: being capable of doing more operations per cycle doesn’t mean something will consume less power in doing so (in fact, generally in Engineering if you optimize in one axis you lose in another) it just means it can reach the end of the task in fewer cycles.

    For a device that during peak use still runs at around 10% CPU usage, having the ability to do things a little faster doesn’t really add any value.

    Even the series 4000 Zen2 being more optimized for power consumption is only in the context of desktop computers, a whole different world from what the N100 (and even more things like ARM7) were designed to operate in, which is why the former has a TDP of 140W and the latter of 15W (and the ARMs are around 6W). Sure the TDP is a maximum and hence not a precise metric for a specific use case such as using something as a TV Box, but it’s a pretty good indication of how much a core was optimized for power consumption, and 15W vs 140W is a pretty massive distance to expect that any error in using TDP to estimate how the power consumption of those two in everyday use as a TV Box compares would mean that the CPU with 140W TDP consumes less than the one with 15W.

    PS: All that said, if the use case was “selfhosting” rather than “TV Box (with a handful of lightweight services on the side)”, you suggestion makes more sense, IMHO.


  • Also, in my experience of trying Android boxes first and ending up with a Mini-PC with Linux, the Android boxes which are cheaper than basic Mini-PCs like the one with an N100 that I have, are underpowered, and the one’s which aren’t underpowered cost about the same as the Mini-PC.

    Further, you can install all manner of services running on the background on the Linux machine: mine works as TV Box with Kodi as the frontend that’s displayed on my TV, but it’s also working as my home NAS and runs a bittorrent server with a web interface on top of an always on VPN, all of which uses very little of its computing power. I manage the “linuxy” stuff remotely via web-interfaces and SSH whilst in the living room were it is I actually have a remote for it and use it just like a regular TV Box.

    This in addition to as you pointed out the Android stuff being locked down and often bloated.

    I really would advise people against an Android TV box, but if one really wants the lower consumption of those (they do consume half as much power as my Mini-PC, with TDPs around 8W or less to the Mini-PC’s 15W) best get an SBC and a box for it, and then install Libreelec on it or a full linux distro (often the manufacturers have a Linux distro for those and there’s always Armbian),


  • I use one of these which I got from AliExpress along with one of these, though of course it will work fine with mouse and keyboard.

    (Please note that I haven’t tested it specifically with a bluetooth keyboard and mouse).

    I installed Lubuntu on it because it’s a lighter distro (it will work fine with the full desktop Linux distros, but why waste computing power on fancy window managers for something that’s just a TV Box that’s always showing Kodi) and have it always turned on (the TDP of this is pretty low) with Kodi as interface and its runs perfectly.

    It’s sitting on my living room under the TV.

    It’s probably a little overpowered, but that means its fan almost never turns on (it’s pretty quiet when it does, but silence is better), so I’m also running a bittorrent server on it with an always on VPN, plus it’s my NAS. There’s room for more if I wanted.

    I don’t really understand people advising the more powerful Mini-PCs: they’re way overpowered for the job hence needlessly expensive plus the TDP of their processors is way more than the N100 in this one hence it both consumes more and is a lot less quiet because the fan has to be bigger and running a lot more often to cool that hotter processor down.

    PS: Also the downside of using old PCs for this as some recommend is their higher power consumption, even for notebooks, plus they generally don’t really look like a nice TV-Box to have in your living room, which this one does. If you’re going to run it all the time, a low TDP mini-pc will probably quickly pay itself over using an old desktop, longer if versus an old notebook.


  • Kinda reminds me this Game one plays in Theatre which is to Play The Status (you’re given a number between 1 and 10, with 1 having the lowest social status and 10 the highest, and you try and act as such a person).

    Alongside the whole chin-down to chin-up thing, people tend to do more fast and confident moving the higher the status, but the reality is that whilst indeed up the scale in professional environment the higher the status the more busy and rushed they seem, the trully highest status people (the 10s) don’t at all rush: as I put it back then (this was the UK) “the Queen doesn’t rush because for everybody the right time for the Queen to be somewhere is when she’s there, even it it’s not actually so, hence she doesn’t need to rush”.

    There was also some cartoon making the rounds many years ago about how people on a company looked depending on their social status, were you started with the unkept shabbily dressed homeless person that lived outside the vuilding, and as you went up the professional scale people got progressively more well dressed and into suits and such, and then all of a sudden a big switch, as the company owner at the top dressed as shabbily as the homeless person.





  • Well, the N100 does have a lot more breathing space in terms of computing power, so it’s maybe a better bet for something you want to use for a decade or more, and that remote control I linked to above does work fine, except for the power button (which will power your Linux off but won’t power it back on).

    I actually tried an Android TV Box (which is really just and SBC in the same range of processing power as the Pi) for this before going for the Mini PC and it was simply not as smooth operating.

    That Mini-PC has enough computing power room (plus the right processing extensions) that I can be torrenting over OpenVPN on a 1Gb/s connection whilst watching a video from a local file and it’s not at all noticeable on the video playback.


  • Kodi install instructions are here

    I don’t use docker, I use lubuntu with normal packages. So for example Kodi is just installed from the Team Kodi PPA repository (which, granted, is outdated, but it works fine and I don’t need the latest and greatest) and just set it up to be auto-started when X starts so that on the TV it’s as if Kodi is the interface of that machine.

    Qbittorrent is just the server only package (qbittorrent-nox) which I control remotelly via its web interface and the rest is normal stuff like Samba.

    After the inital set up, the actual linux management can be done remotelly via ssh.

    That said, LibreELEC is a Linux distro which comes with Kodi built-in (it’s basically Kodi and just enough Linux to run it), so assuming it’s possible to install more stuff in it might be better - only found out about it when I had my setup running so never got around to try it. LibreELEC can even work in weaker hardware such as a Raspberry Pi or some of its clones.

    Also you can get Kodi as a Flatpak which works out of the box in various Linux distros so if you need the latest and greatest Kodi plus a full-blown Linux distro for other stuff you might do the choice of distro based on supporting flatpack and being reasonably lightweight (I actually originally went for Lubuntu exactly because it uses a lightweight Window Manager and I expected that N100 mini-pc to need it, though in practice the hardward can probably run a lot more heavy stuff than that, though lighter stuff means the CPU load seldom goes up significativelly hence the fan seldom turns on and so the thing is quiet most of the time and you only hear the fan spinning up and then down again once in a while even in the Summer).

    As for docker, there are a lot of instructions out there on how to install Kodi with Dockers, but I never tried it.

    Also you might want to get a remote like this, which is a wireless remote with a USB adapter, not because of the air-mouse thing (frankly, I never use it) but simply because the buttons are mapped to exactly the shortcuts that Kodi uses, so using it with Kodi in Linux is just like using a dedicated remote for a TV Media Box - in fact all those thinks are keyboard shortcuts (that remote just sends keypresses to the PC when you press a button) and they keyboard shortcuts for media players seem to be a standard.


  • It really depends on what you’re doing with it and on what old PCs you have available.

    I have an N100 Mini-PC at home in my living room connected to my TV which is both a home server and a TV-Box using Kodi (I even have a remote for it).

    Having modern image and video decoding in hardware is pretty useful when I’m using it as a TV Box (there is zero stutter with it), whilst the rest of the time the thing mostly sits doing some low CPU-intensive server tasks (mainly torrenting and SMB server stuff).

    Also, it’s a small box that fits fine on my TV stand without standing out and runs silent pretty almost all of the time.

    Further, I don’t have any low power consuming old PCs around - the best are some chunky old notebooks, the rest are old gaming PCs which eat more power idle than the mini PC does at full load - and even the notebooks aren’t that low power as all that.

    Mind you, for many years I used an old Asus EEE PC (a very small notebook running Linux) as home file server (with external HDs) and had a separated dedicated hardware TV Media Server box playing files from it, but eventually that PC stopped working and I found out I could just use my Router as a file server.

    Last but not least, judging for how long I kept using my TV Media Server boxes (which over almost 2 decades I had 2 different ones and which as dedicated hardware could not easilly be upgraded when new video compression standards came out) 10+ years is definitelly my time-frame for using that Mini-PC.

    All this to say that you should consider using old hardware, especially if you have some around and it’s task appropriate (like I did before using an old Asus EEE PC as a home file server), but also take in account what you’re going to do it and consider if new hardware won’t be better over the timespan you will likely be using it and if the being able to get a more task appropriate form factor (like how having a little box-size Mini PC lets me have it in my living room on a TV stand next to my TV and my fiber router) is worth it.

    In summary, before you get hardware you should ponder a bit about what you intend to do with it before you decide what to get, don’t be afraid of using stuff you already have and also don’t be afraid to get new stuff if it’s actually justified by hardnosed reasons rather than merely some variant of the “new stuff smell” psychological effect when buying new.