Threads for nickl

  1. 4

    Is there a comparison of Navidrome vs. Ampache?

    Ampache’s been around a while and has been really solid for me. Wondering if there was a specific motivation for the Navidrome folks to start something new, other than new is always shinier of course.

    1. 3

      Shameless self-promotion, but:

      I wrote MousikóFídi as an alternative to Ampache, the website has a small feature comparison table. I’ve only recently learned about Navidrome but plan to add that the table as well.

      As for why would I write that: I too was a longtime Ampache user and was very happy with it, to be honest it just seemed like a fun project! After a week or so I had something reasonably usable so I thought: “let’s keep going!” I wrote in detail about it here.

      1. 2

        looks neat, nice work! does it have subsonic api support? that would be a good feature to put in your table. Also, without database support, do you just build an in-memory index at startup? seems like that would take a long time on a large collection, but maybe it’s not as bad as I think.

        1. 1

          Thanks for the compliment :)

          Currently, there is no subsonic support. I don’t use it, nor do I have much of an interest in it, but many folks have asked about it. When I do get around to adding the plugin system, subsonic API support is for sure something I’d like to tackle.

          Nothing is loaded at startup; instead, the application reads files and gets metadata (or tries to) on each request. This is running on a single-CPU virtual machine, to give you an idea of what performance might be like on a relatively low-powered host. When database support is added (it is planned as an optional plugin) much less work would be needed, of course.

          1. 2

            ohh i see, it’s more file browser oriented. i basically only access ampache via the subsonic api, so that’s a requirement for me. i also use the “virtual” playlists features a lot (like Newest, Most Played, etc). I also need to be able to do things like “search by year”, “search by genre”. Those kinds of things seem like they would be very slow without a database, but if that’s on your roadmap that’s cool.

            1. 1

              Those kinds of things seem like they would be very slow without a database

              Yes, they absolutely are - I experimented with DB-less search and it was a total disaster. Not that I expected otherwise, but I had to try it.

              Thanks for the feedback!

        2. 2

          This is very interesting, thanks. Am I right that your program works on a files/folders basis, not a metadata basis?

          1. 1

            That’s correct! Just give it a list of directories and browse away.

      1. 4

        I’m super happy to finally have the ability to search the scrollback buffer. This was the last big missing feature for me.

        1. 6
          char buf[src_size];

          wont this fail if source file is larger than RAM? I am guess more robust solutions (cp, rsync) dont have this issue.

          1. 3

            It should fail if it’s larger than the available stack size, I think.

            1. 1

              How about char* buf?

              1. 3

                I dont see that as helping the problem. Youd need a sliding window of a set size, say 1 GB that is emptied after that portion is copied - or you could just ignore the problem if its for personal use

                1. 1

                  What do you mean a sliding window?

                  1. 3
                    1. 3

                      Its a buffer implementation - you would need to use something like this for a robust copy solution. if you dont care about supporting larger files you can ignore this

                      if you do care about supporting larger files - create buffer of say 1GB - load first 1GB of source file and copy to destination - rinse and repeat until file is copied - you might need to seek as well but I think not as I believe C read moves the cursor as well.

                  2. 2

                    You’ve changed the code now to just do:

                      char* buf;
                      fread(buf, 1, src_size, src);

                    Won’t that just fail since buf is uninitialized?

                    1. 0

                      I tested it, it didn’t

                      1. 4

                        You’re relying on undefined behavior then, which is inadvisable.

                        1. 1

                          Are you joking? Even the most cursory of checking triggers the warning:

                          $ x86_64-w64-mingw32-gcc  -Wall   copy.c
                          copy.c: In function ‘copy’:
                          copy.c:14:3: warning: ‘buf’ is used uninitialized in this function
                          1. 1


                            I think OP is learning C.

                  1. 27

                    Having menus and toolbars be completely keyboard accessible is huge. Being partially blind (and fine/gross motor impaired), the mouse is an absolute 1000% productivity killer.

                    Being able to drive my computing universe from the keyboard as much as possible is critical. This is, FWIW a big reason that I fell in love with the Mac years ago when they actually gave a crap about HID guidelines.

                    Linux is getting better and better in this regard, and KDE has always been pretty good.

                    1. 1

                      Sadly still no support for vertical tabs. :-/

                      1. 3

                        Every Firefox post feels like groundhog day with this vertical tabs stuff.

                        1. 2


                        2. 3

                          I have been using vertical tabs in the latest Firefox for quite a long time now, there was only maybe a week after the release of the breaking version where there was no good solution available. Not sure what else you want?

                          1. 1

                            I try those extensions from time to time. They are all terrible.

                            I rely on vertical tabs to de-clutter my UI and free up some vertical space. All the extensions are a complete failure in this regard:

                            • Their horizontal tab bar still takes up space.
                            • Their sidebar headers add additional clutter.
                            • Their visual metaphor is wrong: the location bar shouldn’t “own” the tab bar, it belongs to a tab.

                            Compare my user interface to whatever fresh hell Firefox extensions do these days.

                            1. 1

                              It’s not ideal, but you can hide the horizontal tab bar and the sidebar headers with userChrome.css. The Firefox team has said they are going to provide an API for extensions hiding and showing the tab bar in the future. If I understand correctly, it’s hung up a bit because of the security implications of letting an extension do this.

                              1. 1

                                An API for extensions and struggling with security implications sounds like taking the wrong path. Why not add an autohide option, which should be good enough that you’d turn it on and never show tabs if you use an extension?

                                While at it, take the time to allow rows of tabs as a built-in feature and not care about APIs.

                                But no, none of this will probably ever happen.

                                1. 1

                                  It’s not ideal, but you can hide the horizontal tab bar and the sidebar headers with userChrome.css.

                                  This possibility will go away.

                                  Firefox 69 already requires an opt-in in about:config: toolkit.legacyUserProfileCustomizations.stylesheets: true

                                  The Firefox team has said they are going to provide an API for extensions hiding and showing the tab bar in the future.

                                  They say a lot, but even if they addressed this issue, there are still multiple other deal-breakers, most of which will never be addressed.

                            2. 2

                              Wasn’t that implemented as an extension in the old XUL days?

                              Actually looks like there’s a new one too:

                                1. 3

                                  The extension is little more than a proof-of-concept, but a good demonstration of all the things that still don’t work (and probably never will) since they broke the old API and killed off their own Tab Center experiment.

                                  The state of vertical tabs in Firefox is the equivalent of Go’s “those aren’t angle brackets, they’re characters from the Canadian Aboriginal Syllabics block”.

                                  1. 2

                                    Yeah they lots a lot of things in the transition to the new API, but given the insecure nature of XUL I can understand why they made that difficult call.

                                    I’m still pining for the loss of It’s All Text :)

                                    1. 2

                                      It comes down to Firefox being obsessed with their 100% fit on their mythological “average user” (that doesn’t exist), not their inability to address this issue.

                                      In the end I transitioned to Vivaldi, who – despite the much smaller team – seem to manage to simply ship vertical tabs as a fully supported options out of the box.

                                      It kinda sucks, because I’m adding +1 to the already concerning market-share of Chromium-based browsers, but after being a loyal Firefox user for almost 15 years – I’m sick and tired of them trying to be a Chrome look-alike.

                                      1. 1

                                        At least Vivaldi is open source. That’s pretty important.

                                        I’m less concerned about the renderer and more concerned about transparency.

                                      2. 2

                                        In case you’re not aware of them, It’s All Text has several replacements: GhostText, Textern, Tridactyl and a few others the name of which I can’t remember.

                                        1. 1

                                          Tridactyl is awfully cool but also awfully invasive in that it turns your Firefox into a totally Vim style keyboard driven experience :)

                                          Texterm has platform restrictions, and GhostText looks like it has good potential but you can’t invoke it with a keyboard shortcuts on Macs due to some firefox bug or other :)

                                          Thanks though!

                                      3. 1

                                        I’m curious what you feel is missing from the tree-style-tabs extension? It seems to work fine for me, but mostly all I care about is that it’s vertical, can group tabs, and shows me what container they are in. Every now-and-then it gets a little wonky, but usually just hitting F1 to hide and show it fixes it.

                                        1. 2

                                          I rely on vertical tabs to de-clutter my UI and free up some vertical space. TST is a complete failure in this regard:

                                          • Horizontal tab bar still takes up space.
                                          • The sidebar header adds additional clutter.
                                          • The visual metaphor is wrong: the location bar shouldn’t “own” the tab bar, it belongs to a tab.

                                          Compare my user interface to whatever fresh hell Firefox extensions do these days.

                                          1. 1

                                            Okay, so it’s non-obvious, but just add this to .mozilla/firefox/[profile.dir]/chrome/userChrome.css:

                                            #TabsToolbar { visibility: collapse; }
                                            #sidebar-box[sidebarcommand="treestyletab_piro_sakura_ne_jp-sidebar-action"] > #sidebar-header {
                                              visibility: collapse;  

                                            And you will have something lovely like my user interface

                                            I agree that the location bar location isn’t perfect, but that bothers me less. it’s possible you could drag things around to fix that too, but I haven’t tried.

                                            1. 2

                                              just add this to .mozilla/firefox/[profile.dir]/chrome/userChrome.css

                                              This approach will stop working in the future.

                                              Firefox 69 already requires an opt-in in about:config: toolkit.legacyUserProfileCustomizations.stylesheets: true

                                              You can probably guess what happens next.

                                              1. 1

                                                hrmm, that sucks. given the popularity of this approach, i sure hope they have some migration path for users like me. if not I may have to join you in jumping ship.

                                                1. 1

                                                  btw: from the bugzilla and the announcement it doesn’t sound like they plan on having this actually go away.

                                                  You may or may not trust mozilla to not take this away, but I’m not quite jaded enough to switch browsers when they are explicitly saying they won’t remove it all together.

                                                  1. 1

                                                    The name of the config key contains the three things Mozilla hates most: legacy, users and customization. I don’t think it gets more upfront than that.

                                                    I wouldn’t give it a year until the option is gone.

                                                2. 1

                                                  I played a bit with chromeCSS and things turned out pretty well:

                                                  Too bad the whole feature has a sell-by-date already. :-(

                                    1. 15

                                      I’d never tell anyone what to do with their kid, but sleep training was enormously effective for us. If you’re at the end of your rope, and are okay with it; give it a shot.

                                      Note: n=1 for this

                                      1. 7

                                        Both of our girls (2 and 4) responded really well to sleep training. TBH, actually, I think the wife and I were the ones who really needed the training.

                                        1. 1

                                          I hasten to add, we didn’t sleep train them at 2 and 4, but that’s how old they are now. The older girl was sleep trained at 11 months, because she had heart surgery at six months, and we were (understandably) loath to do anything out of her ordinary routine until we got the all clear from her cardiologist. The baby was trained at about eight months.

                                        2. 4

                                          Us too. And there are a lot of studies of how sleep training beginning at six months (I think; I need to double-check the exact age) has absolutely zero psychological side effects. Except on the parents of course, who may actually be somewhat sane.

                                          1. 3

                                            Got a link to any such studies other than the Middlemiss one? That study has been used again and again to reassure parents it’s okay to sleep train, but the study itself was deeply flawed [1]. I encourage anyone considering sleep training to read more than just that study, and to read more widely about sleep training in general. Here’s some articles (with lots more references in them) to get started [2], [3], [4].

                                            We used “The No Cry Sleep Solution” [5] with middling success. Overall, I think you kinda just have to accept that it’s going to be a time of bad sleep, but that you’re making that sacrifice for your kiddo.






                                            1. 2

                                              I’ll find one in the morning. To be clear, I’m not recommending and didn’t practice cry-it-out; we just did some phased process that on cursory glance looks similar to no-cry. I’m in fact up at 5 am specifically because I’m getting our kid settled again.

                                          2. 4

                                            Cant plus one this enough, sleep training was one of the best parenting decisions we’ve made. It’s hard on everyone for like a week and then its soooooo much better for everyone. My 18 month old sleeps so well now, falls asleep on his own most of the time, sleeps through the night and sleeps like a rock unless he’s sick or otherwise agitated by something unrelated. Ymmv of course and ever kid and family is different but for my money it has been invaluable.

                                            1. 2

                                              sleep training

                                              For all 4 of our kids, we used the training outlined in Save Our Sleep. Our eldest is ASD and had a lot of trouble with sleep - the training made the world of difference to him, and us. All the kids sleep well now between 10 and 12hrs depending on age.

                                              I used to need to send my wife out of the house because she couldn’t stand the sound of my son crying. It was pretty brutal. The the difference in his (and our) mood stability during waking times was more than worth the pain.

                                              1. 1

                                                I would have thought sleep training would be standard practise by now… certainly our midwives talked about it in our prenatal.

                                                1. 1

                                                  It is, like most things in the world of parenting, still A Thing. That’s OK, people should do what works for their family.

                                              1. 30

                                                This article contains one of my pet peeves, in which it says “Leading kernel developers like Linus Torvalds and Greg Kroah-Hartman both enthusiastically praise systemd”, and then links to a talk in which Linus says only that he doesn’t hate it, but that it has quirks. It would be very hard to construe the comments made in the linked video as “enthusiastic praise”, but most people will assume it does, given the link.

                                                Interesting article none-the-less.

                                                1. 10

                                                  Conversely, given what Torvalds usually says about stuff he dislikes…. That’s probably about as close to “Enthusiastic Praise” as you’re gonna get. :-D

                                                  1. 5
                                                  2. 2

                                                    Linus says only that he doesn’t hate it, but that it has quirks

                                                    Yeah, “has quirks”, eh? I figured he just wanted to avoid getting involved in the fight. But how could someone so serious about good software engineering practices not dislike systemd?

                                                    I’m convinced systemd represents some sort of malignant takeover of the Linux ecosystem.

                                                    1. 1

                                                      One might hope that something as objective as tech and code would bring more objective journalism, but this does not seem to be the case.