1. 3

    This is a pretty nice thing, but I can’t help but to feel a little frustrated. All my monitors have orientation detection built in, and it works on Windows, but I can’t find any way for them to report on Linux, meaning I have to do so by hand.

    Similarly, I can’t seem to get laptop-driven brightness setting on my monitors. Local screen works fine, but DP attached monitors don’t seem to do the right thing, and I can’t figure out why.

    1. 1

      Hmm that is really frustrating. My monitor is from the stone age, so it definitely doesn’t have a feature like that. Are the monitors connected to your machine only by HDMI? I wonder if it’s partially the kernel’s drivers, partially your windowing system.

      1. 4

        No, they’re connected by DisplayPort. It’s definitely a software issue, it was a pretty big step down moving from Debian Jessie to Stretch. MST used to work, now it doesn’t, as well as DPMS which has regressed.

        Remote monitor brightness control etc has worked since before VGA connections went out of fashion with I2C lines, but I’m not sure how well it’s been replaced.

        Brightness: never seen it work on displayport on linux Orientation: never seen it work on displayport on linux MST: Stretch broke it here - I can no longer address chained monitors DPMS: Stretch broke it here - if a screen sleeps, it can’t be woken up without undocking my laptop, turning the monitor off and on, and redocking.

        I use my dock a lot less and for less important things these days so it’s not a big deal, it just would be cool if some developer time was poured into these little quality of life areas, is all.

        1. 4

          Brightness can be controlled over DDC/CI these days, which is still I2C…

          And for some really weird unknown reason, even Windows doesn’t do DDC/CI brightness control out of the box. I had to download ClickMonitorDDC to do it.

          Here’s something for Linux that should do it.

    1. 25

      Preparing to finalise my transition out of tech. On Wednesday I travel south into England for a bit for some tests for my new job, and as long as I pass these mostly formalities, I’ll be starting in my new industry in January - leaving me free to pursue foss work on my own terms, rather than spent my brains development budget on what my employer wants.

      1. 12

        May I ask what you’re moving into? If it’s intentional that you didn’t mention it, that’s fine, but I’m curious.

        1. 9

          I’ll hopefully be starting as a trainee air traffic controller - it’s not really that I didn’t mention it intentionally as felt it was unimportant. What matters is that when I do work on software in the future, I can instead focus on doing software stuff I enjoy rather than what I’m told to do.

        2. 3

          congrats on your new found freedom!

          1. 1

            Is it the work itself you don’t enjoy doing? Or all the externalities and silly walks introduced by the business aspects of our industry?

            Said another way, will you still hack on things for fun after you transition?

            I love my job, but even so look forward to retiring someday, so I can spend large blocks of time playing with whatever I want whenever I want, and also taking care of myself even better than I do today.

            1. 1

              I found that working in tech wasn’t as much fun as I’d hoped. I think a fair chunk of it is that nothing is ever as fun when you’re doing it for someone else as yourself. I’ll still continue to hack on stuff on my own terms for sure.

              The flip side is that my new role will be doing things that are completely orthogonal to software, so it would be the case that no employer or task in this industry is really comparable - the benefits and tradeoffs are all different.

              1. 3

                Well, I’m sorry to hear it didn’t work out but I hope your new career is everything you think it will be and more! I sometimes wonder if having come into the industry SO early as I did gives me a different perspective. There’s still a big part of me that secretly thinks “Seriously? You’re willing to PAY me for this? HONEST?” :)

          1. 1

            If I remember right, the most common way to do this is to build a spectrogram of your sampled audio (which is basically an FFT over time) and look at what spectrograms of reference audio it appears to be a subset of. There’s no reason why you couldn’t adapt another implementation to report not just a match, but also where the match was found. You might find it needs tuned because there’s more information carried in music than speech, or that the overall approach doesn’t work too well, but it’s what I know for now.

            As an aside, what does “silence on the waveform” actually mean? A zero crossing point? A number of samples all at 0? This might be a worthwhile step forward but it’s trivially defeated by overlaying small amounts of noise, or carefully putting the two subsections back together after removing a word, etc.

            1. 1

              what does “silence on the waveform” actually mean

              Forgive me, I’m still building my vocabulary in this context! I think I mean 0 for an extended time: Audacity shows the waveform flat at 0 when zoomed really far in. In the candidate haystacks, there’s virtually none of that.

              trivially defeated

              Yeah, it would be. Detection beyond a sloppy “copy and paste” job is out of scope right now.

              1. 1

                Cool. I think it’s a worthwhile and probably interesting project anyway. As mentioned, one approach would be to create a spectrogram, and then identify features in the time-frequency-intensity space, and look for those same features in other places.

                There’s probably useful research on this in computer vision, where they instead view it as X-Y-intensity for b/w images.

              1. 4

                Peter Theil has a philosophy degree from Stanford. Brett Kavanaugh has a cum laude history degree from Yale.

                1. 13

                  This is an incredibly lazy form of argument. You can’t disprove an observation about a trend with a counter-example. Counter-examples disprove universal quantification, not statistical deltas.

                  I see this pattern a lot, and we shouldn’t treat it as if it’s a compelling refutation.

                  1. 1

                    by golly! all them big words and everything. So, if you need it spelled out: neither the original post nor my response had anything to do with either universal quantification or statistical deltas, whatever they may be in this context. The original argument, which I see too often, is based on the theory that there is some magical ingredient in humanities that is necessarily missing in a STEM education. As far as I can see, however, it is as easy to absorb an arrogant and dismissive attitude and a tendency to use fancy nomenclature in lieu of thinking and open discussion from humanities courses as from science classes. And I think the underlying problem could and should also be addressed within science/engineering education which is taught in a narrow way. You should learn critical thinking and how to collaborate in engineering school, just as you should in a philosophy department, but it’s not only possible, but the standard, not to learn those in either program. As an example: I really like what Olin college is trying to do http://www.olin.edu/discover-olin

                    1. 1

                      Don’t get caught up in the labels. I didn’t read the article as you need a liberal arts degree to address the problems identified. I read it as simply suggesting putting more emphasis on humanities. To quote the person of focus in the article, “Students of computer science go on to be the next leaders and creators in the world, and must understand how code intersects with human behaviour, privacy, safety, vulnerability, equality, and many other factors.”

                      1. 3

                        I agree with that and think it’s important, but I don’t believe that adding a generic humanities course or two,or 100, can do it or is necessarily even the right approach. To teach people to be responsible citizens is a complex project. I plead guilty to assuming too much about what Baker meant. I have seen an argument that the humanities program is key to deeper understanding a lot and I think that’s a superficial and maybe reductionist approach.

                  2. 3

                    I don’t think Brett Kavanaugh is in the audience being targetted by the message in the article.

                    1. 14

                      The point is that humanities graduates don’t magically fix the issues of misinformation - they can be just as flawed and politically biased as anyone else.

                      Really we need to optimise for hiring those with “moral backbone”, make them feel able to say “no”, and then listen to employees when they do. I feel part of this can be fixed by regulating and licensing employees similarly to how line engineers need to be licensed. When your personal license to work is on the line, you have a strong incentive to be rigorous in your work and to say no when your employer asks you to work inappropriately. When engineers say no, these decisions are often respected and engineers have a strong network of support where they will often be backed up in their decisions if they are made for the right reasons, even when that runs counter to the business arms aims.

                      1. 0

                        Those two were intended as counter-examples.

                        1. 4

                          The examples were also unnecessarily political, especially for lobste.rs. It distracts from whatever point you are trying to make.

                          1. 0

                            How does it distract from the point?

                            1. 3

                              By using polarizing figures, you run the risk of the debate steering away from the actual point either parties were trying to make, and right into the realm of partisanship. It becomes hard, then, to exit the “no u” dead end that the discussion becomes. It’s usually frustrating for all parties involved, except maybe the trolls.

                    1. 18

                      Probably worth considering the authors followup when reading this, posted a week later: https://dev.to/jimsy/please-keep-using-ruby-4771

                      1. 7

                        I ended up away from my PC for a bit much sooner than I expected, so I didn’t get to take part in the discussion here, but I rather feel like most of the comments here missed the point.

                        While I’m not disputing that no programming language in practice can be turing complete, the mistake is jumping into thinking about implementations when the article is considering instead the abstract specification of the C language. In particular, the reason why C is not turing complete is because the specification requires pointer semantics that bake in enough implementation details that instead of breaking turing completeness, it’s required that no C implementation could ever be turing complete, even in the face of changing basic rules about computing.

                        In another thread of comments, there is the request as to a language that would satisfy the authors definition of turing completeness “in theory”: Brainfuck. If you consider brainfuck as “a bidirectional infinite tape with the following operators […]”, then we have a language specification that is turing complete, even if no implementation can be. One could argue of course that this means that the specification can never be fully and correctly implemented and that’s true, but you can also write specifications that equally state neither behaviours that force turing incompleteness (C), nor make explicit demands that are impossible to fulfill (brainfuck), and instead leave such details out entirely (imagine a language that deals only in objects and operations on them, without reference to their representation in any implementation whatsoever).

                        1. 1

                          Thanks for clarifying this a bit. I’m still confused.

                          the specification requires pointer semantics that bake in enough implementation details

                          If I understand, here you are saying there’s “too many details included in the spec”. But I don’t understand the next sentence fragment at all.

                          that instead of breaking turing completeness, it’s required that no C implementation could ever be turing complete, even in the face of changing basic rules about computing.

                          On its own, “it’s required that …” could make sense but the two sentence fragments don’t match and make no sense (to me) together.

                          In another thread of comments, there is the request as to a language that would satisfy the authors definition of turing completeness “in theory”: Brainfuck. If you consider brainfuck as “a bidirectional infinite tape with the following operators […]”, then we have a language specification that is turing complete, even if no implementation can be.

                          Could you say what the equivalent for C is here? Consider C as “a [???] with the following operations”?

                          1. 3

                            Could you say what the equivalent for C is here? Consider C as “a [???] with the following operations”?

                            The problem is that what the gp said isn’t quite true. Brainfuck isn’t a bidirectional infinite tape with the following ops. Brainfuck has a bidirectional infinite tape, and the following operators. C has a declarations, expressions, control flow, functions, memory, macros, etc. etc. It’s tempting to say that brainfuck is the bidirectional infinite tape, but it’s not, it’s a programming language that has only a couple of things.

                            1. 2

                              Could you say what the equivalent for C is here? Consider C as “a [???] with the following operations”?

                              The problem is that in C, there is required to be a maximum number of valid pointers and as a result there is required to be a maximum number of valid addressable bytes, of a maximum bit length. This means memory is bounded and the C specification describes a finite state machine.

                              You can implement a turing machine in Brainfuck. You cannot implement a turing machine in C.

                              1. 1

                                A programming language specification can leave the harsh realities of the real world to the implementation, and if you were to find some bizarre reality where genuine turing completeness is possible, you could in essence be able to implement some languages in a way that exploits this new theory of computation and create a genuinely turing complete language implementation.

                                In C, however, there are specific rules about how pointers must be implemented that mean even in this world, you’d have to choose between correctly implementing the spec, or being turing complete, as the rules themselves have implications that mean you could not exploit the new reality to achieve this. These restrictions aren’t apparent to us everyday because we don’t have a world where turing completeness is possible, but that doesn’t mean the specification has to reflect those limitations - by choosing to leave the details of representation to the implementation, implementors could choose to make it as strong as their current reality allows.

                                So, overall, what I mean in that sentence is that in C, implementations do not lose potential for turing completeness as set out by the spec, limited by reality, but instead start from a spec where it is already by definition not permitted.

                                As for what C “is” in comparison to brainfuck, really Elronnd has it. The language I used is a little bit of a red herring in that brainfuck isn’t the tape in the same way the closest thing that C would “be” is some abstract machine you could build from the spec. It’s easy to build a mental model where the only object is a tape/machine, but the language specs really instead have the machine and also have rules to about how they work and are manipulated. I can only apologise for being so relatively casual in a discussion where the language needs to be precise.

                            1. 6

                              As well as the link above, if you are affected by +r in the channel, please have a look at our registration FAQ, which makes the above mode irrelevant to you, allowing you to talk past it: https://freenode.net/kb/answer/registration

                              As always, apologies for the issues we have right now, and we have a number of our volunteers working hard to deal with it.

                              1. 2

                                No apologies needed. Dealing with such an irritating and sadistic troll must be dispiriting, I’m sorry you have to deal with it. We’ve really appreciated Freenode’s reliability and support for years now.

                                I haven’t seen spambot attacks in a few hours. I’ve removed +r from #lobsters in the hopes this is done.

                              1. 0

                                Redmine anyone.

                                Trust me. I like this too. But I guess I am a Redmine convert.

                                1. 17

                                  If you want to suggest redmine, that’s ace. It’s good to know about the alternatives - but please back it up with why you think it’s a strong competitor. If you’re supporting it here, you probably have insight worth sharing with us.

                                  1. 1

                                    Well it has a nicer interface I think. Has support for plugins from what I remember and yeah. May as well check out their site. I used it a while ago, so I cannoy remember much.

                                1. 3

                                  Why did this end up a slack channel rather than IRC? Many, to most, of these tools have IRC presences and frankly I just like not having to run multiple slack instances, which have numerous drawbacks.

                                  1. 1

                                    IRC works really well when you have a core team who spend a lot of time in a topic-specific channel where visitors can stop by and engage with them. That’s great for channels focused on individual open source tools, as you point out. One of Slack’s strengths for community channels is that it handles low volume conversation better because you can check it intermittently and catch up on what you missed. Being able to respond to questions that were asked when you weren’t around is a big plus.

                                    Our intention here definitely wasn’t to try to take the place of project-specific IRC channels at all. We just felt that there wasn’t really place to talk about experiences with different tools and tactics at a higher level. We get emails from people all the time about topics like this, and our hope is that making these sort of discussions public will be helpful to the community.

                                    1. 2

                                      It’s absolutely not the the case that I fear that you’re trying to displace people from project channels to slack, apologies if it’s come across that way. It’s more frustration that for a community that’s fairly well established on IRC, there’s pressure to fragment across platforms.

                                      While you present the argument that Slack is better for low-traffic communities, I’m not sure I agree. You mainly rely on these points:

                                      • You can check slack intermittently and catch up on what you missed
                                      • You can respond to things that happened when you weren’t around

                                      Both of these points are well covered by IRC. While it’s true that the core protocol doesn’t cover it, it’s now the standard practically to use a bouncing service that permits it, or self host your own. A bunch of ZNC specific providers can be found here: https://wiki.znc.in/Providers , and additionally there’re services like https://www.irccloud.com/ that provide the entire system including a web client.

                                      Slack has some downsides, like really poor community management, instead deferring to out-of-band systems to deal with things like harassment as well, essentially showing it’s colours as a business service offering. For example, there’s no ability for an individual user to ignore another they do not get along with or are being harassed by, with Slack instead suggesting this be resolved with HR policies.

                                      1. 1

                                        “Slack is better than IRC” is like saying “gmail is better than SMTP”.

                                        Slack is owning:

                                        • the server (that replaces the IRC server)
                                        • the heavy client (that replaces the IRC client / bouncer)
                                        • the light web client / application (that replaces an SSH server)

                                        People who appreciate running themself the programs they use go to IRC (get its hand dirty).

                                        People who prefer not be involved in maintaining anything go to Slack (living in the “cloud”).

                                        This is how I get my hands dirty: on a server: $ abduco -A irc weechat.

                                        You can even have this in a laptop .bashrc:

                                        alias irc='ssh user@your-server.tld abduco -A irc weechat'
                                        

                                        And then you have the same feature of “being able to respond to questions that were asked when you weren’t around”. :)

                                    1. 1

                                      As mentioned by a few people, there are some flaws in this in what it means for you and your readers following it. Something I’ve considered a worthwhile approach, however, is similar to this.

                                      We have a paired group at university where each week we pair off and learn about a particular subject. Later, we come back together and teach each other what we’ve learned. It’s useful to go head to head on the misconceptions you’ve each picked up, and you can correct and work with each other to both develop a better understanding.

                                      1. 14

                                        On the IRC side, the groups team received an email from a Void representative that was resolved, I’m unsure why they’ve included that they are still hoping to get access to their channels, because we believe the issue was sorted :(

                                        If there’s anything we still need to do, you can catch me as kline on freenode, or email us at projects@freenode.net

                                        edit: we managed to reach out for them, it looks like the post was written ahead of time, before we had resolved the issue. The Void channels on freenode should be safe and sound and back with active Void contributors!

                                        1. 4

                                          Something this paper touches on is that ultimately, we’ve made it so that compilers don’t work for us, because we’ve set them toxic goals.

                                          By making compiled code size and speed the be all and end all of how we compare compilers, we’ve driven compiler developers to USB/IDP/UB hackery that means they can chase the benchmarks we pretend to care about, when really we should be encouraging compiler devs to instead develop for correct-in-practice.

                                          1. 2

                                            The example code is in Java – I’d like to see a version of this in C!

                                            1. 1

                                              Is there a C hashmap implementation you’re particularly thinking of?

                                              1. 1

                                                I was going to say CPython’s hash tables with string keys. That might work, but they’re pretty complicated, and with the methodology he uses, I don’t know how you would take out the bytecode dispatch overhead. It looks like he just directly calls the hash function (hash('abc') in Python) in a loop and subtracts.

                                                However I seem to recall that Python was actually faster than Go in some hash table benchmarks. (early Go at least) That is, if you wrote a simple loop to insert into hash tables like this one, Python’s highly tuned hash tables would outperform a compiled language! They’re both of course written in C – in some sense you’re comparing C to C, but it shows that the interpreter overhead sometimes doesn’t matter.

                                                (And I don’t have a reference unfortunately.)

                                                Maybe an easier one would be C++ unordered_map which I use here with a similar hash function:

                                                https://github.com/google/rappor/blob/master/analysis/cpp/find_cliques.cc#L81

                                            1. 1

                                              The background to this [lobste.rs] post is, I imagine, the recent controversy surrounding the inclusion of Elasticsearch.

                                              Elasticsearch has been included in the reference Mastodon client as an optional extra to allow better searching. While this is nominally a good thing, and likely used honestly, there exists a subset of users concerned that Elasticsearch has an awful lot of features that now exist alongside search, and help to find trends and produce datamining insights.

                                              Many people left Twitter to escape that platforms omnipresent analytics and monetisation of users. These same people are concerned that the current direction of Mastodon is moving towards that, even if through honest decisions, by the inclusion of software that enables it.

                                              1. 4

                                                No, that’s quite unrelated to it :)

                                                1. 1

                                                  I don’t get that impression at all. I see this post as outlining an alternative to Mastodon for folks who may want a simpler approach to solving the same problem while offering users similar features.

                                                  1. 1

                                                    I should probably clarify, I mean this being posted specifically to lobste.rs. That said, while Pleroma is a fully featured implementation that existed before the concern of elasticsearch, it’s being touted especially as being free of the concerns recently raised.

                                                1. 2

                                                  Yeah, I had a play with this a while ago and it works pretty well: in a field trial among ~20 mostly non-tech friends, only one noticed that there was no way to set a password.

                                                  1. 2

                                                    One of your comments is that cookie security wasn’t taken seriously. Could it be the case that you can include in the cookie a per-browser fingerprint as well as a key, and then use a HMAC to hide this information and ensure the authenticity and integrity.

                                                    If an attacker were to steal the cookie, the server could identify that even though the secret is valid, the browser has changed significantly enough (cookie theft in the positive case, a sufficiently serious upgrade in the negative case) and force a new login for the browser?

                                                    1. 1

                                                      I thought this way too until I started tracking our users’ browser fingerprints. Then I discovered that they changed way more than you’d expect; I never investigated why but saw that it was unreliable enough to not pursue.

                                                      1. 1

                                                        Yeah, I think the very fast browser update cycle these days might stuff this idea up.

                                                  1. 7

                                                    This is such a sad story.

                                                    This is also a good example of why making an android level user friendly desktop Linux distribution should be number one priority for FOSS developers. We need UX designers, Artists, and non-technicals in FOSS.

                                                    1. 7

                                                      Development is one of the few “creative” areas where working for free is considered not-strange (it’s still not common). For various cultural reasons that essentially stem from the abuse of artists, most higher creatives strongly resist working for free.

                                                      If my phone were charged I’d take a picture of the document that discourages free work of just about any form to the creative students at my university.

                                                      1. 6

                                                        A big part of this is probably the existence of copyleft licenses which provide a legal mechanism to guarantee that continued work will be contributed back to the community. I wonder if a similar mechanism exists for artists (perhaps creative commons?).

                                                        It’s also important that software has a useful notion of “contributing back to the original work”, and that contributing is both standardised (my copy of git and the language compiler probably works the same as yours) and idiomatic (diffs, patches, and PRs are all well-known tools). It seems possible in theory to have large, open source, collaborative design projects (where many designers contribute back to a single project under copyleft terms), but I’m not aware of a “standard” design format with both a critical mass of users and good support for decentralised contributions.

                                                        1. 2

                                                          I think free work should be discouraged if someone else is profiting. However if it such a taboo because they have a history of being abused and low quality of life perhaps we should start an money pool to pay for contributors who don’t have a higher paying job like software development.

                                                        2. 2

                                                          Personally, I don’t think FOSS is a good fit in that situation.

                                                          Just my opinion, but I feel the open source model works best when the contributors are working on the project because it’s something they want or need themselves, OR because the project offers some kind of unique and interesting challenge.

                                                          A novice friendly desktop doesn’t fall into either category.

                                                          1. 2

                                                            Funny because the android OS gets a LOT of contributions. Just because something is novice friendly doesn’t mean it has to be crippled in any way. Also there’s a lot of unique and interesting challenges in making a user friendly operating system.

                                                        1. 2

                                                          The software here sounds like it could be Dragon with the Verbal Vim commands? It sounds almost identical to this 2013 PyCon talk by Tavis Rudd: https://www.youtube.com/watch?v=8SkdfdXWYaI

                                                          1. 4

                                                            From the article:

                                                            “The silver bullet” came when Moyher found a video presentation by developer and coder Travis Rudd, which appeared online in 2013 shortly after his diagnosis, that took viewers step-by-step through Rudd’s own RSI experience. The 28-minute video shows Rudd breaking down exactly how he customized Dragon NaturallySpeaking, a voice-recognition software suite, to write code in the Python language using nothing other than his voice. This countered the wisdom Moyher had seen in forums about RSI and coding, declaring that Dragon’s usefulness in coding was limited. “Don’t do it, it’s impossible,” was the common wisdom, Moyher said.

                                                          1. 2

                                                            Suggest visualization.

                                                            Is this really a privacy thing? This is behavior explicitly advertised by the product.

                                                            I’m not sure that getting a lot of “look at this totally expected behavior of modsern products” posts here is good. Tends to lead to clickbaity stuff.

                                                            1. 5

                                                              I think really this isn’t the advertised behavior. While Strava does advertise activity tracking, it’s not until you mix in the occupation related PT required in the military that this emergent behavior appears where you can see very regimented fitness activity often in areas that otherwise wouldn’t have it. Together, you see the initially surprising - but entirely reasonable in hindsight - ability to locate bases. It’s something that makes you go “huh!”.

                                                              Strava advertises fitness activity tracking. The military takes fitness seriously. Combined, Stava can be used to identify the location of abnormal areas of activity, ie, military bases.

                                                              This is the tweet that really sums it up: https://twitter.com/gavinsblog/status/957786002751332354

                                                              1. 1

                                                                The users of these devices had an expectation of privacy which has been violated. I doubt they believed their use of a fitness device could reveal their position to the enemy.

                                                                I think it’s decent news and worthy of attention/discussion.

                                                                1. 3

                                                                  Have you used Strava? I have, and it is very clear when you are posting an activity publicly. (My understanding based on discussion elsewhere is that private activities are not included in the heat map. Strava also provides a feature whereby you can post an activity publicly but hide the start/end points so that your home address isn’t apparent; my understanding is that these hidden sections of public activities are also omitted from the heat map.)

                                                                  I have no more expectation of privacy when I post a public activity to Strava than when I post a public photo to Instagram, or a comment to Lobste.rs.

                                                              1. 1

                                                                Has anyone been able to find the supplementary materials? I’ve had a poke around on archive.org, as well as probing through the current Notre Dame site, but I haven’t had any luck yet.