Threads for freehunter

  1. 9

    I think an accessible client with sane defaults—especially for mobile—will go a long way in increasing IRC adoption. Something as seamless as WhatsApp or Telegram. And I think the lack of E2EE is fine for the average user’s threat model (my parents, for example).

    1. 13

      Accessibility (as in, easy to obtain, install, and start using) and sane defaults are entirely the reason newer (and less open/free) software has historically won with end users. The people who build software like fiddling with settings and exploring, the people who use software do not like that.

      Every project that makes you say “why don’t more end users used this instead of [Apple/Google/Facebook/Microsoft/Etc]”, the answer is probably because of accessibility and sane defaults. Even if there are multiple ways to accomplish something, there should be one logical path and the application should noticeably steer you towards that one logical path at every opportunity.

      1. 7

        I agree.

        Also, another word for providing “accessibility and sane defaults” is called “design”. Not as in “protocol design” (design for computers), but as in “user interface design” (design for humans). Many projects de-prioritize the latter, due to greater interest in tinkering with the guts of the program than tailoring it to its ostensible audience. I call this phenomenon “hobbyism”, and it’s one of the downsides of projects that provide their contributors freedom, thereby depriving them of structure.

        These projects are now dying off, and although I don’t celebrate it, it is a reasonable death.

        If centralizing/capitalism-izing chat is what it takes to get halfway-decent designers on board, then I’m signing the deal with the FAANG (+M) devil. The current situation is obscenely Orwellian, and I’d love for us to find another way (and I think Matrix seems promising!), but for now I’ve accepted it and moved onto other projects.

      2. 5

        I think IRCCloud is the closest thing to “sane defaults” in the IRC space, messages stay on the server, iOS and Android clients, consistent persistence and lots of other little goodies.

        The killer downside is the price, to get the permanently connected account requires a $5 a month subscription (https://www.irccloud.com/pricing) which I happily pay, but most will not stomach.

        If IRCCloud would move “Stay connected permanently while inactive” to the free client, I think they would pick up a MASSIVE number of users.

        1. 3

          Matrix combined with IRC bridging can work as an (free) alternative to IRCCloud.

        2. 6

          Normies being gone from IRC is literally the best thing that has happened to IRC.

          If getting into IRC was “accessible” as you call it, it’d be flooded with bottom-of-the-barrel, clueless users asking dumb questions, posting links to animated emote pictures and the like.

          A good portion of the appeal of IRC is not having to deal with any of that.

          1. 22

            meh. Setting aside whether dismissing people as “normies” is elitist ($0.02: it is), it’s not just clueless people who leave IRC, it’s useful and important FOSS projects too. I don’t think “accessible” is a great word, since this often has very little to do with usability by people with disabilities, but I also don’t think this is a bad thing. The friendly-to-non-hacker platforms people are moving to don’t seem to be flooded with low-quality questions AFAICT.

            1. 4

              The friendly-to-non-hacker platforms people are moving to don’t seem to be flooded with low-quality questions AFAICT.

              That’s what happens when you stop limiting these platforms to technical people: you get non-technical people. So if you think have a platform that can survive without non-technical folks—and it probably can’t—then go ahead and use IRC. Just remember that there’s a diversity cost to gatekeeping.

              1. 2

                This reads like a reply to the opposite of what I said. I don’t think keeping non-technical people out is a good feature. I do think the barriers seem, for the most part, frustratingly inconsequential (e.g. you have to type a command to register with your email and password instead of typing those things in their own boxes).

                It doesn’t seem entirely reasonable to assume that everyone using IRC is gatekeeping.

                1. 2

                  You’re right, I must have misunderstood; my bad. I will say, though, that even if it isn’t as intentional as “gatekeeping”, using IRC does implicitly limit your peers to the technically-minded, and there should be a similar word for that. For now, I’ll just say “incidental gatekeeping”.

              2. 3

                The friendly-to-non-hacker platforms people are moving to don’t seem to be flooded with low-quality questions AFAICT.

                Which platforms are you talking about? Discord is the one I see that has truly replaced IRC for group chats on small to medium projects, and in my experience it has been utterly overrun with low quality posting, animated emote pictures, etc. (Though that’s far from my biggest gripe about discord.) It’s especially bad on “servers” where the admin leaves most defaults in place.

                1. 5

                  I was thinking of Discord and Slack. There are a couple of Discord guilds for FOSS projects that I occasionally drop in on, and the overall quality doesn’t seem—to me—appreciably worse than that of, say, #python. I’m definitely thinking mostly of support channels rather than more generally focused ones; maybe the latter are much worse.

                  1. 5

                    The #clojure IRC channel took a big hit when the unofficial Clojure slack was started. It’s still around, but it’s a pale shadow of what it used to be. Meanwhile the #emacs IRC channel and the #fennel IRC channel are going strong because those folks know better than to depend on Slack or Discord or any such shit.

                  2. 3

                    I find Discord especially annoying, as we’re moving from community-run IRC networks (open protocol with plenty of server and client implementations for pretty much all platforms including anemic and ancient computers) to something that’s commercial and completely centralized (complete with global IDs that make the whole “servers” concept not just completely wrong but also irrelevant) and requires a heavy web browser to access.

                  3. 2

                    I don’t think “accessible” is a great word, since this often has very little to do with usability by people with disabilities

                    That’s why I used the quotes, but I then forgot to clarify. Thanks for cleaning after me :-)

                    IRC is, as far as I am aware, the most accessible chat system.

                    1. 5

                      Accessibility is consciously a broad term. IRC may be very accessible system to people with visual disabilities, but not to others - e.g. joining an IRC server is very arcane. Translated tutorials are hard to get. This is not a system for people with any kind of cognitive issues or even just language barriers.

                      I regularly chat with a blind person (my last reason to use IRC) and let’s not kid ourselves: none of the client implementers care. For example, many TUIs use visual bars to highlight a currently active selection (like the channel your selection currently “hovers” over), but no cursor. This is inaccessible - TUIs become completely inaccessible if the cursor position becomes non-sensical. This is essentially their main reason to not drop for example for matrix, using a terminal client for it, because most terminal clients like weechat commit such mistakes.

                      In the end, this has nothing to do with IRC. It has something to do with how little everyone cares about this. None of the systems discussed here is fundamentally inaccessible.

                      1. 1

                        most terminal clients like weechat commit such mistakes.

                        IRC is simple enough that it would not take much effort to implement a client specifically for a person with a specific disability.

                        1. 3

                          Or use an old/simple enough client. ircII or ii by suckless

                          You can even connect to matrix using an irc client thanks to matrix-ircd

                          1. 3

                            IRC is simple enough that it would not take much effort to implement a client specifically for a person with a specific disability.

                            This is not true. It takes substantial effort for a person to implement a full client because other clients don’t care about accessibility. The person themselves is a programmer - they could even implement the client, but that would take a chunk of their own time for something that could rather easily be fixed if client implementors cared. My point is that “plain text is accessible” is often a mistaken assumption, this would e.g. not be an issue if you had a GTK client with standard widgets (accessibility support in GTK is okay).

                            Also, it’s a fundamentally exclusive stance: those that need it should implement their own clients. weechat is also more than an irc-client: it is a multi-protocol client, which would unlock a lot more options for that person.

                            1. 1

                              Sure, but having loads of clients to choose from and, on top of that, a protocol simple enough to minimize the effort of implementing a disability optimized full client if desired is definitely much better than the alternative.

                    2. 2

                      100% disagree, you get all that on other platforms as well, there are ways to keep them in check. I’ve been part of quite a few non-technical channels and they were a lot better off when they weren’t strictly populated by nerds who were on irc anyway. Those people are now probably on WhatsApp, Telegram or whatever, but not anywhere near where I am.

                      1. 1

                        posting links to animated emote pictures and the like.

                        hell yea

                      2. 2

                        Please write one!

                        I think the lack of E2EE is probably the optimal default, tbh. IRC is mostly designed for public or semi-public channels, where it doesn’t make a lot of sense, and we also have open private messaging by default, which means the world where servers can’t see into PMs would be rather spammy. (We didn’t always have a server that could do that, and lots of people complained.) For people who understand the risks, there’s already OTR.

                        1. 2

                          Matrix with IRC bridging can work as a very nice IRC client. But then you also have access to matrix natively…

                        1. 2

                          That’s why I’ve always been slightly bothered when people call the return key “enter”.

                          1. 9

                            Windows keyboards tend to have an Enter key but no Return key, Mac keyboards tend to have a Return key but no Enter key. They’re in the same place and at first glance do exactly the same thing so it’s easy to understand why people would say that.

                            1. 4

                              Even portable Macs used to have an enter key, where the right option key is now situated. I really missed it when it disappeared, only to discover fn+enter quite recently.

                              1. 3

                                Did you mean Fn+Return for Enter?

                                1. 3

                                  Haha, of course.

                              2. 2

                                Well, non-Apple keyboards tend to label it “enter” but it sends the keycode that means “return”..

                                1. 1

                                  That sounds like a recent development. Almost all non-Apple keyboards I’ve seen have labeled the key with the carriage return symbol, not the text “Enter”.

                                  1. 2

                                    I think the symbol is more common on ISO layout keyboards. The ANSI Thinkpad and Pixelbook I have both say “Enter”.

                              3. 1

                                Yes, this is one of my favourite pieces of trivia to bring up when I’m in the mood for teasing someone.

                                I’m also consistent in calling it Return, and most people seem to not even notice. (Unless I want to tease them by correcting them when they say Enter.)

                              1. 2

                                When I was in university I had a Unix course that used a book called Guide to Unix using Linux [1]. The instructor’s reasoning for using that book was that Unix licenses are expensive and (at the time) free versions of Linux offered far better compatibility with hardware than free versions of Unix did. He made it clear we were just using Linux as a way to learn Unix.

                                I wonder if they still teach that way today.

                                [1] https://www.cengage.com/c/guide-to-unix-using-linux-4e-palmer/9781418837235PF/

                                1. 7

                                  What I discovered later was that design documentation, encoding the intent and decisions made during developing a system, helps teams be successful in the short term, and people be successful in the long term.

                                  Our team has a rule that no work should be done on a major feature without a design document that has been vetted by the entire team, and possibly with input from other teams. It is a godsend because it catches so many errors and problems ahead of time. Does it catch everything? No, but it certainly prevents some wrong turns before they happen. And it has proven to be helpful when people challenge us as to why we did it one way instead of another because we document failed ideas with reasons as to why they don’t work.

                                  I recommend teams consider what a little design up front can do for them, especially thinking through many scenarios. It really helps.

                                  1. 3

                                    Similarly, my team has a rule that any assumptions must be clearly stated. Now granted I am not a professional programmer and I work on team with zero professional programmers, but for the code we do write, this is a must. I wrote a function earlier today that polls an API and does some work with the response and by my team’s rules I had to specify an example of what I assumed the API response looks like under normal circumstances. The code then went on to do some manipulation of that data assuming a normal API response. If someone is trying to debug the code in the future they’ll be able to see what assumptions I made (the API response looks like this) and determine really quickly if the code is failing because the API response looks different now.

                                    It really helps us because the API endpoints can change faster than we write new code. Explicitly documenting the state of the environment when the code was written helps the next person understand what might have gone wrong since the last time the code was changed. It’s usually the API that changed rather than our code mysteriously breaking.

                                    1. 2

                                      Do you also use that example in a test and assert the outcome of the function is what you desire it to be? Because if you don’t, I predict you would find that hugely helpful.

                                      1. 1

                                        Stupidly our company requires that any tests have to cover at least 95% of the code. That rule doesn’t apply to code with no tests. So we only use tests in projects where we have the overhead to complete the testing. We’re a team of consultants, not programmers, so we rarely have enough time to write tests with 95% coverage.

                                    2. 2

                                      What would be a design document for you/your team? How did you ensure that vetting was more than just a rubber stamp?

                                      In several companies I’ve been to, term ‘design document’ meant similar, yet different things. In one, it was a one pager motivating the work, in another it was a free form document where it would be good that one outlines other approaches. But in every situation, there was not a lot of challenging of the content, as if these documents are there just to convince ourselves that we did the due diligence.

                                      1. 1

                                        This is something the team mandates on itself, it’s not something forced on us. We take it seriously. Design documents often take weeks to be worked out and we present and discuss them in team meetings. In fact, the near final version must be presented to the team before it can be approved.

                                        I guess the answer to your question is that things don’t get rubber stamped because everyone agrees that is a bad idea.

                                    1. 2

                                      This might not be a popular opinion but as someone who spends most of their day on the phone, I strongly dislike mechanical keyboards and the culture that has recently sprung up around them. I’m a consultant and my normal interactions with customers is over the phone. I can usually tell within 24 hours on a project who I have to mute by default on any new project. Especially with remote meeting software that emphasizes “call using my computer”. The sound of someone taking notes with a loud mechanical keyboard has disrupted my meetings so often that I can’t even count the occurrences. For clients I know very well, I’ll usually start the call saying “Hey [name], if you have something to say, make sure you unmute yourself” because I start the call with that person muted.

                                      I know there are mechanical keyboards that are quieter, but there are also a lot that are so loud no one can hear the conversation over the sound of the person taking notes on the call. Please be aware of the sound of your keyboard if you’re on a conference call.

                                      1. 13

                                        I find it incredibly odd that “push-to-talk” isn’t the cultural default almost anywhere. It’s so much nicer for every participant at so little cost to the individual.

                                        1. 6

                                          Yeah this is more of a broken software than anything else. I wish more systems were like mumble. Super low latency, crystal clear, push to talk. Instead we’re trying to cram 30 pointless video streams onto everyone’s screen.

                                          1. 5

                                            Your comment could just as well have been written by myself. Not only are these 30 pointless video streams crammed onto everyone’s screen – they’re also choking everyone’s network connection, causing further latencies in the audio, meaning conversations require explicit handoff to other people.

                                            I really wish I could convince my company to switch to something like Mumble. The low latency, crystal clear audio would make conversations flow so much more naturally and feel less forced. But no. We have to look at each others badly lit outlines of faces. That’s worth so much more than fluent communication.

                                            1. 4

                                              It’s madness. In the pandemic it has shown itself to be a deeply irritating technology. In 99% of cases the sole purpose of the video feed is to see what people’s houses look like.

                                              Mumble cracked the ‘how to we do natural conversation’ issue 15 years ago. Everything I have used since then feels like a step backwards.

                                            2. 3

                                              Mumble is especially good with RNNoise, that seems to “learn” filtering out sounds such as keyboard or clicking noises, improving over time. I have a not-so-quiet keyboard and a friend of mine has a more-loud-than-not mechanical keyboard and unless you’re typing and speaking, nobody notices either of us.

                                              Sadly it has to be enabled, as it’s not turned on by default.

                                              1. 1

                                                Wow, that was really cool!

                                          2. 9

                                            Back when folks were in the office, I didn’t mind using my mechanical keyboard around others. If they get to talk loudly on the phone, wandering around with wireless headsets, often times about topics that aren’t even vaguely work-related, then they get to listen to my clacking. Seems fair.

                                            1. 7

                                              If everyone thought like that then there would be no peace in the world. Well, maybe there isn’t… but still, I don’t think others acting poorly means you should too.

                                              1. 1

                                                MX Blues might be an exception but I can hear people typing on our work-supplied Logitech keyboards just as well on a mechanical one.

                                                I think it’s more the people who refuse to use headsets but use their laptop mic that grabs every sound in the room…

                                            2. 3

                                              I’m a fan of mechanical keyboards, my first one was a Sun UNIX style buckling spring model with the command and caps lock key functions swapped (so that CTRL is on the home row where it should be for programmers). Still, I think you’re undoubtedly right that they are best for people who work in private offices and non-collaborative work environments instead of open plan offices and people who do a lot of conferencing.

                                              1. 9

                                                Not to be facetious. But that sounds like a problem for management.

                                                If you want to stick me in an open office and then complain that my work is too loud; that’s on you. (Yeah, I know keyboards are a preference but so is working in an open landscape)

                                                1. 5

                                                  (Note: writing this comment turned out more aggressive than it ought to be. Rest assured that I have no quarrel with you, I just hate open plans, to the point I’d consider turning down offers over them.)

                                                  private offices and non-collaborative work environments instead of open plan offices

                                                  I’m not sure I agree with the implication that anything “not open plan” is not collaborative. Like many people here I suddenly started to work remotely this last few months, and the amount of practical collaboration within my own team doesn’t seem to have significantly decreased, despite the higher friction of instant messaging with microphones compared to our shared office. I’ve also worked in an actual open plan office, with over 50 people on the same completely floor. We collaborated all right, but boy, the noise.

                                                  Let’s not kid ourselves, what is so often sold as a way to increase collaboration is mostly cost cutting, surveillance, and showing off. Discovered that last one pretty recently: open plan offices are great at showing the sheer mass of people buzzing & working together to executives and clients. Lots of people at their desk doing whatever hermetic magic technical people do, a couple group here and there on a Scrum meeting, or just discussing obscure schematics on a whiteboard, honestly it’s beautiful.

                                                  Me, I yearn for a cubicle. I don’t even require a full wall, I just want less noise, less visual distraction, and a wall behind my back. Seriously, leaving your back open to a room full of people you barely know, some of which you may even dislike a little? Nobody wants that. Why do you think the higher ups end up near the corners of the open floor? Why do you think the last hire, juniors, or interns, end up with the one office with their back to the door?

                                                  Cubicles however are horrible to show. Everyone looks isolated. You don’t hear as much buzzing activity, the floor is now closer to an oppressive maze than a green field, you don’t see as many faces…

                                                  I tried to put up walls on my desk. 90cm tall, some foam to dampen the sound, all around my desk (80cm deep, 180cm wide). Very effective at attenuating the sound, much less distractions. Despite prior authorization to try it out by ones of the higher ups, the first higher up to actually see it instantly vetoed it. And here’s the thing: one thing they worried about was that everyone would do something similar, and the whole office would start looking like a slum. So they knew on some level that many people might want this. But they were reluctant to give it to them because it wouldn’t look nearly as good.

                                                  Lesson learned: outwards appearances are more important than internal well being.

                                              1. 4

                                                Disclaimer: I’m a consultant and this is best viewed through the lens of someone who has the same coworkers day over day but not the same clients day over day.

                                                I actually had a similar incident and was actually saved by my absence. Taking out the trash in between calls at work (I work from home about 75% of the time under normal circumstances) I slipped on icy stairs and broke a couple ribs. I didn’t have my phone on me but I had a smartwatch and my coworkers noticed my absence and called me directly, allowing me to easily pick up on my watch and have them contact my wife (at her work about a mile away) to come help me. While I don’t think I learned all of the same lessons from my injury as the author did, I did absolutely learn some of the same lessons.

                                                Same as the author’s #1, trying to rush things against better judgement often leads to more pain. My calendar was stacked so full that I was trying to get tasks done in the mere seconds I had between meetings. To this day I keep a “what broke” notebook, unique to each project I’m on. When we move too fast, inevitably something breaks. Like the author’s #2, these only get noticed during the after-project review. We didn’t have these until I demanded we have them based on the notes I took after the incident at #1. We had after-incident reviews, but not every project failure is an incident. We needed a review even if things went right.

                                                #5 definitely hits home for me. On a team of ~50, I’m constantly rated in the top 5 which often leads people to assume I’m the best and can’t be wrong. In reality I have a note stuck on my monitor that says “I might be wrong. I am often wrong.” to remind me that no matter that people say, I’m not perfect. I’ve been making an active effort in my career to show humility and especially show the newer employees that no one is perfect and everyone needs to ask for help sometimes. I pick that up in point #7, where I let anyone bounce ideas off of me. Newbie, greybeard, manager, PM, exec, doesn’t matter. If you want someone to talk to, I’m your guy. Usually I don’t have any valuable input but that’s not the point. The point is listening. Usually people will come to their own conclusion after explaining it to you. Just be a rubber duck. Unless I’m actually too busy (which sometimes happens), in which case I will tell them a time when I expect I will not be too busy and ask them to come back at that time. #8 is important but the really important bit is…

                                                #6 The stress of our self-imposed deadlines costs us life energy. This should be numbers one through 11. The first question I ask myself on every project is “what happens if I don’t get this done in time?” Often I’m working on four or five projects at once. Sometimes “important” projects overlap with necessary projects. I always end up asking myself, is this merely important or is it necessary? I’ve run my own tech startup as well, and I can tell you the things that are important to the business are completely different from the things that are necessary for the survival of the business. It’s worth asking “is this important” versus “is this necessary” before you end up head-over-handlebars and laying on the ground waiting for the ambulance, metaphorically speaking.

                                                My (mid-70s) grandfather asked me to go fishing with him one weekend and I said I had important work to do that same weekend. He said “of course, work comes first”. I went fishing with him the following weekend but it’s never left my mind… what if he had suddenly passed in the five days between when I said no and when I said yes? Is work actually that important?

                                                The answer is almost always no.

                                                1. 4

                                                  Is work actually that important?

                                                  The answer is almost always no.

                                                  Thanks for the reminder. I just made plans with my dad.

                                                1. 2

                                                  I don’t spend a lot of time working with Javascript but I see these articles a lot and a common complaint is that yes, vanilla Javascript is powerful these days but it’s hard to maintain over larger codebases. So between the “frameworks/libraries” crowd and the “vanilla JS” crowd… is it actually possible or advisable to create a modern web application in “a little bit of plain Javascript”?

                                                  1. 3

                                                    Depending on the app, I think it’s possible and advisable to create a modern web app with a little bit of plain JS. Basecamp have a whole thing about sprinkling JS on top of a solid HTML/CSS foundation, and their new email app HEY is supposedly built like that, with JS just taking over HTTP requests (links, form submissions) and applying them in-place. (I haven’t used the app, I’m just intuiting based on a Twitter thread that was doing the rounds). So basically, you’d use:

                                                    • fetch() for the request
                                                    • the History API to manipulate browser history
                                                    • various DOM querying/manipulation methods to glue everything together

                                                    Web Components are a set of specs that as a whole should further the goal — just drop in its JS file and get a new custom component with which you interact like any other DOM element — but unfortunately there are various roadblocks, bugs, and limitations that limit their impact.

                                                    Closer to the SPA spectrum (one HTML rather than many), you definitely can have everyting in plain JS, but it won’t be a little for anything non-trivial and it will get unwieldy. I guess there are two parts to the “plain” story:

                                                    • not transpiled, nor supported by any build process; this is a major spaghetti maker. Without proper support for modules, dependency management is finicky and you’re stuck with carefully putting everying in the right order in the global namespace. Support for native modules is gaining ground, but for near-universal support you can’t rely on them alone.

                                                    • using the Web APIs directly, rather than relying on libraries and frameworks; definitely possible, after you develop a sense on how to organize things, but I think for larger teams it can become challenging because keeping it sane relies on devising, and following, your own rules and constraints.

                                                    1. 4

                                                      My last from scratch project I built using Stimulus (https://stimulusjs.org/) from Basecamp. It’s just enough JS. That plus turbo links really made the app super simple but also SPA like.

                                                      Highly recommended.

                                                    2. 1

                                                      It’s possible. Main selling point of Javascript frameworks - it is a framework. With vanilla js your app can become a mess if you’re not really good at architecture (and I believe a few is good). On other hand you can use a framework which prescribes where to put stuff, and how to organise data flow. Lots of people complain about bloated web and blame frameworks. I believe without frameworks it will be worse.

                                                      1. 1

                                                        I think we could get a long way by injected a middle path between “completely plain, download from cdn url” and “dependency hellhole full on framework with multiple compilation steps” projects tbh, it’s just that the tooling and norms are pushing you towards the latter and the type of person attracted to the former is not necessarily going to have the knowledge or patience to leverage the standard tooling in a more minimalist way.

                                                        It is possible to support stricter subsets of modern browser versions if you want to avoid a lot of back compat compilation steps with Babel or remove it entirely, it is possible to limit your dependencies to heavy well specced libraries like markdown or community standard utility libs like lodash, or at the very least be meticulous about what needs to go in build dependencies vs devDependencies. but it takes both domain knowledge and patience which don’t necessarily pay off in commercial work (until of course, they do, but by then you’ve got a massive SPA on your hands most likely and the issues have been compounded).

                                                        And this problem is of course transitive and endemic to the community norms, your well selected libraries must themselves also have been authored with an eye towards similar standards, and the bigger your project gets the more likely it is you’ll have dependencies or transitive dependencies that carry some bloated or poorly maintained package dependencies of their own. I would love to see workflows that have the flexibility of build and bundle tooling with a minimalist approach to dependencies, but it’s just quite uncommon atm.

                                                      1. 1

                                                        I’ve never used Fennel but I played around with Löve a few years ago and it was a great experience. Lua was the first programming language I really understood at a deep level. While I haven’t touched Lua in years, I can’t imagine it would be that hard to return to because it’s such a simple-yet-powerful language.

                                                        1. 3

                                                          The .xyz TLD is fun, small, refreshing, funky, a whole lot cheaper and you don’t support colonialism.

                                                          Perhaps, but it still sounds childish and looks like something you’d choose if all other serious options are not available. At least that’s the feel I get and I’m certain a lot of other more casual user do too. .io was kind of lucky that it managed to get into the .com, .net, .co.uk, … group of common domain names.

                                                          1. 18

                                                            Yeah, good point. It must be my recent interactions with the indieweb, but… The internet is supposed to be fun and perhaps, to some degree, childish. For serious stuff, by all means, avoid .xyz, .wtf, .ooo, use .org, .com, .net, .tech, .news, .computer. There’s so much out there, even more meaningful than “input/output” :)

                                                            1. 18

                                                              The internet is supposed to be fun and perhaps, to some degree, childish.

                                                              I couldn’t agree with this more. People have lost touch with this attitude.

                                                              1. 6

                                                                People have lost touch with this attitude.

                                                                Sorry to be so cynical, but it’s easy to lose touch with the fun internet when even personal blogs are packed with trackers and advertising and trying to monetize everybody.

                                                                Except for some relatively obscure corners, the light hearted and fun internet is dead. At this point, I doubt most people ever even experienced that part of it.

                                                                1. 4

                                                                  I strongly disagree. Let’s say in 1995 there were 10 websites and all of them were fun and childish. In 2000 maybe there were 10,000 websites and 50 of them were fun and childish. In 2020 there are 10 million websites and 10,000 of them are fun and childish. And I see people calling that a bad thing?!

                                                                  The internet of the 90s didn’t go away, there’s just more built up around it. You can have that old internet back, just block Facebook and Google and hell even the top million sites. All you have to do is just not visit the sites you don’t like. When I hear people say the old internet is gone what I hear is that they want all websites to be like the old internet. There’s more “old internet” today than there ever has been and it’s easier to find those sites than it ever has been. I don’t go into my favorite ice cream shop and complain about all the fancy new flavors, because I can still buy plain old vanilla. Strawberry shortcake didn’t replace my favorite flavor, it’s all still there. The only difference now is that I have other flavors tempting me, flavors no one is forcing me to buy. Vanilla is still there.

                                                                  Complaining that the good sites are stuck to the obscure corners ignores the fact that the 90s web was an obscure corner.

                                                                  1. 2

                                                                    I think you misunderstood what I was trying to say. I was on the internet in 1995, and while there are things I miss, like the higher signal to noise ratio and less advertising, I don’t have anything against the modern web and I don’t have any interest in making the modern internet more like the internet of the past.

                                                                    The point I was making is that the whole mindset of the web has changed, and even if you block millions of sites you’re not going to get the same open and “fun” experience as browsing back in the 90s. The mere fact that you have to put so much effort into it changes the experience.

                                                                    It’s like trying to relive the 1870s by driving a horse and buggy in traffic on modern streets - maybe you’re getting some idea for what it was like, but it’s a long ways off from what it was really like back then.

                                                                  2. 3

                                                                    I didn’t intend for my comment to be a pointed one, or to blame anyone. It was perhaps directed more at the people who run those blogs that are packed with trackers and advertising.

                                                                2. 2

                                                                  I recall when there was a minor uproar over .xxx … at some point one must do away with childish things, no?

                                                                  1. 4

                                                                    Why, exactly?

                                                                    It’s never to late to have a happy childhood. (That’s a quotation, yes. Fine book.)

                                                                    1. 1
                                                                      1. 2

                                                                        This is actually a verse from the Bible:

                                                                        https://biblehub.com/kjv/1_corinthians/13-11.htm

                                                                        1. 1

                                                                          Is that a film where the man is a thoughtful person or more of a badass? If thoughtful you can make a thoughful argument. If badass, I suppose there isn’t much of an argument to be be made.

                                                                  2. 4

                                                                    I agree. I own both snazz.xyz (because it’s fun, short, and fits well with the theme of my username) and a more professional website with my CV and academic information at [firstname][lastname].com. I think that owning both serves me well at a lower annual cost than a single .io.

                                                                    1. 2

                                                                      This episode of Yes Minister should answer your question: The Empty Hospital

                                                                      1. 1

                                                                        Same thing budgets are always used for… building new things rather than maintaining exiting critical infrastructure. Doesn’t matter if it’s governments building roads or Google building yet another instant messenger platform, maintenance isn’t sexy.

                                                                      1. 4

                                                                        I think using notepad or vi at first helps a lot.

                                                                        My organization is trying to upskill our SAS programmer to know R. Rstudio came in with a really smart instructor who assumed everyone in the class was a programmer. We used RStudio (a nice IDE) but so many people got stuck on paths and packages that the IDE confused them. I think having the first day just with command line and a text editor is good for teaching basics.

                                                                        Years ago I had a psychology professor teach me stats. He made us do everything by hand with no calculator doing stuff like calculating standard deviation and chi-squared tests for two weeks. Then we used calculators. It still helps me 25 years later.

                                                                        1. 2

                                                                          I think using notepad or vi at first helps a lot.

                                                                          I think that depends on whether your goal is to teach computer science or whether your goal is to turn students into productive computer programmers.

                                                                          I started off with Notepad and spent more time manually formatting my code than I did actually learning why the code worked. In Python, making sure I consistently used tabs or spaces (and consistently the same number of spaces) was time consuming. And debugging why my code didn’t run when I hit four spaces only to find out that I hit the spacebar four times but the computer had only registered three is what taught me to just always use tabs. It certainly did not make me a better programmer, it made me a worse programmer. Until I got even the most basic IDE with proper linting that formatted my code when I hit save and showed me errors when the line was wrong. In Javascript working with Notepad I’d occasionally forget to put in a semicolon. Same thing, an hour of debugging to find out where versus even the most basic IDE that could tell me.

                                                                          I’m sure there are better ways to turn students away from programming, but using Notepad has to be in the top 5 at least.

                                                                          1. 1

                                                                            I think that I could make assignments in python that required minimal formatting. I wouldn’t want to to focus on extensive typing.

                                                                            The reason why I say notepad or vi is because it’s useful to teach what formatting is, why it’s important, how to debut errors and whatnot before we use editors that do all that for us.

                                                                            I think the goal for new coders is to learn logic, symbols, structure and people who don’t know what a program is or don’t know what a variable is need to focus on those concepts before they start cranking out stuff. I think, at least.

                                                                        1. 12

                                                                          There’s an important point that is hinted at but I didn’t see directly addressed: the criticality of the project. The typical advice is to use what you know and that’s great advice for critics projects, things that matter. Use Java or PHP if you want because the tech stack isn’t nearly as important as the business outcome.

                                                                          But if this is a casual project or experiment (whether a side project, hobby, or even an internal tool at your company), then the choice doesn’t matter. Use whatever you want, even if it’s new. Because the tech stack is far more important than the business outcome. Take the chance to learn something new.

                                                                          1. 16

                                                                            I think the best time to experiment with new languages on the job are for non-critical internal tooling. Tools that make things more convenient, but if they broke people would still be able to work.

                                                                            1. 5

                                                                              tech stack isn’t nearly as important as the business outcome.

                                                                              This is a common sentiment. I disagree. PHP and Java are slower and harder to write and manage than other options. I would 100% use Clojure, because the business outcome is important and an easier tech stack makes all the difference.

                                                                              1. 2

                                                                                I’m not sure you’re disagreeing with the statement, really? I would argue that having something which is easy to work with and to maintain is an important part of having a good business outcome.

                                                                                Whether people at a particular shop find Java, PHP or Clojure to be the easier tech stack is another question, mind…

                                                                                1. -1

                                                                                  If the business outcome is important, I would never choose Java - why even consider a tool which has null??

                                                                                2. 5

                                                                                  The flip side of this is that for extremely critical projects the choice becomes important again. I use dynamic languages day to day but if lives were at stake I would want something with good static analysis tools.

                                                                                  1. 4

                                                                                    Nice in theory [1]. Way back in 2013, 2014, I was asked to look into SIP. It’s mainly a text protocol with your standard response, headers and body structure. So I used what I knew, Lua and LPEG, to play around with the SIP protocol. I even got the program to parse SIP messages and push them into our backend [2]. Unbeknownst to me, my manager deployed my “proof-of-concept” to production. It’s now a critical piece of our infrastructure (the other components are all written in C or C++).

                                                                                    [1] In theory, there’s no difference between theory and practice. In practice, there is.

                                                                                    [2] Which at that point, only supported CDMA via SS7.

                                                                                  1. 15

                                                                                    I’m still seriously surprised that anyone thinks it is an acceptable option for free software projects.

                                                                                    For the VyOS project we are, sadly, using Slack as a primary communication channel. So does FreeRangeRouting. I’m very deeply unhappy to see that a proprietary walled garden is what the users want to use (we still have a channel on Freenode, but it’s almost dead compared to Slack). Still, between proprietary walled gardens, even Slack does a better job as a platform for technical communication than Discord does.

                                                                                    1. 11

                                                                                      I’m still seriously surprised that anyone thinks it is an acceptable option for free software projects.

                                                                                      It should not be forgotten that projects that are big on Discord now have made their decision in the past. First of all, please be aware that Rusts Discord is only one of the potential places where the Rust project chats, there’s also a Zulip instance. No member or working group is mandated to use one over the other, it’s a free choice.

                                                                                      For the Rust project, we had 2 very important points:

                                                                                      • Good mobile support (we use our chat e.g. for sync at events like our all-hands)
                                                                                      • Good moderation support and documentation (and antispam-support)

                                                                                      We tried almost all options under the sun. Slack is out, because it has no moderation support. Multiple products just didn’t deliver messages. Gitter has the tendency to just hang until you reload it. Matrix was unfinished, it has now gotten better.

                                                                                      Discord has pretty good features for managing large communites, e.g. slow mode, where people are only allowed to send messages very slowly and are blocked for a certain time between messages. This is very nice when someone tries to brigade you.

                                                                                      Still, if we were to decided today, the decision might be very different, but back then, practically speaking, Discord was far ahead of any other.

                                                                                      1. 8

                                                                                        I’m told that Gitea uses it, and so does the file archive the-eye.

                                                                                        It’s growing in popularity, which is why I wrote this post.

                                                                                        1. 5

                                                                                          if you are participating in the use of slack for free software projects, you are accepting it and therefore acknowledging it as acceptable in a sense.

                                                                                          1. 2

                                                                                            I’m not defending our use of Slack. My point is that, a) with projects like ReasonML, FRR etc., as a user, my choice is use Discord or Slack or not participate in that community at all b) and worst of all, it’s not always evil/stupid maintainers forcing users to use those proprietary products, but users forcing them to move away from free and open options. The saddest part for me was to see people flock to the Slack channel, most of those were people who were never on the IRC.

                                                                                            1. 3

                                                                                              it looks like ReasonML has a discourse forum (shitty but at least it’s free software), and FRR has a mailing list.

                                                                                            2. 2

                                                                                              Wildly incorrect. If the choice is “participate in open software” versus “don’t participate in open software”, there is an obvious right answer even if it does not 100% match your ideals.

                                                                                              1. 1

                                                                                                is that the choice though?

                                                                                                1. 4

                                                                                                  If there is an open source project that uses Discord, your choice is either use Discord or don’t participate in the community. Those are your only options.

                                                                                                  I guess after that choice you have a choice to just not participate at all or fork the project and hope enough people agree with you, but that’s a completely separate decision that still falls under the “don’t participate in the open source project” option.

                                                                                                  1. 3

                                                                                                    a project that uses Discord will also have a mailing list or some other more open platform, so i still think you are presenting a false choice.

                                                                                                    1. 1

                                                                                                      The project that caused me to write TFA has a Google Groups mailing list (phone number required for Google Account to join) that ~none of the members are subscribed to.

                                                                                                      These days, email has fallen out of fashion. I’m not sure why.

                                                                                                      1. 1

                                                                                                        which project?

                                                                                          1. -1

                                                                                            Discord is also full of white supremacists, and a lot of people would rather not use it because of that.

                                                                                            1. 9

                                                                                              Do you really believe that? Do you really buy into the neo-nazi hysteria that much?

                                                                                              The same could be said about most platforms out there.

                                                                                              1. 5

                                                                                                There are SOME extremist activity in most platforms, but some like Reddit and Discord have more content and had been used for organizing efforts of these groups. Security Analysts and OSINT people keep an eye on discord, because there is a higher amount of relevant extremist activity there than in most open platforms.

                                                                                                1. 4

                                                                                                  Is that more than their size would indicate? I’d assume large platforms like reddit and discord to have a lot of… well, everything. I certainly haven’t noticed it being worse than facebook or twitter.

                                                                                                  1. 1

                                                                                                    Is Discord centrally moderated like Reddit is?

                                                                                                    1. 3

                                                                                                      Reddit is the closest analogy, yes. There are local moderators but the platform is the ultimate arbiter.

                                                                                              1. 31

                                                                                                This is a constant language problem on HN and I see it here sometimes too… define the word “developer”. Alternatively define the word “professional”.

                                                                                                Is it possible to use FreeBSD for a developer machine? Yes, if your definition lines up with the software available for FreeBSD. Otherwise no. You need to define developer first.

                                                                                                Same argument as “is the 2019 MacBook Pro (or Mac Pro) a real professional machine?” Yes, if you are a professional and your needs line up with the capabilities of that machine. Otherwise no.

                                                                                                But those terms are so broad that there cannot be one single answer. Yet that doesn’t stop people from arguing about it.

                                                                                                1. 6

                                                                                                  Precisely this. There are many different ways to be a “developer” and some of them are easy on FreeBSD and some are impossible. Personally, as I spend most of my time in Emacs or Jupyter notebooks, it would work great for me. When I was doing CUDA development, or writing complicated media transformation pipeline using QuickTime, it was a no-go.

                                                                                                  1. 3

                                                                                                    Headlines are going to be like this. If you want specific definitions of every word in a headline, maybe we should increase the Lobste.rs headline character limit. If the author doesn’t address the headline in the article, I could understand your complaint, but in this case it’s well addressed.

                                                                                                    1. 4

                                                                                                      The article goes into detail about which development activities work well and which do not. This comment seems like needless nitpicking to me.

                                                                                                      I’m pretty disappointed this comment has more upvotes than the thoughtful, interesting, and informative article. What the heck is going on with Lobste.rs?

                                                                                                      1. 1

                                                                                                        Yes. I guess people online just want to argue about something, and the ambiguous definition of “developer” makes it “fun”.

                                                                                                        In all seriousness, the only thing I found that is completely impossible is CUDA on FreeBSD, but I guess this is not part of OP’s “developer” from what he said in replying another comment here. Does it prevent me from using FreeBSD? No. I just sshfs v100: /n/v100 and ssh v100 make run.

                                                                                                      1. 41

                                                                                                        I use the latest normal iPhone, upgraded on T-Mobile’s JUMP! program every year. I have way too much to worry about in my life to spend any amount of brain cells on something as silly as a smartphone. I don’t want root, I don’t want customization, I don’t want software update headaches, I certainly don’t want to download a ROM from some random person on a forum, and I don’t want to worry about compatibility. I just want a dumb appliance that works exactly as it was intended by the manufacturer, is reasonably secure and privacy-focused by mainstream standards, and gets out of my way.

                                                                                                        I never have to wonder what my next phone will be, or what ecosystem is better, or when I’ll get the latest software (or from where). I know that basically any mainstream application will work and has been spot-checked by a human to make sure it does what it says, which gives me reasonable security to download and try out any app I find interesting.

                                                                                                        The amount of cognitive overhead I freed up when I switched from Android to iPhone was astounding. It’s just a phone, I don’t ever want to think about it. I just want it to work and then get out of my way.

                                                                                                        1. 25

                                                                                                          To be fair, I find it hilarious that every browser includes the “Mozilla” string in its user agent, dating from the late 90’s. As much as it pains me to say it, Google may be right here: the header is at best vestigial.

                                                                                                          1. 2

                                                                                                            I think it is weird that they still do; does anyone bother checking that part when sniffing anymore? I’d be surprised if anyone has for the last fifteen years.

                                                                                                            1. 2

                                                                                                              I know there are webmasters that use its presence to distinguish between bots (which typically don’t have it) and browsers (which usually do). It’s a heuristic, but it’s actually really good.

                                                                                                              1. 4

                                                                                                                I had to change my feed reader’s user-agent to lie because of this. It’s nonsensical, of course — RSS and Atom feeds are made for bots!

                                                                                                                1. 2

                                                                                                                  Looks like a configuration error from the Web server or app. Maybe they just tell Nginx or their app to deny anything which is not a browser, forgetting to handle special cases like RSS.

                                                                                                                  1. 1

                                                                                                                    Looking at the code it was actually a request to SquareSpace, and the poison seemed to be mention of “Twisted”. Best guess they are trying to ban Scrapy which uses Twisted internally.

                                                                                                                    I’ve also seen CDNs reject requests when the User-Agent string contains “python” or lacks “Mozilla”. I guess lying is just part of HTTP these days.

                                                                                                                2. 6

                                                                                                                  between polite bots and (browsers and evil bots) <3

                                                                                                                  1. 3

                                                                                                                    Perfect is the enemy of the good. Anyone might come into my house and rob me, but if someone knocks on my door and tells me they’re going to rob me, I’m still not going to let them in just because they asked permission.

                                                                                                                    1. 1

                                                                                                                      If they’ll say it in a certain way, and they will act in a certain way, you will be thankful for them for the opportunity for them to rob you.

                                                                                                                      Well, not you in particular, but people in general.

                                                                                                                  2. 1

                                                                                                                    indeed, but you don’t check for the Mozilla thing there!

                                                                                                                  3. 1

                                                                                                                    GitHub uses User Agent sniffing. I set my User Agent to “Firefox” (general.useragent.override) and some features on the site no longer work and GitHub complains that it doesn’t support old browsers.

                                                                                                                1. 5

                                                                                                                  How many more articles do we need that explains that the developers won’t be spending more time on Python 2 since the 1. of January and that their latest product won’t be published before April? I have a feeling that when this wave dies down, there will be a new set of articles explaining that yes, Python 2 is EOL and this is indeed the last release.

                                                                                                                  1. 2

                                                                                                                    except it is not. RHEL and derivatives will support python 2.7 well into the future

                                                                                                                    1. 2

                                                                                                                      Ubuntu has eliminated Python 2 and all dependent modules in 20.04.

                                                                                                                      RHEL is an extreme case. Yes, Python 2 will be supported for some time to come, but so will a host of other outdated bits and bobs.

                                                                                                                      FWIW I agree I don’t really see the point of this article. Just ask the question of anyone on the release team and eliminate your confusion :)

                                                                                                                      1. 1

                                                                                                                        Ubuntu 18.04 LTS is EOL in April 2023, which is over 3 years away. So there are at least two major distros who will continue supporting python2..

                                                                                                                        1. 0

                                                                                                                          And HP still supports OpenVMS. My point is that current Linux distros are dropping Python 2.

                                                                                                                          Does that mean it will vanish off the face of the earth forever on some magic date? No.

                                                                                                                          Does it create downward pressure that has already caused library authors to drop Python 2 compat? Yes.

                                                                                                                          Does it mean that Enterprise will SOON begin to feel said downward pressure and likely already has started thinking about a migration path? Also yes.

                                                                                                                          So, we can pick nits all day long, but ultimately this transition is a thing and it’s in motion. The vanguard has long since moved, and yes now the long tail needs to catch up. It will. Nothing new under the sun here, the same thing has happened with every piece of software ever.

                                                                                                                    2. 1

                                                                                                                      This is actually the first I’ve heard of it. It does seem weird that support has already ended but they’re still releasing one more version. There has been a pretty active discussion around this release being unnecessarily confusing (https://discuss.python.org/t/petition-abandon-plans-to-ship-a-2-7-18-in-april/2946)

                                                                                                                      It’s a similar situation to Microsoft supporting Windows XP long past it’s original EOL date, which made people and companies more comfortable with not migrating and ultimately made the world slightly worse from a security standpoint.

                                                                                                                      The migration to Python 3 has been ongoing for what, 10 years now? And we’ve finally gotten the world sold on a real EOL for Python 2. And then four months later, another update drops for Python 2, and the naysayers have the opportunity to say “See? We don’t need to migrate!”

                                                                                                                      If they really wanted the EOL date to coincide with Pycon 2020, that’s the date that should have been communicated. Releasing a version four months after you say you’re done supporting it is just asking for trouble in what has already been 10 years of trouble.

                                                                                                                    1. 2

                                                                                                                      The reason I still create native apps and have never made a PWA is listed in the “how to install” section. It’s not a complicated set of instructions but it’s different from installing any other app. In fact on iOS you can just add a one-line meta tag to your site that puts a banner at the top encouraging people to download the app with just two taps.

                                                                                                                      Apple doesn’t take PWAs seriously and users don’t know about PWAs. Hopefully that will change but for now it’s a far worse experience for a business than creating a native app.

                                                                                                                      1. 4

                                                                                                                        So the modern web is comprised of Facebook, Twitter, and Medium. Got it.

                                                                                                                        1. 6

                                                                                                                          That’s my problem with all these “the modern web sucks” articles. The web of the 90s and 2000s is still not only possible to create, it still exists. Sure, you give up Facebook and Twitter and Javascript and React but if you hate those things that should be easy.

                                                                                                                          If you give up all the things that make the modern web suck, you get the web you want. The only downside is you’ve just given up the things that make the modern web… well, modern.