Threads for felixc

    1. 20

      As mentioned in brief on that thread, happily there’s already an established fork on F-Droid called Syncthing-Fork. The maintainer has been careful to manage expectations about ongoing development when asked but it looks like a little extra contribution is trickling in. Perhaps this one will keep ticking along.

      1. 3

        Yes, unfortunately it does seem to be F-Droid only – not available on the Play Store.

        1. 23

          Right, that’s a large part of the problem. The author of the now-discontinued app fought unsuccessfully since February to get Google Play to accept new updates and failed. The latest update on that issue:

          Nothing came of the discussions with google. Demands by Google for changes to get the permission granted were vague, which makes it both arduous to figure out how to address them and very unclear if whatever I do will actually lead to success. Then more unrelated work to stay on play came up (dev. verification, target API level), which among other influences finally made me realize I don’t have the motivation or time anymore to play this game.

          1. 13

            It is past time people start complain about Google/Play Store, not the apps and its creators/maintainers.

            1. 7

              /r/androiddev is full of warnings ranging from kvetching to “Google wrecked my six-figure business” (with its own dimension of rightfully and wrongfully from the reader and public’s point of view).

              I’ve been an Android user for 16 years. I bought into Android with the T-Mobile G1 / HTC Dream. I wanted to build an app, but by the time I had the time in the early 2010s, it was clear to me that Google’s runaround was impeding people. By the time I got into a place in life where I could choose “stay a salaryman” versus “start a VC-backed app,” the warning flags were all over /r/androiddev and other communities on reddit and elsewhere. It’s probably not as bad as the worst cases make it out to be, but I’ve had enough friends try app companies and complain about Google and Apple store policies making it challenging if not impossible to do business.

              One case was a local tour app. Apple refused their app for nine months. I used it. It was fine. Lawyers got involved, but they basically said, If you go this route, Apple will find every little reason to reject your every update if you win and they’ll probably just ban you for life if you lose.

          1. 3

            “pass” in this context refers to a GPG-encrypted file based password manager: https://www.passwordstore.org/ https://en.wikipedia.org/wiki/Pass_(software) https://wiki.archlinux.org/title/Pass.

            “pass” itself can be used in many contexts, but is primarily a desktop command-line tool. “Password Store” is the Android client for it.

            1. 4

              The name is a bit cursed because it makes incredibly difficult to search for stuff related to it,

              1. 9

                Agree. Looking at my past scars I would say that updating regularly helps avoiding having multiple dependencies breaking at the same time, which turns the update in a nightmare, and avoid using a potentially old syntax. Syntax you’ll be forced to update at some point.

                So the often, the merrier.

                Side Notes: Tests helps a lot, you don’t want a manager on your neck during a update because of a security audit.

                1. 4

                  A few jobs ago I got stuck on a death-march project that ended up involving a massive dependency update on a codebase that hadn’t been through an update in literal years. And was using multiple different methods of dependency management – some things installed via package manager, some vendored directly, some as git submodules…

                  Now, every place I work at, if they don’t have both a single, simple dependency management workflow and at least a monthly, if not twice-a-month or outright weekly, cadence of automatically checking for and applying dependency updates, those are the first things I start pushing for and setting up.

                  Making it frequent makes it routine. Making it routine makes it safe and reliable. I like safe and reliable. Getting a codebase to the point where you can say “the dependabot PR passed CI, just merge it and let it get deployed” is so very nice.

                  1. 1

                    Yeah, exactly — having multiple things that need fixing at the same time (often because to update one thing you have to update a different piece it interacts with, which is no longer compatible with this other bit, and so on and on…) is the worst part. Doing it in tiny bite-sized pieces at a time of your choosing just makes it less tedious in the long run.

                  2. 5

                    I have a CI job that runs every month to update deps. I’ve been reasonably happy with it.

                    1. 8

                      I’m always wary of giving a CI system write access to actually change the repo. Incidents like the recent CircleCI one come to mind. If the automation just opens a pull request (or equivalent), that seems pretty helpful though.

                      In practice I’ve found tools like Renovate and Dependabot are almost great, but still have too many small annoyances to be worth the effort over just doing the updates myself. Things like (I forget which one does this) opening one PR per dependency, but then not rebasing the remaining open PRs automatically when one is merged.

                      1. 15

                        Yeah, the bot just opens a PR on the first of the month. I have to go through and manually approve it before it gets merged.

                        1. 6

                          Not to “well actually” but [it is possible with Renovate]https://docs.renovatebot.com/configuration-options/#rebasewhen) to specify not to rebase all the time

                          1. 3

                            In that case, I’ll claim it was Dependabot I was having trouble with ;-)

                          2. 3

                            As an example I have set up a repository with both dependabot and mergify, … it works quite well.

                            dependabot opens an MR, github actions run the CI workflow, and mergify only merges if its green.

                            Haven’t used that combination for a real project though.

                            1. 1

                              I’ve committed heavily to Renovate at work and it’s paying off. I have ~two dozen repos under my care right now and they have similar but not the same dependencies. Keeping everything relatively up to date is a challenge because of the number of repos and the sometimes long dependency resolution process in Poetry (although it’s faster in 1.4.0).

                          3. 2

                            I don’t think you’re missing out on the CUE/BIN bandwagon, as long as you’re ripping lossless tracks.

                            It isn’t any better than ripping WAV files and encoding them in FLAC files…

                            It surely looks cooler though :-)

                            Along with that, I want at least two sets of derived Ogg Opus re-encodings with differing levels of compression/quality: a lower-quality one for keeping on my cellphone, and a better one for desktop and laptop personal computer use.

                            An interesting alternative to keeping multiple copies in different formats might be setting up a music server like Ampache or similar.

                            It’s a self-hosted music streaming system that supports automatically transcoding music on the fly when needed, e.g. when listening from a phone.

                            I personally run Navidrome, which is a modern re-implementation of the Subsonic API (which Ampache also implements).

                            1. 1

                              It surely looks cooler though :-)

                              That’s what I’m here for! ;-)

                              An interesting alternative to keeping multiple copies in different formats might be setting up a music server like Ampache or similar.

                              I like the idea of this, and played around with Navidrome a bit, but ultimately felt like I kind of didn’t get the point, or that it was targeting a use-case quite different from mine. Copies on my phone are for listening to when out running or when driving… Even if I exposed the server on the public Internet (or constantly toggled on/off a tunnel like Tailscale), I’d rather not deal with latency and spotty connectivity. Could be a fun thing to have as an option though, or as a backup way to have access to my full collection rather than the subset I carry with me.

                              1. 2

                                You could always download and play via any Subsonic client, I was suggesting it mostly to solve the (perceived?) inconvenience of having duplicate files everywhere. Still, if it works for you then great!

                                1. 2

                                  Oh I see — using the server to make things available and auto-transcode, but still download for offline playback. Interesting! I might just have to try that out again :)

                            2. 2

                              I feel this pain. I personally like adding “lyricist” and in some cases “arranger” tags in addition to “composer” and “performer”, and sometimes I have trouble deciding what goes in the “artist” tag so it’s somewhat inconsistent in my library.

                              I have thought about making a linter of sorts using taglib. Right now the most pressing issue is embedding covers into metadata so that they show up on my phone so I’ll probably do that part soon, but I’ve also thought about other lints over time, for example deleting the leading 0s in the track number field as you also mentioned.

                              About multiple artists: the ID3 tag specification defines the 0 byte as a separator for using multiple artists in a single field, but I’ve never checked player support for it. I personally just stopped caring, I dump all the artists in one field or another and as long as I can search for it somehow it’s fine.

                              1. 1

                                Do you happen to know if any (many?) players actually recognize and surface additional tags like arranger, composer, and performer? I don’t want to tag things that won’t be used… but I wish they were used!

                                I hadn’t heard of taglib, but was considering doing the same using beets. It would be cool to be able to both detect issues and also fix them.

                                1. 2

                                  Not really, I mostly listen to music on my destop PC which runs Windows and I use foobar2k on that, which you can configure to show weird tags. Haven’t found a decent solution for Android yet and I honestly haven’t looked on Linux.

                              2. 2

                                Multiple artists per track. I dislike having metadata like “(feat. So-and-So)” in the track name. I’m currently just deleting that info altogether, but I believe it’s possible to represent it in metadata by having multiple “Artist” tags. I’m just not sure how that shows up in music players. Do they use it at all? Will they show the track under the contributing artist’s file-browser entry as well?

                                What I do is delimit all artists with ; and keep their role (i.e. feature/performer/etc). So an artist would be A;B;C feat D;E.

                                Some music players support 1:many album:artist relationships. I’ve not had much luck with support on Linux music players; coincidentally last night I was looking for one to fork support into. On Android, Poweramp supports custom delimiters, so I have ;, feat., and a few others set as artist delimiters for a 1:many relationship.

                                Likewise, I hadn’t heard of accuracy-oriented rippers like EAC and morituri/whipper, or about the practice of ripping whole albums into one file and using “CUE files” alongside them to denote track boundaries. Am I missing out? Do I need to start over again?

                                I used to care about this, but now I’d rather enjoy the music and not worry about a rare bit error that I probably won’t even notice.

                                1. 1

                                  Oh cool; I didn’t even know delimiters within a field were an option! Thanks!

                                  I used to care about this, but now I’d rather enjoy the music and not worry about a rare bit error that I probably won’t even notice.

                                  Yeah, in general I agree with that sentiment, but I started wondering if that kind of error might be the cause of some very noticeable “blips” I hear occasionally in some tracks (could be from something else, of course)… just got me thinking about it.

                                  1. 2

                                    If you hear it consistently on playback of the same track, it’s a source error of some kind. If it’s not consistent at the same spot on the same track, it’s a playback error of some kind.

                                    1. 1

                                      Yeah I’m hopeful that it may just have been an artefact of the quick spot-checking I was doing by playing and skipping around a few sample tracks in VLC, rather than importing them into a more dedicated music player.

                                2. 5

                                  I’ve honestly never heard any criticisms about RSS. It does one thing, and does it well. I get to choose what I subscribe to, and catch up on things when I’m interested. It’s pretty weird that it somehow isn’t the default for getting content. What’s the reason for that, the fact that much of the web is social media and aggregators?

                                  1. 8

                                    My main criticism of “RSS” is that it’s the name for like … four different incompatible XML formats, and people often use the term to include Atom, which is the feed syndication format that was actually the most carefully and thoughtfully designed, (it even has an RFC!) but isn’t actually RSS. It wasn’t just “this version was replaced by that version, which was replaced by that version” either; it was like there a bunch of different formats created by completely different groups of people. They couldn’t even agree on what the acronym stood for.

                                    IIRC one of the four different RSS variants was actually decent, (can’t remember which one tho) and I think that in this day and age, if people are still talking about RSS, they’re probably talking about that one? But I honestly don’t know because no one cares to specify. Edit: this article is actually an exception which refers to “RSS/Atom” but it’s unusual to hear people say that.

                                    That said, even RSS 0.9 with its gross design flaws and gaping ambiguities would be a hell of a lot better than the alternative of “find us on Facebook or Twitter”.

                                    1. 1

                                      This is a criticism of “RSS”, though, not of RSS. (Unless you’re advocating that we stop using these formats because of a naming ambiguity?)

                                    2. 5

                                      I think it’s a bit too technical for a lot of folks. The name for one (the acronym RSS doesn’t “mean” anything for most people, just as HTTP or HTML doesn’t), and the fact that you’d have to know how to copy the link into a dedicated feed reader. Very often the link isn’t even visible - you’d have to dig through the HTML to find it in the meta tags, or “guess” where it is because you happen to know someone is using e.g. Wordpress. The link can be opened with a browser, but if you do, you get “gibberish” (either the browser presents you the XML or even worse, a prompt to “download” that XML).

                                      And I’m speculating here, but I presume social media gives you a frictionless, unified way to subscribe to people you want to follow and a single place to keep track of all the content those people post, including a way to discover new stuff that might interest you. So why would you bother to go to all their online presences, find the buried link and add them to your feed reader? Also, feed readers often can’t display all content (especially video, images, but also special styling) correctly - one often needs to go to the website directly.

                                      1. 3

                                        A portion of that is due to Google. Starting in 2005, they made Google Reader available and amassed a large following. Then in 2013, they killed the project (because they failed to get, what? A billion people using it?) and none of the (at the time) RSS/Atom readers were as good as Google Reader (from what I understand of the reactions).

                                        1. 3

                                          The main problem with Reader was that it was good enough for developers to have a hard time competing with it with a paid product, and once it disappeared there were simply not enough people prepared to pay for an alternative.

                                          But the reader market isn’t dead. I pay for Feedly (mostly because there’s a decent mobile version) and have since the demise of Reader, and they’re still around.

                                          But I really do think Google looked at the numbers of users compared to the maintenance burden, saw that the usage was basically flat, figured it was not worth it (or maybe thought Google+ would be an alternative) and simply axed it.

                                        2. 1

                                          My theory is that it’s because it requires a conscious choice to set something up and then curate a list. Social media is optimized to have zero friction/barrier to entry (in fact the actual legitimately social aspects of it draw one in, understandably), and then all the other content is just kind of… there, and it becomes the default because it is in fact already there.

                                        3. 0

                                          A reasonable argument, if you’ve some how forgotten that reader mode exists.

                                          1. 4

                                            I don’t think RSS is the best way to read online, but it’s a decent way to collect things you want to read. You couldn’t read a Bartosz Ciechanowski post in an RSS feed.

                                            1. 2

                                              Reader mode as in the browser feature that reformats the page to be more legible? How does that help with finding that someone has made a new post on their site?

                                              1. 4

                                                It says “The only civilised way to read online” rather than “The only civilised way to discover things to read online”. edit: admittedly a bit pedantic of a critique.

                                            2. 4

                                              Interesting article!

                                              I see some parallels between these three layers and Jabe Bloom’s Three Economies.

                                              The gist of three economies is that there’s a layer of stuff–usually infrastructure or close to it–that gets consumed by use. It’s finite and loses value as there are more consumers. Think “disk space” or “network bandwidth” here. The goal then is to control usage and optimize for best value returned from the finite resources. Marginal usage has decreasing returns here. This sounds like Zunger’s X layer.

                                              At the opposite end of the spectrum is very-highly-scalable stuff. User-facing applications, the product that people pay for. Depending on the product this doesn’t inherently gain or lose value as you increase the user population. (Leaving aside network effects via Metcalf’s Law for the moment.) The goal here is to differentiate and compete. Marginal usage has flat returns here. I think this is similar to the Z layer.

                                              In the middle, Bloom posits there should be an “economy of scope” acting as a clutch between these two. It consumes finite resources but provides services that gain value from reuse. He uses the examples of a really good customer record or login function. Done right, marginal usage has declining cost for the “economy of scope” services and reduces cost in the differentiation layer. This sounds like the W layer.

                                              1. 2

                                                I’ve just taken on a leadership role at my company and we’re looking to refactor software systems and services that are entering their 12th or 13th year of running. This kind of philosophy for looking at teams and systems is extremely beneficial to me. Thank you!

                                                1. 2

                                                  Thank you for the related link! That does indeed sound closely related. I wonder if there’s some shared ancestry to these ideas, or if they developed them independently — that would be a good sign for their accuracy!

                                                2. 1

                                                  Not the same thing, but along a similar line of thought: https://www.finnie.org/software/2ping/ — bidirectional ping.

                                                    1. 2

                                                      This doesn’t seem to be possible to setup from Firefox mobile… Am I missing something?

                                                      1. 3

                                                        No, I think you’re right; I haven’t found a way to set up new ones on mobile.

                                                        However any that you set up on your desktop and sync to your phone will work there. That’s how I use them on my phone.

                                                      2. 9

                                                        When I switched from duckduckgo bangs to firefox keywords search I found %S by coincidence for search terms without url escaping. I couldn’t find this in any documentation. This allows me to just add !archive in front of the url to get redirected to the web archive:

                                                        https://web.archive.org/web/*/%S
                                                        
                                                        1. 1

                                                          That’s really really useful! Thank you!

                                                        2. 29

                                                          Did you know that you can search all open tabs (even across synced devices) if you prefix your search term in the urlbar with a percent sign (%)?

                                                          There are also other modifiers to restrict results to bookmarks, history etc. See https://support.mozilla.org/en-US/kb/awesome-bar-search-firefox-bookmarks-history-tabs#w_changing-results-on-the-fly

                                                          (N.B. We actually call it the “awesome bar” instead of address or search bar, because of all these extra features:))

                                                          1. 6

                                                            Oh wow, I had no idea! The fact that it works across synced devices too is incredible. I’ll be using all of those extensively from now on; thank you!

                                                            1. 3

                                                              Wow, thanks! This is like half of the reason why I use the Vimium plugin and, nowadays, qutebrowser! God, I wish “advanced user” features were more well documented. Just a list of productivity tips in a concise format. At this point, I’ll have to write it myself.

                                                              1. 2

                                                                Start a draft and I’m happy to proof read (and maybe even contribute a few tips). Would be a great guide to have.

                                                                1. 1

                                                                  God, I wish “advanced user” features were more well documented.

                                                                  Firefox 66, released 9 days ago, documented that % feature. Specifically, that version added a Search Tabs menu item to the ‘⌵’ tab overflow menu. When activated, that menu item just moves focus to the Awesome Bar and prepends “% ” for you.

                                                                  I found that an elegant way to teach me the shortcut syntax without having to display help text anywhere. But now that I think about it, the interface could be even better if the Awesome Bar results popover displayed “searching in tabs” somewhere whenever the text contained %. And I didn’t realize until reading that linked help article that the % could be anywhere in the text, not just at the start.

                                                              2. 4

                                                                Looks really nice! The ad-hoc informal type notation makes me wonder how it would look with real type annotations.

                                                                You wouldn’t necessarily have to adopt actual type checking (though my team at work has found mypy really handy) — but if you’re going to the effort of documenting every parameter and return value, might as well let the computer check that the docs are correct/up to date!

                                                                1. 3

                                                                  I personally use zenburn (Screenshot)

                                                                  1. 1

                                                                    I don’t understand the popularity of Zenburn; it is really hard to see for me. Does anyone else experience this?

                                                                    1. 2

                                                                      I have a strong preference for zenburn, but in spite of regularly searching for replacement themes, my eyes seem to find zenburn the most pleasant. I have not been able to determine why.

                                                                      I would also be interested if anyone were to come up with a plausible hypothesis. (at least solarized has some sort of perceptual story to it :)

                                                                      1. 1

                                                                        zenburn is pretty nice, though, somewhat muted. Monokai is a clean and readable theme if you like it a little bit less muted.

                                                                      2. 2

                                                                        That’s the whole point of themes. Everybody can get what they want/need. Zenburn is totally unusable for me - I need a super high contrast theme.

                                                                        I like the Deeper Blue Theme which I find to have good contrast and high readability for my crappy vision :)

                                                                        1. 1

                                                                          After some years I found myself preferring light themes and at the moment I’m settled with spacemacs-light (which works even if you don’t use spacemacs).

                                                                        2. 1

                                                                          I really like it, but agree that it’s too washed out — so I just shift the background colours down a notch to a darker version with more contrast. Specifically, in Emacs:

                                                                          (use-package zenburn-theme
                                                                            :init
                                                                            (defvar zenburn-override-colors-alist
                                                                              '(("zenburn-bg-2"  . "#000000")
                                                                                ("zenburn-bg-1"  . "#101010")
                                                                                ("zenburn-bg-05" . "#282828")
                                                                                ("zenburn-bg"    . "#2F2F2F")
                                                                                ("zenburn-bg+05" . "#383838")
                                                                                ("zenburn-bg+1"  . "#3F3F3F")
                                                                                ("zenburn-bg+2"  . "#4F4F4F")
                                                                                ("zenburn-bg+3"  . "#5F5F5F")))
                                                                            :config
                                                                            (load-theme 'zenburn t))
                                                                          
                                                                      3. 2

                                                                        What license are these available under? It doesn’t seem to say anywhere, and the download doesn’t contain a file specifying it either. At the bottom of the page it says “Creative Commons”, but which CC license specifically?

                                                                        1. 1

                                                                          Just asked him on twitter, looks like it’s BY-SA 4.0 but the actual site hasn’t been updated yet to reflect that.