QuazarOmega

joined 1 year ago
MODERATOR OF
[โ€“] QuazarOmega@lemy.lol 1 points 28 minutes ago

Yes, I feel like some kind of bell should ring in your brain when something needs to be commented, most often if you struggled to write out the solution or you had to do a lot of digging from various places to achieve the final resulting piece of code, it doesn't make a lot of sense to pressure yourself into thinking you should comment everything, because some knowledge has to be assumed, nowadays you could even add that if someone completely extraneous to the codebase entered without any knowledge, they could feed the parts of code they need to understand into some LLM to get a feel for what they're looking at, with further feedback from actual devs though, you never know what random bs they might write.
Good one on the variables to store results of expressions, I agree with that method, though I always forget to do that because I get so lost in the pride of writing that convoluted one-liner that I think, "oh yeah, this is perfectly beautiful and understandable ๐Ÿ˜‡", I have to check myself more on that.

complex portions in some of my projects that would appreciate similar simplification

So I'm not alone on that haha.

This is why [...] better

Sorry, what's the subject of that?

[โ€“] QuazarOmega@lemy.lol 3 points 52 minutes ago

With that many Windows (gasp) ones, no... I'm afraid you are not

[โ€“] QuazarOmega@lemy.lol 3 points 55 minutes ago

endeavors

Holy shit acknowledgement??

[โ€“] QuazarOmega@lemy.lol 2 points 1 hour ago* (last edited 1 hour ago) (2 children)

Making up an example on the spot is kinda difficult for me, but I'd look at it this way with a bold statement, you should hope that most code won't need comments. Let's exclude documentation blocks that are super ok to be redundant as they should give a nice, consistent, human readable definition of what x thing does (function, constant, enum, etc.) and maybe even how to use it if it's non-intuitive or there are some quirks with it.
After that, you delve in the actual meat of the code, there are ways to make it more self explanatory like extracting blocks of stuff into functions, even when you don't think it'll be used again, to be used with care though, as not to make a million useless functions, better is to structure your code so that an API is put into place, enabling you to write code that naturally comes out high level enough to be understood just by reading, this thing is very difficult for me to pinpoint though, because we think of high level code as abstractions, something that turns the code you write from describing the what rather than the how, but really, it's a matter of scope, a print statement is high level if the task is to print, but if the task is to render a terminal interface then the print becomes low level, opposite is also true, if you go down and your task is to put a character onto stdout, then the assembly code you'd write might be high level. What I mean to say is that, once you have defined the scope, then you can decide what level of knowledge to expect of the reader when looking at your code, from there, if some process feels fairly convoluted, but it doesn't make sense to build an abstraction over it, then it is a good place to put a comment explaining why you did that, and, if it's not really clear, even what that whole block does

[โ€“] QuazarOmega@lemy.lol 1 points 1 hour ago* (last edited 1 hour ago)

useless research for the curiousDid a bit more research, was thinking it might be a systemd service, so I checked for timers there, but there was just a countme timer enabled that basically tells the server to include you in the count of active systems (how to disable, for the paranoid ๐Ÿฅธ).
Then I went on to look at the live logs of rpm-ostree and, as found from this website used this command:

journalctl --follow --unit rpm-ostreed.service

So that I could monitor its activity while I open Discover and so I managed to record when it happens, I also saw from the logs that there is a configuration file at this path /etc/rpm-ostreed.confand that you can configure automatic updates from there, by default there a this line about it (usage greatly explained with man rpm-ostreed.conf btw):

[Daemon]
#AutomaticUpdatePolicy=none

but it's commented out, so it couldn't have been that.

Finally there is this one thing that pops up in the logs:

Initiated txn AutomaticUpdateTrigger for client(id:cli dbus:1.1625 unit:app-org.kde.discover@df0f43f8979843c0a34d36ad199c7eda.service uid:1000): /org/projectatomic/rpmostree1/fedora

