1. 4

    This is interesting, but I’m curious if anyone actually has an example of an implementation that breaks this expectation?

    1. 7

      Some examples:

      On the x86, depending on how you have memory segmentation set up you can have many pointers that cast to different integers but point to the same area of memory. Most modern operating systems running in protected mode set up segmentation in such a way that it’s a moot point (and in long mode, it’s not possible to really set up any segmentation at all).

      (So this is the case of one memory location with multiple representations.)

      Similarly, Harvard architecture systems (common in microcontrollers) pointers get wonky and you can very easily have two different pointers that have the same integer value but point to two separate locations (e.g. a function pointer might have the same integer representation as a heap pointer, and the compiler will generate the appropriate code to handle the different cases depending on how you cast).

      (And this is the case of one representation pointing to multiple places.)

      The C standard requires that all pointers be castable to and from void pointers, but casting to integers results in implementation-defined behavior (this was true at least for C89; someone correct me if I’m wrong now). This is understandable in light of architectures whose pointers are bigger than the maximum integer width on the system.

      1. 3

        Similarly, Harvard architecture systems (common in microcontrollers) pointers get wonky and you can very easily have two different pointers that have the same integer value but point to two separate locations

        Even on x86! After all, with memory management two processes can have the same integer pointer which points to two different memory locations. Granted, processes don’t pass pointers around (that’s one of the points of process isolation), but it’s kinda of interesting (to me, anyway).

        1. 2

          Sure - & you can do that within the same process as well with creative use of shared memory & mmap().

        2. 1

          Function pointers do not need to be cast-able to (void *) in C.

          1.  

            True. It’s object-void-object and function-function, but function-void-function is not required.

        3. 3

          Non-integer pointer platforms exist; in C on a Lisp machine, pointers were cons cells, and on AS/400, MI pointers are 128-bit.

        1. 6

          You don’t need to specify the compile line if it’s a C or C++ file:

          foo : $(OBJS)
          

          is enough. Here’s the Makefile (GNUMake, excluding dependencies) for a 150,000+ line project I have:

          %.a :
          	$(AR) $(ARFLAGS) $@ $?
          
          all: viola/viola
          
          libIMG/libIMG.a     : $(patsubst %.c,%.o,$(wildcard libIMG/*.c))
          libXPA/src/libxpa.a : $(patsubst %.c,%.o,$(wildcard libXPA/src/*.c))
          libStyle/libStyle.a : $(patsubst %.c,%.o,$(wildcard libStyle/*.c))
          libWWW/libWWW.a     : $(patsubst %.c,%.o,$(wildcard libWWW/*.c))
          viola/viola         : $(patsubst %.c,%.o,$(wildcard viola/*.c))	\
          		libIMG/libIMG.a		\
          		libXPA/src/libxpa.a	\
          		libStyle/libStyle.a	\
          		libWWW/libWWW.a
          

          I have a rule to automatically make the dependencies.

          1. 3

            foo: $(OBJS) with no command is not enough for non-GNU make.

            1. 9

              Ah. I haven’t used a non-GNUMake in … 20 years?

              1. 2

                indeed ! it is way better to use a portable make, rather than write portable makefiles :)

                1. 3

                  In that case I’ll use NetBSD make ;)

            2. 1

              for < 10k line projects i tend to just do ‘cc *.c’ :P usually it is fast enough

              1. 1

                Meanwhile, I have a 2.5kloc project where a full recompile takes 30 seconds, so incremental compilation is kind of necessary :p C++ is slooow.

              2. 1

                Is this a revived ViolaWWW?

                1. 1

                  Somewhat. It’s one of those “I want to do something but I don’t know what” type projects where I clean up the code to get a clean compile (no warnings—I still have a ways to go). It works on a 32-bit system, but crashes horribly on 64-bit systems because of the systemic belief that sizeof(int)==sizeof(long)==sizeof(void *).

              1. 1

                Why don’t people make super comp for highly parallel workloads out of these $1 chips? Surely 1,000 of these things do more stuff than 1 1,000 chip?

                1. 4
                1. 11

                  On one hand, I don’t particularly find the Linux code particularly pleasant to work on, so I probably wouldn’t be contributing in my spare time regardless.

                  On the other hand, I think that this reduces the chance that I’ll send any patches in the future; I find these “welcoming” cultures make me feel less at ease, for whatever reason, which is a second strike against my involvement.

                  For me, the code reviews I got from Theo were a highlight of sending in patches to OpenBSD.

                  In the end, it doesn’t matter much – not everything needs to be for everybody, and the Linux community isn’t run for for me. This will bring some people in, push others out, and the world will go on.

                  1. 7

                    True. I’m also concerned that code quality (and therefore users) will suffer.

                    1. 21

                      Why? Do you truly believe that it is impossible to reject bad patches without telling someone that they should be “retroactively aborted”?

                      1. -5

                        Language as harsh as that is used daily in normal speech between developers. I’ve seen much worse slack channels in terms of use of language, and you wouldn’t believe the language I’ve seen used on IRC to describe bad code.

                        I do indeed think that if you start censoring peoples’ language they’re going to change the way they contribute for the worse. If all you did was ban the absolute worst things like that, nobody would complain. But the reality is that’s not what will happen. Anything ‘offensive’ will be banned. Offensiveness is completely subjective.

                        1. 18

                          Language as harsh as that is used daily in normal speech between developers

                          That’s a rash generalisation. At none of the places I’ve worked as a developer would that sort of language be acceptable.

                          Offensiveness is completely subjective

                          That’s also untrue. While there will be grey areas, there are some things that are objectively offensive if interpreted literally - and if they’re not meant literally, why not use another expression?

                          1. 3

                            I’m going to guess you’re an American, correct me if I’m wrong. EDIT: stand corrected

                            The American cultural norm of ‘compliment sandwiches’ and being obsequiously polite is cancer to the ears of most people that aren’t Americans. I find it quite funny that Americans have this idea of Japanese as being very polite culturally, while Americans are insanely polite culturally compared to most other English-speaking countries.

                            The typical British, Australian or Kiwi software developer swears like a trooper. It’s not uncommon, it’s not offensive. You wouldn’t do it in an email, but this is the key point: my emails are not Linus’s emails. The context is different. All his communication is by email, so naturally email carries a much lower average level of formality.

                            That’s also untrue. While there will be grey areas, there are some things that are objectively offensive if interpreted literally - and if they’re not meant literally, why not use another expression?

                            I don’t even know how to respond to this. Why would one only ever say things you mean literally? Speaking entirely literally is something I would expect of someone with extreme levels of Asperger’s syndrome, I believe it’s a common symptom.

                            1. 9

                              I’m going to guess you’re an American, correct me if I’m wrong

                              The typical British, Australian or Kiwi software developer swears like a trooper

                              You are wrong; I’m Australian, currently working in England, and I disagree. Regardless, swearing by itself is not something that I find offensive.

                              Why would one only ever say things you mean literally?

                              That’s not what I suggested. If you have a choice between a highly offensive figurative or metaphorical expression and some other expression - whether literal or also figurative - which is not highly offensive, why go for the former?

                              1. 2

                                You are wrong; I’m Australian, currently working in England, and I disagree. Regardless, swearing by itself is not something that I find offensive.

                                I see

                                That’s not what I suggested.

                                I must have misinterpreted you. Sorry.

                                If you have a choice between a highly offensive figurative or metaphorical expression and some other expression - whether literal or also figurative - which is not highly offensive, why go for the former?

                                People say things that others find offensive, sometimes on purpose and sometimes not. Offensiveness is subjective. I genuinely don’t think I’ve ever been offended. Why go for one expression over another knowing that someone will get their knickers in a twist over it? Because you don’t care if someone finds it offensive? Because you enjoy it?

                                I have to admit that I actually quite enjoy knowing that someone got self-righteously offended over something I’ve said. It hasn’t happened too often, but when it does it’s just great.

                                EDIT: to be clear, there is ‘offensiveness’ that I don’t like. If someone is racist, I’m not offended, I just think that being racist is wrong and stupid and that they are wrong and stupid. I guess you could call this ‘offense’ but it’s really not the same thing.

                                1. 5

                                  Why go for one expression over another knowing that someone will get their knickers in a twist over it? Because you don’t care if someone finds it offensive? Because you enjoy it?

                                  I was not intending for you to provide an answer for the “why” - it was a rhetorical question. The point was that I do not think you should say something that may well offend someone, when there is a way to communicate without doing so.

                                  Offensiveness is subjective. I genuinely don’t think I’ve ever been offended

                                  I suspect this is why you’re having difficulty seeing the problem, and while I envy you never having experienced the feeling of being offended I can see that this could lead to lack of empathy for those who were.

                                  Maybe you wouldn’t get offended by something, but that doesn’t mean it’s “not offensive” per se. I don’t agree that offensiveness is entirely subjective. Implying (or stating directly) that someone is stupid in communication to them, for example, is generally considered offensive. Statements can be intended to cause offense. There may be disagreement on specific cases, but I think in general that there would be good agreement in a survey of a random portion of the population that certain statements were offensive.

                                  1. 1

                                    I think the reality is that I would be closest to feeling hurt or offended by someone calling me stupid if I really had done something stupid. I’ve been called stupid when I haven’t been stupid many times, doesn’t bother me. I’ve been called stupid when I really have been stupid, and it does indeed make you feel bad.

                                    I’ll acknowledge that the best way to deal with some bad code getting into the Linux kernel isn’t to make the person that wrote it feel bad.

                              2. 4

                                The typical British, Australian or Kiwi software developer swears like a trooper.

                                As a kiwi, I have not had this experience at all, quite the opposite. Everyone I work with is polite and respectful. This is just my experience, but I’m very surprised by your comment.

                                it’s not offensive

                                Sure, if it’s just swearing in general (though I’d still prefer to keep it to a minimum). The problem is when it becomes personal. Your argument is that people use ‘language just as harsh is used daily’, but there’s a line between bad language and abusive language. I don’t think the latter should be acceptable in a professional environment (at least one I’d want to work in). You can’t use one to justify the other.

                                1. 2

                                  The typical British, Australian or Kiwi software developer swears like a trooper. It’s not uncommon, it’s not offensive.

                                  I work in software development in the UK and many of Linus’ comments would be seen as completely unprofessional in either emails or conversation - certainly far past the bar where HR would get involved. There’s a massive gap between swearing and direct personal insults.

                          2. 20

                            I am honestly at a loss to see who abiding to a bland CoC could lead to code quality suffering.

                            Nothing in the CoC that I have read is in any way unremarkable. It’s simply normal professional behavior codified, with some additions to address the peculiarities of mostly online communications.

                            1. 5

                              It’s simply normal professional behavior codified.

                              That ship has sailed, but I am not convinced Open Source should be held to the standards of “professional behavior”. For instance, should we stop accepting underage contributors? What about anonymous or pseudonymous contributions?

                              Moreover what constitutes “professional behavior” differs wildly between countries and even companies within countries. For instance, “don’t ask don’t tell”-style policies are still the norm at some workplaces; do we want that in our communities? Or should we just accept that the average (non-Trump voter) U.S. sentiment should be the norm in Open Source?

                              Regarding Linus, he does (did?) have a very strong way of reacting when people disregarded things that he considered important principles of the kernel such as “do not break userspace”. He isn’t shy to use strong language to criticize companies either :)

                              Whether this has a positive or a negative effect is hard to say. It certainly antagonizes some people, and especially some potential new contributors, but at the scale of Linux should that still be the main concern of the project?

                              In any case Linus knows he reacts too strongly too fast already. This is not the first time he says something like that. We should wait and judge the long-term effects in a few months or years.

                              1. 12

                                Treating people professionally does not imply employment. A proprietor of a store treats a customer professionally by not insulting them, or refusing service. A teacher treats a student professionally by not verbally denigrating them, for example. A maintainer of an open source project treats bug reports professionally by attempting to reproduce them and applying a fix, even though the submitter of the issue may as well be anonymous.

                                It’s basically the 21st century formulation of the Categorical Imperative, as far as I am concerned.

                            2. 14

                              No one said you have to be an asshole when being firm about rejecting patches.

                              1. -1

                                A lot of people will interpret anything firm as being an arsehole. If you don’t put smiley faces at the end of every sentence, some people will interpret it as you being an arsehole. If you don’t couch every negative thing you say between two positive things, people will react very aggressively.

                                1. 16

                                  But saying someone should be “retroactively aborted” for some bad code?

                                  1. 10

                                    If you don’t put smiley faces at the end of every sentence, some people will interpret it as you being an arsehole. If you don’t couch every negative thing you say between two positive things, people will react very aggressively.

                                    This sounds like a very broad generalization to me.

                                2. 22

                                  I think there’s no causal link between “being nicer when responding to patches” and code quality going down. If anything I’d suspect the opposite; you get people who learn and improve rather than giving up after feeling insulted, and then continue to submit quality improvements.

                                  1. 3

                                    Linus Torvalds is nearly always nice when responding to patches. In 0.001% of emails he’s rude. Unfortunately he sends a lot of emails, and people cherry-pick the worst of the worst.

                                    1. 20

                                      His own apology and admission of a problem would indicate that the issue is significant. That “0.001%” is a made-up number, isn’t it? While I’m sure that only a small number of his emails are insulting, that small number still has - and has had - a detrimental effect on the mind-state of other developers. This is what’s come out of a discussion between Linus and a number of developers.

                                      Don’t get me wrong, I like Linus generally (not that I know him personally) and I think he does a great job in general, but it’s clear that this personality problem has been a growing problem. A number of people - even quite prominent developers - have left the kernel development arena because of this kind of behaviour from Linus and others and/or issues around it.

                                      I think this is a great step on Linus’ behalf, it must have been hard to make the admissions that he has and it’s a sign that things really could be better going forward.

                                      1. 4

                                        His own apology and admission of a problem would indicate that the issue is significant.

                                        I disagree. I think the issue is massively overblown and that he’s been worn down by the endless bullshit about something that really isn’t an issue.

                                        That “0.001%” is a made-up number, isn’t it?

                                        If you’d like to go do sentiment analysis on every LKML email he’s sent, be my guest. I’d love to see the real numbers. But I chose the number to make a point: it’s a vanishingly small number of emails. It’s about half a dozen well known rude emails over two decades or more. They’re really not that bad taken in the context of the number of emails he sends and the context in which he sends them. He doesn’t say ‘this code is shit’ out loud to his coworker and then send a nice polite email. The LKML is the entire communication layer for all of Linux kernel development (plus the other lists of course). The context of those emails includes a lot more than what you’d normally include in emails in a normal development environment.

                                        While I’m sure that only a small number of his emails are insulting, that small number still has - and has had - a detrimental effect on the mind-state of other developers. This is what’s come out of a discussion between Linus and a number of developers.

                                        I mean frankly I think that if someone is going to be detrimentally affected by a few emails they are no great loss. I’ve seen a few people that say things like ‘I’d never contribute to Linux even if that were in my skill set, because they’re always rude to new people’ and then cite Linus’s emails as evidence of this. I’ve seen that sort of comment a lot. Dozens of times on /r/linux, dozens of times on /r/programming, many times on HN. It’s rubbish! The LKML isn’t obsequious: the email culture there is the traditional techy one of saying what you need to say straightforwardly rather than the traditional corporate one of layering everything in sugar to avoid sounding rude to people that expect every criticism to be wrapped in three layers of compliments.

                                        The LKML is especially not rude to newcomers. Linus has been rude, in the past, sure, but only to people that are expected to know better. Long term, hardcore maintainers that have been around for years. Is it okay? No, but it’s not anything to get worked up about. It’s a really really minor issue.

                                        There are way bigger issues in Linux kernel development, like the really scary amount of control and input some companies have in its development.

                                        Don’t get me wrong, I like Linus generally (not that I know him personally) and I think he does a great job in general, but it’s clear that this personality problem has been a growing problem. A number of people - even quite prominent developers - have left the kernel development arena because of this kind of behaviour from Linus and others and/or issues around it.

                                        They probably would have left anyway. People don’t change careers because someone said ‘retroactively aborted’ in an email once.

                                3. 8

                                  funny, I almost avoided a potential security report to OpenBSD because I saw the contact is theo. I didn’t want to get flamed.

                                1. 4

                                  What will happen next? Are we going to get a z80 inside our phones? Why not a 6502? Hell, I would love to run C64 basic interpreter natively inside my phone…. No really, I’m not criticizing Apple or Intel for using an x86 core, I don’t really care, but…my PERSONAL opinion is that something is going really wrong in this world.

                                  lol? Nothing wrong with either x86 or ARM… I’m curious why the author feels this way.

                                  1. 10

                                    x86 is typically considered a difficult ISA to make small silicon for due to its complexity. Previous attempts at small x86 processor products (notably the Intel Gallileo) have ended up very expensive.

                                    Albeit I believe that x86 processors don’t run the instructions directly, instead they break down each instruct into simpler (RISCier) micro-ops that are run [citation needed]. There’s jokes about the idea of making an x86 processor run ARM or other ISAs natively, if only you could write your own firmware.

                                    1. 7

                                      IIRC pretty much all (big) processors use micro-ops, even if the ISA is already RISCy

                                      1. 2

                                        Here’s a nice blog entry by ryg. The last paragraph is quite interesting:

                                        And by the way, I used x86 as an example here, but don’t believe for a second the same thing doesn’t apply to, say, the ARM chip in your phone. Modern ARM chips support multiple encodings and also rank over 1000 instructions […]

                                        MIPS is similar as well, it has SIMD, historic baggage (invented in ’85), etc., and even this.

                                        SPARC has ‘tagged add’ etc. instructions, made specifially with certain language runtimes in mind.

                                        The recent PPC 600 blog series made it clear that PPC, considered a RISC, isn’t very ‘reduced’ either.

                                        I don’t know much about RISC-V, but v2.2 of the spec tells me extensions for SIMD (P), “dynamically translated languages” (J), etc. exist, or will soon.

                                        The only ‘simple’ ISAs left are probably 6502, AVR and maybe SuperH (I don’t know much about this one either).

                                        EDIT: funnily, Z80 is considered CISC, while those chips are considerably simpler than many of these ‘R’ISCs.

                                        1. 9

                                          RISC is more about fixed instruction word length and no direct-memory operations than reduction of features.

                                          1. 2

                                            SuperH was used in Dreamcast. Still sold by Renesas in multiple versions for embedded sector.

                                            1. 2

                                              There is J Core - a free and open SuperH CPU. See http://0pf.org/j-core.html and http://j-core.org/

                                      2. 5

                                        Kind of weird why he is complaining about x86 processors and their complexity in manufacturing if he is an end user? Like he ain’t fabbin’ them.

                                        1. 1

                                          Yeah, it would cost him more to get an 8-bitter out of an old node than buy a single Xeon. Probably.

                                        1. 4
                                          1. 1

                                            thanks!

                                        1. 6

                                          I wouldn’t consider the LGPL to be a bureaucratic or a bad license. I certainly wouldn’t want to use a proprietary graphics library; nor would I want to see my contributions to a library made proprietary. The GPL & LGPL create a software commons, which is pretty awesome.

                                          1. 5

                                            This is a popular point of contention. It’s like VIM vs. Emacs. These days I release under effective public domain (I can’t place anything in real PD in my jurisdiction) because I take whatever chance I can to have other people finish or build on top of my work in any form whatsoever, and screw attribution. They’re free to add any arbitrary restrictions if it makes them happy.

                                            1. 3

                                              It’s really nothing like vim vs. emacs. Vim vs. emacs is a matter of opinion and is about personal preference. Licenses are the opposite: if you support one over another you should be able to back that up with good reasoning.

                                              because I take whatever chance I can to have other people finish or build on top of my work in any form whatsoever, and screw attribution. They’re free to add any arbitrary restrictions if it makes them happy.

                                              If you’re fine with people taking your work and using it to abuse end users that’s for your conscience to deal with and not mine, but don’t pretend that it has anything to do with how ‘bureaucratic’ a license is.

                                              1. 1

                                                Why not just do a BSD-like license since public domain isn’t a thing in some countries but it is? If public domain isn’t always recognized, then putting stuff in the public domain might go against freedom or uptake given it limits who might use the work with its uncertainty. Whereas, people see BSD or MIT, they go “Hell yeah! Nothing to worry about!”

                                                1. 4

                                                  The stress is on “effective”: 0BSD erases 1 half-sentence from the ISC license I used before.

                                                  1. 1

                                                    Ok, so it is licensed instead of just public domain. I didn’t know about that license either. Thanks for the tip!

                                              2. 1

                                                Agree. I got the impression that a lot of stupid would follow, as soon as I read this gem:

                                                Why C? It’s a clean, rather simple language that I’ve ‘mastered’ at one point […]

                                                “Mastering C” and thinking it is “a clean, rather simple language” are at opposite ends of the knowledge spectrum.

                                                1. 7

                                                  I think what the author meant is that at some point you learn enough of the C language that you’re able to read and understand 99% (maybe 100%?) of C code. The language is small enough and changing at such a slow pace that it’s possible to “master” it. I agree with the author that C is a clean and simple language perhaps made slightly dirtier with the incorporation of the preprocessor and various preprocessor macros but those are usually used sparingly.

                                                  1. 0

                                                    Then either all C developers must be trolling us with decades of security issues and crashes in their software, or describing C as “clean and simple” is an idea limited to people with the mistaken believe that they mastered the language.

                                                    1. 3

                                                      Just because a language doesn’t have facilities to reason about complex mechanisms expressively doesn’t mean it’s not simple. It’s a simple, clean, and flawed language. These things are orthogonal.

                                                      I think that there’s an extremely popular Unix-bias in online programming communities where all complexity is viewed as the same thing to be avoided without realizing that a lot of what you want to express is actually quite complex to express correctly.

                                                2. 1

                                                  Though the problem is Go is always statically linked, so wouldn’t the application have to be LGPL then too?

                                                  1. 5

                                                    Actually, not always. Cgo is typically used with dynamic linking, and pure Go can also link dynamically since 1.5. I haven’t experimented with it yet.

                                                  2. 1

                                                    Yeah there’s nothing at all ‘bureaucratic’ about any license. They’re all as bureaucratic as each other.

                                                  1. 1

                                                    I get that mental illness gives old mate a pass on the racist diatribes, but most of those “features” are really bad ideas.

                                                    1. 7

                                                      As the article put it:

                                                      Don’t write things off just because they have big flaws.

                                                      That said, would you please expand on why most of the features are really bad ideas?

                                                      1. 11

                                                        I may be the only user of my computer, but I still appreciate memory protection.

                                                        1. 5

                                                          More to the point: Practically every, if not every, security feature is also an anti-footbullet feature. Memory protection protects my data from other people on the system and allows security contexts to be enforced, and it protects my data from one of my own programs going wrong and trying to erase everything it can address. Disk file protections protect my data from other users and partially-trusted processes, and ensure my own code can’t erase vital system files in the normal course of operation. That isn’t even getting into how memory protection interacts with protecting peripheral hardware.

                                                          Sufficiently advanced stupidity is indistinguishable from malice.

                                                          1. 15

                                                            But that’s not really the point of TempleOS, is it?

                                                            As Terry once mentioned, TempleOS is a motorbike. If you lean over too far you fall off. Don’t do that. There is no anti-footbullet features because that’s the point.

                                                            Beside that, TOS still has some features lacking in other OS. Severely lacking.

                                                            1. 1

                                                              Beside that, TOS still has some features lacking in other OS. Severely lacking.

                                                              Like?

                                                              1. 12

                                                                The shell being not purely text but actual hypertext with images is lacking in most other os by default and I would love to have that.

                                                                1. 6

                                                                  If you’ve never played with Oberon or one of its descendant systems, or with Acme (inspired by Oberon) from Rob Pike, you should give it/them a try.

                                                                  1. 0

                                                                    If you start adding images and complex formatting in to the terminal then you lose the ability to pipe programs and run text processing tools on them.

                                                                    1. 13

                                                                      Only because Unix can’t comprehend with the idea of anything other than bags of bytes that unformatted text happens to be congruent with.

                                                                      1. 4

                                                                        I have never seen program composition of guis. The power of text is how simple it is to manipulate and understand with simple tools. If a tool gives you a list of numbers its very easy to process. If the tool gives you those numbers in a picture of a pie chart then it’s next to impossible to do stuff with that.

                                                                        1. 7

                                                                          Program composition of GUIs is certainly possible – the Alto had it. It’s uncommon in UNIX-derived systems and in proprietary end-user-oriented systems.

                                                                          One can make the argument that the kind of pipelining of complex structured objects familiar from notebook interfaces & powershell is as well-suited to GUI composability as message-passing is (although I prefer message-passing for this purpose since explicit nominal typing associated with this kind of OO slows down iterative exploration).

                                                                          A pie chart isn’t an image, after all – a pie chart is a list of numbers with some metadata that indicates how to render those numbers. The only real reason UNIX doesn’t have good support for rich data piping is that it’s hard to add support to standard tools decades later without breaking existing code (one of the reasons why plan9 is not fully UNIX compatible – it exposes structures that can’t be easily handled by existing tools, like union filesystems with multiple files of the same name, and then requires basically out-of-band disambiguation). Attempts to add extra information to text streams in UNIX tools exist, though (often as extra control sequences).

                                                                          1. 3

                                                                            Have a look at PowerShell.

                                                                            1. 3

                                                                              I have never seen program composition of guis. The power of text is how simple it is to manipulate and understand with simple tools. If a tool gives you a list of numbers its very easy to process. If the tool gives you those numbers in a picture of a pie chart then it’s next to impossible to do stuff with that.

                                                                              Then, respectfully, you need to get out more :) Calvin pointed out one excellent example, but there are others.

                                                                              Smalltalk / Squeak springs to mind.

                                                                              1. 2

                                                                                Certainly the data of the pie chart has to be structured with such metadata that you can pipe it to a tool which extracts the numbers. Maybe even manipulates them and returns a new pie chart.

                                                                            2. 3

                                                                              You don’t loose that ability considering such data would likely still have to be passed around in a pipe. All that changes is that your shell is now capable of understanding hypertext instead of normal text.

                                                                              1. 1

                                                                                I could easily imagine a command shell based on S-expressions rather than text which enabled one to pipe typed data (to include images) easily from program to program.

                                                                          2. 1

                                                                            But why do I want that? It takes me 30 seconds to change permissions on /dev/mem such that I too can ride a motorbike without a helmet.

                                                                            1. 2

                                                                              That is completely beside the point. A better question is how long would it take you to implement an operating system from scratch, by yourself, for yourself. When you look at it that way, of course he left some things out. Maybe those things just weren’t as interesting to him.

                                                                              1. 1

                                                                                You could do that, but in TOS that’s the default. Defaults matter a lot.

                                                                                1. 2

                                                                                  /dev/mem more or less world accessible was also the default for a particular smartphone vendor I did a security audit for.

                                                                                  Defaults do matter a lot…

                                                                            2. 8

                                                                              If there are no other users, and it takes only a second or two to reload the OS, what’s the harm?

                                                                              1. 6

                                                                                Its fine for a toy OS but I dont want to be working on real tasks where a bug in one program could wipe out everything I’m working on or corrupt it silently.

                                                                                1. 11

                                                                                  I don’t think TempleOS has been advertised as anything other than a toy OS. All this discussion of “but identity mapped ring 0!” seems pretty silly in context. It’s not designed to meet POSIX guidelines, it’s designed to turn your x86_64 into a Commodore.

                                                                          3. 2

                                                                            Don’t write things off just because they have big flaws.

                                                                            That’s pretty much the one and only reason where you would want to write things off.

                                                                            1. 14

                                                                              There’s a difference between writing something off based on it having no redeeming qualities and writing something off because it’s a mixed bag. TempleOS is a mixed bag – it is flawed in a generally-interesting way. (This is preferable to yet another UNIX, which is flawed in the same boring ways as every other UNIX.)

                                                                          4. 2

                                                                            This is probably not what you meant to imply, but nobody else said it, so just to be clear: Mental illness and racism aren’t correlated.

                                                                            1. 2

                                                                              Whatever is broken inside somebody to make them think the CIA is conspiring against them, I find it hard to believe that same fault couldn’t easily make somebody think redheads are conspiring against them.

                                                                              1. 2

                                                                                You’re oversimplifying. There are many schizophrenic people in the U.S., and most of them are not racist. Compulsions, even schizophrenic ones, don’t come from the ether, and they’re not correlated with any particular mental illness. Also, terry’s compulsions went far beyond paranoia.

                                                                          1. 2

                                                                            I would have expected the installer for Microsoft’s flagship Windows development system to be a standard MSI package, or maybe a .NET application, or maybe some kind of COM component with an HTML UI based on the Internet Explorer engine… I did not expect node.js, or “…many of the Installer files appear to test for Windows and/or *nix, despite VS being Windows-only.”

                                                                            1. 3

                                                                              Welcome to the cultural decline of Microsoft - the next generation of devs that work for them were raised on GNU and the web, not on Visual Studio.

                                                                              1. 3

                                                                                Despite being a satisfied user of “the *nix way” of doing things, I am a bit saddened by the outlook of a *nix monoculture.

                                                                                1. 2

                                                                                  Yeah, so many things have been eroded by Unix and the web - VMS, (everything is a POSIX app there) Mac OS, (Unix hijacked it, and now the web and mobile ports will slowly eat at its native ecosystem) AS/400, (everything new runs in the (slow) AIX compatibility layer due to IBM cost-cutting) and now Windows.

                                                                            1. 7

                                                                              I’m glad to see browsers getting serious about removing trackers from the web but I fear this is starting a cat and mouse game with trackers. uMatrix works so well because trackers are on obvious domains like google-analytics. I think if browsers start blocking these 3rd party trackers than websites will move everything 1st party and use webpack to bundle one mega js file that includes the essential stuff and the trackers. They can also proxy all requests and cookies through their own server and then send it off to trackers. None of that is hard but it’s not done because it isn’t needed yet.

                                                                              Trackers also have the upper hand in that they can rapidly change without fear of breaking other websites.

                                                                              1. 9

                                                                                Another reason it isn’t done, from what I understand, is that advertisers don’t trust content providers. They want a third-party to verify that the impressions (or the tracking data) they’re getting are reasonably genuine. I don’t think you’re wrong, but I do think there’s a little more standing in the way of that particular “nuclear option” than laziness.

                                                                                1. 2

                                                                                  In that case there might be a rise of ad networks that bundle their trackers with jquery or some other JS library that is impossible to block without breaking the websites. There is just an insane amount of money in tracking that I don’t think it will be easily shut down.

                                                                                2. 3

                                                                                  At some point, we’ll have to move away from simple block listing based on domains, yup. It’s an arms race, though. I agree. :-/

                                                                                  1. 2

                                                                                    I also worry about the arms race. My hope is this plays out similarly to how the spam wars went over a decade ago— The Good Guys band together and use technology to reduce the baddies to a buzzing noise rather than drowning out a decent mode of communication.

                                                                                    1. 12

                                                                                      The spam wars did have collateral damage though: it’s a lot harder to host a mail server than it used to be.

                                                                                      1. 8

                                                                                        We “won” the mail spam war by dodging it. Email recentralized dramatically.

                                                                                        IMHO it’s also a loss.

                                                                                      2. 1

                                                                                        If you’re on a slow connection and disable tracking mostly because it makes your browsing faster, then this doesn’t sound terrible. Ghostery just found 24 trackers on cnn.com (some of which presumably loads other trackers, because if I pause blocking it finds 34). Bundling these into one “mega js” include should actually improve things for people who don’t use any blockers.

                                                                                        Regarding proxying requests, I think that would make site owners stop and think a bit more about whether they really need 30+ trackers on their site. I think a lot of these are included because the barrier to entry is so low, so raising it can only be good.

                                                                                      1. 4

                                                                                        Cool, they shipped with my Go port for SPARC. Unfortunately we didn’t have time to update it to the latest Go version and merge it upstream so now the port is in limbo (more details of what happened for who is interested).

                                                                                        By the way, Solaris is not illumos.

                                                                                        1. 3

                                                                                          Yeah why the #illumos?

                                                                                          1. 0

                                                                                            because for some reason, the solaris/sunos tag was added as illumos

                                                                                        1. 1

                                                                                          This issue was tagged with ‘Implementation needed’ on August 29, 2017. Have there been any developments since then?

                                                                                          1. 1

                                                                                            Unfortunately the case for IRCv3, not likely.

                                                                                          1. 3

                                                                                            Argh, I want to upvote ‘The Commons Clause will destroy open source’ without upvoting Redis Labs’s action.

                                                                                            1. 6

                                                                                              Upvote for the discussion. “Company Makes Business Decision” is rarely on-topic for Lobsters and often goes off the Rails; I’ve upvoted because I appreciate that we’re not rehashing well-worn licensing arguments here, though this announcement was poorly written.

                                                                                              1. 4

                                                                                                This is the second time Lobsters has censored my articles by merging them into tangentally related discussions.

                                                                                                1. 6

                                                                                                  Nobody is censoring you. If anything, your visibility has been boosted by being on front page with another high-visibility thread. I didn’t even know about your article until I saw it here. To avoid clutter, the admins sometimes combine posts talking about same event or topic into a group. I can see someone not liking that decision. I’m not for or against it right now.

                                                                                                  You weren’t censored, though. A mechanism bringing your writing to my attention is opposite of censorship.

                                                                                                  1. 6

                                                                                                    I don’t think you have this exactly right. What happens is someone submits it as an independent post, which is freely ranked on its own merits. Then a moderator merges it with a post which is already growing stale, as a significant fraction of the site has already looked at it and has little reason to return, except to consider replies to their comments - and even then they have to notice more articles have been added. It also removes a dedicated space for discussing that particular article, which in this case is important because the second article is more about Commons than it is about Redis, making the discussions difficult to live in parallel.

                                                                                                    The original, independent post was censored by merging it into here. On the previous occasion the new post was merged into a post which was then several days old, where I presume approximately zero people saw it. This is censorship, and a clear cut case of it too. I don’t consider myself entitled to exposure but it’s censorship all the same, and part of the reason I distanced myself from Lobsters except to participate where others have posted my content.

                                                                                                    1. 1

                                                                                                      The original, independent post was censored by merging it into here. On the previous occasion the new post was merged into a post which was then several days old, where I presume approximately zero people saw it.

                                                                                                      If your story disappeared, that scenario would be censorship since it was manipulated in a way that would nearly guarantee nobody would see it. The new one isn’t censorship because censorship is about people not seeing your stuff. The combined submission is 20+ votes on front page of a site with more readers than most blogs. Your views going up instead of down is opposite of censorship at least in general definition and effect it has.

                                                                                                      1. 3

                                                                                                        The new one isn’t censorship because censorship is about people not seeing your stuff

                                                                                                        “Taking measures which prevent others from seeing your stuff” is literally censorship. I don’t want to argue semantics with you any longer. All of the information is on the table in the comments here, let people read them and settle on an opinion themselves.

                                                                                                        1. 2

                                                                                                          “Taking measures which prevent others from seeing your stuff” is literally censorship”

                                                                                                          I saw your stuff through Lobsters’ measures. So, it’s not censorship by your definition.

                                                                                                          “let people read them and settle on an opinion themselves”

                                                                                                          By all means.

                                                                                                        2. 3

                                                                                                          I really appreciate your point of view normally, but in this case I think you’re incorrect: it would be nice to have the community’s take on @SirCmpwn’s article itself (which is well worth reading) rather than have the comments blended in with those on Redis Labs.

                                                                                                  2. 2

                                                                                                    Upvoting doesn’t necessarily have to be approval of the content of the post. (though it usually should be)

                                                                                                  1. 5

                                                                                                    One thing about SPAs…they seemed to be really popular starting with the rise of Rails, mostly as a way of compensating for Rails amazingly slow rendering.

                                                                                                    1. 1

                                                                                                      rendering? … I thought Rails was backend?

                                                                                                      1. 2

                                                                                                        Server-side rendering is a thing.

                                                                                                        1. 2

                                                                                                          is the process of building an html document to send to the browser called “rendering”?

                                                                                                          1. 7

                                                                                                            Yes.

                                                                                                            1. 2

                                                                                                              Also, there’s (eg) react-rails which does server-rendering of a react SPA (so you get the HTML which your react code would generate, served by rails).

                                                                                                        2. 1

                                                                                                          I remember the rise of Rails to be mid-to-late 2000s - I don’t remember seeing SPAs until the mid-2010s.

                                                                                                        1. 4

                                                                                                          I’d like to know why DosBox-based games are on this list, since DosBox on Linux doesn’t need things like Wine and would function the same on Linux as on Windows.

                                                                                                          Separately, there are tons of Steam games I have that have Linux ports but the Linux port isn’t natively on Steam (eg. Quake, Unreal, etc.) I’ve never understood why this is. I end up using a custom compiled ioquake engine with assets from Steam, which works great.

                                                                                                          1. 4

                                                                                                            With older games that were ported to Linux, the distribution rights are often (but not always) with a different publisher.

                                                                                                            Since Steam requires a game to have ports for different platforms of the same title under the same product ID (and thus publisher), there is no way to set up a proper revenue sharing system for the owners of the Linux ports (or Mac ports, old Mac games are in the same boat)

                                                                                                            Steam initially required a single title to be a single product ID because they don’t want publishers to make people re-buy old titles that were newly ported, in order to boost SteamOS adoption - this way, many players would have a half-decent Steam library from the get-go on the new platform.

                                                                                                            Many of the old porting shops for Linux and Mac have gone under, or the ports haven’t been maintained since before Linux 2.6 or even 2.4, meaning that many of the ports can no longer be trivially made to work on modern day distributions. Many games from before say 2003 used SVGA lib to render directly to the framebuffer, for example, without going through X11.

                                                                                                            So, sadly, many of these ports are lost to the sands of time and the murky status of IP limbo.

                                                                                                            This does not explain why DosBox titles are run through Wine, but I guess that’s just a matter of the publisher not being interested in making and testing a Linux build, given the limited revenue that comes from the platform. These re-releases are probably a very low budget and low income affair, more for the sake of IP owners being able to point to them and say “see, we still provide these products! Preservationists which are distributing our old games are plain pirates, they are not serving a higher purpose!”. But maybe that’s just me being cynical.

                                                                                                            1. 1

                                                                                                              I’m sure in a lot of cases you’re exactly right. I’m just frustrated because the games I’m referring to are largely exceptions. Take Quake 3 - the engine is released under the GPL, has a community maintained fork, targets OpenGL rather than Svgalib and Valve have the same distribution rights to it as to Wine or Dosbox. It’s possible this is still publisher related, for example if Valve are expecting the publisher to compile/support it and the publisher doesn’t do so. In the end it seems like a lack of economic incentive to package and distribute a thing that already exists.

                                                                                                              Most id engine games are in this situation and a couple of those were included in the current beta. They really do use Win32 dosbox on Wine to run a DOS game (so a 500Mb download for a 10Mb game.) 430Mb of that is a Wine/Proton tarball which is then extracted (but left on disk) so Proton on disk is 1.6Gb to run a 10Mb game.

                                                                                                              PS. I had great fun with SvgaLib on Linux for games before Steam came along. At one point I was using an a.out version of Doom on a much newer system, and it worked great because a.out had a parallel set of usermode libraries so everything was period except for the kernel, which was the only thing that needed to be compatible.

                                                                                                            2. 2

                                                                                                              This has annoyed me before. I got a dos game from gog a while ago and I thought it would be trivial to run on linux but it turns out gog bundles the game and dosbox together in a way you can’t split apart. I tried to get the dosbox version to run in wine but it wasn’t working so I had to find a torrent of the original dos copy

                                                                                                              1. 6

                                                                                                                GOG gives you a single installer that includes DosBox and the game itself; once you’ve gotten the files out you can ignore the DosBox-related ones in favour of running the original binary in your own copy of DosBox or open-source re-implementation or whatever.

                                                                                                                To get the files out, you can run the installer in Wine, or use a tool like innoextract.

                                                                                                                1. 2

                                                                                                                  the worst ones are when GOG.com is delivering a butchered Win32 game and you can’t get the original copy out of it

                                                                                                            1. 4

                                                                                                              tl;dr: You have micro-op level access to the CPU, skipping the x86 decoder. It’s also documented in the processor manual and the ALTINST bit requires ring 0 to set it, so not much of a backdoor, is it?

                                                                                                              1. 65

                                                                                                                This blogpost is a good example of fragmented, hobbyist security maximalism (sprinkled with some personal grudges based on the tone).

                                                                                                                Expecting Signal to protect anyone specifically targeted by a nation-state is a huge misunderstanding of the threat models involved.

                                                                                                                Talking about threat models, it’s important to start from them and that explains most of the misconceptions in the post.

                                                                                                                • Usable security for the most people possible. The vast majority people on the planet use iOS and Android phones, so while it is theoretically true that Google or Apple could be forced to subvert their OSs, it’s outside the threat model and something like that would be highly visible, a nuclear option so to speak.
                                                                                                                • Alternative distribution mechanisms are not used by 99%+ of the existing phone userbases, providing an APK is indeed correctly viewed as harm reduction.
                                                                                                                • Centralization is a feature. Moxie created a protocol and a service used by billions and millions of people respectively that provides real, measureable security for a lot of people. The fact is that doing all this in a decentralized way is something we don’t yet know how to do or doing invites tradeoffs that we shouldn’t make. Federation atm either leads to insecurity or leads to the ossification of the ecosystem, which in turn leads to a useless system for real users. We’ve had IRC from the 1990s, ever wonder why Slack ever became a thing? Ossification of a decentralized protocol. Ever wonder why openpgp isn’t more widespread? Noone cares about security in a system where usability is low and design is fragile. Ever tried to do key rotation in gpg? Even cryptographers gave up on that. Signal has that built into the protocol.

                                                                                                                Were tradeoffs made? Yes. Have they been carefully considered? Yes. Signal isn’t perfect, but it’s usable, high-level security for a lot of people. I don’t say I fully trust Signal, but I trust everything else less. Turns out things are complicated when it’s about real systems and not fantasy escapism and wishes.

                                                                                                                1. 34

                                                                                                                  Expecting Signal to protect anyone specifically targeted by a nation-state is a huge misunderstanding of the threat models involved.

                                                                                                                  In this article, resistance to governments constantly comes up as a theme of his work. He also pushed for his tech to be used to help resist police states like with the Arab Spring example. Although he mainly increased the baseline, the tool has been pushed for resisting governments and articles like that could increase perception that it was secure against governments.

                                                                                                                  This nation-state angle didn’t come out of thin air from paranoid, security people: it’s the kind of thing Moxie talks about. In one talk, he even started with a picture of two, activist friends jailed in Iran in part to show the evils that motivate him. Stuff like that only made the stuff Drew complains about on centralization, control, and dependence on cooperating with surveillance organization stand out even more due to the inconsistency. I’d have thought he’d make signed packages for things like F-Droid sooner if he’s so worried about that stuff.

                                                                                                                  1. 5

                                                                                                                    A problem with the “nation-state” rhetoric that might be useful to dispel is the idea that it is somehow a God-tier where suddenly all other rules becomes defunct. The five-eyes are indeed “nation state” and has capabilities that are profound; like the DJB talk speculating about how many RSA-1024 keys that they’d likely be able to factor in a year given such and such developments and what you can do with that capability. That’s scary stuff. On the other hand, this is not the “nation state” that is Iceland or Syria. Just looking at the leaks from the “Hacking Team” thing, there are a lot of “nation states” forced to rely on some really low quality stuff.

                                                                                                                    I think Greg Conti in his “On Cyber” setup depicts it rather well (sorry, don’t have a copy of the section in question) and that a more reasonable threat model of capable actors you do need to care about is that of Organized Crime Syndicates - which seems more approachable. Nation State is something you are afraid of if you are political actor or in conflict with your government, where the “we can also waterboard you to compliance” factors into your threat model, Organized Crime hits much more broadly. That’s Ivan with his botnet from internet facing XBMC^H Kodi installations.

                                                                                                                    I’d say the “Hobbyist, Fragmented Maximalist” line is pretty spot on - with a dash of “Confused”. The ‘threats’ of Google Play Store (test it, write some malware and see how long it survives - they are doing things there …) - the odds of any other app store; Fdroid, the ones from Samsung, HTC, Sony et al. - being completely owned by much less capable actors is way, way higher. Signal (perhaps a Signal-To-Threat ratio?) perform an good enough job in making reasonable threat actors much less potent. Perhaps not worthy of “trust”, but worthy of day to day business.

                                                                                                                  2. 18

                                                                                                                    Expecting Signal to protect anyone specifically targeted by a nation-state is a huge misunderstanding of the threat models involved.

                                                                                                                    And yet, Signal is advertising with the face of Snowden and Laura Poitras, and quotes from them recommending it.

                                                                                                                    What kind of impression of the threat models involved do you think does this create?

                                                                                                                    1. 5

                                                                                                                      Who should be the faces recommending signal that people will recognize and listen to?

                                                                                                                      1. 7

                                                                                                                        Whichever ones are normally on the media for information security saying the least amount of bullshit. We can start with Schneier given he already does a lot of interviews and writes books laypeople buy.

                                                                                                                        1. 3

                                                                                                                          What does Schneier say about signal?

                                                                                                                          1. 10

                                                                                                                            He encourages use of stuff like that to increase baseline but not for stopping nation states. He adds also constantly blogged about the attacks and legal methods they used to bypass technical measures. So, his reporting was mostly accurate.

                                                                                                                            We counterpoint him here or there but his incentives and reo are tied to delivering accurate info. Moxie’s incentives would, if he’s selfish, lead to locked-in to questionable platforms.

                                                                                                                    2. 18

                                                                                                                      We’ve had IRC from the 1990s, ever wonder why Slack ever became a thing? Ossification of a decentralized protocol.

                                                                                                                      I’m sorry, but this is plain incorrect. There are many expansions on IRC that have happened, including the most recent effort, IRCv3: a collectoin of extensions to IRC to add notifications, etc. Not to mention the killer point: “All of the IRCv3 extensions are backwards-compatible with older IRC clients, and older IRC servers.”

                                                                                                                      If you actually look at the protocols? Slack is a clear case of Not Invented Here syndrome. Slack’s interface is not only slower, but does some downright crazy things (Such as transliterating a subset of emojis to plain-text – which results in batshit crazy edge-cases).

                                                                                                                      If you have a free month, try writing a slack client. Enlightenment will follow :P

                                                                                                                      1. 9

                                                                                                                        I’m sorry, but this is plain incorrect. There are many expansions on IRC that have happened, including the most recent effort, IRCv3: a collectoin of extensions to IRC to add notifications, etc. Not to mention the killer point: “All of the IRCv3 extensions are backwards-compatible with older IRC clients, and older IRC servers.”

                                                                                                                        Per IRCv3 people I’ve talked to, IRCv3 blew up massively on the runway, and will never take off due to infighting.

                                                                                                                        1. 12

                                                                                                                          And yet everyone is using Slack.

                                                                                                                          1. 14

                                                                                                                            There are swathes of people still using Windows XP.

                                                                                                                            The primary complaint of people who use Electron-based programs is that they take up half a gigabyte of RAM to idle, and yet they are in common usage.

                                                                                                                            The fact that people are using something tells you nothing about how Good that thing is.

                                                                                                                            At the end of the day, if you slap a pretty interface on something, of course it’s going to sell. Then you add in that sweet, sweet Enterprise Support, and the Hip and Cool factors of using Something New, and most people will be fooled into using it.

                                                                                                                            At the end of the day, Slack works just well enough Not To Suck, is Hip and Cool, and has persistent history (Something that the IRCv3 group are working on: https://ircv3.net/specs/extensions/batch/chathistory-3.3.html)

                                                                                                                            1. 9

                                                                                                                              At the end of the day, Slack works just well enough Not To Suck, is Hip and Cool, and has persistent history (Something that the IRCv3 group are working on […])

                                                                                                                              The time for the IRC group to be working on a solution to persistent history was a decade ago. It strikes me as willful ignorance to disregard the success of Slack et al over open alternatives as mere fashion in the face of many meaningful functionality differences. For business use-cases, Slack is a better product than IRC full-stop. That’s not to say it’s perfect or that I think it’s better than IRC on all axes.

                                                                                                                              To the extent that Slack did succeed because it was hip and cool, why is that a negative? Why can’t IRC be hip and cool? But imagine being a UX designer and wanting to help make some native open-source IRC client fun and easy to use for a novice. “Sisyphean” is the word that comes to mind.

                                                                                                                              If we want open solutions to succeed we have to start thinking of them as products for non-savvy end users and start being honest about the cases where closed products have superior usability.

                                                                                                                              1. 5

                                                                                                                                IRC isn’t hip and cool because people can’t make money off of it. Technologies don’t get investment because they are good, they get good because of investment. The reason that Slack is hip/cool and popular and not IRC is because the investment class decided that.

                                                                                                                                It also shows that our industry is just a pop culture and can give a shit about good tech .

                                                                                                                                1. 4

                                                                                                                                  There were companies making money off chat and IRC. They just didn’t create something like Slack. We can’t just blame the investors when they were backing companies making chat solutions whose management stayed on what didn’t work in long-term or for huge audience.

                                                                                                                                  1. 1

                                                                                                                                    IRC happened before the privatization of the internet. So the standard didn’t lend itself well for companies to make good money off of it. Things like slack are designed for investor optimization, vs things like IRC being designed for use and openness.

                                                                                                                                    1. 2

                                                                                                                                      My point was there were companies selling chat software, including IRC clients. None pulled off what Slack did. Even those doing IRC with money or making money off it didn’t accomplish what Slack did for some reason. It would help to understand why that happened. Then, the IRC-based alternative can try to address that from features to business model. I don’t see anything like that when most people that like FOSS talk Slack alternatives. Then, they’re not Slack alternatives if lacking what Slack customers demand.

                                                                                                                                      1. 1

                                                                                                                                        Thanks for clarifying. My point can be restated as… There is no business model for federated and decentralized software (until recently , see cryptocurrencies). Note most open and decentralized tech of the past was government funded and therefore didn’t face business pressures. This freed designets to optimise other concerns instead of business onrs like slack does.

                                                                                                                                2. 4

                                                                                                                                  To the extent that Slack did succeed because it was hip and cool, why is that a negative? Why can’t IRC be hip and cool?

                                                                                                                                  The argument being made is that the vast majority of Slack’s appeal is the “hip-and-cool” factor, not any meaningful additions to functionality.

                                                                                                                                  1. 6

                                                                                                                                    Right, as I said I think it’s important for proponents of open tech to look at successful products like Slack and try to understand why they succeeded. If you really think there is no meaningful difference then I think you’re totally disconnected from the needs/context of the average organization or computer user.

                                                                                                                                    1. 3

                                                                                                                                      That’s all well and good, I just don’t see why we can’t build those systems on top of existing open protocols like IRC. I mean: of course I understand, it’s about the money. My opinion is that it doesn’t make much sense to insist that opaque, closed ecosystems are the way to go. We can have the “hip-and-cool” factor, and all the amenities provided by services like Slack, without abandoning the important precedent we’ve set for ourselves with protocols like IRC and XMPP. I’m just disappointed that everyone’s seeing this as an “either-or” situation.

                                                                                                                                      1. 2

                                                                                                                                        I definitely don’t see it as an either-or situation, I just think that the open source community typically has the wrong mindset for competing with closed products and that most projects are unapproachable by UX or design-minded people.

                                                                                                                                3. 3

                                                                                                                                  Open, standard chat tech has had persistent history and much more for decades in the form of XMPP. Comparing to the older IRC on features isn’t really fair.

                                                                                                                                  1. 2

                                                                                                                                    The fact that people are using something tells you nothing about how Good that thing is.

                                                                                                                                    I have to disagree here. It shows that it is good enough to solve a problem for them.

                                                                                                                                    1. 1

                                                                                                                                      I don’t see how Good and “good enough to solve a problem” are related here. The first is a metric of quality, the second is the literal bare minimum of that metric.

                                                                                                                              2. 1

                                                                                                                                Alternative distribution mechanisms are not used by 99%+ of the existing phone userbases, providing an APK is indeed correctly viewed as harm reduction.

                                                                                                                                I’d dispute that. People who become interested in Signal seem much more prone to be using F-Droid than, say, WhatsApp users. Signal tries to be an app accessible to the common person, but few people really use it or see the need… and often they are free software enthusiasts or people who are fed up with Google and surveillance.

                                                                                                                                1. 1

                                                                                                                                  More likely sure, but that doesn’t mean that many of them reach the threshold of effort that they do.

                                                                                                                                2. 0

                                                                                                                                  Ossification of a decentralized protocol.

                                                                                                                                  IRC isn’t decentralised… it’s not even federated

                                                                                                                                  1. 3

                                                                                                                                    Sure it is, it’s just that there are multiple federations.

                                                                                                                                1. 3

                                                                                                                                  One thing I wish could be easily ported to Linux from OpenBSD is relayd. In my constant excirse for minimalism and simplicity I’ve felt in love with suckless’ ii irc client, because its interface is pure text with tons of possibilities, I don’t need to run something depending on ncurses; but ii by design lacks of SSL or TLS functionalities (I like that) so they suggest to use a proxy that makes the connection for it, in OpenBSD relayd takes care flawlessly of the job, but there is nothing equivalent on Linux land, for the moment since I’m stuck on GNU/Linux I have to use socat with a named pipe.

                                                                                                                                  1. 4

                                                                                                                                    stunnel?

                                                                                                                                    1. 2

                                                                                                                                      That’s the one I needed, perhaps I was too tired late at night looking for proxy-only terms. Thank you for suggesting it, I will certainly try it whenever I get home, and see how it behaves.

                                                                                                                                  1. 9

                                                                                                                                    I wrote one, but haven’t deployed it anywhere.

                                                                                                                                    1. 1

                                                                                                                                      Oh cool I’ll have a look at it to see what I can steal from your implementation :)

                                                                                                                                    1. 30

                                                                                                                                      Other important political aspect of Material Design (and some other UI/web styles that are popular now) is “minimalism”. Your UI should have few buttons. User should have no choices. User should be consumer of content, not a producer. Having play and pause buttons is enough. User should have few choices how and what to consume — recommender system (“algorithmic timeline”, “AI”) should tell them what to consume. This rhetoric is repeated over and over in web and mobile dev blogs.

                                                                                                                                      Imagine graphics editor or DAW with “material design”. It’s just nearly impossible. It’s suitable only for scroll-feed consumption and “personal information sharing” applications.

                                                                                                                                      Also, it’s “mobile-first”, because Google controls mobile (80% market share or something like that). Some pages on Google itself (i.e. account settings) look on desktop like I’m viewing it on giant handset.

                                                                                                                                      P.S. compared with “hipster” modernist things of ~2010, which often were nice and “warm”, Material Design looks really creepy for me even when considering only visual appearance.

                                                                                                                                      1. 10

                                                                                                                                        A potentially interesting challenge: What does a design language for maker-first applications look like?

                                                                                                                                        1. 17

                                                                                                                                          Not sure if such design languages exist, but from what I’ve seen, I have feeling that every “industry” has its own conventions and guidelines, and everything is very inconsistent.

                                                                                                                                          • Word processors: lots of toolbar buttons (still lots of them now, but in “ribbons” which are just tabbed widgets). Use of ancient features like scroll lock key. Other types of apps usually have actions in menus or in searchable “run” dialogs, not toolbar button for each feature.
                                                                                                                                          • Graphics editors: narrow toolbars with very small buttons (popularized by both Adobe and Macromedia, I think). Various non-modal dialogs have widgets of nonstandard small size. Dark themes.
                                                                                                                                          • DAWs: lots of insane skeuomorphism! Everything should look like real synths and effects, with lots of knobs and skinning. Dark themes. Nonstandard widgets everywhere. Single program may have lots of multiple different styles of widgets (i.e. Reason, Fruity Loops).
                                                                                                                                          • 3D: complicated window splits, use of all 3 mouse buttons, also dark themes. Nonstandard widgets, again. UI have heritage from Silicon Graphics workstations and maybe Amiga.

                                                                                                                                          I thought UI guidelines for desktop systems (as opposed to cellphone systems) have lots of recommendations for such data editing programs, but seems that no, they mostly describe how to place standard widgets in dialogs. MacOS guidelines are based on programs that are included with MacOS, which are mostly for regular consumers or “casual office” use. Windows and Gnome guidelines even try to combine desktop and mobile into one thing.

                                                                                                                                          Most “editing” programs ignore these guidelines and have non-native look and feel (often the same look-and-feel on different OSes).

                                                                                                                                          1. 3

                                                                                                                                            3D: complicated window splits, use of all 3 mouse buttons, also dark themes. Nonstandard widgets, again. UI have heritage from Silicon Graphics workstations and maybe Amiga.

                                                                                                                                            Try Lisp machines. 3D was a strong market for Symbolics.

                                                                                                                                          2. 9

                                                                                                                                            I’d suggest–from time spent dealing with CAD, programming, and design tools–that the biggest thing is having common options right there, and not having overly spiffy UI. Ugly Java swing and MFC apps have shipped more content than pretty interfaces with notions of UX (notable exceptions tend to be music tools and DAW stuff, for reasons incomprehensible to me). A serious tool-user will learn their tooling and extend it if necessary if the tool is powerful enough.

                                                                                                                                            1. 0

                                                                                                                                              (notable exceptions tend to be music tools and DAW stuff, for reasons incomprehensible to me)

                                                                                                                                              Because artists demand an artsy-looking interface!

                                                                                                                                            2. 6

                                                                                                                                              We had a great post about two months back on pie menus. After that, my mind goes to how the Android app Podcast Addict does it: everything is configurable. You can change everything from the buttons it shows to the tabs it has to what happens when you double-click your headset mic. All the good maker applications I’ve used give me as much customization as possible.

                                                                                                                                              1. 2

                                                                                                                                                It’s identical to the material design guidelines but with a section on hotkeys, scripts, and macros.

                                                                                                                                              2. 5

                                                                                                                                                P.S. compared with “hipster” modernist things of ~2010

                                                                                                                                                What do you mean by this

                                                                                                                                                1. 4

                                                                                                                                                  Stuff like Bootstrap mentioned there, early Instagram, Github. Look-and-feels commonly associated with Silicon Valley startups (even today).

                                                                                                                                                  These things usually have the same intentions and sins mentioned in this article, but at least look not as cold-dead as Material Design.

                                                                                                                                                  1. 3

                                                                                                                                                    Isn’t this like… today? My understanding was: web apps got the material design feel, while landing pages and blogs got bootstrappy.

                                                                                                                                                    I may be totally misinterpreting what went on though

                                                                                                                                                  2. 3

                                                                                                                                                    Bootstrap lookalikes?