1. 4

    -WliterallyAll would be very appreciated.

    1. 2

      The historical reason why -Wall doesn’t enable all warnings is that warnings have been gradually added to the compiler over time. Adding new warnings to existing options could cause builds to fail after upgrading gcc.

      Moreover, some pairs of warnings are incompatible (in the sense that any code accepted by one would be rejected by the other). An example of this is -Wstrict-prototypes and -Wtraditional.

      1. 5

        The historical reason why -Wall doesn’t enable all warnings is that warnings have been gradually added to the compiler over time. Adding new warnings to existing options could cause builds to fail after upgrading gcc.

        I’m aware of that, though I still find it wrong that -Wall doesn’t actually include the new warnings, a build breaking on upgrade with -Wall is in my opinion the more logical outcome. I would rather have flags like -Wall4.9 that would remain constant on upgrades so no one who’s just using that subset of the warnings breaks their build. -Wall can then remain true to its meaning. Seeing that the ship has sailed on that a long time ago, I still would like to have a -WliterallyAll (can be called something else) that would include -Wall -Wextra and others like -Wstrict-overflow.

        Moreover, some pairs of warnings are incompatible (in the sense that any code accepted by one would be rejected by the other). An example of this is -Wstrict-prototypes and -Wtraditional.

        These ones can’t be and don’t have to be included.

        1. 5

          I really like the idea of -Wall-from=$VERSION, and you could even support -Wall-from=latest for people who truly are okay with their builds breaking whenever they upgrade their compiler.

          1. 2

            clang supports -Weverything which I’ve tried, and it happily spews out contradictory warnings (“Padding bytes added to this structure”, “No padding bytes have been added to this packed structure!”) along with (in my opinion) useless warnings (“converting char to int without cast”).

            1. 1

              Yep, -Weverything can be amusing, but it really does throw everything at the code.

            2. 1

              These ones can’t be and don’t have to be included.

              So your -WliterallyAll would not enable literally all warnings either? I’m not sure how that solves the problem.

              I would rather have flags like -Wall4.9 that would remain constant on upgrades so no one who’s just using that subset of the warnings breaks their build. -Wall can then remain true to its meaning.

              Now this is a neat idea that I can get behind.

            3. 1

              Correction: I have been informed that new warnings actually have been added to -Wall on multiple occasions.

              The better explanation for why -Wall leaves many warnings disabled is that many of them are just not useful most of the time. The manual states:

              Note that some warning flags are not implied by -Wall. Some of them warn about constructions that users generally do not consider questionable, but which occasionally you might wish to check for; others warn about constructions that are necessary or hard to avoid in some cases, and there is no simple way to modify the code to suppress the warning.

              In other words, it might be better to think of -Wall not as “all warnings”, but as “all generally useful warnings”.

            4. 1

              Except the -Weffc++ warnings, those are really annoying and are not really about actual problems in your code.

            1. 2

              So… what does this mean for the network operator? Is this something I can implement with a firmware update, or is this a “I have to go buy new Ubiquiti WAPs” thing? Same for the end-user - can the WPA2-compatible cards/antennae act as a client on a WPA3-Personal or -Enterprise network, or do we have to wait for laptop manufacturers to build in the new hardware and worry about depreciation cycles, etc?

              1. 2

                From another article:

                WPA3 is available on new routers certified by the Wi-Fi Alliance, and it’s up to individual vendors whether to install the protocol on existing routers with a software update.

                I don’t have an answer to your second question, but as it’s only a new encryption standard, I don’t think any hardware upgrades will be necessary…

                1. 1

                  Cheers, thanks for that! I was just reading in [https://www.wired.com/story/wpa3-wi-fi-security-passwords-easy-connect/](yet another article) that new hardware would be required:

                  “Even at the very beginning, when a user has a mix of device capabilities, if they get a network with WPA3 in it, they can immediately turn on a transitional mode. Any of their WPA3-capable devices will get the benefits of WPA3, and the legacy WPA2 devices can continue to connect,” Robinson says.

                  Lurking inside that assurance, though, is the reality that WPA3 will come at a literal cost. “The gotcha is that everyone’s got to buy a new everything,” says Rudis. “But at least it’s setting the framework for a much more secure setup than what we’ve got now.”

              1. 3

                Your understanding of the way the feature works and doesn’t is correct. I don’t think it needs to notify the mods, just follow the existing logic for when there’s enough user suggestions and no prior mod actions. See StoriesController#submit_suggestions for an entry point and, in the Story model, the methods starting save_suggested_.

                1. 1

                  Are merges easy to undo once performed? If not, I suspect that a (relatively) small group of users could cause serious vandalism by suggesting many unrelated comment sections be merged.

                  1. 7

                    Yeah, trivial to undo.

                    Users are currently entrusted with tag and title editing now and so far have not abused it, I don’t worry that they’d begin with merging. I’d rather not create a second class of users, that drags in a whole lot of social hierarchy baggage that humans have.

                1. 3

                  I proposed a language extension on the GHC bug tracker a few years ago similar to this!

                  1. 4

                    Writing to Mastodon’s API isn’t too hard! Here’s my Tumblr-to-Mastodon bot, written in Python to run on AWS Lambda. It posts to @migurski@mastodon.social. Darius Kazemi’s Mastodon OAuth page was helpful.

                    1. 1

                      Mastodon’s API seems well designed; it’s downright easy. Here is an OpenWeatherMaps bot I wrote for a hackathon. source.

                    1. 2

                      I missed the (2008) in the title and assumed this was posted recently. It’s disappointing how many of these problems are still relevant in Haskell today.

                      sometimes the type classes which are there are poorly thought out (Num shouldn’t extend Eq, and it would be nice if + was factored out in order to provide better support for things like vector spaces).

                      I wouldn’t mind different typeclasses for every operation (Eq, Addable, Subtractable, etc.) with common cases such as Num around as a quick way to define many instances concisely. But this is Haskell, which means that smarter people have probably thought of this and decided against it…

                      1. 0

                        But this is Haskell, which means that smarter people have probably thought of this and decided against it…

                        AFAIK the smart people decided against changing the default, since it would be a large breakage for mostly subjective reasons (similar changes, like making Applicative a superclass of Monad, have more objective, definitive arguments in their favour (e.g. we can derive an Applicative from a Monad, so it’s “already there” in a sense)).

                        Meanwhile, lots of smart people have made alternative preludes which are opt-in for those who don’t want the default.

                      1. 8

                        I donate money on a monthly basis to the Against Malaria foundation, since they are one of GiveWell’s top rated effective charities.

                        1. 2

                          You are awesome. Stay awesome.

                          1. 3

                            I was concerned that the new extension API would break my extensions, but HTTPS Everywhere, uBlock Origin, and Privacy Badger are already compatible with the new version of Firefox. NoScript has announced that it will have support “definitely by the end of this week”.

                            Unfortunately, Random Agent Spoofer will not support the new version. Does anybody know any alternatives?

                            1. 3

                              uMatrix has user agent spoofing.

                              1. 2

                                Agent spoofing is something that Firefox (as of version 56) supports natively, but what I like about Random Agent Spoofer was that it could be set to send a randomized user-agent string with every request. uMatrix doesn’t appear to do that, from what I can see.

                              2. 2

                                I’ve been using uBlock Origin as a Noscript replacement with no complaints.

                              1. 1

                                I set security.ssl.require_safe_negotiation to true and now one of my banking websites doesn’t work. Marvelous.

                                1. 4

                                  I didn’t expect to be the first to mention Autistici/Inventati.

                                  1. 10

                                    I will use that tag as a filter. I will also suggest the tag next time some post title “leads me down a garden path”.

                                    1. 4

                                      I too would filter links using this tag.

                                      1. 1

                                        @hobbes @danso What if it was free of charge with source for personal use, educational purposes, or verification? Software that helps people, is inspectable, or fixable but it’s still proprietary since its license is restrictive. Or patents the FOSS people are ignoring hoping for the best? A proprietary filter would apply to it with you missing its benefits.

                                        Would both of you like all shared-source, free like beer, proprietary software filtered too? Or just paid and/or closed-source stuff? Three examples from my mind are CompCert for perfect compilation, x86/ARM/MIPS/POWER CPU’s or assembly since their owners enforce patents, and most mobile OS’s (including non-ASOP Android).

                                        1. 3

                                          Price has nothing to do with “free” vs “proprietary” software, and you seem to know that, so I’m not sure why you keep bringing it up throughout this comment thread.

                                          Anyway, I’m fine with the line for this tag being unclear and missing a story that would interest me once in a while if it means I don’t see what are effectively advertisements every day for things I would refuse to use on principle.

                                          Does this include shared-source, non-commercial use licenses? I don’t really care either way…

                                          1. 1

                                            Appreciate the reply on what you’d filter. You also miss the connection between paid and FOSS. Many FOSS would simply not exist if the mantra of only use FOSS or unencumbered was followed. Universities getting revenue from tech transfer would cut FOSS’d research a bit to focus on whats popular with funding authorities, proprietary vendors contributing to Linux etc would stop, dual licensed works would take a hit, open core model would take a hit, nobody would be communicating over today’s Internet, and so on.

                                            The number of people working with financial incentives and the amount of FOSS in existence have a significant relationship. Anyone wanting people to stop buying or selling proprietary software is just asking a lot of FOSS to go away. Esp majority of contributions to Linux kernel, Android, and LLVM which would impact me peronally despite me mostly using FOSS software. So, I challenge their viewpoint esp with hardware where FOSS failed miserably due to human nature or just not right structure.

                                      1. 3

                                        Aww :,^)

                                        1. 3

                                          Nice! What advantages does this have over other markup/markdown-style tools?

                                          1. 4

                                            Depends on your use case.

                                            • It supports macros, so you can easily define e.g. a ?word macro that links to the Wikipedia article for word, or highlights it in green, or whatever you want, really. The macros look just like the native operators, so it looks seamless. That’s very useful if you have repetitive patterns in your documents. You can override native operators inside a document, if need be, or write them in JavaScript if they are more complicated.
                                            • You can write arbitrary HTML with an indent-based syntax that’s a bit similar to HAML. You can also embed verbatim HTML and CSS, but that’s not as nice, in my opinion.
                                            • Conditionals and loops.
                                            • Plugins to embed JavaScript and a few other compile-to-js languages, if you need to generate part of the document.

                                            There are some other things that are not documented yet, such as selecting a specific subset of features you want to support, and the part of the engine that can generate tables of contents or bibliographies.

                                          1. 16

                                            In fact it’s insulting to all those contributors who work so hard on Firefox to say that extensions are the only thing keeping them from switching to Chrome.

                                            I’m wondering, how is this insulting? Is it insulting for Linux kernel guys to say that someone uses Windows instead of Linux because Windows can run Photoshop and Linux can’t? People don’t use runtime or kernels, they use applications. And in the world of browsers, applications are plugins (and actual websites).

                                            Also: I’m not using Firefox nor Chrome, but Vivaldi, mostly because Vivaldi has native vertical tab support. I don’t want to insult anyone, I just want vertical tabs!

                                            1. [Comment removed by author]

                                              1. 2

                                                I use it as well, but it’s not smooth or performant… as the rest of the browser, unfortunately.

                                                1. 5

                                                  Ah, then it makes sense to stick to Vivaldi for that. Nothing’s performant in Vivaldi, so slow vertical tabs just blends right in.

                                                  //I use Vivaldi, but performance is not its current selling point.

                                                  1. 1

                                                    That’s interesting what you say, because I feel Vivaldi to be faster and more responsive than Firefox on both Windows and Linux. On Linux Firefox, sometimes closing a tab required me to wait up to 1.5 seconds. Loading Slack chat made the browser unusable for 4 seconds, but on Chrome, or Chrome-based browsers, I haven’t experienced any slowdowns.

                                                    I was a Firefox fan since version 2.0, but I really can’t deny that FF feels much slower than Chrome or Chromium-based browsers like the new Opera or Vivaldi. This is across lots of systems and different computers (desktops, laptops), so I don’t think it’s a matter of bad system settings…

                                                    1. 1

                                                      //I use Vivaldi, but performance is not its current selling point.

                                                      Amen. I use Vivaldi because it handles its keyboard shortcuts centrally – the inability to define keyboard shortcuts is the reason I left Firefox [1]. Sometimes this feels like I traded milliseconds spent buttonpressing for milliseconds of response time. Still worth it, so far. Nowt quite as lovely as single-key shortcuts.

                                                      [1] Some extensions let you define some keyboard shortcuts, but the resultant patchwork of settings windows was not very nice to work with. If Firefox ever implements a central keybindings registry, where the browser (and possibly its extensions) exposes actions for you to bind shortcuts to … ooh, I’d love that.

                                                2. 1

                                                  I don’t think this analogy is valid. It seems to me that it isn’t an insult to Linux developers to say that you only use Windows because it has Photoshop, but the Windows developers might reasonably take offense.