So it is something triggered by Discover, as I had known already, due to other articles that talk about the integration with Discover, but I wasn't so sure about it anymore, since I couldn't find any related settings in the app.

So I found the setting that configures automatic updates in general... in the three dot menu (questionable UX decision?):

three dot menu > Configure Updates...

which actually just leads to the system settings:
Update software: automatically. Update frequency: weekly
I had this configured to be weekly, there isn't even a setting as granular as seconds, the smallest span of time is daily, but what I'm guessing is that the "Update frequency" acts on when they should be installed automatically rather than when they should be fetched, so this is a limitation of the system as I understand it

 

I'm using Fedora Kinoite and there's this little issue that has been bugging me to no end, whenever I want to see what updates have been found for my apps and their changelogs I start scrolling there, but every few seconds, say 20, the page will refresh and look for updates again, so it interrupts my reading and resets the scrolling position I was at, so I have to wait there to finish refreshing, jump to where I was and speed-read that piece of text before it refreshes once again and I'm thrown back to square one.
I was wondering if there is any setting to control how often Discover auto-refreshes, maybe set it to only manually refresh instead, but there doesn't seem to be anything in the Settings tab.
Is there a solution or is this a bug?

[โ€“] QuazarOmega@lemy.lol 2 points 2 weeks ago

Will do, hopefully there is one

[โ€“] QuazarOmega@lemy.lol 2 points 2 weeks ago (1 children)

That is insanely cool, but isn't it even more manual? ( ยฐใƒฎยฐ แต•)

[โ€“] QuazarOmega@lemy.lol 7 points 2 weeks ago

You were far ahead of professors that make you write it out with pen and paper

 

cross-posted from: https://lemy.lol/post/30887473

I sometimes play games and also open my music player, but the sound from the game drowns out the music, so I need to go into the sound mixer on KDE and manually lower the game's volume every time.
I was wondering, is there a way to do this process automatically? As in setting up conditions like "if music is playing (some MPRIS API?) then lower all other apps' volumes)", maybe even crazier "if some app is outputting voice then set its volume back up and lower music app's volume or pause its playback altogether for some specified timeout that keeps being refreshed for as long as voice is heard".
I imagine the latter is a bit of a dream, but maybe for the first, even some quick sound profile selector would go a long way, say switching from "normal profile" to "background music profile", etc. which specify preconfigured volumes for those apps.
Is that a thing?

[โ€“] QuazarOmega@lemy.lol 4 points 2 weeks ago* (last edited 2 weeks ago) (2 children)

Why so irritable? I'm just asking, I don't even know German, I thought since you knew the video already, you could point me in the right direction, rather than me having to sift through it all while also passing it through a translator to hopefully (because I don't know how well youtube's auto-translate feature works) find the information I'm looking for in the whole presentation

[โ€“] QuazarOmega@lemy.lol 2 points 2 weeks ago

On a quick skim I don't see a way on it to set volume profiles, let alone program behavior based on certain events, is there some menu I might have missed?

[โ€“] QuazarOmega@lemy.lol 1 points 2 weeks ago* (last edited 2 weeks ago) (1 children)

So what I'm getting is that I would have to come up with something myself, right? I mean that would be super cool to do, but I don't have the time to put into that, unfortunately

[โ€“] QuazarOmega@lemy.lol 3 points 2 weeks ago* (last edited 2 weeks ago)

This is the architecture though, I'm asking about an application that can interact with it

 

I sometimes play games and also open my music player, but the sound from the game drowns out the music, so I need to go into the sound mixer on KDE and manually lower the game's volume every time.
I was wondering, is there a way to do this process automatically? As in setting up conditions like "if music is playing (some MPRIS API?) then lower all other apps' volumes)", maybe even crazier "if some app is outputting voice then set its volume back up and lower music app's volume or pause its playback altogether for some specified timeout that keeps being refreshed for as long as voice is heard".
I imagine the latter is a bit of a dream, but maybe for the first, even some quick sound profile selector would go a long way, say switching from "normal profile" to "background music profile", etc. which specify preconfigured volumes for those apps.
Is that a thing?

 

