Threads for feep

  1. 3

    From outside the community (love the language, have written very little, just playing):

    1. It bugs me, various reasons, doesn’t matter why really
    2. Love the language. Wouldn’t stop me from using. I would get used to it, maybe even like it, because it would let me name things how I want to
    3. Other people hate it “…but because it is one of the main reasons that people do not even try Nim.” – dom96
    4. Counter to the freedom gained in 1., set official style(s) from above, this has been very well received (see go fmt and other formatters since), if it is the way, people accept it and don’t argue.

    Sadly, names probably cannot be well auto formatted.

    So, yes, get rid of it (see 2).

    But give strong guidance on the correct style so people won’t argue about it.

    edit: sorry meant to refer to 2 (not 3) as reason to get rid of it.

    1. 2

      Thanks. This is helpful feedback. Another issue is that it means one must use things like nimgrep and other Nim-specific tooling “to be certain”. (EDIT: and of course, any more precise/explicit ident-style translating suggestion might also possess that same property…)

      1. 2

        Sadly, names probably cannot be well auto formatted.

        It’s pretty easy to automatically prevent snake_case and SCREAMING_CASE.

      1. 3

        I would like a convention-over-configuration framework for Rust.

        Also, don’t have have time to take a real look at it right now.

        But wow, that name is super cute.

        1. 4

          The blog post is posted now and locked in time now. Time continues forward always. This article diverges starting now.

          Frameworks sometimes have upgrade guides going from version to version. Unless someone packages this blog post as a tool, with generators and CLIs, it’s copy-and-paste which is forking and bit-rot start.

          Even generators have a tricky problem of revisiting vs heirloom configs. If I generate a project using the FooFramework on 1.0, follow the upgrade path from 2.0 -> 3.0 -> 4.0. What do I expect to happen? I generated 1.0. Now the world is on 4.0. Who tells me where I’m at with my mix of libraries and decisions? Deprecation warnings along the way? Even the most battle-hardened frameworks, docs and communities have bit-rotted comments in this situation.

          I would not want to be running “stuff from a blog post 0.0.0”. However, that doesn’t mean this blog post is bad. It’s got the steps and recommendations (which are valuable). Next step, make a script or a template for people to use. But now it’s heading towards a framework.

          It’s like script iteration:

          • Write down the steps, curate things, collect knowledge
          • Put those steps in scripts
          • Polish the scripts into programs
          • Apply software rigor etc

          I like all the Rails copycats. It’s good for everyone. Next, Redwood, Blitz, Remix are all very familiar. Would be great to see a low level language pull this off. My current thoughts are that it can’t be done for whatever reason or I’m wrong and it just hasn’t been done yet. Very hard to do tippy-top abstractions in assembly. Rocket and Buffalo (Go) are the nearest I’ve tried.

          Someone on twitter said something like

          rails for rust? be careful what you wish for

          I think if the idea is solid, implementations will converge.

          1. 5

            As an aside, there is one generator/template-builder/cookiecutter alternative that actually supports updates: https://copier.readthedocs.io/en/stable/updating/

            1. 1

              Very cool. Bookmarked.

              When updating, Copier will do its best to respect your project evolution by using the answers you provided when copied last time. However, sometimes it’s impossible for Copier to know what to do with a diff code hunk. In those cases, you will find *.rej files that contain the unresolved diffs. You should review those manually before committing.

              Mac does this on updates. It makes a directory on the desktop called Relocated Items full of files it doesn’t know what to do with. Redhat/CentOS does .rpmsave (iirc), debian/ubuntu does .dpkg-old.

              Note that this is only a problem with code comments (not annotations) that don’t execute. There’s a way to verify you don’t have regressions on upgrades: testing on many levels. And deprecation warnings (annotations). But not docs and comments (without some hoops).

              I tried to update my PC bios recently (excuse the example) and I tried to go from A -> C. It said my .zip was corrupted. I had to go from A -> B -> C. And it worked. Same file. It can’t even error cleanly. A has no idea what the file C from the future is. B had a breaking change.

              1. 1

                Interesting. I have my own Cookiecutter clone. Maybe I should start dumping answers to interactive questions to the user cache directory so that it can be rerun easily.

            2. 3

              I tried building one years ahead, but wasn’t able to find collaborators. Had a good name though: gerust.

            1. 6

              It always disappoints me when a News page on site doesn’t have an RSS feed.

              1. 7

                It does have an Atom feed : https://helix-editor.com/atom.xml

                Unfortunately web sites often only advertise their feeds in the source. I’ve taken the habit of letting my feed reader discover them, or directly read the source.

                It’s in the HTML <head> by the way:

                <link rel="alternate" type="application/atom+xml" title="Atom" href="https://helix-editor.com/atom.xml">
                
                1. 4

                  Firefox and others long ago removed the RSS button. I use this extension to add it back

                  1. 4

                    Unfortunately web sites often only advertise their feeds in the source

                    That is the correct choice. Users shouldn’t be burdened with technical details like “atom feed URL” just let them subscribe to the URL they can see and let the feed be autodetected.

                    1. 2

                      Odd, I swear I checked the source but apparently I must have mistyped when searching.

                      Thanks!

                    2. 2
                    1. 2

                      It looks like it does not support write-ahead logging (WAL) mode.

                      https://github.com/backtrace-labs/verneuil#whats-in-this-repo

                      1. 6

                        An ad/junk blocker that:

                        • Denies by default
                        • Has hueristics to allow from sites that are likely safe
                        • Has a denylist to block known bad domains
                        • Is able to quickly (hotkey) switch to allowing larger categories of content ( block most third-party js / frames > blocklist only > no blocking )
                        1. 1

                          Good luck. I’d love a “junk blocker” that goes beyond ads to remove things that users (obviously) don’t want: synchronous popups to join mailing lists; synchronous popups where devs brag about the latest features they’ve added; consent for tracking cookies; background JS that’s not driven by user interaction, etc. Unfortunately I don’t know how to build one that doesn’t devolve to a site-by-site, element-by-element breakdown of which components are obnoxious.

                          I’m getting a lot of user out of “reader view” these days. Do you know how those work? Do they end up encoding known elements of major sites or is it purely heuristic? It’s not perfect, but there’s a good chance if a site does a synchronous popup that reader view will fix it.

                          1. 2

                            Do you know how those (reader views) work?

                            I think almost all the browser-based reader views work like the original Readability bookmarklet code.

                            Don’t know if this is based on that code, but it should do what you want.

                            https://github.com/mozilla/readability

                            I’d love a “junk blocker” that goes beyond ads to remove things that users (obviously) don’t want: synchronous popups to join mailing lists…

                            It will not go into that.

                            …but, by blocking third-party js by default, most of that goes away like magic.

                            Only per-site config available will be a domain blocklist. Or an allowlist that allows more stuff through.

                        1. 10

                          kde-connect. With mconnect on Arch (no KDE) and weird one-off binary on Mac.

                          Haven’t yet tried to build mconnect on Mac.

                          Love it. Share menu on Android, CLI on laptop.

                          Sorry asimpson, don’t know about Windows. And pretty sure it’s not available of iOS.

                          1. 2

                            I believe there is a KDE Connect binary for Windows but it’s probably broken, not sure though.

                          1. 2

                            I make profuse use of GitHub/GitLab/whatever stars when I see stuff linked from Lobsters or reddit or anywhere else. If there’s something I really want to play with, I make a ticket in the appropriate system. E.g., this ticket for adding espanso to my default setup or a ticket in my work system for playing with vega.

                            These kinds of referrals can pretty much only come from social networks (not necessarily social media networks, I mean the abstract concept) or from someone else who’s watching. Back in the day, I’d watch Freshmeat but I don’t know what’s out there that’s basically just a firehose of release announcements with changelogs. I guess tools like dependabot address the security/feature needs to watch that firehose but there’s still the “ooh shiny” part of me that misses that experience.

                            1. 5

                              I miss Freshmeat very much. It was nice to have a system which didn’t assume anything about where the code was hosted or how it was distributed, had a large enough network to contain almost everything, and reviews to infer trust. I’ll never understand why it closed, and it seems almost impossible to replicate, because a new system with an empty catalog won’t see many visitors or submissions.

                              Before freshmeat, it seemed like there were a lot of curated software collections on CD-ROM, BBS, etc. These days there are a few still floating around that are basically neglected (remember tucows?) Even though we have more software than ever, there’s something strange in having so few catalogs.

                              1. 1

                                Properly cataloguing things is an expensive and time-consuming process, and nobody pays for information any more, meaning the only way to keep the lights on is to pimp out space in your catalogue to the highest bidder, meaning nobody trusts catalogues…. insert your choice of lionking.gif and/or yodawg.gif

                              2. 2

                                As an (ahem) heavy shopper:

                                For browsing? Awesome lists, blog posts on the topic, Arch wiki.

                                For search, mostly github. Which is… OK. But obviously and unfortunately incomplete. …Freshmeat.

                                Around the time Microsoft bought github and some people started I seriously considered rebuilding Freshmeat.

                                Not as maintainer-maintained, but as a meta search with the https://libraries.io/ (and other) data. With a more useful search than github.

                                But, where would the users come from?

                                Seemed like a lot of work to go from software packages that no one could find to a software search engine nobody could find.

                                I’m pretty sure it doesn’t exist currently. I want it. Anyone else?

                              1. 1

                                Debugging hardware for the protocol: https://github.com/AsahiLinux/vdmtool