The name is sheer fun over various cases when cyrillic is confused with latinic on a computer. First, „mrz“ is what you get when you read „mp3“ as if it were cyrillic (mrz = мрз) (v. house dictionary), and pludger is when you type player but forgot to switch keyboard from cyrillic, you get плаџер...
A player for mrz (i.e. em pee three) files, which I nicked off someone's website (link preserved), then went on making it into something to my own measure. Parallel to fes in many ways - both are lists of files which exist somewhere on the disk, and will play them. Except those are photos, from which I actually don't try to extract much information, and of which I shot at least 95% myself, I already know what's inside, and can find them by simply knowing where I left them, in my tree of folders which I keep sorted by decade, then year, date (or just month, where there are few).
Of music, however, almost nothing is my own recording - the number of those I made using eos70 is a single digit - once the Čorba, two-three excerpts of Atomsko sklonište, and some six of Rundek. The music came from hundreds of various sources, and yet I do need various tags from the files, which are often quite lacking or chaotic. The protocol for keeping the title, player, album, year and a dozen other things (which really nobody uses) changed only once in these thirty years, but was used by two hundred various apps and several thousand of their users, so it depends on how each was diligent and neat... ergo chaos.
But that's not the reason for diving into this endeavour, it's an obstacle along the way, which I sufficiently cleaned up by the mid-november of 2024. The real reason is... ahem, rndalica (v. house dictionary). The randomizer. I already wrote, even on suština, how every player gains a soul and often plays the songs it likes and some of others never. Well, this one I wrote myself, using the simplest method - get a random number from Python, multiply by the playlist length, round it up, use that as the ordinal number of the song to play. And as far as I can conclude after first few days since it started working, it's not just without a soul, it actually came up with a bunch of songs I didn't even know I had.
The other reason is statistics - the libre efem suddenly went into redevelopment, and even before it was kind of fake, because it counted only the number of titles played. Well, playing one silly song of three minutes and [playing] a whole album is not the same, so from square one I planned to tally the playtime too. And it already shows the difference - after just ten days it was obvious how, e.g. Azra with 36 titles played is only sixth, and the top five have 13, 15, 11... okay, Crimson with all of 26 (but 6 interrupted, that was while testing) and Jethro Tull (with four interrupted). Though I'd rather wait until a few thousand hours of playtime accrue, to get a better sample, to find out what is it that I'm actually listening to. Though, that's where the all night play is spoiling the sample, that's played but not listened to, that's when I'm trying to find out which files make it get stuck at the end of play. After a few weeks of debugging, learning/inventing tricks and cleaning shit out of the tags, I got it to the point where it's playing fourth day incessantly and never stopped.
It's always better to have a homemade. Though this is where I understood the underlying reason for the „cobblers walk barefoot“ proverb. They'd be quite capable of making their own footwear at will, but they'd have to be seen wearing it, which wouldn't be good for business. Who knows how'd that look. Well, this is my pair, I'm doing this for myself, and I don't give a rat's fuck on its looks, and its being forever limited to zmajček alone - I don't plan to have it even on other house machines. That way I'm avoiding a huge heap of shit. In no particular order:
- I don't even have to enumerate the components in use, far from preparing a package for distribution on another machine. I never even tried to create an executable in python, never read how an installer is made, what's the linux protocol to register one. Don't care.
- don't have to think of a database, what if the user doesn't have postgres, what if he wants something else, what if there's no database, maybe I should try the out-of-the-box Escuellight support. Didn't even try. My user has postgres, and has the database on it.
- hence no need for database creation script for the case when not all of that exists on the target machine - it exists - nor any clickable interface for adding new music into the database. I do that by running a script in pycharm, just change the line with the folder name to scan, in the script itself.
- consequently, I need o write none of the file handling greenery (except inside that script), no catalogs, dialogs and other shit.
- don't even need to pack the connectstring into some file somewhere, think of encryption, zilch.
- no worries about safety, security, rights, permissions, no mother's cunts, this is all mine and I don't have to ask anyone anything
- don't even need to think about fonts - what I have on the machine is guaranteed to exist on user's machine (me again)
- no need to think of future translations, to leave room onscreen for some languages where there's fewer cases and therefore more words. It'll never be published in any language that I don't care for.
- I can weld the name of anything without any thought of how to make it customizable for the user. The main playlist is, permanently, using the PK of 1, and is called „sve ovde“ (all here). If anything gets lost from it, the next time something is played from the same folder, everything from that folder will come back by itself.
It's so nice to be retired.
Statistics as of 10th of august 2025:
"rbr" "faj_bend" "puta" "prekinut" "vreme"
"1" "Korni grupa" "596" "27" "{""hours"":64,""minutes"":56,""seconds"":8,""milliseconds"":812.424}"
"2" "Jethro Tull" "584" "20" "{""hours"":58,""minutes"":47,""seconds"":54,""milliseconds"":355.358}"
"3" "Pink Floyd" "451" "32" "{""hours"":53,""minutes"":1,""seconds"":26,""milliseconds"":278.348}"
"4" "King crimson" "511" "22" "{""hours"":52,""minutes"":57,""seconds"":26,""milliseconds"":174.221}"
"5" "Azra" "786" "6" "{""hours"":36,""minutes"":53,""seconds"":1,""milliseconds"":208.082}"
"6" "Emerson, Lake & Palmer" "320" "19" "{""hours"":34,""minutes"":47,""seconds"":32,""milliseconds"":100.778}"
"7" "Drago Mlinarec" "371" "17" "{""hours"":32,""minutes"":2,""seconds"":50,""milliseconds"":709.956}"
"8" "Električni orgazam" "506" "14" "{""hours"":29,""minutes"":22,""seconds"":15,""milliseconds"":781.776}"
"9" "Led zeppelin" "212" "22" "{""hours"":26,""minutes"":6,""seconds"":59,""milliseconds"":748.692}"
"10" "Soft machine" "271" "6" "{""hours"":25,""minutes"":56,""seconds"":7,""milliseconds"":182.582}"
"11" "Rolling stones" "374" "8" "{""hours"":25,""minutes"":43,""seconds"":29,""milliseconds"":80.193}"
"12" "Dimitrij Šostakovič" "173" "10" "{""hours"":25,""minutes"":38,""seconds"":34,""milliseconds"":133.088}"
"13" "Mike Oldfield" "178" "8" "{""hours"":25,""minutes"":5,""seconds"":53,""milliseconds"":889.442}"
"14" "Leb i sol" "333" "3" "{""hours"":24,""minutes"":50,""seconds"":22,""milliseconds"":105.47}"
"15" "Amon Düül" "251" "4" "{""hours"":24,""minutes"":46,""seconds"":58,""milliseconds"":997.963}"
"16" "Riblja čorba" "411" "12" "{""hours"":24,""minutes"":33,""seconds"":53,""milliseconds"":868.42}"
"17" "Gentle giant" "276" "6" "{""hours"":24,""minutes"":11,""seconds"":35,""milliseconds"":490.902}"
"18" "Pavlov's dog" "343" "9" "{""hours"":24,""seconds"":41,""milliseconds"":461.686}"
"19" "Uriah Heep" "215" "9" "{""hours"":23,""minutes"":19,""seconds"":16,""milliseconds"":872.252}"
"20" "Procol Harum" "288" "10" "{""hours"":23,""minutes"":14,""seconds"":19,""milliseconds"":671.486}"
"21" "Ten years after" "305" "6" "{""hours"":22,""minutes"":43,""seconds"":13,""milliseconds"":484.266}"
"22" "Smak" "269" "3" "{""hours"":22,""minutes"":42,""seconds"":33,""milliseconds"":73.529}"
...
"364" "Captain Beefheart and the Magic Band" "57" "2" "{""hours"":3,""minutes"":4,""seconds"":56,""milliseconds"":648.325}"
"365" "Darkwood Dub" "50" "0" "{""hours"":3,""minutes"":3,""seconds"":43,""milliseconds"":203.025}"
"366" "Sanja Ilić i Balkanika" "43" "2" "{""hours"":3,""minutes"":3,""seconds"":21,""milliseconds"":615.225}"
"367" "Gabi Novak" "63" "3" "{""hours"":3,""minutes"":3,""seconds"":9,""milliseconds"":972.851}"
"368" "Stijene" "49" "0" "{""hours"":3,""minutes"":1,""seconds"":13,""milliseconds"":324.78}"
15-XI-2024 - 11-VI-2026