I was looking to implement a year column and while researching I stumbled on the YEAR data type which sounded just right by its name, I assumed that it would just be something like an integer that can maybe hold only 4 digits, maybe more if negative?
But then I noticed while actually trying it out that some years I was inputting randomly by hand never went through giving an out of range error, so I went to look at the full details and, sure enough, it's limited to years between 1901 and 2155, just 2155!
In terms of life of an application 2155 is just around the corner, well not that any software has ever lived that long, but you get what I mean in the sense that we want our programs to be as little affected by time within what's reasonable given space constraints.
So what will they do when they get close enough to that year, because you don't even have to be in that year to need it accessible, there could be references that point to the future, maybe for planning of some thing or user selected dates and whatnot; will they change the underlying definition of it as time passes so it's always shifted forward? If that's the approach they'll take, will they just tell everyone who's using this type that their older dates will just not be supported anymore and they need to migrate to a different type? YEAR-OLD? Then YEAR-OLDER? Then YEAR-OLDER-BUT-LIKE-ACTUALLY? Or, that if they plan to stay in business, they should move to SMALLINT?
Or will they take the opposite approach and put out a new YEAR datatype every time the 256 range is expired like YEAR-NEW, YEAR-NEW-1, YEAR-FINAL, YEAR-JK-GUYS-THE-WORLD-HASNT-COLLAPSED, etc.?

So I wonder, what's the point of this data type? It's just so incredibly restricted that I don't see even a hypothetical use.
There exist other questions like this (example) but I think they all don't address this point: has anyone from MariaDB or MySQL or an SQL committee (I don't know if that's a thing) wrote up some document that describes the plan for how this datatype will evolve as time passes? An RFC or anything like that?

18
submitted 3 months ago* (last edited 3 months ago) by QuazarOmega@lemy.lol to c/meta@lemy.lol
 

What is this?

For all you Reddit refugees this is like r/place.
For all who don't know what that is either, this is a public, well, canvas, that will be freely accessible to anyone with a Fediverse account (specifics on the main post, don't worry, Lemmy is included).
You'll be able to place (this is not place!!!) one pixel every certain amount of time on the canvas, either in an empty or an already used spot, overwriting it in the latter case.

Where is this happening?

Right over on https://canvas.fediverse.events/

Announcement post and other related stuff:

When can we participate?

On the 12th July 2024, or 2024-07-12 for all you ISO lovers!

Why should I care?

I don't know, it could be fun and it's not like you have to do it alone, it's actually way more fun to partecipate alongside your fellow fediversers, sooo... monke together strong?
If you have some particular interest and you want it represented, try to look for your people in the right communities, and organize together to make the best fricking piece of pixel art the world has ever seen!!

From here I guess we can invite you to maybe make a little something for our lemy.lol instance's community, claiming a patch of land for ourselves as the (certified) best instance of the Fediverse (full disclosure: am admin of said instance).
If we want to make something, we can probably make a Matrix room to coordinate our efforts!
Otherwise, just go ahead and have fun with your loved <insert niche game/anime/film/any piece of media> and make something out of it!


Lastly here's last year's final canvas to try to win you over (or scare you):
2023 Fediverse Canvas - Final state

 

I saw that there's this nifty xdg-ninja that informs you on what you have installed that doesn't respect the XDG spec, if it has support for it or not and what you can do to make it comply.
But now I was wondering if there was any tool to do the actual work automatically, I believe I have once seen a program that spoofed your home directory to non-complying apps so that you could transparently override their whole app data location to a path you wanted so they can keep functioning, but I can't for the life of me find it again.
It would be double awesome if it did both, i.e. auto-applying any changes to apps that support XDG but need to be configured to enable it and, for those who don't, forcefully spoofing the home directory

 

My solution:

