1. 5

    This is just awesome to read, simple but effective communication.

    1. 3

      That godbolt website he keeps linking to & talking about is really, really cool. I am just in awe right now. Carry on..

      1. 2

        You might be interested in watching this: https://www.youtube.com/watch?v=bSkpMdDe4g4

        1. 1

          I was, thanks!

      1. 10

        I am totally impressed by the article. The authors tries to silence his computers for decades, I am doing the exactly opposite. All my workstations in the past were equipped with large fans (not the small and noisy ones, the large ones that run slow) to generate a decent amount of white noise.

        When I am usually sitting in my room and nothing is running, I can hear the noise from the trains, cars, kids, etc outside and from my neighbours inside the house. As soon as I turn my computer on the room is filled with white noise and I can concentrate on my work. Thus, I personally would never, ever use a silent workstation :)

        Am I the only one using “noisy” computers?

        1. 1

          Have you tried listening to ‘pink noise’? I don’t use it all that often as I prefer silence, but it does help me concentrate sometimes.

          1. 1

            Sounds interesting. Currently, I am only having the noise generated by my noisy computer.

            How do you generate the noise? Do you use a specific hardware/tool/… ?

            1. 2

              I first tried listening to YouTube videos like speps mentioned and that got me interested. I had a shell alias for it named ‘pink’ that used sox, but I don’t seem to have it on the computer I’m currently using. I’m pretty sure it was just something like this:

              $ play -n synth pinknoise vol 0.25
              

              I just start it up when I get too distracted. There’s also ‘brownnoise’ and (suprise) ‘whitenoise’. Listening to regular white noise first gives you something to compare it with. I find pink noise to sound kind of like flowing water and not at all distracting. You might be fine with the sound of your computer ;).

              $ play -n synth brownnoise vol 0.25
              $ play -n synth whitenoise vol 0.25
              

              Actually it might have been this one (sounds more like what I remember): https://askubuntu.com/a/789469

              1. 1

                YouTube has videos like 10 hours of whatever noise you want.

                1. 1

                  I use the iOS app from https://mynoise.net. It generates various types of noises and lets you change levels, save presets, etc. They also have albums on iTunes, Amazon, and Google Play. Most generators cost money but I find the free set to be good enough. Although it does “coloured noises” I prefer the “rain storm” generator.

            1. 12

              I thought it would actually be about std::optional, not workspace issues that have nothing to do with the problem at hand.

              TL;DR: keep your toolchain up to date if you want to use recent language features.

              1. 3

                yeah. I suspect better article naming would be better at not leaving people feel like they kept on expecting the article to go somewhere it didn’t.

                1. 9

                  I think it’s funny because the reader’s experience parallels the author’s experience of wanting to get someplace.

                  1. 4

                    Somebody gets me! :)

                  2. 2

                    Sorry folks :(. But std::optional works as one expects - you can write functions to accept std::optional and you just check early on if it evaluates to true and just return empty as needed, so you can chain functions neatly.

                    Now, if only we could have pattern matching …

                    1. 3

                      I think the consensus of languages with options and pattern matching is “don’t use pattern matching, use combinators”.

                      1. 4

                        Hmm as a full-time Haskeller “don’t use pattern matching” is news to me. Do you mean “don’t use pattern matching for fundamental vocabulary types like Maybe or Either? In which case it’s a reasonable guideline. For types representing your business domain, pattern matching is perfectly good practice. IMHO exhaustiveness checking of pattern matching is an indispensable feature for modelling your domain with types.

                        1. 1

                          Do you mean “don’t use pattern matching for fundamental vocabulary types like Maybe or Either?

                          Yes.

                        2. 3

                          Consensus, really? I’m a big fan of combinators, but I’ll still match on option types sometimes if I think it looks clearer.

                          1. 2

                            Ooh, this is interesting to me - can you expand on this (or point me to some writeups)? Thanks!

                        3. 2

                          Agreed. I read all the way down and nothing significant about std::optional.

                          I thought it was going to be some sort of piece about how using std::optional could lead to yak shaving or something :(

                      1. 6

                        Blame me for being blunt but it’s a bit stupid. The spec of the language has had that for ages: https://www.ecma-international.org/ecma-262/5.1/#sec-11.4.8 Maybe it’s just me, but I enjoy reading the spec of a language I’m learning, and if there’s no spec it’s usually a red flag.

                        1. 3

                          I’m kinda worried that the C++ 2d graphics proposal uses Cairo as a reference implementation…

                          1. 1

                            @ruki: I’ve noticed that with game engines that people make at home and try to promote. Usually if you write an engine, a library, etc. it’s nice to actually have a full use case / demo / application done with it. For example, Unreal Engine 4 has tons of tech demos, short films, etc. that are made with it. A game engine lives and dies by the projects it’s been used to create. In my opinion, the same applies for code libraries.

                            1. 1

                              Ok, Thank you for your advice.

                              1. 4

                                Thank you for the invite @emrox! Yes, and also added Perl during the lunch break :) Feel free to suggest other lists on GitHub: https://github.com/listcommunity/support

                                1. 2

                                  Thank you @binarymax @nickpsecurity. I’ve been reading Lobsters for a while but it’s nice to be able to contribute :)

                                  1. 1

                                    This is really nice. Thank you for putting this together. And welcome to Lobsters :)

                                    1. 1

                                      Welcome to Lobsters! Good idea trying to integrate and organize the lists. :)

                                      1. 2

                                        the author of list.community contacted me on Twitter to let you know he added the C++ section to the page

                                        https://list.community/fffaraz/awesome-cpp

                                        1. 1

                                          No Perl either!

                                          1. 3

                                            There’s Javascript and Golang, it’s okay!

                                              1. 2

                                                I stand corrected, thanks! I didn’t find it on the linked front page.

                                                1. 3
                                          1. 3

                                            That would have helped me understand why SOM was taught in my CS course… We used it to match a grid to another grid which I found pointless…

                                            1. 20

                                              Chrome is worse than Internet Explorer 6, really. I don’t recall ever being concerned that IE6 itself was spying on me and phoning home to Microsoft, but I can’t say that about Chrome and Google. I think using Chromium mostly avoids that problem, at least.

                                              However, I recently found Otter Browser which attempts to mimic the original Opera browser. I’ve been using it instead of Chromium when I can, and haven’t noticed any rendering problems or Javascript incompatibility, which should be expected since it’s WebKit based.

                                              My biggest complaints so far are that the built in ad-block isn’t great compared to uBlock Origin, some videos don’t play due to Widevine problems, and it’s not very stable. The last problem may be my own fault, though, because I’m running the bleeding edge tip of their Git repo. It’s on my todo list to start debugging some of the problems and contributing code, but I say that about a lot of projects…

                                              In any case, it’s being actively developed and I think it’s worth a look for anybody tired of being at the mercy of Google, Microsoft, Apple, and Mozilla.

                                              1. 5

                                                I’ve used SeaMonkey[1] for years now which mimics the original Firefox 2.0. Never found any compatibility issues as it’s still a recent Gecko, some WebGL or WebRTC stuff doesn’t always work but that’s fine.

                                                [1] https://www.seamonkey-project.org/

                                                1. 1

                                                  Otter just seems to be a UI wrapped around WebKit. Meh.

                                                  1. 1

                                                    I’m not using it for the rendering engine.

                                                    I’m not even sure why the underlying engine matters, really.

                                                1. 1

                                                  GPU results are extremely hardware dependent[1] so be aware that it’s not deterministic and adapt your test cases accordingly.

                                                  [1] https://stackoverflow.com/questions/24977294/is-cuda-warp-scheduling-deterministic

                                                  1. 5

                                                    For me, it’s really annoying with things like Google News.

                                                    1. 3

                                                      My Google News has been stuck on news about Belgium for a while now although I wanted France… I couldn’t find a way to change it last time I checked…

                                                      1. 1

                                                        My Google News has been stuck on news about Belgium for a while now although I wanted France… I couldn’t find a way to change it last time I checked…

                                                        Go to news.google.fr .

                                                    1. 4

                                                      Have you tried Ada? I never looked at it myself, but that article[1] posted today looks very interesting. And there seems to be a well supported web server with WS support[2]

                                                      [1] http://blog.adacore.com/theres-a-mini-rtos-in-my-language [2] https://docs.adacore.com/aws-docs/aws/

                                                      1. 4

                                                        TBH I can’t believe Ada is still alive. I thought it is something that we did in Theory of Programming Languages course and called nothing other than obsolete systems use it. Would give it a shot for sure!

                                                        1. 4

                                                          This article trying to use it for audio applications will give you a nice taste of the language:

                                                          http://www.electronicdesign.com/embedded-revolution/assessing-ada-language-audio-applications

                                                          This Barnes book shows how it’s systematically designed for safety at every level:

                                                          https://www.adacore.com/books/safe-and-secure-software

                                                          Note: The AdaCore website has a section called Gems that gives tips on a lot of useful ways to apply Ada.

                                                          Finally, if you do Ada, you get the option of using Design-by-Contract (built-in to 2012) and/or SPARK language. One gives you clear specifications of program behavior that take you right to source of errors when fuzzing or something. The other is a smaller variant of Ada that integrates into automated, theorem provers to try to prove your code free of common errors in all cases versus just ones you think of like with testing. Those errors include things like integer overflow or divide by zero. Here’s some resources on those:

                                                          http://www.eiffel.com/developers/design_by_contract_in_detail.html

                                                          https://en.wikipedia.org/wiki/SPARK_(programming_language)

                                                          https://www.amazon.com/Building-High-Integrity-Applications-SPARK/dp/1107040736

                                                          The book and even language was designed for people without a background in formal methods. I’ve gotten positive feedback from a few people on it. Also, I encouraged some people to try SPARK for safer, native methods in languages such as Go. It’s kludgier than things like Rust designed for that in mind but still works.

                                                          1. 2

                                                            I’ve taken a look around Ada and got quite confused around the ecosystem and which versions of the language are available for free vs commercial. Are you able to give an overview as to the different dialects/Versions/recommended starting points?

                                                            1. 4

                                                              The main compiler vendor for Ada is AdaCore - that’s the commercial compiler. There is an open source version that AdaCore helps to developed called GNAT and it’s part of the GCC toolchain. It’s licensed with a special GMGPL license or GPLv3 with a runtime exception - meaning you can use both for closed source software development (as long as you don’t modify the compiler that is).

                                                              There is also GNAT AUX which was developed by John Marino as part of a project I was part of in the past

                                                              1. 1

                                                                Thanks for clearing up the unusual license.

                                                              2. 2

                                                                I hear there is or was some weird stuff involved in the licensing. I’m not sure exactly what’s going on there. I just know they have a GPL version of GNAT that seemed like it can be used with GPL’d programs:

                                                                https://www.adacore.com/community

                                                                Here’s more on that:

                                                                https://en.wikipedia.org/wiki/GNAT

                                                        1. 2

                                                          Is this somebody ripping off emscripten? or did they write their own? Reading the docs it looks like buzzword crap. I’m going to guess it is emscripten.

                                                          If it isn’t crap, then I think they need to redo some docs.

                                                          edit: I’m pretty sure it is a scam, I don’t know who is upvoting this. edit edit: Wow. was posted on hacker news in 2014. Maybe it is just a site written by non native english speakers. I am super confused about reality right now.

                                                          1. 1

                                                            by non native english speakers

                                                            Given the users of the tech are France based companies, it wouldn’t be surprising.

                                                            Also, after a quick look at the getting started pages, it seems like a new target for the base clang++ CLI instead of an entirely new compiler like emcc.

                                                          1. 1

                                                            In the good old days there was source navigator. The last release was in 2014. Maybe it has some interesting successor you’d like to talk about?

                                                            1. 1

                                                              SourceTrail is pretty nice, but I’ve yet to use it at work: https://www.sourcetrail.com/

                                                            1. 2

                                                              For those wondering: [edited out some secrets I accidentally leaked here.]

                                                              Was actually: I will certainly wear my temporary Firefox tattoos, inflate the Firefox balloons and put some stickers up. (Source: http://web.archive.org/web/20171109195042/https://daniel.haxx.se/blog/2017/11/08/firefox-quantum/)

                                                              1. 1

                                                                Unfortunately, the same will happen. His project or Wayland will end up being forked to support Nvidia…

                                                                Also realised that it’s named “Sway” because the 1st letter is actually the 1st letter of his alias.

                                                                1. 1

                                                                  Have you ever tried to convert a large CMake project to XMake? There’s a few around like UE4, LLVM, Urho3D which would be interesting cases.

                                                                  I’ve seen XMake make the rounds a little bit, but like CMake, I would not think about it unless it’s being used by a dependency I’m interested in. Then if it’s a dependency, how easy is it to integrate with my project?

                                                                  1. 1

                                                                    Sounds to me that it’s telling once how many of the next octets are urgent from that point, it doesn’t contain the urgent data as the author implies. The correction RFC seem to confirm that.

                                                                    1. 3

                                                                      Article is from 2010.

                                                                      Note that MISRA is updated with new standards. The version I have is for C99 for example. I’m sure there will or is already one for C11.

                                                                      1. 2

                                                                        You are right.
                                                                        A few of the guidelines with major criticism appear to be deleted from the subsequent MISRA-2004 guidelines.
                                                                        Subsequently MISRA-2012 is extended to cover C99 as well.

                                                                        There doesn’t appear to be one for C11 yet
                                                                        https://en.wikipedia.org/wiki/MISRA_C#MISRA_C:2012_Amendment_1