Threads for igorclark

  1. 3

    Hence never ever signing in to anything except IMAP, except in a private/incognito window when I absolutely have to, definitely never ever in a G-phone-app, and in fact only ever using incognito private windows for anything, ever.

    1. 4

      If you always use incognito mode, you might be easier to fingerprint because most people don’t do that and now you stand out.

      1. 2

        Gaaah. Yeah, I guess. I mean, I’ll be easy to fingerprint as being the same as the default settings of anyone with the same computers, right? But I take the point. Still, it “feels” better this way, from an experience-of-the-internet kind of perspective.

        1. 2


          Let’s say it would be better for everyone if everyone would do that. Which I think firefox is helping doing by being more restrictive??

          1. 2

            well, for the record, at least it won’t be enough information to distinguish you from me, since I also do that

            (that’s intended as a humorous attempt at solidarity. the reality of course is that, with Google’s resources, it’s easy to fingerprint regardless. still, at least sites with fewer resources at their disposal will have some trouble)

            1. 1

              2 is a good start ;-)

      1. 2

        I’m absolutely not “strongly opposed to any graphical elements or mouse interactions in the terminal on principle”. I think mouses for selection and pointing are great. I just don’t see what the fuss is in the examples they give, or why learning a few key bindings to navigate back and forth through a command line entry needs to be such a big deal.

        1. 2

          Been building a prototype of a mapping-based web app with PostGIS and PostgREST. They really are two of the best open-source tools I’ve used: smooth, elegant, mature, fast. Not to mention PostgreSQL, great performance and everything’s just there out of the box - even been experimenting with PL/Python, which makes some things a lot easier. Also using QGIS for PoCing views and UI ideas, which has improved enormously in terms of stability and performance since I last used it (about 5 years ago). Quite the winning combo, having fun with it.

          1. 16

            As little as I generally appreciate DHH’s apparent general approach, I think this is a good post explaining good decision-making; and as much as I appreciate the reality-of-the-cost-saving discussion responses, the real value for me in the post is in the internet-societal-structural point at the end about how we’ve (those of us who host and run services) all been complicit in getting the centralised internet that we’ve got simply by virtue of prioritising comparative complexity and price over value and worth for the world. I’ve never much liked Basecamp, or what I’ve seen of Hey, or the various seemingly self-aggrandising posts coming out of 37 Signals over time, but: making value calls, explaining them clearly and putting your money where your mouth is like this is something that I rate pretty highly. Good on you, DHH.

            1. 8

              There is some irony that they don’t support anything other than completely moving your mail to them, one could say centralizing..

            1. 13

              About the only thing I disagreed with from skimming the article was that state machines are underrated. Automata theory is one of the core parts of a computer science degree and is used everywhere. Implementing FSMs is so common in software development that there are design patterns for it and even embedded DSLs in a load of languages. Protocol descriptions are almost always written as FSMs (an abbreviation that I always read as Flying Spaghettini Monster). Theorem provers and software verification use them extensively.

              So I read the initial claim in the same way that I’d read ‘conditional execution is underrated’. You don’t need it to justify the rest of the points.

              1. 25

                They might be widely used in theory, but they aren’t used enough in practice. I can think of a bunch of problems I encountered in my career that could have been solved much easier with state machines than the solutions I had to come up with simply because I did not know that state machines could be used that way.

                Out of all the posts that came out during the “wc but faster” fad, the one that stood out to me the most is how you can beat most of the implementations with predictable performance using a state machine. There is a lot more problems that can, and should be solved with state machines, but currently aren’t because they mostly stay in theory.

                1. 6

                  I’d been following the “beating wc” thing pretty closely but haven’t seen the state machine solution before. Thanks for sharing!

                  1. 4

                    Yeah, I think in practice FSMs are under-utilized. They are all over the place in theory, but in industry, not so much.

                    1. 2

                      I’m really surprised to hear that. I can’t think of a single non-trivial project that I’ve worked on that hasn’t had a bunch of explicit state machines in it.

                      1. 4

                        This is my experience as well.
                        Most nontrivial user workflows I have encountered tend to have either an explicit state machine, or a close-enough re-implementation of a state machine, built by an autodidact who found their way towards the basic ideas without knowing them by name.

                        However, I can see how that might not be the norm.
                        The difference between the experiences of you and I, and @ignaloidas, might well have been pure chance: Did the person(s) who stood up the project initially recognize the state machine at the center of it all, or did they not have the awareness of them to do so? I have also been the one to introduce several junior and mid-level engineers to the concept. It is possible that some of their past projects would have benefited from this tool that they didn’t have.

                        1. 9

                          My experience is the exact opposite: in startupcanistan, you usually are running with cheap and comparatively inexperienced developers that don’t have the CS background to articulate these sorts of problems.

                          (Exception: game development, at least back in the 00s, had FSMs as like a super-common idiom for NPC AI. Webshits lack that background.)

                          What I’ve seen happen is that you end up with a bunch of semi-articulated FSMs in the codebase (“let’s add a column to track if an order is being shipped, created, fulfilled, etc.”). Somebody eventually comes along and says “okay folks this is an FSM maybe we should make sure that’s driven by events and transitions”, and then either you get some astronaut who starts babbling about event sourcing and everything goes off the rails or you end up not doing it because of other spaghetti code that screws with the state directly (and which is too expensive to fix at the moment).

                          I really cannot stress how big a gap there is between the vulgar software development that actually pays rent and the “basic” academic progress folks are more familiar with. It’s incredibly frustrating to straddle the two worlds and interact with people (some on this very site!) that seem to have little direct experience of the great unwashed masses and seemingly little willingness to make allowances for their existence.

                          1. 13


                            What’s with this term? Is it yet more of the tiresome sneering at people working on web systems that we see so much of in sites like Lobters or HN? Can we not just be nice?

                            1. 8

                              I see two aspects of this. One is dismissing the developers. The other is dismissing the environment. Dismissing people is obviously not nice, but the environment has a number of glaring issues that is holding everyone back.

                              The most significant aspect, I think, is that front end web stuff systematically sits on a huge pile of tech: HTML, CSS, and JavaScript are so far removed from the CPU that performance problems are very different, and I’m pretty sure much less predictable, than in native development. Hence the first thing: people working in front end dev won’t have the opportunity to learn what performance really is.

                              Backend is arguably different, but not that much. PHP, Ruby (on Rails), Node… all those are too far removed from the real capabilities of the hardware to really be perceived. But at least you may work with Go, Rust, or C++. There are more opportunities to learn about what the hardware is capable of.

                              Personally I hate the web, and want nothing to do with it beyond simple static web sites. It’s easy to fall into the trap of extending that hate to the developpers themselves, but in all likelyhood they just do what they can like everyone else.

                              1. 5

                                The other is dismissing the environment

                                Culture is why I quit Ruby on Rails after less than two years.

                                Ruby divorced from Rails is a great language. Rails, on the other hand often felt like playing in DHH’s conceptual sandbox, and I was surrounded by people who were telling me that my honed instincts for modularizing, reducing coupling, and taming complexity was wrong because it “wasn’t the Rails way” and “the web is different.” Of course, the web is really just a platform, and it isn’t magically different from any other platforms.

                                Those thought-terminating cliches were tribal markers that were elevated into legitimate engineering advice. And several Rails-based startups improvised solutions to conceptually scaling their Rails monolith, some even at the time.

                                The culture at large never had the ability to say, “we might have been wrong,” or even, “there is no one size fits all approach to architecture.” Such intellectual discontinuity is not healthy to continued growth as an engineer.

                                1. 3

                                  “wasn’t the Rails way”

                                  I had the same experience; trying to shoe-horn modularization en encapsulation onto Rails is a non-starter because it doesn’t fit the framework. When I was programming in Rails, everything I tried to do just hurt, and I later realised that’s because I was fighting the design of Rails every step of the way.

                                  So there’s some truth to the pushback that it “isn’t the Rails way” because not doing things the Rails way and still trying to use Rails is setting yourself up for a world of hurt. Unfortunately.

                              2. 6

                                I have done software engineering on web sites and applications for more than a decade (or management thereof). I sometimes refer to myself as “nothing but a simple webshit” or “just a webshit, doing my shit on the web”, as a self-deprecating term.
                                When doing so, I use it to acknowledge the chaos of the environment (as @Loup-Vaillant describes), and to not act too proud of the variety of work. It has its complexities, for sure, but it is often not as professionally rigorous as some other varieties of software engineering.

                                I am sure that @friendlysock can speak for themselves, but being that they work (or have worked?) in that environment, I suspect that they are doing similar.

                                That said, I understand how it is a pejorative in the wrong sentence or in the wrong context.

                                1. 1

                                  What’s with this term?

                                  I believe I picked it up from n-gate, the most important thought leader/memento mori in our industry.

                                  Is it yet more of the tiresome sneering at people working on web systems that we see so much of in sites like Lobters or HN?

                                  Speaking as one of those people who has been working on web systems for many years (and who has done non web system work as well), I feel perfectly comfortable and justified in using that term. I myself have been, am, and–for the right price–will continue to be a webshit.

                                2. 8

                                  A few years ago, after nearly 20 years as a professional software engineer, I got my first job for a webshit startup. I was amazed at how different it was from all my previous jobs. I think I was the only person in the whole company with a CS degree: all the other developers had done a few months in a “coding bootcamp” at most. But I was also one of the least knowledgeable employees when it came to product development: I can write assembly, compilers and network stacks but I had never heard of an Opportunity Solution Tree before.

                                  It’s like there are two (at least) very different software industries. You can be an experienced expert in one of them without ever encountering the other one at all.

                                  1. 1

                                    I found that moving to a browser where my code would immediately just render neat things on screen was just such a nice change from all of the stuff I had to do in graphics and UI programming to get a tenth of the results. I found Javascript quite liberating compared to C and Java.

                                    At the same time, I knew in the background how inefficient all of it was and the more I was exposed to “best practices” the fewer clothes I found the emperor to be wearing. Every family is unhappy in its own ways. :(

                                    1. 2

                                      I think the modern web (for some value of “modern”) is probably a very nice environment for GUI programming. Something like Chrome’s “Developer tools” turns the web browser into a pretty amazing, graphical, REPL-like, interactive dev tool. I suck at GUI development, sadly, but I was impressed by what I saw when I worked with some really talented front-end developers.

                                      In general, the webshit startup world seems to be less about technology itself and more about using webshit tech to quickly add business value. When you can just push to master and a few minutes later your code is running in production, it really changes how you work. Product testing, for example, is qualitatively different when your product is a website compared to hardware: if it takes months to build and release a prototype, a product development iteration looks very different. It’s also very different when a bug just means that a website breaks and it can be fixed by redeploying in minutes, rather than having serious safety concerns and requiring a physical hardware recall.

                                      This has knock-on effects on the whole business but I particularly enjoyed being part of a small product team for my day-to-day work. Every day, I would work closely with teammates who might be other software developers, or UX designers, or product managers. In the past, my team would be software engineers, hardware engineers, and maybe mechanical engineers. It was a nice change.

                                      However, I found that I only really had autonomy to the extent that I had some control over the product development. I worked for one startup that did this really well, where it really did feel like we were all one product team: we might have different specialisms - some were designers, some were programmers - but we were all one team and we all had both the responsibility and the ability to control how the product was developed. But I also worked in a couple of places where someone more important than the code monkeys had worked out what needed doing and just drip fed us tasks to do. That sucked.

                                      Without the product/business side of things to challenge me and offer me a sense of autonomy, I found webshit technology pretty dull. It’s all just ETL or CRUD APIs, both of which are pretty tedious. In contrast, in the non-webshit-startup parts of the software industry, I could find my challenges and a sense of autonomy in the technology itself: I’d be given a hard technical problem to solve and could go away and research it, design a solution, and implement it, usually over a few months at least.

                                      I wouldn’t say either option is better or worse. They’re just different. I’m glad I’ve had the chance to do both.

                            2. 4

                              Agreed. I had a colleague once who got so excited by the concept of state machines, he built an elaborate one himself from scratch for a web app he was assigned to build, not realizing the framework he was using already had two state machines in the form of a router and state container (which is admittedly not a state machine on its own but can be implemented as one). It was only after he finished the project that he realized his state machine, like an inflamed appendix, was destructively superfluous.

                              1. 3

                                I love “destructively superfluous” - it’s the most pithily self-contained description I’ve heard of the crawling chaos it so neatly encapsulates. Keeping that, thanks ;-)

                              2. 2

                                I’m curious if you have a sense of what the lynch pin of seeing problems this way is? I have a cursory understanding of what state machines are and an incrementally-growing list of things they are or can be used for, but I’ve yet to have the realization that a state machine is a good fit while I’m in the trenches working on something.

                                My gut says that I need to intentionally apply the concepts a few times, but maybe that would be a waste of time if this is something where focused study and synthesis are more helpful?

                                1. 2

                                  The first time I learned about state machines was in an undergrad algorithms course, and our prof emphasized how good a fit they were for a lot of text processing problems. He described them as a super-tool, secret weapon, or somesuch verbiage. That was spot on.

                                  FSMs are applicable to all kinds of input processing, not just text. For example, I was once tasked to write a monitor for virtual machines. The whole thing was basically a big state machine and some functions for reading data from various OS sources.

                                  Here’s another example from my undergrad days. I was taking a computer architecture course, and our first assignment was to trace the execution of a mock simplified CPU, given a set of assembly instructions. You were supposed to do it by hand. But I realized I could make a computer do my homework for me. The fetch-execute cycle is basically a state machine. I wrote a little emulator and wrote some lex to turn the text assembly code to machine code for my emulator. I didn’t even need yacc for that. I probably spent more time than I would have on the actual assignment, but getting a computer to do tedious stuff for me was more exciting.

                                  Spend some time playing around with FSMs for simple text processing, and you will probably start to get a good idea of the shape of problems they can solve.

                                  1. 2

                                    In most places, the problem is expressed as a state machine (parsing, protocol models) and so implementing anything else requires more thought. Just translating the problem into code naturally produces a FSM. I guess part of my bias comes from the kinds of large codebases I’ve worked on:

                                    • Compilers have a load of state machines, starting at tokenisation. Language runtimes are full of them for things like object lifetimes, GC phases, and so on.
                                    • OS kernels are made almost entirely of state machines. Network protocols, socket, file descriptors, file and IPC mechanisms, and virtual memory are all basically state machines. A lot of these have to conform to a spec that is written as a state machine.
                                    • GUI frameworks are full of state machines for things like drag and drop protocols.
                                    • Hardware projects are basically all either state machines or pipelines. Hardware description languages typically have very nice tooling for producing state machines because they’re a huge part of the logic.

                                    Many of the hints that are not simple FSMs in these projects are push-down automata (stacks of state machines).

                                    One of the reasons that I liked Objective-C (and other Smalltalk-derived languages) is that they provide a really nice pattern for implementing state machines. You define a class with one subclass per state and one selector per message and the swizzle the isa pointer on each state transition, so each subclass just has the methods implemented for the valid transitions from that state and you get an exception if you try to perform an invalid transition (or your superclass implements default behaviours that transition to an invalid state and do some error recovery).

                                    You can do this in languages like C++ with a delegate object and Boost also has some nice libraries that let you implement states with one class per state and static checks that impossible transitions can’t occur.

                                    C programmers typically implement FSMs with an explicit state enum and a load of switch statements but pretty much every other language I’ve used (systems languages, application languages and hardware languages) either have nice design patterns or libraries with nice DSLs for implementing them.

                                1. 2

                                  Posting this now because it’s one of those insanely useful things that I only found out about recently. If you use bz2 archives, you can use tar‘s -I / --use-compress-program options to specify pbzip2 and of course it’ll use all your CPU cores to do the (de)compression work. I had cause to do this with a double-digit-GB archive on a 128-core VM recently and in keeping with the docs’ claim that it achieves a “near-linear speedup” with SMP, the difference in that case was pretty spectacular.

                                  1. 1

                                    One obvious reason that people still choose React but which (AFAICT) isn’t being mentioned is exactly that it is so popular and widespread. Choosing React may well cause some of the undoubted problems in the article, but it also means that as long as people writing sites or apps with it conform to some basic and fairly well-established conventions, it’s going to be significantly easier to hire someone to replace them when they inevitably move off to use some other cool new framework than it would be if they’d used some cool new framework that no-one else yet knew and which they chose before it was cool so that they could show how ahead-of-cool they were. On top of that, simply sticking to those basic conventions is going to mean that the people they leave behind aren’t going to be cursing them after they’ve gone for having left a bunch of unmaintainable code relying on some now-shuttered off-stream alternative.

                                    1. 4

                                      But currently, it is much much too hard to install

                                      I completely agree, for desktop uses. Even for server uses, it’s taken a long time to get Azure images with ZFS support, so I ended up using Poudriere to build my own (which works well… as long as you already have a FreeBSD machine to start from).

                                      There used to be an ‘instant desktop’ metapackage. I’d love to have a few of these things around but even that doesn’t really help with some of the bits of core config. There was discussion many years ago about making the core system configs all use libUCL. That would be fantastic because libUCL supports configurations that have overrides and doing priority-based merging. This would make it trivial to have things like the xdm / gdm / kdm / whatever ports automatically install a file that got merged with /etc/ttys to add this as a console configuration.

                                      1. 3

                                        I came across several mentions of Poudriere in my efforts last night, but nothing clearly tells me what it is.

                                        This is a part of the culture of xBSD, I think.

                                        Operating systems are cultures as much as software: they are way of doing things, with their own customs and traditions and so on. When I talk to xBSD people about things it can’t do, or doesn’t do well, they are often baffled. I have expectations, ones I think are reasonable; but they are not xBSD expectations.

                                        The Red Hat world is very much the same; for RH people, it is the world, everything else is a rounding error and insignificant. This causes a strange perspective, and wow do they get angry when it’s pointed out to them.

                                        Debian, equally.

                                        Ubuntu was a breath of fresh air: all it assumed was basic PC competence, not even much understanding of Windows. It wasn’t the first – Caldera managed the same; Corel LinuxOS attempted it but didn’t get the momentum.

                                        When writing docs, and help pages and installation-program screens, accept and acknowledge that you’re a minority, niche player, and explain clearly, in non-your-OS specific terms, what it needs and what it does.

                                        The comments on my Reg articles on NetBSD and FreeBSD are hilarious examples of this blinkered attitude. “What does he mean there was no command-line editing? Of course there is!”

                                        Then the slightly more perceptive read on, and go “oh! He was trying to use cursor keys. How strange. No, that doesn’t work, of course not.”

                                        I feel that these teams need a bit of a kick up the arse, TBH, to be forced to see and register and acknowledge their context and that others don’t share it.

                                        This could be a contender, but not with its current attitude.

                                        1. 10

                                          I came across several mentions of Poudriere in my efforts last night, but nothing clearly tells me what it is.

                                          Did you look in The FreeBSD Handbook, which says:

                                          Poudriere is a BSD-licensed utility for creating and testing FreeBSD packages. It uses FreeBSD jails to set up isolated compilation environments. These jails can be used to build packages for versions of FreeBSD that are different from the system on which it is installed, and also to build packages for i386 if the host is an amd64 system. Once the packages are built, they are in a layout identical to the official mirrors. These packages are usable by pkg(8) and other package management tools.

                                          That’s it. It’s a tool that builds packages. It can also, in recent versions, build the FreeBSD source tree and construct disk images, though that support is fairly new and is marked experimental. The focus of this text is a bit weird (not sure why you care it’s BSD-licensed or if you should be expected to know what a jail is, though it does explain what it’s using a jail for, so maybe you don’t need to know what it is) but it seems to be clearly telling you what it is.

                                          The FreeBSD Handbook is written as the introduction to FreeBSD. By the time you get to caring about Poudriere, you’ve reached a point where you’re the kind of person who wants to build custom packages themselves. I don’t think it’s unreasonable that the documentation for that is somewhat unapproachable for someone who has very little computer knowledge because we’re definitely doing something wrong if a novice user ever needs to run Poudriere.

                                          The installer, in contrast, is still pretty rubbish and it sounds like the setup experience for some modern WiFi cards and GPUs is awful. That’s definitely something that the project should improve. The fact that you had to find answers to these questions in the forums, rather than in the handbook, in particular is a problem.

                                          On the other hand, the last time I ran the installer was via a serial console on an Arm Morello development system and it worked very well there, without needing me to do anything other than stick a USB disk in the machine and reboot. I have no idea how I’d install Ubuntu (or Windows) on a headless machine with only a USB serial device as a console.

                                          1. 4

                                            Aha, got it. Thank you.

                                            TBH, no, my primary go-to source of info when testing OSes and distros is Google. Good docs are rare – I speak as a former professional writer of such docs – and in general, if the docs are good, people will mention them and link to them and so they show up on Google. This is true of SUSE SLE and RHEL, for instance – although RH being RH, you generally get a message to log in to your account, and if it’s a free account, you don’t get to read it.

                                            So I Googled poudriere when you mentioned it, and I got:

                                   <- it’s something to do with building packages?

                                   <- it’s a testing tool of some kind?

                                   <- it’s, er, something for people building lots of custom servers?

                                            I have no need to build packages, and I consider it a small win that the Ports system is now an optional install and I never needed to go near it. I mentioned, I think, that I got a complete OS up and running without compiling anything at all, which is, IMHO, how it should be.

                                            This upset the NetBSD folk when I reviewed it recently. I am unrepentant. If you can’t find it on Google, then effectively, it is hidden, and that’s no use to me or to most people.

                                            BTW, I’m not disagreeing with you in any way here. I think all your points are solid; I’m just trying to explain why no, I didn’t read the handbook. I submit that in general, nobody does RTFM – and that’s why there’s a universally-recognised invocation to do so.

                                            1. 2

                                              I wonder if this is part of the “cultural baggage” of FreeBSD, or sort of a community effect. FreeBSD is very much from an age when offline installs were common, there was no such thing as Google, and documentation was generally a prerequisite of distributing software. That FreeBSD has a handbook was pretty much the first thing you found out about FreeBSD and you usually had access to it one way or another (I think the first release with a handbook was one of the 2.x releases?). I haven’t really used FreeBSD in almost twenty years now, except for a brief stint around 9.0 and the occasional platform-specific bugfix, and if I need to configure something or whatever, my first reflex is still to check the handbook, rather than to Google it. (FWIW, because SEO and content marketing are such big things today, the results are often better, too ¯\_(ツ)_/¯)

                                              1. 1

                                                That’s an interesting point.

                                                TBH, yes, decades ago, that is how I did it, too. On a wired connection, with if possible a 2nd computer to hand with the docs open, or of course paper docs.

                                                But it’s 2022 now. Things have changed. Also, my jobs tends to require me to produce 2 stories a day if possible, and if one of those stories involves evaluating a new OS, that means I have a maximum of about 4 hours to get it, install it, try it, and then write about it. Since the writing about it phase is half that, it doesn’t get long.

                                                I don’t often manage to produce that many, but yes, it’s done in a rush. That is life in online publishing, I fear. But the flipside of the coin is that if someone is casually dabbling and trying out a new OS in 2022, they are not going to sit down and read hundreds of pages of docs first. To quote a wise woman, “ain’t NOBODY got time for that.”

                                                So I aspire to be representative of the experience that someone smart, motivated and curious might have if they had an evening to spare and wanted to try something outside of Ubuntu.

                                              2. 2

                                                I agree. If you are kind of people who don’t read the handbook, you probably shouldn’t use FreeBSD.

                                                1. 1

                                                  I also run FreeBSD on a Thinkpad and didn’t understand why you found it so awkward to install while reading your article. However, this comment makes sense: I’ve been using FreeBSD for years and I know to look in the Handbook and manual pages, and sometimes the Wiki, because they’re well written. However, I can imagine someone using the installer and a search engine might struggle.

                                                  I suppose the installer could point out relevant documentation, but there’s a chance people would ignore it, and much of the installer runs offline.

                                                  Also, I use an ethernet cable when running the installer, perhaps because I struggled running it over Wifi in the past.

                                              3. 5

                                                I feel that these teams need a bit of a kick up the arse, TBH, to be forced to see and register and acknowledge their context and that others don’t share it.

                                                I’d argue the same goes for you.

                                                This could be a contender, but not with its current attitude.

                                                Contender to what?

                                                1. 1

                                                  FreeBSD is a rival to basically every hardcore Linux distro out there. It needs to compete with those, because that’s where the mainstream is now.

                                                  Ubuntu has gone from a weird little outsider to the dominant Linux distro in 18 years because of a laser-like focus on being easy, simple, quick, asking as few questions as possible and delivering a good experience that can rival Windows, but for free.

                                                  That has won it a tonne of mindshare. If someone’s first experience of Linux when they were a teenager playing with an old PC was Ubuntu, then 1% of those people will be IT managers or directors a decade or so later, and if there’s a choice of free OSes, they’ll go for the one they remember.

                                                  That’s how a distro that set out to be an easy desktop found itself unexpectedly the leading server distro on cloud servers, and is now somewhat clumsily pivoting to embrace that.

                                                  Which has in turn left an opportunity for Google, a Hydra-headed company with little direction but a lot of R&D budget, to make an easier OS than Ubuntu, dodge the horrid fiasco of UEFI and the legacy mess of BIOS, and put out a cheap, dead easy, basic home computer that your grandma can turn on and get online.

                                                  And now it’s outselling Apple, and has many hundreds of millions of users, while Ubuntu doesn’t really know how many users it has but guesses at 20 million or so.

                                                  The year of Linux on the desktop came and went in about 2019 or 2020 and the Linux world didn’t even notice.

                                                  This is the market: free xNix-like OSes for x86 PCs, slowly moving to embrace Arm64 PCs too. That is the sea in which FreeBSD is swimming. OpenBSD is in a smaller pool, NetBSD is in a smaller pond still, and Dragonfly isn’t even on the radar AFAICS. This isn’t their problem, unless they choose to make it theirs.

                                                2. 3

                                                  This could be a contender, but not with its current attitude.

                                                  Does it want to be a contender?

                                                  1. 1

                                                    No users means no money for developers. No developers means you die.

                                                    1. 2

                                                      What’s that got to do with being “a contender”? There are many operating systems that have a healthy user base and a secure team of developers that aren’t contending to be user-friendly home desktop systems like Ubuntu, macOS, or Windows.

                                                  2. 2

                                                    From a mainstream-usage-courting perspective that does of course make sense. But surely there’s room in the world for people in niches doing what they like doing and not having to explain themselves to anyone else? I mean, if they tried to insist that everyone else outside their niches use their niche stuff, then sure, they’d need to make it externally comprehensible (or at least intelligible/interrogable) - but if they’re quite happily carrying on existing in splendid isolation in their niches, doing things their way, taking advantage of the niche adaptations they’ve evolved and talking to other niche-dwellers about their niche activities in ways understood only by fellow denizens who’ve spent time understanding how things work in such niches, then why shouldn’t they? Why should they be forced to recognise anything?

                                                    Relatedly, why does everything seem to have a to be “a contender”? What if it just doesn’t care about contending?

                                                    1. 1

                                                      See my response above.

                                                1. 4

                                                  I am intrigued yet confused by the idea of a compiler with fronds.

                                                  1. 3

                                                    It basically builds an AST into a heavily-weighted tree structure with extra balancing at the leaf nodes.

                                                    1. 1

                                                      I’ve read this a few times & a bit about Cake but I think I’m missing something. What does this mean & how does it relate to Cake?

                                                      1. 1

                                                        “frond” is obviously a typo of “front” here, but it is also a rather difficult English word meaning “large leaf”, see also

                                                        1. 1

                                                          Yep, just a joke, playing on the word. No great insight, just meant to be light-hearted.

                                                  1. 8

                                                    Free email providers, mining supposedly-private data and causing problems by accident? Color me shocked.

                                                    Surprised we don’t see more of this, tbqh.

                                                    1. 5

                                                      What I find shocking is that people are still shocked by this.

                                                      We apparently have to do more to educate the masses that email is 1) not secure, and 2) not private. Especially when google, microsoft, etc are involved. Small email providers may ignore user email contents, but the big players actively use it to game ad clicks, and are thus heavily incentivized to not ignore mail contents. In any case, my previous two points still apply, regardless of the provider.

                                                      1. 1

                                                        I wonder if some sort of crackdown on e-mail hosting providers would work. Like, if Google, MS and all those others had to ditch their mail services and have them operate independantly, like fastmail or something.

                                                        1. 4

                                                          I’ve wondered that and came to the conclusion that they would just go away, because what’s the point for any of them to run financially-free services if they don’t pay their way in data? I mean, I wouldn’t mind that, and email might be actually federated without capricious black holes dragging everything inside them, but … doesn’t seem too likely.

                                                    1. 19

                                                      I wonder why growth is trending down (not that that’s necessarily a bad thing).

                                                      I’ve made some good friends on here, and when I post my own content, I’ve always had great interactions/feedback too!

                                                      1. 46

                                                        I love and have been a member for 8 years. The comments ahead are just my personal experience but maybe there are others who feel the same way. At some point (I think about 2 years ago) topics about tech culture and society started to be removed by moderators and I started to participate less and less. Which is insane since the reason started was HN banned the creator and HN was doing some funny moderation. (fun history:, One reason I loved was it’s careful use of moderation, instead relying on having a solid group of users vetted by others in the community.

                                                        So, this stronger moderation against topics related to culture and society that intersect with tech made me lose interest. Given all the crazy things happening in the world today, to believe that tech is isolated from the world is naive and ultimately creates a bubble culture. What’s the point of loving technology if it can’t be applied to real world problems? So over time I started to lose some interest in content on as it seemed less relevant to my life. Maybe the content is changing again? I don’t know as I haven’t really participated as much.

                                                        The community here is strong and I hope for another strong 10 years. I just hope people learn that tech is useless independent of helping people. Code that doesn’t run, that doesn’t solve problems, is just a statue. Beautiful to look at and appreciate, but not much else.

                                                        1. 58

                                                          I feel the opposite. The American culture wars are exhausting.

                                                          I am glad this place is peaceful.

                                                          1. 21

                                                            I find the culture war exhausting too, but I also feel it’s mostly fake. That it’s mostly manufactured by the media and big voices on social media. Notice I didn’t say anything about any culture war but that’s where you went. Isn’t that weird? Something is wrong with our discourse. I’m talking about software solving the real problems we have in society (hungry, homeless, global warming, ecological collapse, energy, prison system, education, war, inequality, gun violence). The culture war is manufactured, in my opinion (puts on tin foil hat), to distract us from the real problems.

                                                            Computers are literally man’s greatest invention. They can save us from meaningless labor and enhance our minds. They aren’t a bicycle for the mind, but a rocket ship. My worry is we are wasting it. We shouldn’t take computers for granted. It won’t take much to forget how to make them.

                                                            1. 18

                                                              I’m talking about software solving the real problems we have in society (hungry, homeless, global warming, ecological collapse, energy, prison system, education, war, inequality, gun violence).

                                                              Do we need software to fix any of those problems? Aside from global warming / ecological collapse at least? We (as a society) have the wealth to fix these issues, it is mostly the lack of consensus / political will to do so. And the main thing standing in the way are certain wealthy actors and interest groups. They are interested in their own profits first and foremost, and control of society via marginalization or outright oppression of minorities and destruction of democratic systems and discourse.

                                                              We can use software on the margins to try to educate people, and show how they are being manipulated. But it doesn’t seem like enough.

                                                              1. 3

                                                                Like a virus, computers are now in everything. You eat today? Computers were involved. It’s not so much that they can fix any of those problems (I would argue they accelerate some like global warming. Google is proud they increases waste and energy use through all of society, it’s that if they aren’t part of the solution, then they are part of the problem. So we either fix it, or get rid of their usage. Since they are such a powerful tool for productivity, it seems to me we can use them to accelerate solutions vs accelerate problems.

                                                                1. 2

                                                                  Like a virus, computers are now in everything.

                                                                  Then all the more reason for having a place where we can discuss the science, art and craft of technology away from the divisiveness that’s tearing our society apart makes sense in my view.

                                                                  I’m not suggesting that this is a monastery, but monasteries existed to keep the barbarians out and knowledge in when the dark ages fell. I see communities like this serving a similar purpose.

                                                                  1. 2

                                                                    Except it was in the monasteries where truth died. The “dark ages” were nothing like you described. I suggest reading Debt the first 5000 years by David Graeber. Eratothsenes figured out the circumference of the earth and over a 1000 years later we had Christopher Columbus who thought the world was much smaller. Yajnavalkya postulated the earth revolved around the sun yet the Monasteries promoted a earth as the center vision.

                                                                    We need a functioning civilization to keep knowledge being passed through one generation to the next. Now that we are facing threats to organized human life at an unprecedented scale, there will be no ‘safe place’ to teach people how to build computers without civilization wide support. Computers are just too complex.

                                                                    Also imagine the rest of society thinking “Wow, we have these amazing tools called computers that can solve our problems, but the folks who design and build them, the elite who use these tools, want nothing to do with our problems. Want to ignore them because they are too disturbing and annoying to the experts”.

                                                                    1. 2

                                                                      Good on you for fighting the good fight. I’ll just be over here hacking around with old computers and trying to stay healthy long enough to retire and enjoy life a bit :)

                                                                      1. 2

                                                                        You evoke an interesting thought and bring up a good point. There are millions of programmers. But most programmers have little say in what they actually build as they work for large companies. That’s because, while programmers are paid well relative to the rest of society, they often own very little of their work.

                                                                        The responsibility I am talking about falls on those that do have a say in what is built. Many of the leaders are former programmers themselves. But even among programmers there is a class divide. Those that don’t have a say in what is built don’t have the responsibility I speak of. Maybe we need more people owning their work.

                                                              2. 9

                                                                The culture war is manufactured. It is also a real, serious problem. One of the reasons there are so many wars is that they can be started unilaterally.

                                                                To the point at hand, though, do you think discussion about “culture and society” on solves any of those problems? I associate these kinds of topic with’ turning into a little hackernews, in which the same handful of political arguments are rehashed and people are generally horrible to each other. I don’t think the tech industry at large is going to discover, for instance, the concept of professional ethics through comment threads here.

                                                                I think the reason we can be civilised here is that we find technology neat; it’s a thing we have in common, and the reddit-style discussions work reasonably well for that. When we debate bigger things the medium shows its weaknesses. For one thing, while a lot of the strictly computery posts exist in some sort of niche, articles about society have much more direct political implications, and tend to elicit some sort of opinion for pretty much everyone. It’s also much harder to stay calm when discussing something that matters.

                                                                I’ve argued, often and animatedly, that political content shouldn’t be on I have several reasons for this, and I hope I’ve explained one of them, but just as important is… politics. I think being exposed to the sort of environment I see on political threads here makes people worse, or at least marginalises those who are most inclined to be nice. In theory diversity of opinion might expose people to new ideas, but in practice people pretty much always go home thinking exactly what they thought yesterday, only more so. I’d be all in favour of your position if I’d ever seen any evidence that debating important things leads to people becoming more conscientious about those things.

                                                                I appreciate this is a bit of a ramble, but one last thing: why would we expect anything else? You say that believing tech is isolated from the world creates a bubble culture. But is a bubble in its purest form already. Most tech workers and enthusiasts, especially in America, exist in a relatively narrow social stratum; it’s hard to find a demographic distinction in which the field doesn’t exhibit strong bias. I have my doubts about the comment section free-for-all as a vehicle for social change, but even if it could work, we’d need to be more connected to the rest of society in order to have any chance of deciding what technology’s place in it ought to be.

                                                                1. 9

                                                                  You raise a lot of good issues here. But I feel maybe I wasn’t clear enough. I don’t want random discussions about culture and politics. Twitter already exists. I care about the intersection of technology and society. I think those discussions are important to have and Lobsters used to have them. Then those seemed to have gone away and I lost some interest.

                                                                  We know that people in technology are usually horrible at social issues, partly because we get people who prefer certainty. The certainty of the machine. I was one of those people. We have great comfort talking about frameworks, programming languages, and reverse engineering old hardware. We like our safe space.

                                                                  I have my doubts about the comment section free-for-all as a vehicle for social change, but even if it could work, we’d need to be more connected to the rest of society in order to have any chance of deciding what technology’s place in it ought to be.

                                                                  I don’t have this view of lobsters as a vehicle for social change. It’s not. Social change will come either way and we can talk about how technology is involved, or we can ignore and treat lobsters as a sort of comfort food. That’s totally acceptable. It’s just less interesting for me and that’s why I responded to ‘why has growth stalled’ comment.

                                                                2. 1

                                                                  Notice I didn’t say anything about any culture war but that’s where you went. Isn’t that weird?

                                                                  Seems very telling to me and makes the user come off as a troll. Somehow having concern = culture war? Or caring about a topic = virtue signaling? There’s no authenticity to users like that. They can’t imagine a world where people are caring or concerned about things bigger than themselves.

                                                                3. 6

                                                                  I had to filter out the culture tag for the sake of my sanity.

                                                                  As much as I love reading this site, there’s something about the influx of certain topics and the style of conversation etc that - for the lack of a better word - triggers me. I have to restrain myself from getting involved, yet I know nothing good can follow from participating.

                                                                  Few of us are in a position to really affect change, and online discussion (esp. heated) is a net-negative substitute.

                                                                  This is probably still true for culture stories, but I don’t wanna go look in that dark corner.

                                                                  Everything else I love, thank you and keep it up for many decades!

                                                                  1. 3

                                                                    I too find the forever culture war exhausting, and treat tech and, by extension lobsters, as a kind of haven where I can think about fun, inspiring things I might want to build or ideas I can grow from.

                                                                    There is a time and a place for everything, and there are a bazillion fora for discussing that stuff. IMO it doesn’t need to be here.

                                                                  2. 30

                                                                    As someone who also subscribes to the (glibly described as) “everything is politics” philosophy, I am still for removing a lot of the “culture” articles. The main reason is that these discussions are already happening elsewhere (for example HN). Society existing everywhere doesn’t mean that we have to discuss society everywhere.

                                                                    The secondary reason is that there is a general idea for what is on topic, and that is “can this make you a better programmer”. I think that makes some stuff about community management (like CoC discussions for prog languages) on topic, but loads of things that end up getting removed fall far from this goal.

                                                                    A tertiary reason (something that happens in rant-tagged articles as well): when those articles don’t get pulled down, we end up with the same 5 people yelling at each other saying the exact same things over and over again. There is a clear vibe from some people to want to pull discussions into the same stump speech.

                                                                    I do think that when there isn’t a forced segue, discussion about society still happens in the comments section. And it stays reasoned. But at least personally, I don’t need every social space to turn into debate club. Lobsters isn’t the only place on the internet.

                                                                    1. 15

                                                                      I’m a relative newcomer but I appreciate the fact that discussions tend to be limited to things that have some form of objective evaluation criteria. When someone presents a technical project, I can evaluate it against my requirements. I can have a discussion about why my requirements are different from yours and whether my requirements are not actually solving my underlying problem. I almost certainly have a load of biases around why my requirements ended up being that shape but they’re generally not things that I have particularly strong beliefs about and, if I do, those beliefs are very unlikely to be core to my self image.

                                                                      When we discuss politics or culture then you and I may have very different ideas about an ideal society looks like and have very strong beliefs derived from things that are at the core of our self identity about that shape. If those happen to line up, then we can have a rational discussion about whether a particular policy advances our society towards that goal (though, often, we don’t really have enough data to make a good assessment). If we have conflicting goals for society then discussing how to reconcile them in a public forum is hard and maintaining an inclusive culture when those discussions are happening is even harder.

                                                                      I enjoy discussing politics, even with folks that disagree with me, but I don’t enjoy doing it on the Internet because it’s incredibly easy for things to be quoted out of context or misinterpreted. I’m glad that this is a place where we can put those discussions on one side and engage on other issues.

                                                                      1. 6

                                                                        I am torn on this matter, not the least because the one time when I broke my “no politics here” it quickly went sideways and not all in a good way, and it left a bit of a sour taste in my mouth, mostly because, justified or not, I really didn’t want to have a flamewar in an otherwise really civil place.

                                                                        So on the one hand I think it’s useful, but also healthy and important for a community to be able to discuss things that its members consider important, even if they’re not exactly the reason why we’re all here.

                                                                        This is probably a holdover of mine from the old days, when any forum, no matter what its primary topic was, also had a “General Discussion” section. A good chunk of it was flamewar but to me, a non-native English speaker at the end of the world, technologically speaking, those things were eye-opening in many ways. Even the things I actively disagreed with. They were useful for me in tech, not just in general. Without them, I’d be largely ignorant to the social, political and economical trends that shape the tech world of tomorrow, and I’d be entirely lost in this sea of information. I also think they were healthy: in my experience, tech communities that do not engage in these exercises and cannot vent on non-technical topics will eventually vent on technical topics, and will eventually cluster around narrow niches with categorical and harsh adepts who produce a lot of judgement but don’t really move the boundary of technology any further. Once they devolve into that, communities aren’t too fun to hang out in anymore, and get an expiration date, too.

                                                                        Usefulness and healthiness aside, I really wish I could talk about a whole bunch of non-tech things with many of you here. There are people here whose work I admire and I’m sure the original approaches that makes their software so good has also produced a lot of other ideas worth hearing.

                                                                        But on the other hand the single-section, tag-based, up/down-vote structure is really inadequate for this. Even if the front-page doesn’t promote controversy, the sheer volume of material that can be tagged culture is overwhelming, it’s a category that’s ripe for self-promotion, and it’s a field that’s really inviting for bike shedding while waiting for shit to compile. Unless it’s confined to a separate section, it tends to push out technical content which, in turn, tends to push out technical people.

                                                                        The section-less structure also means that these things inevitably make it to the front page. On old phpBB boards you could often have civil discussions in the Linux section while also shitposting in the General Discussion section, as long as general awfulness was dealt with via the ban hammer. But on these aren’t separate sections and shitposting inevitably spreads.

                                                                        It’s also a very wide umbrella. culture is equally well applied to an article about the political views of early demosceners – which, even though it’s technically politics, I’d really be super curious to read about – and to an employer branding piece about how a company contributes to Rust projects which, after years of exposure to corporate hiring machines, makes me want to puke halfway through the title.

                                                                        Honestly, the only tag I really dislike is practices, probably because I got a bad case of burnout from over-practice-ising a while back and eww. Ultimately, I left culture unfiltered, but I don’t think we need more of it.

                                                                        1. 3

                                                                          At some point (I think about 2 years ago) topics about tech culture and society started to be removed by moderators

                                                                          I wonder why this was put into place if the discussions were fine. (I only joined a little over a year ago, so I can’t really speak much on this except that I’m curious as to why these posts started being removed.)

                                                                          1. 12

                                                                            It’s still a great community. I wouldn’t have buyer’s remorse. It just changed over time to something less interesting to me. Part of it is the new moderation that came with new management. They wanted to narrow the focus of the site. I can’t say that’s why growth started trending downwards, but that downward trend coincides with what I felt. So take it with a grain of salt. I was just highlighting something that might have had an impact.

                                                                            1. 4

                                                                              Where else do you get your dose of interesting discussions?

                                                                              100% I feel the same way too but it’s only made me take time off to reconsider my approach to the website. At the end of the day you either decide to work with it or not.

                                                                              I’ve begun to vet my posts via lobsters IRC first. Maybe lobsters needs an initial “post filter”? i.e. if a post is thumbs-uped by a member of certain activity and age, it gets listed?

                                                                              1. 3

                                                                                It’s strange but I am finding the best conversations I have are with individuals in private settings. Nice to know the IRC is active. Maybe I should try to hop in. Thanks!

                                                                              2. 3

                                                                                It absolutely did for me. I stopped posting after my last submission was removed for “not being technical.”

                                                                                That alone would have been OK, but the criteria for “technical” were (and remain) vague. And then, when I posted an honest question asking to understand them and the culture tag, titled “what is the culture tag for?”, the moderator proceeded to rename it to “why was my post removed?.”

                                                                                Moderating’s a thankless job, but all the same, that felt disingenuous to me. So, I don’t submit things here anymore. It’s a bummer because for years, I feel like this place used to support the readership you mentioned:

                                                                                Usefulness and healthiness aside, I really wish I could talk about a whole bunch of non-tech things with many of you here. There are people here whose work I admire and I’m sure the original approaches that makes their software so good has also produced a lot of other ideas worth hearing.

                                                                              3. 5

                                                                                The discussions were emphatically not fine, hence the purging efforts by both moderators and the community.

                                                                                1. 5

                                                                                  Popcorn tech.

                                                                                  You know what’s sad. I tried submitting topics that were incredibly technical. Bleeding edge tech. Nothing, no traction. For example, topics dealing with quantum computing, cryptography, etc.

                                                                                  It’s almost like people don’t want to talk about technology specifically. They want pop-technology. or popcorn tech. Compare the level of technical discussion here to say, lambda-the-ultimate (is that still around?).

                                                                                  But it’s better here than HN and reddit! So that’s a win.

                                                                                  1. 11

                                                                                    It’s almost like people don’t want to talk about technology specifically. They want pop-technology. or popcorn tech. Compare the level of technical discussion here to say, lambda-the-ultimate (is that still around?).

                                                                                    I think people want to talk about things that they can meaningfully engage with. I’m interested in reading about quantum computing, for example, but I have literally nothing useful to contribute on the subject. You seem to have invited quite a few folks to join, perhaps if you reached out to some physicists then you’d find the audience contained more people who were able to meaningfully contribute on those subjects.

                                                                                    I’m happy to engage on a range of deeply technical topics here (language design, compiler internals, OS / hypervisor internals, CPU architecture and microarchitecture, capability systems, and so on), and I will on most of those subjects. Quite a few of them have very few comments because there are not very many folks here that share that interest. That doesn’t mean that they’re shallow, it just means that they’re experts in different things to me. I’ve had a few comments where I’ve either been the only person commenting or one of a small set, yet had some very high moderation totals (so other members are happy that I posted, even if they don’t feel that they have anything to add), or where other folks have let me know that they’re grateful for the explanation (often folks who are not members here, but still read the site). Similarly, there have been other threads where I’ve read everything, clicked the up-vote button on some fantastic explanations and clarification, and yet had nothing worthwhile to add myself.

                                                                                    1. 6

                                                                                      I’d like to take this opportunity to thank you for your clear comments regarding the dark recesses of C/C++. Even though it is far from my area of expertise you usually manage to make me feel I understand them better.

                                                                                      1. 1

                                                                                        Agree wholeheartedly with these conclusions. Also, your posts are reliably interesting, always extremely informed, carefully considered and well worth reading. Thanks!

                                                                                    2. 2

                                                                                      Ah, the parent made it seem like the discussions were fine (or didn’t really have a stance on that, I guess I was assuming that).

                                                                                  2. 2

                                                                                    I did propose a while back that such posts be on topic with their own tag. The few responses to the proposal were overwhelmingly negative. I think it’s fair to say there is not a pent up hunger for that sort of thing to be on topic here.

                                                                                  3. 6

                                                                                    I think the quality is going down. Many submissions are borderline spam, or yet another basic howto on something, that if you were interested could find on your favorite search engine in seconds. The comment sections are more and more frequently covered by “me too” style comments (including “I love this”, “Great Work!” which is nice of them, but also just doesn’t add anything, you could have just upvoted), or disagreements, with little to no merit and I more often read comments from people that didn’t go beyond the headline. And on the technical side there’s quite a bit of objectively wrong information in both articles and comments.

                                                                                    And then with more people I think there simply ends up a lot more bikeshedding, which I assume is pretty natural as websites grow. And with style sites in particular the most visible things will be meritless “motherhood statements” that people can easily agree with and are hard to criticize.

                                                                                    Don’t get me wrong, luckily none of these is really dominant, it’s just that it seems to be increasing and can be off-putting when there’s randomly multiple cases of this.

                                                                                    Comparing it to HN I actually switched to, because that was a bit of a problem, but comparing it nowadays, they are on equal footing, even though groups of people, interests, etc. are somewhat different.

                                                                                    I also wonder how Drew DeVault’s and ban of links to his blog affected things, but I don’t want to open that topic.

                                                                                    Anyways, with that said I am really happy about the “Saves” I’ve collected over the years. A lot of them also for the comment sections. So thanks to everyone for that! :)

                                                                                    1. 6

                                                                                      I broadly agree with your concerns. Some observations (from my viewpoint):

                                                                                      • DDV and others made merry use of us as a marketing channel, which is shitty behavior. We still have some folks who do the same thing, and one of the side-effects is that open lively debate is the first casualty when hucksters just want a clean, attractive billboard for their wares. (See also similar patterns on other UGC platforms who bow to advertisers).
                                                                                      • We do seem to have a lot of “motherhood”/“underpants” threads. I’m unsure if it is significantly worse than a few years ago, but it has been a thing I have noticed.
                                                                                      • “me too” comments are cancer, but there’s also the other orange-site disease of subthreads just totally derailing into detailed discussions of things that have little to do with the original article. Both are bad.
                                                                                      • A lot of our internal mechanisms for dealing with stuff have gone away over the years; the community has become increasingly hostile to anyone pointing out decorum violations, our moderation is effectively just pushcx, and community-led attempts to fix process issues (as evidenced by the meta tag) seems to have dropped off. I think that is the true existential threat to Lobsters right now.
                                                                                      1. 1

                                                                                        the other orange-site disease of subthreads just totally derailing into detailed discussions of things that have little to do with the original article

                                                                                        A back-of-the-envelope sketch of a solution to that issue would be an increasing time limit imposed on replying to a comment, based on its depth in a thread.

                                                                                        Tweaks are needed, maybe if you’re a first time commenter in a thread you don’t get a time limit on the first reply.

                                                                                        I think this would address the case where 2 people just really really want to be right and keep replying to each other.

                                                                                      2. 7

                                                                                        comparing [ and Hacker News] nowadays, they are on equal footing, even though groups of people, interests, etc. are somewhat different.

                                                                                        I vehemently disagree.

                                                                                        This is a listing of the top scored and commented submissions so far this year, from HN, and /r/programming on Reddit.


                                                                                        I count 8 submissions from the 25 top scored submissions on HN that are on topic for The rest are (US) political or business news. From the 25 top commented, none are on topic for this site.

                                                                                        Not having to daily wade through that dreck (especially without the help of tags) is what makes this place so much better than HN.

                                                                                        1. 2

                                                                                          As mentioned that is why I switched to HN. I don’t mean to make this a competition though. It’s just something I’ve noticed and wanted to share these things as a form of constructive criticism. I think does really good, good enough for me to spend time writing comments after all. ;)

                                                                                          I assume it also very much depends on the time (weekend, weekdays, American, European daytime, …), as well as how you use the websites.

                                                                                          Also I am not sure if overall top scores are the best measurements. I go there on a regular basis and care more about what I see then rather then the highest overall scores over the course of many months. Getting very high scores is a mixture of topics being low entry level enough, posting them at the right time, and various other factors.

                                                                                          Also my view obviously is very subjective in that I remembered HN worse when I opened it up a couple of times lately, when I just was a bit disappointed on the front page of So there’s obviously a bit of bias there.

                                                                                          Looking at the top ones I think actually gives all these sites less reputation than they deserve, with clearly winning though.

                                                                                          I agree that tags help. However I am a bit paranoid about filtering sometime, because for most of them I could imagine there’s stuff I find interesting. However it’s certainly a big plus.

                                                                                      3. 4

                                                                                        If by “growth” you mean a heuristic capturing overall combined site activity of existing and new users, I would postulate a causal relationship from the re-opening of alternative activities otherwise prevented during pandemic conditions (prior to general vaccine availability) and the lagging consequences from the unwinding of pandemic-related isolation trauma.

                                                                                        • Active Users by month remained high through 2020 Q4 before trending generally downard in 2021 and 2022. It seems that Comments Posted and Votes Cast also follow this trend.
                                                                                        • New Users by month began trending generally downard earlier, around the beginning of the pandemic. Where would existing users be meeting new users to invite in 2020 Q2? It seems that Stories Submitted also follows this trend. How many stories are driving users’ excitement for discussion while still being on topic to this site in 2020 Q2 and Q3?

                                                                                        I have made no attempt at scientific rigor in this assessment; this is chart eyeballing & back-of-napkin thinking.

                                                                                        1. 3

                                                                                          It seems to follow the covid development ? Would make sense if people started using lobsters more at the start, but over time became bored of all the digital stuff when they can’t do IRL things.

                                                                                          1. 2

                                                                                            I have joined in the last year. I haven’t invited anyone else yet that I (a) knew well enough, and (b) thought would be a good fit for this site.

                                                                                            1. 1

                                                                                              I think maybe there was a turning point where people started vetting their invites a bit more carefully.

                                                                                              This is all anecdotal but I remember a bunch of strife around people mis-using flags and downvotes when we had it, and there was some discussion around some folks who were seen as not participating in a way many of us found benefited the community.

                                                                                              (Yes I know such distinctions are a VERY slippery slope. Community is a delicate flower. I’m super grateful ours continues to thrive.)

                                                                                            1. 2

                                                                                              This is great. How are the articles selected, from which sources?

                                                                                              1. 2

                                                                                                Right now from various forums (Reddit, Lambda the Ultimate, HN, Lobsters, etc.) they are then tagged based on tags/subreddit of the forum, title, url, etc.

                                                                                                In the near future I’d like to use various planets (,, etc.) as a source too and rank the articles based on some kind of pagerank algorithm (I have to rank them somehow otherwise there would be too much stuff in the weekly issue).

                                                                                                1. 2

                                                                                                  Got it, thanks. As a bit of feedback, I’d be interested in an Erlang one but not particularly Elixir; the content in the Erlang & Elixir one is about 90-95% Elixir, and that must be largely because Elixir is a lot more popular in the sources, so sorting that out would (I guess?) mean adding in more Erlang-specific ones, which would then mean either a bigger E&E list or separating them out, or (I guess) adding a filtering mechanism. All of which sounds like work for you, and thus (I guess?) the kind of thing that you’d want to put into a paid membership version? At which point it seems like you’d maybe need to provide mechanisms for people to suggest sources for the lists they pay for, or something similar. All more work for you. But, honestly I personally likely wouldn’t pay money for the service, unless it already had at least all that functionality, and more specific content that I’d want to read about, ideally surfacing stuff I can’t find on Reddit/here/etc anyway. As often, that probably means I’m just not the target user/audience, so like I said, this is just meant as very-small(!)-sample-size market feedback. Regardless of my particular user foibles, it’s really neat, nicely made, and the core idea is cool. Thanks for your reply.

                                                                                              1. 2

                                                                                                Just watched the demo video and must say this looks pretty cool. Especially that you can write native components & then call/“invoke” from your JS code. Basically a kind of FFI, right? It says you can already do native dialogs, presumably through the same mechanism - I wonder whether that could extend out to eg Cocoa and/or Win via, I don’t know, QT or wx or something? That would be a real killer - desktop app with native logic layer, access to native GUI widgets, all scripted together with JS, bundled up into a small and decently-performing package that doesn’t eat up lots of resources. Unfortunately way above my native-GUI-experience/available time, but … a man can dream, can’t he?

                                                                                                1. 4

                                                                                                  Tauri has a similar architecture to Electron in this regard: both have a main process and a renderer. It just happens that with Electron, both are JS, and in case of Tauri, the main process is Rust. In both, the two processes can communicate via IPC. In both, you can make native calls to the OS (Electron can pop up native dialogs too, and the main process can use modules that have native, non-JS parts, etc).

                                                                                                  A desktop app with a native backend is possible, both with Electron and Tauri. Access to native GUI widgets is also kind of possible, but in both cases, from the main process, not from the renderer. The renderer is pure JS in both, so you can’t (at least not easily, not without jumping through plenty of hoops) mix native widgets into a web view.

                                                                                                  1. 2

                                                                                                    Thanks, this is interesting/useful, and I hadn’t understood that the invoke feature was (by the sounds of it) using IPC rather than an FFI like I thought. Wishful thinking I guess. Appreciate the feedback!

                                                                                                    1. 4

                                                                                                      It is using IPC, not just by the sounds of it, but based on the code too.

                                                                                                      Mind you, not having FFI in the WebView is generally a good thing. Electron defaulted to nodeIntegration: true for quite a while (and you can still set that option), which made node APIs available to the renderer process, and that becomes a security nightmare the moment your webview meets untrusted content.

                                                                                                  2. 2

                                                                                                    I don’t think they’re focusing on integrating native widgets other than things like file open dialogs. It’s a web-based desktop app platform just like Electron except it uses the WebView library installed on your desktop and Rust. The JavaScript runtime has a fairly robust API to access the desktop, file system, etc. You rarely need to write functions in Rust.

                                                                                                    1. 1

                                                                                                      Fair enough, & thanks for the info. I’m just wanting something different, I think, as part of the point of a native environment for me is to be able to access platform APIs but do the UI declaratively in a friendly/already-familiar cross-platform way. I’m probably not the target audience. It looks cool anyhow!

                                                                                                  1. 2

                                                                                                    Another really good open-source one is sish. I’ve had it running for ages with no problems and so only just discovered that it recently added SNI name-based proxying to multiple backends, which is super nice.

                                                                                                    1. 18

                                                                                                      As Github’s post notes, Atom is the thing that gave us Electron. That’s going to be with us a long time.

                                                                                                      1. 37

                                                                                                        But other than that, Mrs. Lincoln, how was the play

                                                                                                        1. 15

                                                                                                          Know what’s cooler than pissing and moaning about Electron? Taking a web codebase and getting three desktop apps for cheap. I run a 2013 MBP and good Electron apps are fine. What the hell are people complaining about? Is this some sort of purity test?

                                                                                                          1. 11

                                                                                                            For me, personally, many Electron apps are quite sluggish and far less resource efficient than native apps (Discord, Skype, etc)

                                                                                                            1. 1

                                                                                                              There’s definitely good and bad electron apps. Slack, VS Code and Spotify are very snappy and do enough stuff to justify the extra memory usage, while Discord and Signal are absolute turds.

                                                                                                              At the end of the day the memory usage thing is a bit of a canard. I have a 2018 laptop with 16GB of RAM, regularly run Goland, PyCharm (multiple instances), Spotify, Slack, Firefox, Chrome, VS Code, Obsidian… and still have a few GB of RAM to spare.

                                                                                                              1. 2

                                                                                                                So in other words, running a bunch of Electron apps takes gigabytes upon gigabytes of memory and you’d be screwed if you had only 8GB.

                                                                                                            2. 9

                                                                                                              Doing something for cheap that degrades the user experience is cool for managers, but not for users. If good Electron apps run fine on a 2013 laptop, think of what bad Electron apps do on a 2008 laptop.

                                                                                                              1. 1

                                                                                                                I grew up in a developing country, and even I find it hard to shed a tear for those poor people using a laptop that is almost a decade and a half old.

                                                                                                                1. 3

                                                                                                                  The slope of the Moore’s Law performance curve has leveled off significantly in the last ~10 years or so; the difference between a 2008 computer and a 2022 computer is a lot smaller than a 1994 computer and a 2008 computer. If it works well enough (or perhaps, if the only reason it wouldn’t work well enough is shitty, resource-gluttonous software), why spend money and create more e-waste replacing it?

                                                                                                              2. 3

                                                                                                                Maybe desktop applications are not desirable. Maybe Web applications are an anti-pattern. It’s not a purity test, but a realization that we made an architectural wrong turn.

                                                                                                                1. 3

                                                                                                                  If you’re against desktop and web applications then are you for a new platform? How does it differ from the web beyond just being better somehow?

                                                                                                                  1. 1

                                                                                                                    Maybe the concept of “application” – the deliverable, the product, the artifact which is sold to consumers – is incorrect.

                                                                                                                    At a minimum, we could imagine replacing the Web with something even more amenable to destroying copyright and empowering users of Free Software. A content-addressed system is one possible direction.

                                                                                                                2. 2

                                                                                                                  Electron apps tend to crash my Wayland desktop if they’re not updated. They rarely are, like Discord’s Electron hasn’t been updated for ages.

                                                                                                                  Sure there are always ways to skirt around the issue, but we have a lot of resources yet most of them are spent on apps that run worse. Often those apps use Electron.

                                                                                                                  We shouldn’t have worse resource usage and waste of energy just because some managers think it’s cheap on the short run.

                                                                                                                  1. 1

                                                                                                                    Nobody’s forcing you to use those apps. Just take your money somewhere else and notify those managers that they are losing your business because they use electron.

                                                                                                                    1. 6

                                                                                                                      Pretty much everyone is forcing me to use Slack, though. To the point where it was actually a significant factor in finally deciding I had to buy a new computer a couple years ago, with as much RAM as I could fit in it so that Slack didn’t make the fan practically lift it off the desk. Yeah there’s a web client but it doesn’t have all the integrations and blah blah. And I’d say 90% of the companies & projects I’ve worked with & on in the last 3-4 years have required me to use it, no matter how much I don’t like it.

                                                                                                                      1. 6

                                                                                                                        I am forced to use Discord if I want the community around my games to thrive.

                                                                                                                        I’m locked in to these systems, that’s the whole point of making them like this.

                                                                                                                        Same with Slack, but for work.

                                                                                                                        Edit: Not to forget all my friends who use discord, and good luck trying tp convince them to use any alternatives.

                                                                                                                    2. 2


                                                                                                                    3. 0

                                                                                                                      Sparks - So Tell Me Mrs. Lincoln Aside From That How Was The Play? (Official Audio)

                                                                                                                    4. 1

                                                                                                                      Nodewebkit existed and was a big deal before that. Electron is not the breakthrough piece of softtware many are assuming it is.

                                                                                                                      1. 2

                                                                                                                        As did Microsoft’s HTA in 1998, but in the end, it was Electron that got mass adoption.

                                                                                                                      1. 5

                                                                                                                        I’d been thinking we needed to have a serious talk about getting phrasing back in the mix

                                                                                                                      1. 2

                                                                                                                        This looks good at first glance, Charles has been awesome for years but the UI was getting a bit long in the tooth last time I used it in anger.

                                                                                                                        1. 6

                                                                                                                          I feel certain I’m missing something… I never cared for Heroku. It always seemed slow, made me think I had to jump through weird hoops, and never seemed to work very well for anything that needed more horsepower than github/gitlab’s “pages” type services. And their pricing always had too much uncertainty for me.

                                                                                                                          Granted, I’m old, and I was old before heroku became a thing.

                                                                                                                          But ever since bitbucket and github grew webhooks, I lost interest in figuring out Heroku.

                                                                                                                          What am I missing? Am I just a grouch, or is there some magical thing I don’t see? Am I the jerk shaking my fist at dropbox, saying an FTP script is really just the same? Or am I CmdrTaco saying “No wireless. Less space than a Nomad. Lame.”? Or is it just lame?

                                                                                                                          1. 5

                                                                                                                            By letting and making developers only care about the code they develop, not anything else, they empower productivity because you just can’t yak shave nor bikeshed your infra nor deployment process.

                                                                                                                            Am I the jerk shaking my fist at dropbox, saying an FTP script is really just the same?

                                                                                                                            Yes and you’d be very late to it.

                                                                                                                            1. 3

                                                                                                                              Yes and you’d be very late to it.

                                                                                                                              That’s what I was referencing :-)

                                                                                                                              I think I’m missing this, though:

                                                                                                                              By letting and making developers only care about the code they develop, not anything else, they empower productivity because you just can’t yak shave nor bikeshed your infra nor deployment process.

                                                                                                                              What was it about Heroku that enabled that in some distinctive way? I think I have that with gitlab pages for my static stuff and with linode for my dynamic stuff. I just push my code, and it deploys. And it’s been that way for a really long time…

                                                                                                                              I’m really not being facetious as I ask what I’m missing. Heroku’s developer experience, for me, has seemed worse than Linode or Digital Ocean. (I remember it being better than Joyent back in the day, but that’s not saying much.)

                                                                                                                              1. 2

                                                                                                                                I just push my code, and it deploys.

                                                                                                                                If you had this set up on your Linode or whatever, it’s probably because someone was inspired by the Heroku development flow and copied it to make it work on Linode. I suppose it’s possible something like this wired into git existed before Heroku, but if so it was pretty obscure given that Heroku is older than GitHub, and most people had never heard of git before GitHub.

                                                                                                                                (disclaimer: former Heroku employee here)

                                                                                                                                1. 3

                                                                                                                                  it’s probably because someone


                                                                                                                                  was inspired by the Heroku development flow and copied it to make it work on Linode

                                                                                                                                  Only very indirectly, if so. I never had much exposure to Heroku, so I didn’t directly copy it. But push->deploy seemed like good horse sense to me. I started it with mercurial and only “made it so” with git about 4 years ago.

                                                                                                                                  Since you’re a former Heroku employee, though… what did you see as your distinctive advantage? Was it just the binding between a release in source control and a deployment into production, or was it something else?

                                                                                                                                  1. 3

                                                                                                                                    Since you’re a former Heroku employee, though… what did you see as your distinctive advantage? Was it just the binding between a release in source control and a deployment into production, or was it something else?

                                                                                                                                    As a frequent customer, it was just kind of the predictability. At any point within the last decade or so, it was about three steps to go from a working rails app locally to a working public rails app on heroku. Create the app, push, migrate the auto-provisioned Postgres. Need to backup your database? Two commands (capture & download). Need Redis? Click some buttons or one command. For a very significant subset of Rails apps even today it’s just that few steps.

                                                                                                                                    1. 1

                                                                                                                                      I don’t really know anything about the setup you’re referring to, so I can only compare it to what I personally had used prior to Heroku from 2004 to 2008, which was absolutely miserable. For the most part everything I deployed was completely manually provisioned; the closest to working automated deploys I ever got was using capistrano, which constantly broke.

                                                                                                                                      Without knowing more about the timeline of the system you’re referring to, I have a strong suspicion it was indirectly inspired by Heroku. It seems obvious in retrospect, but as far as I know in 2008 the only extant push->deploy pipelines were very clunky and fragile buildbot installs that took days or weeks to set up.

                                                                                                                                      The whole idea that a single VCS revision should correspond 1:1 with an immutable deployment artifact was probably the most fundamental breakthru, but nearly everything in was first introduced to me via learning about it while deploying to Heroku. (The sole exception being the bit about the process model of concurrency, which is absolutely not a good general principle and only makes sense in the context of certain scripting-language runtimes.)

                                                                                                                                      1. 2

                                                                                                                                        I was building out what we were using 2011-2013ish. So it seems likely that I was being influenced by people who knew Heroku even though it wasn’t really on my radar.

                                                                                                                                        For us, it was an outgrowth of migrating from svn to hg. Prior to that, we had automated builds using tinderbox, but our stuff only got “deployed” by someone running an installer, and there were no internet-facing instances of our software.

                                                                                                                                2. 2

                                                                                                                                  By letting and making developers only care about the code they develop

                                                                                                                                  This was exactly why I never really liked the idea of it, even though the tech powering it always sounded really interesting. I think it’s important to have contextual and environmental understanding of what you’re doing, whatever that may be, and although I don’t like some of the architectural excesses or cultural elements of “DevOps”, I think having people know enough about what’s under the hood/behind the curtain to be aware of the operational implications of what they’re doing is crucial to be able to build efficient systems that don’t throw away resources simply because the developer doesn’t care (and has been encouraged not to care) about anything but the code. I’ve seen plenty of developers do exactly that, not even bothering to try and optimise poorly-performing systems because “let’s just throw another/bigger dyno at it, look how easy it is”, and justifying it aggressively with Lean Startup quotes, apparently ignorant of the flip-side of “developer productivity at all costs” being “cloud providers influencing ‘culture’ to maximize their profits at the expense of the environment” - and I’ve seen it more on teams using Heroku than anywhere else because of the opaque and low-granularity “dyno” resource division. It could be that you can granularize it much more now than you could a few years ago, I haven’t looked at it for a while, and maybe even that you could then if you dug really deep into documentation, but that was how it was, and how developers used (and were encouraged to use) it - and to me it always seemed like it made the inability to squeeze every last drop of performance out of each unit almost a design feature.

                                                                                                                              1. 3

                                                                                                                                I read this in detail and I liked it quite a lot. Especially “how to test and what not to test”, it’s all about reality and not obsessively tweaking a test coverage percentage figure upwards.

                                                                                                                                I did feel a bit sceptical when I got to this part early on:

                                                                                                                                Software engineering classes can try to teach the project management and maintenance of a large application, but it is going to be a simulation no matter what happens. So my theory is maybe they shouldn’t try. Instead teach how to program so that maintenance isn’t a concern.

                                                                                                                                ‘cos that’s clearly extremely difficult, largely down to lots of experience and exactly the core of the problem, and plenty of people seem to think that their method or approach is a silver bullet. But he went on to discuss a really solid range of contexts and the associated approaches that he’s learned to favour over time (and experience) and clearly recognises this is obviously just as complex as it seems so there won’t be any silver bullet - and that a whole range of munitions made out of a variety of elements and alloys will be required.

                                                                                                                                It’s a tough subject with no simple answers, but after a single read-through this does seem wide-ranging and joined-up enough at least to start to address it, by emphasising what he sees as the key (core?) areas that would help to improve skills and outcomes in the real world.

                                                                                                                                A good read, thanks for posting.

                                                                                                                                1. 1

                                                                                                                                  First task is finally giving in and converting our dev env from Vagrant to Docker because the latest macOS security update seems to have broken something obscure to do with multiple fs mounts on Virtualbox on Big Sur/x86, and it turns out not everyone likes fiddling with unix shells all day like me. It’s also prep for when Apple’s reported “production line issues” (read: chip shortage and China in lockdown) finally relent enough for my new M1 laptop to get assembled and delivered months later than originally promised.