let

  nixFilesInDirectory = directory:
    (
      map (file: "${directory}/${file}")
      (
        builtins.filter
          (
            nodeName:
              (builtins.isList (builtins.match ".+\.nix$" nodeName)) &&
              # checking that it is NOT a directory by seeing
              # if the node name forcefully used as a directory is an invalid path
              (!builtins.pathExists "${directory}/${nodeName}/.")
          )
          (builtins.attrNames (builtins.readDir directory))
      )
    );

  nixFilesInDirectories = directoryList:
    (
      builtins.concatMap
        (directory: nixFilesInDirectory directory)
        (directoryList)
    );
  # ...
in {
  imports = nixFilesInDirectories ([
      "${./programs}"
      "${./programs/terminal-niceties}"
  ]);
  # ...
}

snippet from the full source code: quazar-omega/home-manager-config (L5-L26)

credits:


I'm trying out Nix Home Manager and learning its features little by little.
I've been trying to split my app configurations into their own files now and saw that many do the following:

  1. Make a directory containing all the app specific configurations:
programs/
โ””โ”€โ”€ helix.nix
  1. Make a catch-all file default.nix that selectively imports the files inside:
programs/
โ”œโ”€โ”€ default.nix
โ””โ”€โ”€ helix.nix

Content:

{
  imports = [
    ./helix.nix
  ];
}
  1. Import the directory (picking up the default.nix) within the home-manager configuration:
{
  # some stuff...
  imports = [
    ./programs
  ];
 # some other stuff...
}

I'd like to avoid having to write each and every file I'll create into the imports of default.nix, that kinda defeats the point of separating it if I'll have to specify everything anyway, so is there a way to do so? I haven't found different ways to do this in various Nix discussions.


Example I'm looking at: https://github.com/fufexan/dotfiles/blob/main/home/terminal/default.nix

My own repository: https://codeberg.org/quazar-omega/home-manager-config

342
submitted 4 months ago* (last edited 4 months ago) by QuazarOmega@lemy.lol to c/linuxmemes@lemmy.world
 

We all know who's the real steward of free software and federation

*smiles in anticipation*


legit had to draw the vector logo of Gogs for this, smh

edit: actually... it already exists, oopsie (แต•โ€”แด—โ€”) smh my head

 

I was trying to analyze my phone's storage through Filelight, but it just gets frozen after I select the phone's folder. I didn't find anything in Bugzilla regarding this problem.
Is the protocol supported at all in the app?

 

I've been looking around to find a good keyboard for myself after having used a sad wireless membrane, so, after reading around a bit, as my first foray I decided I wanted a 75% with mechanical brown switches, but I'm finding it really hard to find a good list of keyboards that matches my description because I'd like the layout to be Italian and most, if not all of the ones I found are US instead, I'm not a touch typer so I still care about that.

So is there any comprehensive website that allows you to filter by all the relevant characteristics?

 

Lately we've seen the EU do several amazing things to make platforms more open and user respecting by forcing:

  • Microsoft to allow uninstallation of some of their apps
  • Apple to allow browsers based on engines other than WebKit on iOS
  • Apple to allow third-party app stores
  • messaging apps to be able to interoperate
  • etc.

I haven't delved really deeply, so maybe I misunderstood some details, but I have a question that I don't seem to find answers for anywhere: what makes certain platforms different from the others in so that, if they function in certain ways that make them depend on the vendor for certain functionality, they can be regulated into opening up more?
What I notice as the common denominator is that maybe external parties are involved or user decision is being restricted, but I wonder if, for example, iOS had its store only host Apple-made apps making it a completely closed platform, would they be safe from regulation that forces them to change operation? If not, what makes it different from, say, a router with a proprietary OS that can in no way be changed, or any other appliance that hosts its own software and nothing else?

 

I have come across a few add-ons that are only available through GitHub, for example. So I'm wondering, is there some system to keep them updated automatically, or do I have to manually redownload them every time?

view more: next โ€บ