1. 3

    Ouch, capitalizing on name confusion? That’s not very cool. I wish uBlock origin would do a name change that would keep them from being confused with uBlock.

    1. 6

      The irony of course is that uB origin is the “real” product, while just “uBlock” is the alternative that nearly nobody uses.

      1. 3

        Wouldn’t the hijacker switch to the new name as well then?

        • uBlock OriginBlckr
        • uBlockBlckr Origin
        1. 1

          Yeah, but when changing the name uBlock Origin has the chance to also claim all other alternative names as well.

        2. 2

          I would not be surprised if that were to happen, now that the highjacker has ramped up his game. Bad losing such revered name.

        1. 14

          Hardware I couldn’t get working in Linux just works on a first try with OpenBSD.

          To be fair, this is more of an exception than a rule… I for my part always had something missing or incomplete holding me back from really being able to use OpenBSD on a desktop comfortably. Servers are of course an entirely different question. But giving a wrong impression like this one here, could end up deterring people who are interested, but insecure.

          1. 6

            I also thought hardware support was a known advantage of Linux due to its larger ecosystem, both in individual and corporate contributors. My impression was that OpenBSD would support less hardware but the drivers would be higher quality.

            1. 6

              I think he meant that for hardware that was supported by both, he had an easier time getting it working on openbsd.

              1. 1

                That makes more sense.

            2. 5

              my experience has been the opposite - I’ve found that the hardware I’ve tried mostly works out of the box for me with OpenBSD - where as Linux has often been a complete pain, especially with older hardware.

              I’ve had an X41 since new and it ran OpenBSD from day 1 - it initially dual-booted with windows. Some information can be found on my X41 page - you can see it’s old as it talks about configuring BlueTooth on my X41…

              1. 3

                Same story for me. I’ve tried OpenBSD on a bunch of old-ish ThinkPads in the past and have had mixed experiences with hardware support. While a lot of things can be made to work after installing firmware and if you pick well supported (often older) hardware to begin with, it’s nowhere near as out-of-the-box complete or well supported as most mainstream Linux distributions.

                1. 5

                  I’m running OpenBSD 6.3-current on a second-hand T430s, and the only problem I had was needing a wired connection when first installing 6.2 back in October 2017 because the OS wanted to pull the wifi firmware after first boot. After that, it’s been such a smooth experience that I wouldn’t consider going back to Linux for any use case beside building a Microsoft-free gaming rig.

                  1. 1

                    Out of curiously, what ThinkPad are you specifically talking about? Just last week I tried to install OpenBSD on my X41 (again) after the update from 6.2 to 6.3 had worked out so smoothly on my server, but I just couldn’t reestablish the comfortableness I enjoy with Void. I guess, I’d really have to force myself to set everything up properly, but I just don’t have the time (or the experience) for that.

                1. 3

                  htop is nice, until you got so used to it that you find a system without it frustrating and unintuitive.

                  IMO, top is to htom like vi to vim: feel free to use it, but keep in mind that it has more features that one needs. Knowing the basics the “simpler” tools isn’t that bad.

                  1. 1

                    One of the things I find myself doing most often with htop is viewing a filtered list of processes. I can sort of get the same with top with something like top -p $(pgrep -d ',' "foo|bar"), but that only shows processes that existed when you start the command, and doesn’t pick up new ones (it also doesn’t work on BSD where the -pid switch doesn’t take comma-delimited lists like Linux’s -p does).

                    I guess I’m just missing it, but how are we supposed to view a live-filtered list in top (same as <F4> in htop)?

                    1. 7

                      So as far as I see, this isn’t necessarily a bug with PGP “itself”, when used for signing git commits or used in combination with pass, but rather when sending encrypted emails. Or am I wrong?

                      1. 2

                        The first exploit, is definitely not PGP’s fault.

                        Unfortunately because I don’t know S/MIME, I can’t comment. But it seems like there is some inherent problem with the second attack affecting both it and PGP.

                        1. 2

                          CBC and CFB encryption modes use the previous blocks when encrypting new blocks. There are some weaknesses, and of course OpenPGP and S/MIME use them. That seems to be part of the problem. The other part is that stitching together multipart messages is something that email clients have no problem with doing, so shit HTML, can result in a query string that exfiltrates the content of the decrypted parts.

                          1. 2

                            OpenPGP mitigates those weaknesses with authenticated encryption (MDC). So it’s still only a problem if a broken MUA ignores decryption errors from gpg (or if the email in question is using a very old cipher. so, the attack may work if you auto-load remote content on encrypted emails from before 2000)

                            1. 1

                              OpenPGP mitigates those weaknesses with authenticated encryption (MDC). So it’s still only a problem if a broken MUA ignores decryption errors from gpg (or if the email in question is using a very old cipher. so, the attack may work if you auto-load remote content on encrypted emails from before 2000)

                      1. 16

                        In an effort to decrease my smartphone dependace, I’m starting a project to print out all relevant information I need on a receipt using a thermal printer. The goal is to use a raspberry pi to gather stuff like

                        • weather
                        • some headlines from the news
                        • unread news count
                        • astronomical data
                        • personal appointments
                        • public transport information
                        • todo notes
                        • … and bind this all together into a modular shell script+awk postprocessing system, for the printer. So that’s going to be what I will be working on until I buy the device.

                        Has anyone here have any experience with Adafruit’s thermal printers? Is there one should pay attention to, or some common mistakes one can easily avoid?

                        1. 3

                          I’ve not used Adafruit’s printer’s but I have used the things they appear to be based on. I found this quite handy.

                          1. 2

                            I’ve seen a few of these projects before - I can’t find the source for this one, but there are some photos on this account: https://twitter.com/paultag/status/966786313662935046

                          1. 27

                            What are the advantages to making it federated over the current setup?

                            1. 7

                              In terms of content and moderation, each instance would be kind of like a “view” over the aggregate data. If you want stricter moderation you could sign up for one instance over another. Each instance could also cater to a different crowd with different focuses, e.g. Linux vs. BSD vs. business-friendly non-technical vs. memes vs. …. Stories not fitting an instance could be blocked by the instance owner. Of course you could also get the catch-all instance where you see every type of story; it might feel like HN.

                              The current Lobsters has a very specific focus and culture, and also locked into a specific moderation style. Federating it would allow a system closer to Reddit and its subreddit system where each instance has more autonomy, yet the content from the federated instances would all be aggregated.

                              So of course such a system wouldn’t be a one-to-one replacement for Lobsters but a superset. Ideally an individual instance could be managed and moderated such that it would feel like the Lobsters of today.

                              1. 18

                                The current Lobsters has a very specific focus and culture, and also locked into a specific moderation style. Federating it would allow a system closer to Reddit and its subreddit system where each instance has more autonomy, yet the content from the federated instances would all be aggregated.

                                If federation results in a reddit-like site, I’d much rather that lobste.rs doesn’t federate. It’s a tech-news aggregator with comments, there’s no real benefit in splitting it up, especially at it’s current scale.

                                1. 6

                                  I get what you’re saying. I think OP framed the idea wrong. People come to Lobsters because they like Lobsters. The question is whom would the federated Lobsters benefit – it would mostly benefit people who aren’t already Lobsters users.

                                  It’s just that the Lobsters code base is open source and actively developed, and much simpler than Reddit’s old open source code. So it’s not unreasonable to want to build a federated version on top of Lobsters’ code rather than start somewhere else.

                                  1. 3

                                    it would mostly benefit people who aren’t already Lobsters users.

                                    Well that was my point. Any spammer or shiller can create and recreate reddit and hacker-news accounts, thereby decreasing the quality and the standard of the platform, and making moderation more difficult. This is exactly what the invite tree-concept prevents, which is quite the opposite of (free) federation.

                                    1. 8

                                      We do have one persistent fellow who created himself ~20 accounts to submit and upvote his SEO spam. He’s still nosing around trying to re-establish himself on Lobsters. I’m very glad not to be in an arms race with him trying to prevent him from abusing open signups.

                                      1. 1
                                2. 2

                                  Based on my experience in community management, including here on Lobsters, I do not believe it’s possible for an individual instance in a system like you describe to have a coherent culture which is different from the top-level culture in substantial ways, unless you’re okay with participants feeling constantly under siege. The top-level culture always propagates downward, and overriding it takes an enormous amount of resources and constant effort.

                                  1. 1

                                    Have you used Mastodon at all? If that’s used as a model, it seems each instance can have a distinct personality, as Mastodon instances do today. Contrast with traditional forums, and Reddit to some extent, which do more-or-less have a tree structure and where your concern definitely applies. With federation there doesn’t necessarily need to exist a top-down structure, even if that might be the easiest to architect (although I don’t know if it is the easiest).

                                    1. 1

                                      I have used Mastodon, but not enough to have a strong opinion on it. It’s been a challenge for me to pay enough attention to it to keep up with what’s happening; it’s kind of an all-or-nothing thing, and right now Twitter is still taking the attention that I would have to give to Mastodon.

                                3. 7

                                  Biggest argument in favor is probably for people that want to leech off of the quality submissions/culture here but who don’t want to actively participate in the community or follow its norms. That and the general meme today of “federated and decentralized is obviously better than the alternative”.

                                  Everybody wants the fruit of tilled gardens, but most people don’t want to put in the effort to actually do the work required to keep them running.

                                  The funny thing is that we’d probably just end up with a handful (N < 4) of lobster peers (after the novelty wears off), probably split along roughly ideological lines:

                                  • Lobsters for people that want a more “open” community (signups, etc.) and with heavier bias towards news and nerdbait
                                  • Lobsters for social-justice and progressive people
                                  • Lobsters for edgelords and people who complain about “social injustice”
                                  • Lobsters Classic, this site

                                  And sure, that’d scratch some itches, but it’d probably just result in fracturing the community unnecessarily and creating the requirement for careful monitoring of what gets shared between sites. As a staunch supporter of Lobsters Classic, though, I’m of course biased.

                                  1. 3

                                    So “federation” is what the cool kids are calling “forking” nowadays? Good to know ;)

                                  2. 2

                                    I’d be quite interested to see lobsters publish as ActivityPub/OStatus (so I could, for instance, use a mastodon account to follow users / tags / all stories). I don’t see any reason to import off-site activity; one of the key advantages of lobsters is that growth is managed carefully.

                                    1. 1

                                      Lobsters actually already does this with Twitter, so that seems both entirely straightforward to add and in line with existing functionality.

                                      (Note that I don’t use Twitter, so I can’t speak to how well that feed actually works.)

                                      1. 1

                                        The feeds already exist, just have to WebSub enable them…

                                      2. 1

                                        It won’t go away entirely if the one, special person who happens to own this system decides to make it go away for whatever reason of their own. It won’t die off if this specific instance gets sold or given to someone who can’t handle it and who runs it into the ground.

                                      1. 1

                                        rgba also works very nicely in combination with js. A few years ago I wrote a custom 404 page (I can’t use it now, since OpenBSD’s httpd doesn’t support them), that included a dialogue which changed it’s color 4 seconds, using this code:

                                        var r = Math.round(Math.random() * 255),
                                            g = Math.round(Math.random() * 255),
                                            b = Math.round(Math.random() * 255); 
                                        cont.background = "rgba(" + r +"," + g + "," + b + ",0.5)";
                                        cont.borderColor = "rgb(" + r +"," + g + "," + b + ")";
                                        cont.color = "rgb(" + (255 - g) +"," + (255 - b) + "," + (255 - r) + ")";
                                        

                                        Later on I found out that ints have a toString function that takes a base as an argument, so it isn’t really that incredible…

                                        1. 6

                                          an OStatus, ActivityPub-compliant lobste.rs

                                          Lobste.rs is a news aggregator: people post links and some people vote up or down, others comment. It’s code base is open source, so different instances can be set up, and run by different people. Federation is implicit in this step because of a certain something called “http” - just link one page from another, it’s not great, but it’s enough – OStatus, ActivityPub and everything is great, but don’t overhype it, otherwise it will just become another fad (eg. Blockchains, Containers, …).

                                          The only thing that federation can offer would be to allow comments to be cross posted in some way, but that would seriously undermine one of this sites great strengths, namely it’s quality and control over content.

                                          1. 3

                                            Just a small note: the script could be writen more consisley (and maybe in a more understandable way) by doing:

                                            /baz
                                            t
                                            s/baz/elephants
                                            wq
                                            

                                            Writing .t. is like running vi ./file instead of vi file in a shell. And ed allows you to write and quit in the same command, just like :wq does in vi.

                                            While I would have personally chosed emacs to do this task (using dired + keyboads marcos would be quite straightforward), I do agree that ed(1) is a quite helpfull and underestimated tool, especially when you embed it into a shell script with a here-doc. And despite apperances, it really isn’t that complicated, especially when you have a good man page (eg. OpenBSD’s) or have GNU Info + the ed manual installed, in case one needs to do something more esoteric.

                                            1. 5

                                              And despite apperances, it really isn’t that complicated

                                              UNIX V7 actually shipped interactive tutorials to learn ed(1) as part of learn. It’s unfortunate that there’s no convenient way to actually make use of those. You’d actually have to set up a PDP-11 emulator with V7 (though prebuilt images exist) and work with that, an environment where backspace doesn’t really work out of the box.

                                              1. 1

                                                I’m a pretty mediocre emacs user, and poking around at the manual, I wasn’t qutie sure how to use dired to apply a macro to multiple files. I guess if you had a dired buffer with just the files you wanted, you could write the macro to open the file, do the operation, return to the dired buffer, then go on. Is that the idea?

                                                1. 1

                                                  While I’m no expert, that would have been what I would was thinking about. And despite first appearances, I don’t even think there’s anything too wrong about it either. I guess if you really wanted to be “save” you could write a script that processes all buffers on a stack by applying a function or a marco within them, but I don’t see the practical advantage. Whenever I did “start a macro in dired, open a file, edit it, close, move to next line (manually or via C-s)”, I didn’t have any problems with the method.

                                              1. 1

                                                Nowadays, I mostly use Windows, but a while back, I was really deep into the Emacs ecosystem, to the point where I considered using it as my window manager. And it was wonderful! If only my operating system were as programmable and discoverable as my text editor.

                                                1. 1

                                                  What made you go to Windows? Was is job-related or something about Emacs itself?

                                                  1. 1

                                                    No, it’s for a bunch of reasons. Part of it is software that exists nowhere else, like modern PC games. Part of it is the fact that I have Windows 10 Education for free via university, meaning I can disable telemetry :-)

                                                    Emacs itself actually works great under the Windows Subsystem for Linux. The only problem I’ve encountered is that magit is slower than on Linux.

                                                1. 7

                                                  Eshell supports TRAMP! Which means you don’t have to put aside your powerful environment when switching to root or connecting to a remote host: all the power of your Emacs can be used anywhere, the shell included.

                                                  Just reading this isn’t believing it. Just recently, I remotely work on a LaTeX document I had to send someone, but I didn’t have pdflatex installed on my local system (I don’t use it too often, and my harddisk is 36GB). But using Emacs with Org-mode+LaTeX export + AucTeX (for debugging formulas)+eshell+TRAMP by connecting to it nearly felt like I was working on a local system. cp just worked without me noticing, PDFTools were able to open the file without me manually transferring it, etc.

                                                  The downside would then be that some commands behave weirdly. cat won’t close a pipe automatically if the file your reading doesn’t end with a new line, and this is necessary since eshell doesn’t support input redirection via <. But these are all things that can be fixed. Until then, M-x shell works well enough, be it without the level of integrated-ness that eshell can offer.

                                                  1. 7

                                                    These kinds of “Falsehood” articles often raise more questions than they (seem to) attempt answering. Take the last point for example

                                                    People have names.

                                                    What is this supposed to tell me? Why not at least link to some resource or source explaining the issue with suggestions for peoole who want to solve X-related problems. All I could conclude from this would to be just to forget about names beyond these just being metadata… or was that the point?

                                                    1. 12

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

                                                      Ishi, which means “man” in the Yana language, is an adopted name. The anthropologist Alfred Kroeber gave him this name because in the Yahi culture, tradition demanded that he not speak his own name until formally introduced by another Yahi.[1] When asked his name, he said: “I have none, because there were no people to name me,” meaning that there was no other Yahi to speak his name on his behalf.

                                                      1. 3

                                                        I think raising questions is precisely the goal of such articles. To make implicit assumptions explicit and verify them in the context of a particular project.

                                                      1. 3

                                                        Regarding YouTube, PeerTube looks like a very interesting alternative, since it neither puts too much pressure one one’s own server if one were to include a video in a popular article, but it also integrates well into platforms supporting the ActivityPub protocol (e.g. Mastodon, GNU Social, …)

                                                        1. 20

                                                          While I’m not going to argue against their findings per say, you do have to wonder if the drop off in contributors is in large part simply due to the completeness of the wiki. Not that Wikipedia EN actually encompasses all of human knowledge, but that 90% of the low hanging fruit has been plucked already. As time goes on contributions will only become more or more specialized. I don’t think this is a bad thing at all, and I believe actually mimics the growth of software projects.

                                                          1. 6

                                                            One should also keep in mind that the bigger and more mature a wiki becomes, contributing becomes a bit more difficult for newcomers, since they either might not know where or whether to add something or they might not be familiar enough with the user’s/admin’s etiquette, thus “scaring” them away from contributing.

                                                            1. 3

                                                              I was an editor during 2003–06 and the culture was just toxic but, amazingly, most of the articles (95–99 percent) were excellent, even then. If a topic wasn’t controversial, you’d find something decent. The product itself, I think, has even gotten better. I don’t see a slight decline in the number of editors as necessarily a bad thing, although it will have to bring in new talent.

                                                              I do think Wikipedia was easier to get into, in 2003, probably because the standard to which one had to write an article to make it fit in was lower. These days, articles tend to have pictures with captions, footnotes, and a lot of other adornments that make the pages better, no doubt, but possibly make the editing process more intimidating. That said, I hope the toxic hostility I encountered in the mid-2000s has abated.

                                                              1. 7

                                                                This might be unpopular, but I find articles on controversial topics to be high-quality and well-sourced due to the editing wars those articles endure: If you can’t edit a paragraph into a sloppy form because people are actively monitoring that article to ensure that old fights aren’t starting back up, the paragraphs are going to be pretty tight; similarly, they’re not going to be one-sided because both sides will know the system well enough to start a resolution process when well-sourced material is being kept out.

                                                                1. 2

                                                                  I don’t edit in particularly controversial areas, but I haven’t found the bar for contributing lately to be all that high. The main way it’s gotten higher is that sources aren’t optional anymore. In the early days it was common to just write a bunch of text without necessarily citing anything, with the expectation that it could be properly referenced later if necessary (more of a classic wiki style of working, like how things were done on the old C2 wiki). Now, if you’re creating a new article, it’s expected you’ll cite some decent sources for it. But like one or two decent sources and one paragraph of text is fine. I create a lot of short biographies of historical figures, and short articles on archaeological sites, and nobody has ever complained about them as far as I remember.

                                                                  1. 2

                                                                    I got interested in unusual architectures in GCC tree and wrote some articles with sources. They were swiftly deleted for “not being notable”.

                                                                    1. 2

                                                                      The notability requirement has always seemed bonkers to me… that made sense in a paper encyclopedia, but wikipedia can have as many articles as it wants…

                                                                      1. 3

                                                                        Notability is still useful because you have to draw a line somewhere, lest Wikipedia becomes an indiscriminate collection of information.

                                                                        1. 1

                                                                          To me, having an upstream GCC port automatically makes an architecture notable (there are only 49 of them at the moment), but Guardians of Wikipedia (TM) seem to disagree.

                                                                        2. 2

                                                                          It’s probably to block self-promotion. A lot of people used to write articles about themselves.

                                                                          In reflection, now that I am borderline “notable”, the absolute last thing I would want is a Wikipedia article about me. There’s likely to be one after my book comes out (mid-2019) and I’m dreading the thought.

                                                                          1. 2

                                                                            For currently living people, the standards have been tightened up (especially around sourcing) partly because a lot of people share that view: they’d rather have no article about them than a bad one. The subject still doesn’t get a veto over the article, but there are some interests to balance there. I mean any bad article is bad in some way just because it spreads disinformation. But a bad article about a specific person who’s currently alive, especially if they aren’t even a major public figure, is bad in a more personal way in that it can harm the reputation, job prospects, etc. of that person directly.

                                                                  2. 1

                                                                    Sort of like Stack Overflow.

                                                                  1. 11

                                                                    CGI is beautiful and perfect and it is sad how neglected it is nowadays.

                                                                    1. 2

                                                                      CGI is pretty awesome, and I’ve always wanted to find a nice way of using Python with it

                                                                      Unfortunately there’s a bit of an awkwardness when trying to pair CGI with something like Django. Having to set up the environment over and over. Also there’s the basic issues of URL routing being coupled with files…

                                                                      I’m sure there’s some nice style of dealing with this, but I haven’t found it yet.

                                                                      1. 1

                                                                        Yeah I actually rather wonder if many of the advantages that caused folks to go the in-process like mod_perl, PHP etc have been rendered pointless by modern processor and IO.

                                                                        1. 5

                                                                          I think a lot of those weren’t even CGI per se, but just that perl and php (and other interpreted languages) have nasty startup costs. I often do traditional CGI programs in the natively-compiled D language and while it doesn’t win any benchmarks, it is also good enough for a LOT of things - and very reliable, thanks to process isolation.

                                                                          1. 2

                                                                            Why would you start a CGI script on request when you can just launch a whole container now? /s :P

                                                                            1. 1

                                                                              I’ve also been playing around with Go’s net/http/cgi package, which is quite nice, since it uses the same backend as the regular http, as well as the fcgi package. One can even bundle them together into one binary, that chooses what to done depending on the file name (example for a mini lobste.rs clone I wrote a while ago).

                                                                              And from my experience, which wasn’t quite the worst, it was quite enough. I sometimes have the feeling that modern web frameworks have created a fear of these more simple and often sufficient solutions (for smaller to mid-size usecases), to promote their own projects - unrightfully.

                                                                              1. 1

                                                                                Yeah, the library I wrote for D also uses the same interface for cgi, fcgi, scgi, and http (both pre-fork processes to provide some segfault isolation as well as simple multiplexing, and one-thread-per-connection primarily for compatibility on non-Linux systems where fork doesn’t work the same way) implementations, so swapping out is often as simple as a recompile.

                                                                                I don’t even think CGI is really dead, but rather just slightly extended or wrapped by everyone individually. Python’s WSGI and Ruby’s rack show their cgi heritage and compatibility, etc.

                                                                        1. 2

                                                                          I would like to see Radix- or Bucket sort, since these two make the least sense to me, but would probably sound rather interesting.

                                                                          Although Bogo Sort would certainly not be too boring either…

                                                                          1. 5

                                                                            While I did like the first part of the talk, I was a bit disappointed with generalisation towards the end. While it would be great if matters of state and society could be simply expressed, and I am not saying they can’t be simplified or that doing this is bad, it’s often simply not possible, since these things aren’t designed or axiomatically derived. I tend to see this attitude quite frequently among engineering and programming circles, to dismiss the actual complexity of society, and for examine say “e-democracy will fix it” (one I personally find particularly distasteful).

                                                                            The same point can be brought up with physics, where it’s even more obvious that a language “made” to communicate between everyday people about everyday activities and ideas, won’t be fit to describe the true nature of a universe so foreign to our everyday experience.

                                                                            Thus, as people who work with computers, we shouldn’t want to reject at worst, constantly reduce everything to fit it into a program at best, but accept, understand and help where possible with these real complexities of the world

                                                                            1. 2

                                                                              Less-code/faster/correct/durable are real metrics: they’re extremely well-defined and have very good business value.

                                                                              But who here can’t see value in”readability” and “safety”? These are less well-defined, and at best, a function of how crap (average/most) programmers are at their job. They’re absolutely social, but they’re not a good way to value our work and ourselves since as more programmers become programmers, the mean (average) programmer simply gets worse.

                                                                              Physics doesn’t have this problem, because the number of people who can tell the universe what to do, is much less than the number of people who can tell a computer what to do.

                                                                            1. 8

                                                                              Postpostscript: embarrassingly, I completely forgot about Big-O notation and friends (despite mentioning it in the article!) as a case where = does not mean equality! f(n) = O(log n) is a statement about upper bounds, not equality! Thanks to @lreyzin for keeping me honest.

                                                                              Interesting enough we were tought that it is absolutely wrong to use equality in this case, and one should instead use the “element of” symbol. The only reason it’s used is because “people understand what is meant”.

                                                                              1. 3

                                                                                That’s what I was taught also, but that’s a later attempt at notation cleanup, and Landau’s original notation (still widely used) used the equals instead. Here’s how Tourlakis’s Theory of Computation book explains the notation (p. 339):

                                                                                Given g : ℕ→ℕ, O(g(n)) is the set of all f : ℕ→ℕ such that, for some constant C, we have f(n)Cg(n) a.e. The notation f(n) = O(g(n)), introduced by the number-theorist E. Landau, means f(n)O(g(n)) and is called big-O notation. Expressions in big-O notation are read from left to right. In particular, O(h(n)) = O(g(n)) is abuse of notation for O(h(n))O(g(n)).

                                                                                As far as I can tell, the standard textbooks primarily use the equals notation rather than the set notation, e.g. Sipser’s Introduction to the Theory of Computation (I believe the most popular textbook of its kind) does so exclusively.

                                                                              1. 1

                                                                                I’ve thought about doing this a few times, but from what I read, especially for more intensive use-cases, this functional style is just slower, without having a real advantage, beside syntactic sugar. In fact, older systems might not even support it, which is especially inconvenient when maps, filters, and reduces (despite their simplicity and prettiness) are used in critical components of the software.

                                                                                1. 1

                                                                                  I’ve thought about doing this a few times, but from what I read, especially for more intensive use-cases, this functional style is just slower, without having a real advantage, beside syntactic sugar.

                                                                                  What did you read? According to both tests I ran now and every JS performance website I could find, forEach and for-loops perform the same in modern Javascript VMs.

                                                                                  In fact, older systems might not even support it, which is especially inconvenient when maps, filters, and reduces (despite their simplicity and prettiness) are used in critical components of the software.

                                                                                  As @flaviocopes points out, map / filter / reduce are all in ES5. What level are compatibility are we talking about here?

                                                                                1. 16

                                                                                  Unless I am misunderstanding “Brutalism”, shouldn’t a “brutalist web site” be something like a no- or minimal-css web page? The examples the article gives, while pretty in their own right, don’t appear (to me) to go counter to much of everyday web-design one tends to see.

                                                                                  1. 12

                                                                                    That’s my understanding, too. My touchstones for web Brutalism are this motherfucking website and this other motherfucker.

                                                                                    1. 6

                                                                                      There’s another school that considers the Instragram iOS app as an example of brutalism. Other examples:

                                                                                      Brutalist websites
                                                                                      Brutalism in UX

                                                                                      I consider the two sites that you linked to more an example of design minimalism (only using as much as you need), as opposed to the minimalism of information that seems to typify “modern” design today.

                                                                                      I’d also be curious if y’all would consider something like my wiki as an example of brutalism

                                                                                      1. 3

                                                                                        I’d say it’s pretty brutalist. It probably wasn’t designed or implemented with accessibility in mind. :)

                                                                                      2. 2

                                                                                        Those are just trivial documents. It would be like calling a lost pet poster an example of brutalist graphic design!

                                                                                      3. 9

                                                                                        I would imagine that to draw a useful analog to architecture, we have to imagine what it is we’re saving or optimizing for under a digital brutalism (in the same way that architectural brutalism is cheaper, easier, faster, less specialized, in addition to its aesthetic impact). As a programmer, I would imagine therefore that digital brutalism would have to at least partially be motivated by a desire for simplicity in construction: avoiding a reliance external resources that might not be available, avoiding a reliance on technologies or techniques that require specialization, avoiding techniques that require complexity in order to be correct (in favor of technologies that, while maybe less rich, can be correct more simply), and optimizing resource usage for browser speed and compatibility.

                                                                                        I think it’s perfectly fair to associate the above motivations with a particular aesthetic if they happen to be accompanied by one (after all, when I think about architectural brutalism I don’t think about the equipment, specialized or un-, that was used to construct it). But to say anything useful or interesting with term, it can’t just be the way they look.

                                                                                        1. 4

                                                                                          But to say anything useful or interesting with term, it can’t just be the way they look.

                                                                                          Isn’t look (legibility) in print/web design fundamental? If we’re talking about a brutalist web design, it’s certainly not brutalist because the author used tables for layout, though that might contribute to a look that has hard edges (defining sections/compartments, etc)–an element often associated with brutalism.

                                                                                          1. 1

                                                                                            Legibility and aesthetic are not the same, though. As I said above, it’s not that aesthetics are irrelevant; but using modern whizbang web design and tech, and just replacing your full-screen white-people-typing-together background video with graphics and video of a different aesthetic, is just another flavor of the status quo.

                                                                                            1. 2

                                                                                              Legibility and aesthetic are not the same, though.

                                                                                              I agree with this.

                                                                                              and just replacing your full-screen white-people-typing-together background video with graphics and video of a different aesthetic

                                                                                              What I think you’re saying is that Brutalism is a philosophy that can’t simply be replicated by copying an aesthetic. Is that right?

                                                                                              1. 1

                                                                                                Sure, that’s fair.

                                                                                        2. 8

                                                                                          Wikipedia has a nice passage which I think can be applied in spirit to websites:

                                                                                          Brutalist buildings are usually formed with repeated modular elements forming masses representing specific functional zones, distinctly articulated and grouped together into a unified whole. Concrete is used for its raw and unpretentious honesty, contrasting dramatically with the highly refined and ornamented buildings constructed in the elite Beaux-Arts style. Surfaces of cast concrete are made to reveal the basic nature of its construction, revealing the texture of the wooden planks used for the in-situ casting forms. Brutalist building materials also include brick, glass, steel, rough-hewn stone, and gabions. Conversely, not all buildings exhibiting an exposed concrete exterior can be considered Brutalist, and may belong to one of a range of architectural styles including Constructivism, International Style, Expressionism, Postmodernism, and Deconstructivism.

                                                                                          Another common theme in Brutalist designs is the exposure of the building’s functions—ranging from their structure and services to their human use—in the exterior of the building.

                                                                                          So don’t do elaborate styling, expose how the site was built, and organize the site into functional zones in ways visible to the user. A thoughtful version of non-CSS, non-Javascript, image-light design might be the best Web “version” of Brutalism, with visual grouping being the only organization. Getting people to give up CSS and Javascript might be a bit much, but in terms of basic construction, HTML is the equivalent of concrete (the “raw structural members” of the Web site) and Brutalism is very much about not hiding or ornamenting that.

                                                                                          1. 3

                                                                                            Getting people to give up CSS and Javascript might be a bit much, but in terms of basic construction, HTML is the equivalent of concrete (the “raw structural members” of the Web site) and Brutalism is very much about not hiding or ornamenting that.

                                                                                            I have no trouble giving up JavaScript. I’d prefer to use mostly semantic HTML5, with just enough CSS to make the text more readable (because browser defaults are trash).

                                                                                            1. 2

                                                                                              Great excerpt and follow up. I think you can keep CSS so long as what it’s doing is (a) visible in source behind the scenes, maybe even removable and (b) keeps the fundamental structure of the site or page. It might even give it the structure.

                                                                                            2. 4

                                                                                              Maybe GeoCities was brutalist? http://oneterabyteofkilobyteage.tumblr.com/

                                                                                              1. 9

                                                                                                The Classic Geocities, with all of its animated GIFs and background images and using images as dividers, is too ornamented to be Brutalist. It’s best described as Vernacular, which Wikipedia describes as:

                                                                                                Vernacular architecture is an architectural style that is designed based on local needs, availability of construction materials and reflecting local traditions. At least originally, vernacular architecture did not use formally-schooled architects, but relied on the design skills and tradition of local builders. However, since the late 19th century many professional architects have worked in this style.

                                                                                                The Geocities Vernacular was definitely the “architecture from people who weren’t architects” Vernacular.

                                                                                                In fact, the Terabyte Of The Kilobyte Age describes Geocities as Vernacular:

                                                                                                http://blog.geocities.institute/archives/5983

                                                                                                More to the point, Vernacular design is bottom-up unplanned design, with no large-scale goals in mind, whereas Brutalism is top-down planned design, and capable of designing in the large.

                                                                                                1. 1

                                                                                                  I always thought of it as rococo (in the sense that it’s maximalist in the distribution of small decorative features), but I don’t really have a strong background in the history of architecture.

                                                                                              2. 1

                                                                                                That would be in line with architectural brutalism, but the term came out of critiques of architectural brutalism (which basically came down to “it’s ugly because it breaks convention in non-decorative ways”). “Web brut” has been used as an insult for longer than its current (3-4 year) rehabilitation.

                                                                                                I think both senses are useful for different reasons. Web brutalism in the sense of avoiding bloated web standards that necessitate bloated browsers is important for usability and for minimizing waste, while web brutalism in the sense of rejecting faux-minimalist aesthetics in favor of direct & straightforward mapping of form to function is important as a UX concern. (I’ve argued for the latter in https://lobste.rs/s/cyopoi/against_ui_standardization and the former in https://hackernoon.com/on-the-web-size-matters-e52ac0f5fdbe and https://hackernoon.com/an-alternate-web-design-style-guide-1aae8d0b5df5)

                                                                                                1. 1

                                                                                                  Regarding your hackernoon article where you say

                                                                                                  Use only the following tags: a, b, body, br, center, h1, head, i, li, ol, p, table, th, title, td, tr, ul. All other tags are unnecessary distractions. If, for some reason, you must include images, the img and align tags are also suitable.

                                                                                                  what would your thoughts be on directly hostilng markdown, probably without literal html, instead of the “more powerful” full-html standards and deviations? Maybe protocols like Gopher could serve as a base for this?

                                                                                                  1. 1

                                                                                                    I consider hosting markdown marginally more reasonable than hosting html, but to be honest I don’t think we, as writers, should be controlling how the text is formatted except in the rare cases when the formatting is truly necessary and part of the point (like, if we’re writing concrete poetry or something).

                                                                                                    In other words, something like gophermaps-as-document-format seems ideal: we get jump links, but literally nothing else.

                                                                                                    The alternate web design style guide, despite apparently looking pretty radical to a lot of web devs, was very much a compromise – in the vein of “oh, if we MUST have web standards at all, at least ditch everything other than HTML 1.0!”