1. 3

    My favourite CS video is this one. The team Natus Vincere managed to dominate in this match from beginning to end, something rarely seen in high-level-matches like this.

    1. 2

      I would’ve ripped the CD, put the code in my vault, and then returned it. This is the best of both worlds, with no harm done. Ripping the code of course not in the interest of publishing it, but just as an added security for history and knowledge not to get lost.

      When companies go out of business, things like this tend to get lost, and I’ve seen it very often. Having the source code lying around, and with a good backup policy, can preserve it for decades.

      1. 4

        C has a logical XOR-operator, namely !=, provided you use only 1 and 0 as inputs.

          if (func1(...) != func2(...)) {
                /* func1 or func2 succeeded or failed, but not both :P */
          }
        

        If not, you just add a !! in front of each.

          if (!!(func1(...)) != !!(func2(...))) {
                /* func1 or func2 succeeded or failed, but not both :P */
          }
        
        1. 6
          #include <stdio.h>
          
          int
          main(int argc, char *argv[])
          {
                  if (argc != 3) {
                          fprintf(stderr, "usage: %s oldcompany newcompany\n", argv[0]);
                          return 1;
                  }
                  printf("Why I left %s to join %s", argv[1], argv[2]);
                  return 0;
          }
          
          1. 1

            Did anybody else think for a just a second the man on the picture was Wladimir Putin and not Tim Berners-Lee? :D

            1. 4

              No. This is definitely Bill Murray.

            1. 2

              There’s a problem with the link of the submission. It is

               https://damow.net//building-a-thermal-camera/
              

              which leads to the “starting page” of the blog given it does not seem to be programmed very defensively. @friendlysock, you might want to consider fixing the link to instead point to

               https://damow.net/building-a-thermal-camera/
              
              1. 1

                Ah, thanks. Mods? @pushcx?

              1. 6

                Finally, using tags and MP4s instead of tags and GIFs is brings you into the middle of an ongoing cat and mouse game between browsers and unconscionable ad vendors, who abuse the attribute in order to get the users’ attention.

                Indeed. And I feel like I’m playing a cat and mouse game with the browsers. Long ago, annoying videos were delivered with Flash. I didn’t have flash and I was happy. Then browsers took all the annoying aspects of Flash and made them possible with HTML5. So I had to dig around in settings and disable autoplay and media loading, etc. although with somewhat mixed results. Now they’re taking that annoyance and making it possible with just an img tag.

                There’s this flattening effect that happens at the same time as broader feature support. Certain features used to be “advanced”, which meant you could cut them off. But everything has been squashed downwards. Everything is “baseline” now. You can’t readily draw a horizontal line to split the feature stack. It has to be a vertical line (on my imaginary diagram) which in practice is much harder to draw. Old man ruining the web grumps aside, I think there’s a lesson here about how we build complex systems, and how we let users control them, etc. Something about more features vs bigger features.

                1. 3

                  Exactly! And do we really need this perversion of the img-tag for this purpose? Why can’t we just stay with video now that the transition has finally been completed from gifs for animated content? Why can’t the browser-vendors just optimize their browsers? And from what it seems using img for videos is more like a hack that just slows everything down even more. There is a reason why videos are not preloaded.

                  At suckless we believe that the web has to be reformed or at least reduced to a sane subset. The reason why we have the internet of apps is mostly because the OS-platforms (Windows, macOS, Linux) failed to provide consistent native interfaces which are naturally given on the web, or at least were developed further and further to accommodate it. One can’t just discard the web. The first step towards simplicity is to discard one’s dependencies on complex web applications. Having achieved that, it is possible to browse the web for instance with JavaScript disabled, which is already a huge factor in simplification.

                  1. 1

                    Now they’re taking that annoyance and making it possible with just an img tag.

                    What are they newly making possible, though? The annoyance of decoding MP4s? Because the annoyance of distracting animations already existed… they just had to be served up as animated GIFs.

                    I guess the fact that MP4s are much smaller than GIFs could allow soundless animations to be used a bunch more than they currently are. But it’s uncertain to me that that’s actually going to be the case.

                  1. -5

                    TRIGGERED #morethantwogenders

                    1. 7

                      This comment needs to suckless. Please be more constructive.

                    1. 8

                      I like the tutorial very much, but cannot lose the feeling that at the point of integrating Rust, it’s a huge matter of sneaking around its complexities.

                      The author seems to be very invested and integrated into Rust development, and I personally lost it when he casually added this “panic-strategy” line to the json-file or where he added the few magic lines to his root source file, which even make #pragma’s look good, in the article “Set Up Rust”. How are you supposed to come up with this unless you know exactly that e.g. Rust is unwinding the target in case of a panic and can deduce it from the chunk of compiler barf slammed on your screen? And this is just an excerpt of quite a few esoteric appearences in this set of articles.

                      I wouldn’t be able to follow this tutorial, build my own OS and integrate Rust, without fearing that I somehow forgot to disable this or that feature or implication, which could bring everything down once I’m using a certain feature.

                      Surely the Rust Evangelism Strike Force will teach me right and tell me that knowing about these inner workings is common knowledge, so please forgive me my sins!

                      1. 7

                        I suppose my question is what the alternative is. Low-level programming like this is the realm of arcane magic and strange incantations. Rust, providing the safety mechanisms it does, has to have some facility for turning those mechanisms off, and there has to be careful consideration of the interaction of those mechanisms and the low-level code that circumvents them.

                        If the question is documentation, there’s little to say other than that things are getting better, and the Rust has only been post-1.0 for a little over two years now. Give it time, and there will be more and better guides and documentation to help navigate the world of low-level programming in Rust. Personally, my hope is that someone publishes a hard-copy book on the topic, with a particular focus on the language of Rust and its use and tricks in low-level programming, and less on the development of a particular system as is seen here.

                        1. 2

                          Tbf, knowing that the stack unwinds on a panic is well-known in Rust. If you think there are any fewer corners in C++…

                          1. 4

                            The tutorial being a bit old, this isn’t even the case anymore necessarily. Rust can be compiled to abort on panic instead.

                            While I don’t fully agree with the parents angle, they are right in that Rust is a complex language that has ramp-up time to learn.

                            1. 3

                              Hey, not everyone knows everything. Teaching is good, shaming is not.

                          1. 3

                            Seems interesting.

                            The apache-2.0 license was a bit unexpected for an intended-to-be cross platform init though, especially given the explicit mention of OpenBSD in the source README, as apache-2.0 works are explicitly not shippable in OpenBSD base.

                            1. 7

                              Thanks. I guess as I’m at this stage the only contributor, I could change the license - and I would do so happily enough, if OpenBSD (or any other of the BSDs) said they’d use it. But I’m pretty sure Theo de Raadt is also violently allergic to C++, so I’m fairly dubious it will ever make it into OpenBSD base.

                              1. 2

                                Just use the ISC license. Please let me know though if you chose Apache for a specific reason.

                                1. 2

                                  Please let me know though if you chose Apache for a specific reason

                                  Yes and no. I generally like the “you can’t bung some patented code in and later use this to prevent use/distribution of the software” clause though I don’t see it as much of a practical concern. On the other hand I didn’t choose GPL because I’d rather have people (and OSes) who would reject GPL software consider using it, than have the vague comfort that no corporation can simply take my code and slap a commercial license over it.

                                  One minor niggle with the ISC license - and it’s really just a niggle, not a major concern - is the “provided that the above copyright notice [is included]” clause - because I honestly don’t care if my name is one of potentially hundreds listed in some later code that incorporates this particular work.

                                  Finally, I’ve incorporated code from an asynchronous event processing library, Dasynq, which is also my own project and which is also under the Apache license. Of course, since it’s my own code and there are no other contributors I could easily re-license it either for this case or generally.

                                  Are there any particular problems with the Apache license I should be aware of (other than that it’s a tad longer than probably necessary)?

                                  1. 2

                                    We use MIT/Apache2.0 for Rust because Apache2.0 isn’t GPL compatible, but MIT is, so you get to choose which aspect you care about more.

                                    1. 1

                                      That surprised me, I thought it was GPL compatible. But on checking I see you’re right, it’s GPLv3 compatible but not GPLv2 compatible (at least according to GNU). I’m now considering either dual licensing or switching to ISC, but I’ll probably give it some time before I make a decision.

                                2. 1

                                  Hah! I didn’t even think twice about the use of C++, but you might be right.

                              1. 7

                                We’ve already developed sinit, so what it really boils down to is a good service manager. We have svc, but fresh ideas are always welcome.

                                If I may give advice, it really makes sense to keep PID1 as dumb as possible (i.e. using sinit). For everything else built on top of it: Keep it simple! :)

                                1. 2

                                  From the current TODO:

                                  Also, there is the possibility of having a small, simple PID-1 init which sends terminated process IDs over a pipe to Dinit.

                                  :)

                                  The transmission of process IDs is neccessary for supervising double-forked processes (although of course ideally those don’t exist), and there also needs to be some co-operation from pid 1 if Dinit is going to properly handle cgroups (essentially: to kill all processes in a cgroup, you need to iterate through the process IDs and send them a signal. That’s racy, and if processes can die and be reaped during the process, the process ID can theoretically be recycled, which could lead to the wrong process receiving the signal. Systemd suffered from this problem at one stage, I’m not sure if it handles it correctly now).

                                1. 4

                                  At suckless, we also use a config.mk approach.

                                  I’m not a fan of the proposed solution by the author, as it uses GNU extensions unnecessarily and is thus non-portable.

                                  Let me give you an example for a suckless Makefile, which is POSIX compliant, below. It has the same functionality as the proposed solution, modulo unnecessary debug targets you better solve using a -DDEBUG and adding -g to LDFLAGS, but is much shorter. It also allows you to easily create a tarball using “make dist” and handles manuals as well. It allows easy extension, for instance adding MAN5 if you have section 5 manpages and generally uses the naming convention that has established over the years (LDFLAGS, LDLIBS instead of LINK).

                                  To make it clear: This is not an attack against the author, but I’m sick of seeing ugly Makefiles in the wild. I hope this can be of inspiration for some people here.

                                  config.mk:

                                  # example-program version
                                  VERSION = 1
                                  
                                  # Customize below to fit your system
                                  
                                  # paths
                                  PREFIX = /usr/local
                                  MANPREFIX = ${PREFIX}/man
                                  
                                  # flags
                                  CPPFLAGS = -D_DEFAULT_SOURCE
                                  CFLAGS   = -std=c99 -pedantic -Wall -Wextra -Os
                                  LDFLAGS  = -s
                                  LDLIBS  = -lpng
                                  
                                  # compiler and linker
                                  CC = cc
                                  

                                  Makefile:

                                  # example-program
                                  # See LICENSE file for copyright and license details.
                                  .POSIX:
                                  
                                  include config.mk
                                  
                                  TARG = example-program
                                  HDR = header1.h header2.h header3.h
                                  SRC = src1.c src2.c src3.c
                                  EXTRA = LICENSE README
                                  MAN1 = $(TARG:=.1)
                                  
                                  OBJ = $(SRC:.c=.o)
                                  
                                  all: $(TAR)
                                  
                                  $(TAR): config.mk $(OBJ)
                                  	$(CC) -o $@ $(LDFLAGS) $(OBJ) $($LDLIBS)
                                  
                                  $(OBJ): config.mk $(HDR)
                                  
                                  .c.o:
                                  	$(CC) -c $(CPPFLAGS) $(CFLAGS) $<
                                  
                                  clean:
                                  	rm -f $(TARG) $(OBJ)
                                  
                                  dist:
                                  	rm -rf "$(TAR)-$(VERSION)"
                                  	mkdir -p "$(TAR)-$(VERSION)"
                                  	cp -R Makefile config.mk $(EXTRA) $(HDR) $(SRC) $(MAN1) "$(TAR)-$(VERSION)"
                                  	tar -cf - "$(TAR)-$(VERSION)" | gzip -c > "$(TAR)-$(VERSION).tar.gz"
                                  	rm -rf "$(TAR)-$(VERSION)"
                                  
                                  install: all
                                  	mkdir -p "$(DESTDIR)$(PREFIX)/bin"
                                  	cp -f $(TARG) "$(DESTDIR)$(PREFIX)/bin"
                                  	for f in $(TARG); do chmod 755 "$(DESTDIR)$(PREFIX)/bin/$$f"; done
                                  	mkdir -p "$(DESTDIR)$(MANPREFIX)/man1"
                                  	cp -f $(MAN1) "$(DESTDIR)$(MANPREFIX)/man1"
                                  	for m in $(MAN1); do chmod 644 "$(DESTDIR)$(MANPREFIX)/man1/$$m"; done
                                  
                                  uninstall:
                                  	for f in $(TARG); do rm -f "$(DESTDIR)$(PREFIX)/bin/$$f"; done
                                  	for m in $(MAN1); do rm -f "$(DESTDIR)$(MANPREFIX)/man1/$$m"; done
                                  
                                  1. 1

                                    While that’s a neat Makefile, any change in any header will recompile the whole project, which isn’t desirable. It also pollutes by putting all object files in the same directory as the source files, which I personally dislike, but that’s more a matter of preference.

                                    I will add targets for dist/install/uninstall.

                                    I’m interested in making it more POSIX compliant. I’ll see what I can do about that.

                                    1. 1

                                      Well, if you want to fine-grain you header management, you can always replace

                                      $(OBJ): config.mk $(HDR)
                                      

                                      with the explicit listing of dependencies.

                                      If you want to make it posix compliant, start off with removing the pattern-substitution rules that use “%”. It’s non-standard.

                                      1. 1

                                        Is there a way to do an out-of-tree build with just a POSIX compliant Makefile? I’ve been on the lookout for that for quite a while.

                                        1. 1

                                          The typical approach would probably be to copy the makefile into the build directory.

                                    1. 12

                                      Yeah, there is no problem with excessive shitty tooling in web tech. They are not within a hundred miles. There are no suckless infidels in web tech.

                                      1. 12

                                        The web can not be fixed. It would help though if people stopped treating it as a platform for complex applications.

                                      1. 2

                                        I know there may be other reasons, but I’d sort the different BSD’s alphabetically in the menu. Popularity doesn’t really matter imho, given I would be running Windows otherwise.

                                        1. 2

                                          It’s sorted chronologically and the text currently follows that order.

                                        1. 4

                                          I see this as a temporary hype. If it is still standing strong in a few weeks, why not? But not after a few days of hyped articles on the topic. This is not judging the language, but we have these meta-posts very often where people want to promote their favourite programming language with a special tag.

                                          1. 6

                                            IMO, the fact that Google is now officially supporting it for android development is a pretty significant sign that it isn’t going away anytime soon.

                                            1. 5

                                              I see this as a temporary hype.

                                              Counterpoint: if you search by stories + newest for Kotlin, there are 3 pages of “Kotlin” stories. Roughly 3/4 of the first page of results has “Kotlin” in the title. The oldest story of the first page that has “Kotlin” in its title is 3 months old. Understanding that Lobste.rs moves relatively slow, I think it’s fair to say that people are definitely posting about the language SOME of the time on here.

                                              Now, because it’s recently gotten the “officially supported on Android” greenlight is probably what’s giving it temporary hype. But, I’d argue that Lobste.rs is still going to get a steady stream of Kotlin-related stories, and I’d like to have a tag for that.

                                            1. [Comment removed by author]

                                              1. [Comment removed by author]

                                                1. 6

                                                  Looking at the mailing list they don’t seem that hostile, the feature seemed to be out of the scope of that project.

                                                  1. [Comment removed by author]

                                                    1. [Comment removed by author]

                                                      1. [Comment removed by author]

                                                    2. [Comment removed by author]

                                                      1. 8

                                                        I wouldn’t mind your fork if it didn’t violate the authors’ copyright. If you re-add the MIT license block in the LICENSE file, you are free to do whatever you want.

                                                        I doubt your fork will be successful in the long run though, because it looks to me like an overcomplication, but time will tell and experiments are always fun.

                                                        1. 7

                                                          I really tried hard to explain this to the OP but he/she wasn’t at all bothered by it - https://github.com/small-utils/xmenu/issues/1

                                                          Oh well…

                                                          1. 5

                                                            Thanks for taking your time to bring this issue up.

                                                            The original MIT license block really has to be in the LICENSE file. The reason for that is that each source file has a header of the form

                                                            /* See LICENSE file for copyright and license details. */
                                                            

                                                            By definition, each source file would have to have the MIT block, but for the sake of simplicity, it has been “exported” to the LICENSE file. It is not sufficient to just list the authors in the README, because that’s not where the license notice points to in the source files.

                                                            By the way, please stop assuming the OP’s gender to be within the patriarchal norms “he” or “she”. OP might as well be non-binary or have no gender at all. /s

                                                            1. 5

                                                              Is the “/s” in your comment indicating sarcasm? I don’t see why it would am a little confused.

                                                            2. [Comment removed by author]

                                                              1. 7

                                                                As a small note: You are free to use the MPLv2 for xmenu, however I have to tell you that it will be impossible for you to enforce it, should the problem arise at some point in the future. MPLv2 is a weak copyleft license, however, if an entity violates that and this goes in front of court, they would argue based on the fact that it has originally been licensed under the MIT license. Copyleft basically only works for complete works, because it is easy to argue that the secondary changes made to a program were not in violation of the copyleft and within the bounds of the MIT license. I understand your enthusiasm to use the MPLv2, but in the case of this fork, it’s just senseless.

                                                                The authors of the GPL are aware of this fact and explicitly state that the GPL only works with complete works (or say: original works). Forking a MIT project and licensing it under the GPL is legal, as long as the MIT license is still included, but makes no sense because the very permissive nature of the MIT license destroys the GPL unless the project really has been substantially rewritten with changes licensed under the GPL.

                                                                As you probably won’t do that with xmenu, I’d keep it under the MIT. If you can sleep better at night with the MPLv2, go for it.

                                                                1. [Comment removed by author]

                                                                  1. 3

                                                                    You can not do that, because unlike MIT, MPLv2 is restrictive in that regard. What you can do is keep the project as MIT and put the MPLv2 license block at the top of the C4.md file. You also don’t need to include the whole MPLv2 license. If you have the single file C4.md, you can write at the top “This document is licensed under the MPLv2 license” and be done with it. As long as you do not modify the C4.md file, you are not publishing derivative works and are safe anyway.

                                                                    1. [Comment removed by author]

                                                                      1. 13

                                                                        I believe you amassed a lot of down votes for downplaying the importance of the license, removing copyrights and then saying that if someone cares he can do the work for you of adding it back in.

                                                                        It doesn’t matter if it’s the first time you had contact with licenses, you should show some respect and read on the subject before doing changes.

                                                                        1. 9

                                                                          Lobsters is a strange forum in terms of whether people will vote at all on a comment or how much. It’s a high-reading, low-writing forum in general which contributes to its low noise impression. The only thing votes should tell you here is what to keep posting or not posting. Your situation is straightforward, though, given your actions:

                                                                          1. You slammed a community that has some respect here talking about their hostility toward your contributions. Made it something really bad as opposed to just not in their interests.

                                                                          2. At least one person started linking to mailing list showing the opposite.

                                                                          3. You removed all credit to the original contributors in your files. Stealing credit is universally hated by any merit-based profession. It’s also illegal in this case.

                                                                          You got downvotes for these by the people who just wanted it off the site or to punish you for that behavior. Others took the time to write counterpoints or helpful advice. Then, your comments recognizing your wrongdoing and/or apologizing for this got upvotes. That is, your corrective actions received positive feedback from some that were downvoting you before.

                                                                          To me, it looks like a combo of curation and peer review that’s working as intended by admins and community. There’s nothing prejudicial or pointless going on in the voting. If wanting good reception on forks, just follow the licenses and don’t slam the other parties. Simply say you disagreed so you’re forking it.

                                                                          1. 3

                                                                            You removed all credit to the original contributors in your files.

                                                                            This is also, unfortunately, an extremely common misunderstanding of the MIT/BSD “permissive” licenses. Especially in the proprietary software world, where simply copy/pasting MIT/BSD code into your codebase without acknowledgment is rampant. People sometimes find it out later through disassembly, but usually it goes undiscovered.

                                                                            To be honest almost nobody seems to understand how these licenses work, even though they aren’t that complicated. You can add restrictions to them, ranging from GPL-type copyleft restrictions all the way up to “all rights reserved” proprietary restrictions, but must in all cases maintain the original copyright notice and acknowledgment of the original authors, in both source and binary distributions of the derivative software. Large companies like Microsoft and IBM, not to mention probably a third or so of FreeBSD’s downstream users, repeatedly demonstrate that they do not understand this, so it’s hard for me to be too harsh towards random free-software forks without legal teams that also don’t understand it.

                                                                            1. 2

                                                                              I agree with you misunderstandings are common. I wasnt even griping about that much as the rest. It’s more ethics to me where people building on others’ work should give them credit. Their names in a file aren’t hurting anything. Author could just add his or her name to list of contributors. So, it was more insult than legal injury I was focusing on.

                                                                            2. [Comment removed by author]

                                                                              1. 6

                                                                                To be honest, the corrective function is too punitive. It doesn’t take hostility to make social people behave in most cases including this one.

                                                                                I’d think they’d reply the person doing wrong complaining about the results should’ve not done wrong in the first place. Personally, I lean more toward constructive criticism which you already received from others. Others might save time just saying take that BS out of here.

                                                                                “This could be the last comment I ever write on lobste.rs. Adios amigos.”

                                                                                Or just submit interesting tech links, stick to technical debate in comments, have facts to back you up, and so on. These will get positive response here and at other tech forums especially since you still got upvotes even in this thread. This very thread would’ve gone 100% differently if you just said, “Here’s (project). It’s a fork of (other project) to add (differentiating features) that didn’t fit with (other project)‘s goals. Also, I’m using (contributor policy) to see if increases amount of contributions or reduces friction with this project like it did in ZeroMQ project.”

                                                                                Boom. Something possibly worth upvoting, commenting on, or contributing if any reader is interested in that sort of thing. I’ve generalized it to show it can work for many other submissions.

                                                                                1. [Comment removed by author]

                                                                                  1. 8

                                                                                    What caustic comments? I saw this thread had a lot of comments and got curious, after reading all of this I think every single person in this thread was quite level headed and explained your faults (with evidence) very clearly. Multiple people have asked for sources of the abusive comments and I am here to echo that and extend it to this community. I don’t see a single traditional “hate speech” internet comment.

                                                                                    The most terse it got in here was when you removed authorship and violated the license. You might be “new to copyright”, but you in fact attacked those peoples rights and they were nothing but civil to you. I wouldn’t have blamed them for actually being angry to be honest.

                                                                                    1. [Comment removed by author]

                                                                                      1. 7

                                                                                        This feels like pure school bullying. Is it so hard to imagine there are people who know little about copyrights? Is it what you say to someone who makes mistakes? Did I say I knew well about copyrights and still ignore them? This is clearly someone who doesn’t care about hurting others because his comments are not linked to his real-life identity. This community is hostile to newbies. It seems people don’t accept the fact that people are not born with knowledge.

                                                                                        to stay with your school analogy: people expect you to do your homework. you are lucky that the suckless people aren’t a big company, which would have instantly sued you. no friendly introduction to copyright and licenses, just a letter from a lawyer.

                                                                                        i have the feeling that this community expects you to rtfm, and i like it that way (community: correct me if i’m wrong here).

                                                                                        i learned from “my years in the internet” to think thrice before i click the post button, which is a valuable lesson. many conflicts can be avoided by this.

                                                                                        This thread lacks empathy and feels even sociopathic. Given that 4~8% of the population are hardcore psychopaths, some people would be actual psychopaths.

                                                                                        you should be careful with such assertions. one could think this is namecalling again. you wouldn’t want people to think that, being interested in treated good yourself.

                                                                                        1. 7

                                                                                          It’s an online community, not an ego massage parlor.

                                                                                          1. 3

                                                                                            I stand behind my words and I would have said them to you face-to-face.

                                                                                            Stopping caring about downvotes is a good thing, they are just internet points that mean very little in the long run. Caring about them too much just turns the conversation into “me-too” circlejerking with no other opinions raising up in fear of losing internet points.

                                                                                            Not really sure that what parts of internet you are using, but Lobste.rs is one of the nicests places around.

                                                                                            1. 3

                                                                                              Thanks for the examples.

                                                                                              Personally, I’m often confused because people see hostility where I see none. I don see hostility in those examples either. This worries me, because it means that I my comments could be seen as hostile without me intending it.

                                                                                              My only idea would be to use more smilies/emojies. Would the following remove the hostility?

                                                                                              You should not expect us, people who all make our livings and channel our passions into programming, to shrug off your actions without some degree of affront. ?

                                                                                              1. 1

                                                                                                This is clearly someone who doesn’t care about hurting others because his comments are not linked to his real-life identity.

                                                                                                Maybe I just don’t care about hurting others who keep disregarding good advice and who, at the first sight of conflict, cry “help help i’m being repressed!”

                                                                                                Also, have the guts to cite my name: @angersock . Failing to cite sources is basically what landed you in this mess, in case you’ve forgotten.

                                                                                                (Also, you shouldn’t assume gender on the internet, pro tip, unless you are able to back up why you think a he is a he. I’m a sock, preferred pronouns sock’s/sockself).

                                                                                                This community is hostile to newbies

                                                                                                Other folks, like @ruki, were newbies and have presumably had different experiences.

                                                                                                This community is hostile to people who make accusations without good evidence and who try to tar the good (ish) name of others. @FRIGN, for example, was pretty reasonable until you got them annoyed.

                                                                                                Painting us all with the same brush is also what got you here.

                                                                                                rain1 turned out to be a relatively reasonable man, though.

                                                                                                @rain1 tends to be a bit of a sympathetic ear on this sort of thing, rightly or wrongly. A lot of us aren’t.

                                                                                    2. 6

                                                                                      at one point downvotes were deactivated, but that also wasn’t optimal. https://lobste.rs/s/csd2tj/week_no_story_downvotes

                                                                                      saying someone is hostile for not accepting patches is hostile in itself (i haven’t read the original discussion). i guess this led to downvoting you. maybe combined with the license fuckup (which can happen and seems to be fixed).

                                                                                      1. [Comment removed by author]

                                                                                        1. 6

                                                                                          Maybe make it so you can see who downvoted a post. Remove the anonymity.

                                                                                          1. 5

                                                                                            I get mixed feelings about this. On the one hand, it forces enough transparency that some people might do it less on impulse or consistently troll a person. On the other, it can escalate politics where people might accuse each other of biases and ganging up. That would create nice tangents like this one where we discuss or argue about votes instead of OP. I didn’t suggest it for that reason.

                                                                                            1. [Comment removed by author]

                                                                                              1. 9

                                                                                                The old Kuro5hin made votes public, and I found the opposite. If someone just never liked my comments and downvoted them routinely, that was fine, it’s easier to ignore it. If someone I respect downvoted one I might think twice about whether I was at fault. Removes the weird uncertainty/anxiety around “one or more community members, but we won’t tell you who, don’t like your participation here”. And people were less likely to feel the need to ask “who downvoted this and why?!” b/c you could see who downvoted it, and based on that, could often surmise why.

                                                                                                And for the upvotes it was even more useful. Made the place feel less impersonal. Instead of counting “7 anonymous people liked this post”, you started to recognize names of people who consistently read/liked your posts. It also made it easy to give a quick “thanks for the reply, that was helpful” by upvoting without replying to end a thread, if that’s all you had to say. Similar to the role likes play on Facebook and Twitter, more recently.

                                                                                              2. 2

                                                                                                This is actually really good idea, perhaps also show the reasons to people why the comment was downvoted. (to others, not only the one who made the comment.)

                                                                                                1. 1

                                                                                                  i already suggested this in a previous discussion, nobody wanted that

                                                                                                2. 3

                                                                                                  People are ganging up against me and crocket with comment downvotes and it’s basically the worst part of the anonymity the internet provides with none of the good parts.

                                                                                                  i wouldn’t call it “ganging up” if a comment has around 0 points. that may be only one downvote.

                                                                                                  i guess the best thing would be to just ignore it if you are downvoted. maybe just someone on the other end having a bad day.

                                                                                                3. [Comment removed by author]

                                                                                                  1. 14

                                                                                                    This may also be a cultural thing. Suckless is heavily influenced by German culture, especially when it comes to criticism. I am German myself, as most of the core suckless developers are.

                                                                                                    From what I’ve learned over the years, the US-American way is rather superficial. You would never publicly criticize a person too harshly. In case it happens, it is considered a personal attack to publicly shame somebody. Maybe we are witnessing a cultural shock. Me being German, I am used to harsh criticism, even in front of many people. It’s not considered an attack, but by the general German public it is considered honorful to address problems in such an open way. In my opinion, it is also the most efficient way to deal with criticism.

                                                                                                    For someone who grew up with the US-American culture, this may lead to a completely different interpretation. Added to this, we are dealing with textual communication, which omits 95% of non-verbal communication.

                                                                                                    “Basic protection” just leads to censorship, because unpopular opinions get reported and removed. You may draw a line at attacks, but for that, you’d need fair moderators, which are often not given. So better yet, the individual should learn to deal with this aspect of internet communication and move on.

                                                                                                    1. [Comment removed by author]

                                                                                                      1. 7

                                                                                                        Clear rules always need people who enforce it. If none are present and this is moved to the readers, we end up with censorship of unpopular opinions.

                                                                                                        However, if the manpower is present, I agree with you that it can work out very well. The subreddits you mentioned are a good example.

                                                                                                        1. 5

                                                                                                          I can sort of almost understand that someone (who’s online long enough to lose their nationality) can get frantically triggered by a few downvotes, but…

                                                                                                          That comparison to rape and murder is just too much.

                                                                                                          I want the internet of the late 90s back.

                                                                                                          1. 6

                                                                                                            Did you just equate angry internet comments with rape and murder?

                                                                                                        2. 14

                                                                                                          There were some degrees of verbal hostility.

                                                                                                          You need to quote things in support of this kind of accusation, as that is itself a kind of hostility.

                                                                                                          This thread has been, by and large, very polite to you considering that you erased the owners and authorship of a bunch of peoples’ hard work from the code you decided to fork.

                                                                                                          Whether on purpose or by accident, you plagarized others’ work.

                                                                                                          I’m sorry if this is viewed as an “attack”, but it’s the truth. If you read the licenses in question, there’s little doubt that what you did was both against the license (illegal) and against the legacy of the people whose work you’re building on (immoral).

                                                                                                          You should not expect us, people who all make our livings and channel our passions into programming, to shrug off your actions without some degree of affront–especially when you chose to be so glib about supposed hostility from the people you stole from.

                                                                                                          EDIT: One minor addition–you sorta argue elsewhere that “well I thought the commit history was enough”. If these files are ever moved to another system, or if the VCS loses that commit information for whatever reason, then the copyright and license information in those files is the only way that attribution is correct.

                                                                                                          If somebody else decides to fork your project (because it’s now MPLv2 and should be okay to do so!), and then is too lazy to preserve history (and this happens all the time when transferring bewteen VCSs), then magically the authorship of the library is lost.

                                                                                                          As I said elsewhere, just put the attributions back, keep the license, and spend your innovation points on improving the code instead of the legal stuff.

                                                                                                          1. 7

                                                                                                            You take internet too seriously if you see downvotes as “attacks”.

                                                                                                        3. 8
                                                                                                          although getting downvoted by anonymous people feels horrible
                                                                                                          

                                                                                                          Grow yourself a skin and shrug it off as it is supposed to be. This is the internet and wild things happen here. I am amazed you lose sleep over some downvotes while in other places on earth, people are struggling to get clean water or in war zones are not sure if they’ll survive the day. Keep that in mind. I’m telling you this in a friendly way, hoping you have not fallen into depression due to that and other factors.

                                                                                                          Look around and put your life into perspective. This way, these downvotes will become irrelevant, as they are. We are facing a dramatic financial crisis in the next 2 years and face existential problems along the way, maybe even the danger of a world war. We have never been closer to a nuclear war since the cold war ended. Inform yourself and stop worrying about “hostile attacks” by people you don’t know. Most of the time, downvotes exist for a reason and in general, the internet is a volatile place.

                                                                                                          You are also working within the comfort of anonymity, so what’s the problem? All this stuff won’t be attached to your name anyway.

                                                                                                          1. 7

                                                                                                            Using multiple licenses in the same project is a headache for everybody involved.

                                                                                                            Stop being cute, just use the MIT license.

                                                                                                            (also really you figured you could just “lol I’ll delete this license i don’t like”? srsly?)

                                                                                                            1. [Comment removed by author]

                                                                                                              1. 1

                                                                                                                He shifted from defending his license deletion choice to attacking our community. I’m not surprised he accrued some downvoters. Several are mine.

                                                                                                                1. -1

                                                                                                                  The moderators here usually cancel the stupid downvotes after the dust clears in my experience.

                                                                                                                  1. 3

                                                                                                                    There is no such feature in the codebase allowing moderators to adjust scores of stories or comments in either direction.

                                                                                                                    1. 2

                                                                                                                      In that case I’m wrong and people just agree with me more than I expect.

                                                                                                                    2. 2

                                                                                                                      Really?

                                                                                                                      I’d hope not, and would find that fairly disturbing; I tend to watch the moderation log and have never seen any entries, and for the moderators to do those changes without an entry would go against the site’s pledge for transparency.

                                                                                                                      I’d hope this is simply “tempers cool, calmer heads come in, and people tend to undo the downvotes”.

                                                                                                                      1. 2

                                                                                                                        I stand corrected and it seems like it is the second thing which isn’t bad.

                                                                                            1. [Comment removed by author]

                                                                                              1. 17

                                                                                                The real problem is this commit with all its legal repercussions.

                                                                                                -MIT/X Consortium License
                                                                                                -
                                                                                                -© 2006-2014 Anselm R Garbe <anselm@garbe.us>
                                                                                                -© 2010-2012 Connor Lane Smith <cls@lubutu.com>
                                                                                                -© 2009 Gottox <gottox@s01.de>
                                                                                                -© 2009 Markus Schnalke <meillo@marmaro.de>
                                                                                                -© 2009 Evan Gates <evan.gates@gmail.com>
                                                                                                -© 2006-2008 Sander van Dijk <a dot h dot vandijk at gmail dot com>
                                                                                                -© 2006-2007 Michał Janeczek <janeczek at gmail dot com>
                                                                                                -© 2014-2015 Hiltjo Posthuma <hiltjo@codemadness.org>
                                                                                                -
                                                                                                -Permission is hereby granted, free of charge, to any person obtaining a
                                                                                                -copy of this software and associated documentation files (the "Software"),
                                                                                                -to deal in the Software without restriction, including without limitation
                                                                                                -the rights to use, copy, modify, merge, publish, distribute, sublicense,
                                                                                                -and/or sell copies of the Software, and to permit persons to whom the
                                                                                                -Software is furnished to do so, subject to the following conditions:
                                                                                                -
                                                                                                -The above copyright notice and this permission notice shall be included in
                                                                                                -all copies or substantial portions of the Software.
                                                                                                -
                                                                                                -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
                                                                                                -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
                                                                                                -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
                                                                                                -THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
                                                                                                -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
                                                                                                -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
                                                                                                -DEALINGS IN THE SOFTWARE.
                                                                                                
                                                                                                1. [Comment removed by author]

                                                                                                  1. 16

                                                                                                    You are legally obliged to keep those in. See my response below. The MIT license is very permissive, but it does not allow you to just dump the authors from the source tree.

                                                                                                    1. [Comment removed by author]

                                                                                                      1. 7

                                                                                                        It is very simple. You just have to add the original MIT-block below the MPLv2 block in the LICENSE file. This way, the copyright notice is still within the software in the correct place (that all source files point to) and you have correctly established that your derivative work has been published as MPLv2.

                                                                                                        I honestly don’t want to spend my time on a pull request, given I don’t work with github very often. It is really simple, you can do it yourself with little hassle.

                                                                                                1. 47

                                                                                                  We at suckless are striving to keep our software simple and often reject patches that we deem unfit for inclusion in our projects. At the end of the day, the maintainer has the last word on patches submitted to his project, and it is often discussed with other members of the team. Every feature added means additional burden, i.e. code to maintain and possible security holes. The password prompt dmenu-“hack” was one of these things. We maintain a wiki where everyone can submit his patches to a program, and the password prompt could have been one of those out-of-tree patches.

                                                                                                  We publish our projects under very permissive licenses and encourage forks like xmenu. If the author wants to experiment with new ways of development, he is welcome to try it out, and it’s interesting to see what C4 is about.

                                                                                                  However, I don’t think it has to be done with name-calling, which I think is very rude towards those people whose code you are forking. The suckless mailing lists are open to anybody and everyone can send patches. This same openness is reflected by us as well, though. We criticize openly, we do not care about the submitter’s feelings and are only interested in writing good code and welcome suggestions for improvement.

                                                                                                  As I said, we welcome forking, however, our tolerance ends when the forker is denying that this project even came from suckless. @crocket literally removed all references to the original authors from the source tree.

                                                                                                  @crocket: You have violated the license terms of the MIT license under wich dmenu has been published. The terms are as follows (see LICENSE):

                                                                                                   The above copyright notice and this permission notice shall be included in
                                                                                                   all copies or substantial portions of the Software.
                                                                                                  

                                                                                                  Legally, you are allowed to relicense the project under MPLv2, however, you are not allowed to omit the original license statement, which means that you have to put the original MIT license block in the LICENSE file, e.g. below the MPLv2 block.

                                                                                                  Copyright law is a bitch. It does not care about your C4-contract or whatnot. It has to be in the source tree, in this case explicitly in LICENSE, because every source file refers to LICENSE as the place to look for copyright and license information. If you do not comply with that and claim copyright on the original work, denying the original work of the authors and their copyright, you are breaking the law and can technically get sued for it.

                                                                                                  1. 1

                                                                                                    This is the HTML-code of the comment-input-box:

                                                                                                     <textarea name="comment" id="comment" rows="5" autocomplete="off" placeholder=""></textarea>
                                                                                                    

                                                                                                    Case closed. I don’t know if the autocomplete-attribute should be even set here; it doesn’t look suckless to me. If the user wants autocomplete disabled, they can do that in their system settings. The website should not impose that on them.

                                                                                                    1. 2

                                                                                                      Definitely a very courageous move!

                                                                                                      We develop an ISC-licensed compiler “scc” here at suckless.org, but with no doubt the entire ecosystem sadly is “infested” with GNU extensions, so we will have to stick with gcc in many cases. Let’s see how this license-change-attempt works out here.

                                                                                                      1. 17

                                                                                                        This is satire. If changing licences was this easy, licences and copyright would be meaningless.

                                                                                                        I hereby declare all works of Paramount, 20th Century Fox, and Sony Pictures to be in the public domain as of tomorrow, unless a rights holder objects. If the rights holders do not read lobsters, I am incredibly sorry but I will still follow through regardless.