1. 1

    I hadn’t realized there was an 8GB Pi 4 – the announcement post notes the SoC could support up to 16GB, and the limit is how much they can get in a single package. An 8GB option for the keyboard-shaped Pi 400 (for a few more bucks, of course) would be interesting too.

    1. 2

      I’ve had an 8 GB version since spring/summer at least and it’s a wonderful cheap low-power Linux box for a variety of development duties and experiments. Main downside is that it absolutely needs a decent heat sink if you’re doing anything CPU-intensive or else the CPU speed gets throttled.

    1. 1

      Unrelated to the news, but LWN content is nearly impossible to read on a phone…very annoying

      1. 4

        I think is mostly because it’s an email. Otherwise, that’s usually OK (not great).

        I wonder if they would accept help to fix that.

        1. 3

          I think it’d be hard trying to intelligently format a 72-column fixed plain text email into something that isn’t a VT100. It’d probably be easier if it was rich text (or at least designed to reflow) in the first place.

        2. 2

          I’m using wallabag to bookmark the content and read on my phone, usually much later. I also think that lwm works ok with Firefox readability view.

          1. 1

            Thanks for the suggestion. I will give it a try although I’m using Firefox less frequently these days

          2. 1

            You can always switch to the desktop version.

            1. 1

              Not sure which phone you have but mine is able to display the original article just fine in horizontal mode. Or in either orientation with Firefox reader view.

            1. 15

              My experience with Bash is: “avoid it at any cost”. Unless you are writting very OS specific stuff, you should always avoid writting bash.

              Bash efficiency is a fallacy, it is never the case. Bash is sticky, it will stay with you until it transforms into a big black-hole of tech-debt. It should never be used in a real software project.

              After years of Bash dependency we realized that it was the biggest point of pain for old and new developers in the team. Right now Bash is not allowed and new patches introducing new lines of Bash need to delete more than what they introduce.

              Never use Bash, never learn to write Bash. Keep away from it.

              1. 4

                What do you use instead?

                1. 8

                  Python. Let me elaborate a little bit more.

                  We are a Docker/Kubernetes shop, we started building containers with the usual, docker build/tag/push, plus a test in between. We had 1 image, one shell script did the trick.

                  We added a new image, and the previous one gained a parameter which existed in a JSON file which was captured using jq (first dependency added). Now we had a loop with 2 images being built tested and pushed.

                  We added 1 stage: “release”. Docker now had build tag push, test, tag push (to release). And we added another image, the previous images gained more parameters, something was curled from the public internet, the response piped into jq. A version docker build-arg was added to all of the images, this version was some sort of git describe.

                  2 years later, the image building and testing process was a disaster. Impossible to maintain, all errors captured after the images were released, the logic to build the ~10 different image types were spread into multiple shell scripts, CI environment definitions, docker build-args. The images required very strict order of operations to build: first run script build then run script x then tag something… etc.

                  Worst of all, we had this environment almost completely replicated to be able to build images locally (when building something in your own workstation) and remotely in the CI environment.

                  Right before the collapse, I requested to management 5 weeks to fix this monstrosity.

                  1. I captured all the logic required to build the images (mostly parameters needed)
                  2. I built a multi-stage process that would do different kind of tasks with images (build, tag, push)
                  3. I added a Dockerfile template mechanism (based on jinja2 templates)
                  4. Wrote definitions (a pipeline) of the process or lifecycle of an image. This would allow us to say, “for image x, build it, push it into this repo” or “for this image, in this repo, copy it into this other repo”
                  5. I added multiple builder implementations: the base one is Docker, but you can also use Podman and I’m planning on adding Kaniko support soon.
                  6. I added parallelized builds using multi-processing primitives.

                  I did this in Python 3.7 in just a few weeks. The most difficult part was to migrate the old tightly coupled shell-scripting based solution to the new one. Once this migration was done we had:

                  1. The logic to build each image was defined in an inventory file (yaml, not great, but not awfull)
                  2. If anything needs to be changed, it can be changed on a “description file”, not in shell scripts
                  3. The same process can be run locally and in the CI environment, everything can be tested
                  4. I added plenty of unit tests to the Python codebase. Monkeypatching is crucial to test when you have things like docker build in the middle, although this can be fixed by running test using the noop builder implementation.
                  5. Modularized the codebase: parts of the generic image process pipeline are confined to its own Python modules. Everything that’s application dependant lives on our repo, and uses the other modules we build. We expect those Python modules to be reused in future projects.
                  6. It is not intimidating to make changes, people are confident about the impact of their changes, meaning that they feel encouraged to make changes, improving productivity**

                  Anyway, none of this could be achieved by using Bash, I’m pretty sure about it.

                  1. 13

                    It sounds to me like your image pipeline was garbage, not the tool used to build it.

                    I’ve been writing tools in bash for decades, and all of them still run just fine. Can’t say the same for all the python code, now that version 2 is officially eol.

                    1. 3

                      bash 3 broke a load of bash 2 scripts. This was long enough ago that it’s been largely forgotten.

                      1. 1

                        I agree with you, the image pipeline was garbage, and that was our responsibility of course. We can write the same garbage in Python no doubt.

                        Bash however, does not encourage proper software engineering, definitely, and it makes software impossible to maintain.

                  2. 1

                    I can confirm this. I’ve had to replace a whole buildsystem made in bash with cmake roughly 2 years ago and bash still contaminates many places it should not be involved in with zero tests.

                  1. 25

                    Negatively: Drinking when I got stressed. Now I drink all the time, to the point where it’s an unreasonable portion of my outgoing expenditure and I’ll usually pour myself something to take the edge off before standup. If I could offer any advice to anyone reading; please only drink alcohol during fun, social occasions.

                    1. 9

                      When I was a cable guy, the only outlet I had was drinking. 4 out of 5 mornings I had a hangover, was still buzzed, or even drunk. My (horrible, universally hated) boss reprimanded me for it multiple times a month. The only thing that stopped me was quitting that job in June.

                      With some help, (a week in the hospital and a lung injury) I’ve also quit smoking cigarettes and avoid nicotine. I now have a very nice and infinitely more affordable green tea habit.

                      I drink still, avoid keeping liqour around, and ceased my habit of staying drunk or getting shitfaced regularly. Stress kills, folks.

                      1. 5

                        Thanks for sharing. I think avoiding keeping liquor around is a good point I hadn’t really considered, by now it’s part of the furniture. Maybe I’ll give my liquor shelf to my parents.

                      2. 11

                        A relative taught me these rules when I was a kid:

                        • Never drink on an empty stomach.
                        • Never drink alone.
                        • Drink for the taste, not for the effect.

                        Works for me.

                        1. 6

                          I’ve heard these rules a couple of times, and, to me, they always sound patronizing. It feels on par with telling an addict to “just stop”. How can the advice work when you want to drink on an empty stomach, alone, and for the effect, and it’s out of your control?

                          1. 16

                            These aren’t guidelines for an alcoholic, they’re guidelines to prevent one from becoming an alcoholic.

                            1. 9

                              Sorry, I realized my first comment was a little intense.

                              I understand this. I just don’t think they very good guidelines – they’re more of a description of “patterns of people who aren’t alcoholics”. I think what makes someone an alcoholic is a very complex, and often genetic thing. For some, these rules are essentially impossible to follow from the get-go. Additionally, someone can choose to break all these rules all the time, and still not become an alcoholic.

                              1. 2

                                I get your point, but if it’s genetic, then a list of rules won’t make a difference one way or the other.

                      1. 1

                        After the click-baity title I expected something slightly more interesting and more numerous. It was about a single meaning, not a myriad of meanings:

                        A command named pwd (also having a shell builtin of same name for performance reasons.

                        I expected to learn of new things under the same name, to get useful knowledge of possible pitfalls where having a preconception of what PWD would represent would cause me trouble.

                        1. 4

                          I agree. I don’t like to poo-poo other people’s work in general but I’m not sure I can think of a reason it matters whether the p in pwd means “print” or “present”, or why one would want to lobby for one or the other since they are, at a very practical level, exactly thee same thing.

                          If I was going to lobby for one or the other, it makes more sense to default to “print” since early Unix terminals were literally teletype machines. As a result, both C and Unix have long used the very “print” to mean display, present, echo, show (or any other synonym you care to think of) data to the user or stdout/stderr.

                          But I guess the thing that disappointed me the most was the author’s attempt to discredit the Wikipedia source by quoting the man page. The article says “there are actually zero references to pwd being short for ‘print working directory’” and yet right there in the screenshot the man page literally says, “prints the pathname of the working (current) directory”. Yes, you have to remove an “of” and a couple of “the’s” but it says so right there!

                          1. 2

                            (Author here) - Oh dear, that’s not good, sorry to have disappointed you. But while you aren’t sure you can think of a reason it matters enough to write a little post about it … I could think of one - my growing fascination with Unix history and how things grow, merge, and fork. And so I wrote it. Moreover, I wasn’t lobbying for one or the other, as you can see from the content of the post.

                            Regarding your last point, I guess it’s down to how literally one interprets the written word. For me, if one is “looking for” evidence that it means “print working directory”, one can find it indirectly in the man page. But I was looking for something concrete and explicit (hence the quotes), and it wasn’t there.

                            Anyway, I still think it’s an interesting topic, but I know that not everyone will agree, and that’s more than OK. Thanks!

                          2. 2

                            (Author here) - I’m sorry you considered the title “click-baity”, that wasn’t my intention at all. Perhaps the use of “myriad” was a little extreme, but I thought having at least 4 potential meanings for such a “lowly” command as pwd warranted at least some adjective, and I decided to allow myself some breadth in expression.

                          1. 2

                            I really want to run Fedora but 25 years of dpkg & apt are hard to get over. Maybe I’ll try it again when I next get a new laptop. But I’m just so comfortable on Debian…

                            1. 2

                              I just switched this year, after a few years of debian. It’s probably not the same experience, but for basic things, dnf is practically equivalent to apt. My personal intuition is that it might not be worth it, unless you’re also interested in GNOME (strictly speaking, the Fedora spins aren’t real Fedora releases, and usually aren’t as polished).

                              1. 3

                                the Fedora spins aren’t real Fedora releases, and usually aren’t as polished

                                I concur with this sentiment. I’m pretty steeped in the Red Hat universe for some time, so I really like Fedora on the systems I have to touch most. As an experiment, I tried the KDE spin for a year. It was OK, but had lots of paper cuts that the standard workstation edition just doesn’t have. They’re generally very minor, like needing to use the command line for firmware updates instead of getting alerted to them by the system tooling. Since I was mostly in KDE for kwin-tiling and a few other things that are much less integrated than that, I switched back to the standard workstation edition once Pop Shell shipped and got easy to integrate with the standard Fedora GNOME installation.

                                1. 3

                                  My personal intuition is that it might not be worth it, unless you’re also interested in GNOME

                                  To me, the most interesting subproject of Fedora, even though it may not be ready for wide use yet, is Silverblue. Having an immutable base system with atomic upgrades/rollbacks is really nice. This really sets it apart from other Linux distributions (outside NixOS/Guix). Sure, Ubuntu is trying to offer something similar by doing ZFS snapshots on APT operations, but that looks like another hack piled upon other hacks, rather than a proper re-engineering.

                                  1. 2

                                    Then again, I haven’t head good things about trying to use Silverblue with XFCE or other WMs.

                                  2. 2

                                    I like Debian and I’ll run it on servers but for desktop use, I want things to Just Work out of the box. My experience with Debian on the desktop is that you have to know all the packages you need in order to get the same out-of-the-box experience as Ubuntu or Fedora. At least, that’s what it was like when I tried Debian with XFCE.

                                    You might also be interested in PopOS and Linux Mint, both of which are based on Ubuntu but strip out most of the annoyances like snapd.

                                  3. 1

                                    A couple years ago I went through a distro jumping phase. Fedora worked fine but I didn’t find any particular advantages of running it over - say - running Ubuntu. The one thing setting it apart from other distros was Wayland as default.

                                    I ended up on Manjaro, and it’s been a breath of fresh air: most software is a click away (thanks AUR!), things just work out of the box and in general their configuration of Plasma and Gnome feel snappier than Fedora and Ubuntu.

                                    1. 2

                                      The one thing setting it apart from other distros was Wayland as default.

                                      The one thing setting Fedora apart from other distros is often getting bleeding edge stuff as default. Most of the times it works out super.

                                      1. 2

                                        You are not wrong. What I meant was on the ‘experience’ front. Most of the time - if I’m lucky and the hardware obliges - I don’t bother remembering what version of the kernel, Mesa, etc. I am using, so being on the bleeding edge doesn’t introduce a lot of advantages.

                                        BTW, the last time I tried Fedora was when Intel introduced their Iris driver and I wanted to see if it’d improve the sluggish performance I was experiencing on Gnome.

                                    2. 1

                                      I’d like to add that rpm command is similar to dpkg

                                      for example: dpkg -l > rpm -qa

                                    1. 2

                                      it occurs to me that for many of us infoslaves (i’m mostly kidding with that term), with the new normal of possibly being remote permanently, a desktop rig makes more sense right now for price/performance. unless you’re on a mac.

                                      1. 1

                                        My workplace only issues laptops to employees, the main reason being that most of us don’t want to be chained to our desks all day long. Being able to bring your laptop into a meeting is a huge advantage, and until recent events, lots of us would spend at least half the day working from random places in the building.

                                        I have a laptop at home that is docked most of the time but when I want to take it downstairs and work on the couch just to be in the same room as my wife, then I’m very happy to have it.

                                        Desktops have always been cheaper price/performance wise. But they also take up more space, consume more power, and are generally louder. (This doesn’t hold for small form-factor boxes, but those tend to be priced similarly to laptops.)

                                        unless you’re on a mac.

                                        In which case we assume price was never much of a factor ;)

                                        1. 1

                                          Yep - that’s my experience. My desktop has more ram and less thermal throttling than a similar price laptop. When I don’t need portability (and that has been the case for some months and will be so for some more), it’s a huge win.

                                        1. 4

                                          This seems to be desktop vs laptop? I’ve never understood why anyone buys a laptop to put on a desk, plug into the wall, and leave there 98% of the time. It’s just a more expensive and less flexible desktop at that point.

                                          1. 3

                                            I’ve had that setup a few times. Usually for minimalism purposes - if I don’t need the computational power of a desktop, a single laptop (+ charger) makes for less clutter. And it’s still good that 2% of the time you want to take it somewhere, you can do so easily (without owning a desktop + laptop).

                                            1. 2

                                              I don’t think many people with a laptop have it plugged in or docked 98% of the time. For those that do, maybe it’s extremely valuable to have a laptop for that other 2% of the time.

                                              My laptop is docked at my desk all day but when I go on a trip, I just grab the thing, I don’t have to worry about whether my work is copied over to it or pushed up into the cloud. I’m not a gamer or a bitcoin miner so I don’t need a ridiculous CPU or GPU, or water cooling, or colored case lights come to think of it.

                                              My last “desktop” computer currently sits unplugged under my desk. I haven’t gotten rid of it because it makes an excellent foot rest.

                                              1. 1

                                                I took my laptop home from the office when on call. Barring that work requirement, I’d happily live without a laptop these days.

                                              1. 6

                                                ergonomics is another reason to use desktop computers, if you actually care about looking at a monitor at the correct height and typing on an input device that won’t kill your wrists, desktops make a lot more sense. The laptops I use at work are just really crappy portable desktops, at least, how I use them.

                                                1. 4

                                                  Yeah, due to my history w/ RSI, using a laptop for any extended duration (> 2 hours or so) is really not viable. When you give up the goal of “mobile computing” it really stops making sense having a laptop. I have one that I bring with me on work trips and whatnot (granted, those won’t be happening for a while). My desktop was cheap to build, is incredibly powerful (which is great when working in compiled environments), upgradeable at actual consumer prices. As you mentioned, I also invested in building a desktop that is ergonomic and comfortable. The whole thing was (desktop, peripherals, monitor, desk) was less than the price of a premium Macbook.

                                                  I think laptops are great and have an important place for a majority of users, but it’s worth raising that the alternatives are real and viable.

                                                  1. 2

                                                    Most laptops have a way to plug in an external monitor, keyboard, and mouse. Then your desktop computer and your portable computer are the same thing.

                                                    In fact, despite being a computer nerd, I decided years ago that I would probably not buy another desktop computer. The take up too much space, they are loud, power-hungry, space heaters and can’t be easily shoved into a backpack in one second. The only thing that would have kept me from moving in this direction is the expandability of the typical tower. But these days, practically all accessories are USB. And I’m not a gamer or bitcoin miner, so I don’t need a high-end CPU or GPU with liquid cooling.

                                                  1. 5

                                                    I don’t understand why the author styled this site so that the text is ABSOLUTELY GINORMOUS. This makes it very hard to read. Thankfully browsers these days (for now) still allow users to adjust this relatively easily.

                                                    But aside from that, my impression is that the author doesn’t seem to understand what UEFI is. I mean, it has its problems (the main one being that it’s not much of a spec when pretty much all of it is optional) but its light-years better than the legacy IBM PC BIOS from the 8088 days that’s at least two decades past retirement. All modern OSes can deal with UEFI, Linux better than most. It doesn’t limit what you can do with your computer.

                                                    And if the author thinks UEFI isn’t already the norm outside the laptop form-factor, he’s in for a rude surprise…

                                                    1. 26

                                                      My site’s at https://jacky.wtf - definitely curious.

                                                      1. 7

                                                        Linux/Desktop (1920x1080, 16:9)/Chromium with uBlock

                                                        When I first open the site, I find it a bit hard to orient myself. Parts of the site fill the entire screen (“I stand in solidarity with …”), others are centerd (the header, the second and third paragraph), while the bottom is right-aligned. And the footer is a bit hard to identify. The varying font-sizes is hard to follow.

                                                        Also, at least on my screen, the picture of you (I assume) is cut in the middle, but that’s unavoidable.

                                                        The Blog and Posts pages are easer to grasp, but appear a bit too narrow on my screen. Maybe just using 1/4-1/5 of the horizontal screen space.

                                                        1. 21

                                                          I dislike political stuff so I closed the tab right after the font loaded, which took about five seconds (4g, Netherlands).

                                                          1. 37

                                                            Since you brought it up, this seems appropriate.

                                                            1. 3

                                                              I can think of plenty of valid reasons besides this to avoid politics, from it being a trigger to just unpleasant for other reasons, and assuming this of the commenter is just uncharitable.

                                                              1. 15

                                                                just unpleasant

                                                                That’s pretty much the same reason as called out by the tweet, it’s “just” unpleasant and not something that affects your life.

                                                                assuming this of the commenter is just uncharitable

                                                                It’s fine to not get involved in things (because it eats away at your attention span or distracts you from the good you could actually do over doomscrolling, something about mental/personal health, or a million other reasons) but what I usually found missing in people who invoke this “I don’t try to get involved” phrase is earnest reflection over the why (Is it protection or just laziness?) and the consequences of them not getting involved (what if the majority of people try to stay away from politics?)

                                                                1. 12

                                                                  The first blog-post of the person is “I enforced the AGPL on my code, here’s how it went”. So it’s more of a “I don’t care about your politics, but F/OSS politics is completely fine!”. I think it’s a completely charitable interpretation of the comment.

                                                                2. 3

                                                                  In the context of user-generated online content like comments sections, forums, or social media, “politics” is a euphemism for unproductive arguments about controversial subjects. In communities dedicated to a specific topic or purpose, political discussion tends to distract, disrupt, and divide the community. Which is why any healthy online community typically has rules against off-topic content.

                                                                  I completely understand the desire to get one’s own beliefs across to a larger audience but no one has ever been swayed by a flame war, which is what 99% of all political discussions devolve into. Politics are usually a waste of everyone’s time–the participants, the readers, and the community moderators.

                                                                  I would posit that those who seem to be the most passionate about their chosen political cause online are being the least effective at making whatever change they wish to see in society. Whatever time you spend proselytizing your beliefs online is time not being spent taking real-world action. (And no, “spreading awareness” is not taking real-world action. And neither does retweeting, while we’re at it.) This may include volunteering for (or starting) a non-profit, donating your money to organizations supporting your cause, writing a book with good science and well-reasoned points, or speaking directly with political leaders who have the power to change whatever it is you want to change.

                                                                  It is fine to have strong personal beliefs. But habitually arguing against others is very bad for mental health in a variety of ways. The more time you spend espousing and defending your personal views, the less receptive you become to any potential evidence that your beliefs may not have as much merit as you thought. You become less in tune to the subtleties of reality–nearly all social problems are shades of gray, we only see them in black and white because it feels cleaner that way, even though it creates a useless mental model of the world. Even worse, you start to categorize others around you as either with you or against you and your relationships with friends and family who may (or even may not) agree with your beliefs will suffer. Ask me how I know.

                                                                  Source: I have been a member of varied and numerous Internet communities since 1996.

                                                                  1. 2


                                                                    1. 1

                                                                      That’s his site, it’s not like he’s got it as a kind of forum signature below each of his posts here. You’re completely overblowing the “aggressiveness” (for lack of a better word) with which Jacky presents his opinions, and at the same time incite a flamewar yourself with your “there’s always two sides to the story” like seeing everything in one color (gray) is any saner of a mental model than seeing it in two colors (black/white). And if you feel like correcting my words from “gray” to “shades of gray” reconsider whether it really does make any difference at all for the things you do, and also if you’re perhaps a bit too proud of your analysis paralysis. Not that I’d disagree that arguing on the internet is a waste of time, but you and me end up doing it anyway regardless of our ideological differences, and your argument goes way beyond that too.

                                                                3. 4

                                                                  I like the simplicity of the design.

                                                                  I like the call to action items at the bottom.

                                                                  In mobile Firefox Android there is a left/right scroll which seems unintentional.

                                                                  1. 2

                                                                    I like yours a lot. I think on mobile the blog posts page looks a little bit funny because of relative font sizing though.

                                                                    1. 2

                                                                      Yeah, I definitely need to fix that - thank you!

                                                                    2. 2

                                                                      I think your main page would benefit from some margins around the center. Activism seems to be a main theme (which is fine, but probably not what tech enthusiasts and prospective employers are interested in – it might be a problem for some but you probably realized this and decided that if it is a problem you probably don’t want them on your site anyway). The ‘posts’ link doesn’t work for me, it links to https://v2.jacky.wtf/stream. High contrast is a bit much.

                                                                      1. 1

                                                                        The blue on black links at the top (“Streaming Schedule – Blog – Posts – Library”) are rather hard to read for me; actually I missed them first time ‘round. Personally I’d make them a different colour and/or larger.

                                                                        1. 1

                                                                          Scroll is a bit broken on iOS/Safari but a lot of websites are also affected by this minor issue. Users can deal with it.

                                                                          (In fact the issue comes from the PGP key in the footer: it doesn’t break on narrow displays)

                                                                          1. 1

                                                                            Too many style shifts?

                                                                            I opened your link and saw really big font. Then I clicked on “blog” which led to small font and grey background. Then pressed on one of the titles and saw a “medium” style article.

                                                                            1. 1

                                                                              I think that it might be more helpful if you explain to visitors who you are first and the things you support second. It will help support your political views and endorsements that way round better too I think.

                                                                              1. 1

                                                                                I have useless horizontal screen on safari/iOS 13.

                                                                                1. 1


                                                                                2. 1

                                                                                  I’m curious, do you usually/often/at all have browsers open in fullscreen?

                                                                                  I often have and while lobste.rs has too much whitespace on the sides on this 27”, it’s fine. But when I open your website, it’s very much flowing across the whole screen - and when the fold goes from black to white background.. that’s a little stark. When I 50/50 split (which I often do, it’s completely fine)

                                                                                  1. 1

                                                                                    I actually never put any Web browser window explicitly in fullscreen (a productivity hack for me). I can def make that color change!

                                                                                    1. 2

                                                                                      I feel it depends a little on which machine I am on, interestingly - but I often have JIRA open in fullscreen and I happened to stumble upon this thread in my lunch break, so the browser was in work mode.

                                                                                      I don’t think it’s a huge thing because most people probably don’t run a website fullscreen on 2560x - but I sometimes do…

                                                                                  2. 1

                                                                                    It’s a bit weird on mobile. Generally looks pretty nice though.

                                                                                    Bit of a style clash between the top half of the page and the bottom half though.

                                                                                    P.S. I just gotta say I appreciate the banner at the top. But it seemed a little odd it required me to enable JS for it to show up.

                                                                                    1. 2

                                                                                      Yeah, I have to switch it up for mobile.

                                                                                    2. 1

                                                                                      I swear I saw your site posted somewhere else within the last week.

                                                                                      1. 1

                                                                                        That’s wild, lol.

                                                                                    1. 14

                                                                                      Nobody else is going to mention how incomprehensively idiotic it is that browsers allow JavaScript to fuck with the OS clipboard like this?

                                                                                      1. 5

                                                                                        I don’t find it incomprehensively idiotic to allow a whole class of web applications to be possible. Any native app can “fuck with the OS clipboard” like this, so this theoretical attack can come from anywhere. Shells should (and, in some cases, seem to) be smart enough to not auto-execute on paste, without the user’s confirmation or permission.

                                                                                        The web is a relatively secure runtime for a lot of software that covers a lot of real needs for a lot of people.

                                                                                        1. 5

                                                                                          incomprehensively idiotic

                                                                                          That seems a bit unnecessarily inflammatory. “Click here to copy this text” is a feature that tons of people use and enjoy.

                                                                                        1. 3

                                                                                          I like bash and use it daily, even though I know there are other more fully-featured bourne-ish shells out there.

                                                                                          However, when I have a trivial script to write, or something that I think will have to run on multiple operating systems, I try to write in /bin/sh in an effort to be kind to my future self and others who might have to maintain what I wrote.

                                                                                          Part of a cross-platform build system is exactly the right place to be using /bin/sh. If any of the build script would materially benefit from bashisms, it would imply to me that it is something best implemented in the “main” build system logic (make, or whatever Go uses).

                                                                                          1. 2

                                                                                            I’m genuinely curious about this approach. Isn’t bash ported and running on so many systems, that it is practically unavoidable? In addition, isn’t its package quite small? In other words, that is it that one can gain in writing something in /bin/sh, that is sometimes implemented differently in different OSes?

                                                                                            1. 2

                                                                                              Bash is very portable, yes, but it isn’t installed by default on all unix-likes and derivatives, especially BSDs (like OpenBSD) commercial Unices (like AIX) or specialized Linux distributions that might only have busybox for example. These days, /bin/sh is the lowest common denominator Unix shell. (Although if you go back far enough, that wasn’t always the case.)

                                                                                              Bash is lightweight by today’s standards but is still an order of magnitude larger than, say, dash, even before you consider that bash pulls in a couple additional dynamically linked libraries as well:

                                                                                              $ ls -l /bin/bash
                                                                                              -rwxr-xr-x 1 root root 1,183,448 Jun 18 11:44 /bin/bash*
                                                                                              $ ls -l /bin/dash
                                                                                              -rwxr-xr-x 1 root root 129,816 Jul 18  2019 /bin/dash*

                                                                                              For trivial scripts, interactive use, and one-off things, the difference is usually completely negligible but Debian and Ubuntu switched to dash as the default system shell more than a decade ago because doing so provided a relatively cheap speedup on boot and other times shell scripts are called often, such as cron jobs: https://lists.debian.org/debian-release/2007/07/msg00027.html

                                                                                          1. 8

                                                                                            I’m a simple man: I see Mickens, I upvote.

                                                                                            1. 1

                                                                                              In my fantasy timeline I am returning education student and Micken’s is my advisor. Instead I put on a funny hat and sing The Micken’s Internet Fanclub Theme Song to myself.

                                                                                            1. 1

                                                                                              I used a self-hosted instance of Dokuwiki for about 10 years. It definitely owed me nothing but earlier this year I went on a hunt for a replacement because I wanted something that was:

                                                                                              • just as lightweight as dokuwiki
                                                                                              • supported an editor that offered:
                                                                                                • an editing area that takes up the whole browser window, instead of a little textarea
                                                                                                • markdown wiki syntax
                                                                                                • syntax highlighting
                                                                                              • just a wiki, did not try to impose someone else’s note-taking structure on me
                                                                                              • written in a language I can grok (so no Javascript or Ruby, for example)

                                                                                              I couldn’t find anything that fit the bill, so I wrote my own last spring. It’s been working amazing so far.

                                                                                              1. 2

                                                                                                A helpful and thorough exploration of some useful SSH options–including ProxyJump, which I was not aware of.

                                                                                                It is hosted on the blog of a company who has products built in this space, but without a nice CTA in the article and with enough info it’s kinda useful. As always, please flag aggressively if you find it to be content marketing.

                                                                                                1. 5

                                                                                                  Given that keys are largely antiquated

                                                                                                  … is something of a hot take!

                                                                                                  1. 1

                                                                                                    Yes, had a good snort when I read that. I think the author must have meant manual management of keys or something.

                                                                                                    SSH certs are terrific but they are not suitable for every single environment.

                                                                                                  2. 1

                                                                                                    We had to use this at the university to access our VSphere box.

                                                                                                    Host 192.168.11.*
                                                                                                        ProxyJump      bastion
                                                                                                        User           ubuntu
                                                                                                        IdentityFile   ~/.ssh/bastion
                                                                                                    Host eb2-32*** bastion
                                                                                                        Hostname       eb2-***
                                                                                                        Port           ***
                                                                                                        User           ubuntu
                                                                                                        IdentityFile   playbooks/keys/dockerize-test-harness

                                                                                                    One thing I found useful is if you didn’t want to spam your local ~/.ssh/config with this sort of stuff, you can pass this to ssh with the -F option:

                                                                                                    ssh -F ssh.vsphere
                                                                                                  1. 2

                                                                                                    Or better yet, use ECC memory if you can afford it. (And if you’re a company, you can’t afford not to.)

                                                                                                    1. 22

                                                                                                      I’m not sure this point:

                                                                                                      It’s the final form of progression towards maximizing the power and visibility of extensions, making it immune to being leapfrogged by a new text editor with a more capable extension model.

                                                                                                      is such a guarantee to longevity simply by making VS Code “immune to being leapfrogged by a new text editor” :). The author does mention Emacs in their post. It’s been arguably leapfrogged by a bunch of other editors and I don’t know why they think VS Code qualifies as “the final form of progression towards maximizing the power and visibility of extensions”, when Emacs is basically a Lisp interpreter that just happens to ship with a text editor in the default image for some reason.

                                                                                                      Extensions aren’t a guarantee that an editor won’t get leapfrogged by others. Emacs has great support for extensions, but they’re written in (what today is) an obscure language and the technology around it (the Emacs equivalent of Electron, if you will) isn’t exactly easy to wrap your head around it in 2020.

                                                                                                      Languages and frameworks get obsolete all the time. If the hive mind moves to something else fifteen years from now, VS Code won’t fare much better than Emacs does (in fact, past history of open source corporate projects getting abandoned mostly teaches us that it will fare worse).

                                                                                                      (This is in no way specific to VS Code, although I will admit that VS Code’s success is very baffling to me. Years of exposure to embedded programming and bastardized Eclipse IDEs have made me pretty tolerant to these things and still I have no idea how its users manage to put up with VS Code’s latency, for example – I’ve seen remote ssh sessions over very respectable distances with less lag).

                                                                                                      (Later edit: also note that I’m saying all that stuff about Emacs with all the sympathy that I’m capable of: I’m using it today, I’ve used it for a very long time, and I’m pretty comfortable with Emacs Lisp!)

                                                                                                      1. 5

                                                                                                        I’m using VSCode primarily due to rust development. And I don’t see how it’s slow in any way. It’s still much faster than it takes for me to recompile my stuff ^^ And it’s still faster than eclipse..

                                                                                                        1. 6

                                                                                                          I don’t mean it’s slow in terms of “bandwidth” (e.g. how long it takes to open a settings window) – I mean it’s slow in terms of latency. Even on Windows, which I imagine is the platform where it sees the most testing and optimization, and on a pretty fast machine, there’s a very noticeable delay between the moment I press a key and the moment when the character shows up on the screen. On the one hand, I am a very fast typist (I easily get to 110-120 wpm on a good keyboard, and I do 120+ if I’m really trying). On the other hand, it’s ridiculous that I can get one character ahead of a local application! A 3 GHz machine with more VRAM than a thousand Amigas should be no match for puny human fingers!

                                                                                                          Last time I tried it on Linux it was way worse than that, I could get ahead of the cursor without even trying, but it was one of the pretty early versions and, okay, it’s Linux, I’m sure there’s some magical Electron setting that you can poke and it works fine afterwards.

                                                                                                          This is true of other aspects of the interface, but I guess it’s more understandable there (e.g. opening the “Settings” page results in some pretty visible effort that takes maybe half a second on a slow enough machine? Also, I have no idea how to disable that fading effect in menus and I really don’t understand why that is a thing…).

                                                                                                          1. 10

                                                                                                            As I get mildly annoyed every time someone mentions VS Code latency without any numbers (which is every time so far), I’ve went ahead and run some light latency benchmarks:


                                                                                                            1. 1

                                                                                                              Would it require significant effort for you to try that with mlterm or uxterm on the same system? Those are the current two champs for me both by feel and as measured using typometer some time ago.

                                                                                                              It won’t run with VSCode or with kitty on my current laptop setup, my Emacs times are far off yours for the worse and my jetbrains times are slightly off yours for the better. VSCode feels broadly comparable to emacs on this box, and I’d be curious to see another tool or two that we have in common.

                                                                                                              1. 2

                                                                                                                Tried mlterm, evil compsitor is disabled for the first row.

                                                                                                                min  max  avg  sd
                                                                                                                2.6  4.7  3.0  0.3
                                                                                                                17.7 31.1 25.6 1.8
                                                                                                                1. 1

                                                                                                                  Thank you. I think that further suggests it’s weird that my emacs setup has latency similar to VSCode and I should figure out why.

                                                                                                              2. 1

                                                                                                                I don’t have Java on this machine – I’ll try to get it later – but from what I recall, the numbers I used to get were definitely worse last time I tried it (1.5 years ago?). Typing lag was very frequently brought up in various forums when I was looking into VS Code back then. Maybe it’s been improved in the meantime.

                                                                                                                Reading around the interwebs, it also looks like some extensions can have an impact on typing latency. The Emacs keybindings extension I used (go figure) could have made those figures even worse.

                                                                                                              3. 1

                                                                                                                Anecdotally: I switched from plain Vim to VSCode (with the Vim plugin) a couple years ago as my main “code” editor on Linux. I’m on a pretty mediocre laptop and have never experienced any of the input lag that people talk about. But I also disable frilly things like the minimap, language helpers, and other things that get in the way of just typing text into a file.

                                                                                                                1. 1

                                                                                                                  I seriously looked into it as an alternative to Emacs, which I absolutely love, but I’m not sure will be as tenable to have as a main editor 10 years from now.

                                                                                                                  Unfortunately, while I could probably live without Emacs Lisp, Emacs keybindings are really not something I’m prepared to let go gratuitously. If VS Code did something that I really need, and Emacs can’t do, I would probably think about it, but right now it’s just not worth the extra effort.

                                                                                                            2. 3

                                                                                                              Naked whiggery. Kind of precious, really. Definitely to be expected for such a zeal-saturated topic as editor preference.

                                                                                                              1. 3

                                                                                                                The weird thing about writing this piece is that I tried to make it as objective as possible, but it’s inherently based on personal experience. I was there, I watched TextMate not be able to do auto-complete because its extension model wouldn’t support it, I watched Sublime Text gain more powerful extensions, but still struggle with making them easy to build and install, I watched the explosion of pent up energy around extensions when Atom hit the scene.

                                                                                                                At the end of the day your point is absolute right that my subject analysis isn’t proof anything, it’s just that, my subjective analysis. Happy to hear any suggestions about a better way to capture this story.

                                                                                                                1. 3

                                                                                                                  Oh hi! Wow! Welcome to Lobsters.

                                                                                                                  It’s a pretty good piece, really – considers lots of angles. I don’t really believe in objectivity, especially for such an inherently subjective, uh, subject. The major thing I see missing is some examination of Microsoft’s marketing and positioning within the open source community; especially after they bought GitHub (and thus Atom). The connection between VS Code and the long-established Visual Studio IDE may also be interesting. Also the reaction against VS Code by developers who are suspicious of all the telemetry and such. Somewhat contentious stuff, which might not really fit your purpose for the article.

                                                                                                                  This other recent story might be of interest too; it’s sort of an opposite perspective on the same topic.

                                                                                                                  1. 1

                                                                                                                    Yeah all of those are really interesting topics, but I don’t think they factor in to the main subject of the piece which is looking at VS Code’s popularity and unprecedented momentum. Perhaps the marketing does? But I don’t see much of an angle there, text editors have succeeded with minimal marketing (Sublime) and with a lot (Atom), do you think there’s something interesting to say about Microsoft’s role?

                                                                                                                    There’s also an interesting question there about why developers at large don’t really care about things like telemetry, or about what I call “corporate sponsored open source” (a subject I’ve also written about https://blog.robenkleene.com/2019/04/25/visual-studio-code-corporate-sponsored-open-source/ and in fact I came the opposite conclusion then from what I arrive at today).

                                                                                                                    I disagree with the conclusion of the Sublime Text piece, because I’ve lived through the stagnation of a text editor (TextMate), and it doesn’t really work. Expectations change.

                                                                                                                    1. 1

                                                                                                                      Around here you’ll find plenty of committed emacs and (neo)vim devotees who I guess are behind the curve on the expectations thing. And some kakoune or vis advocates off in left field, I suppose. My own anecdotal experiences:

                                                                                                                      • First laid eyes on Sublime when an old friend brought it home from Silly Valley on his first vacation from his big new job. I was like “what’s that about?” and he said, sheepishly, “about $60”. Later, it was the editor that everybody at my new job seemed to be using, so I hopped on, and grew to appreciate the feature set.
                                                                                                                      • When Atom came out, it was an obvious Sublime clone, but freeeee and heavily promoted by DVCS Central or whatever that giant site was called. The writing was on the wall; it’s hard to compete at the $0 price point. I tried it for a while, found it to be too slow with big files and generally lacking polish.
                                                                                                                      • Then when Microsoft got into the pop open source game, VS Code was an obvious an EEE play, and I know how good they are at that. I could tell they were spending tons of dev effort on it. Once they bought That Git Site, it was clear who was going to win. I tried for a little while it because of some extension I can’t recall, and wasted some effort trying to customize it, but it never stopped making me feel dirty, so I deleted it after a couple months. I’m sure it’s super slick by now, and the ecosystem is clearly thriving.

                                                                                                                      I guess it’s been a long time since I’ve believed that the success or failure of technologies is primarily driven by their technical merits and flaws. Sometimes a new niche opens up, and the first to market can dominate for a generation, stagnating all the while. I think marketing, historical path-dependence, and network effects can (and often do) outweigh the kinds of factors your piece is focused on.

                                                                                                                      1. 1

                                                                                                                        I was nodding my head along with your comment until this part: “I think marketing, historical path-dependence, and network effects can (and often do) outweigh the kinds of factors your piece is focused on.” If you think my piece doesn’t focus on “historical path-dependence, and network effects” than I’ve failed to communicate effectively in my piece, e.g., I’m trying to capture those points here:

                                                                                                                        Aggressive development pulls platforms away from the pack because the combination of forward momentum, and third parties building on the platform, is difficult to compete with. This is the same combination that makes it so hard for new entrants to compete with popular browsers or OSes.

                                                                                                                        (You’re right that I don’t talk about marketing though, as I explained earlier.)

                                                                                                                        With “driven by their technical merits and flaws”, I think you’re talking about the section on extensions? (I’m asking because I personally wouldn’t phrase it that way, e.g., I’d phrase less as whether the technologies are good or bad, and more about where the boundaries between the platform and the extensions exist. Perhaps that’s a subtle distinction, but mainly it’s about capabilities, and less about whether the technology is “good”.)

                                                                                                                        But with that said, I do want to tackle the idea of the merits of technology head on, because I think that’s an interesting topic. I think a ton of developers take relative technology comparisons where they don’t matter, like say, React vs. Vue, or Python vs. Ruby, and then extrapolate that to situations where they do matter. Here are some examples where I’d argue technology matters:

                                                                                                                        • Figma is a WebAssembly app. If technology never matters, then you’d have think an app like Figma could exist without WebAssembly?
                                                                                                                        • An explosion of web apps happened in the mid-2000s, along with the birth of a new, framework-driven, approach to web development using frameworks like Django and Ruby on Rails. To believe technology merits don’t matter, you’d have to believe that these frameworks weren’t necessary for this wave of apps to emerge?
                                                                                                                        • Nearly all media manipulation applications, from Blender to Photoshop to the GIMP, to more recent apps like the Affinity Suite and even Figma, are written in C and/or C++. If technology merits don’t matter, I guess there’s another explanation besides those technologies being a good fit for media manipulation applications?

                                                                                                                        The point is that sometimes the technical merits are important. My piece is making the argument that using web technologies for a text editor, and in particular expanding the capabilities of extensions, fall into the category of technology choices that matter (if you want to characterize expanding the capabilities and integration of extensions in that way, which like I said, I personally wouldn’t).

                                                                                                                        You could make a argument that they don’t matter in this case (and I’d love to hear reasoning if you believe that). But just blanket saying technology is never factor in the success or failure of a product, just isn’t backed by the evidence in my opinion.

                                                                                                                        1. 2

                                                                                                                          I don’t want to be misconstrued as saying that “technical” merits (ideas, features, ergonomics, “quality”) never matter, or even that they always matter less than “non-technical” factors. I’m just saying it’s a complex stew. When there’s healthy competition, the tug-of-war can go on indefinitely, with new players coming and going over time, and ultimately everybody benefits, at least on the consumer side. Maybe that’s what’s going on here with VS Code.

                                                                                                                          But it’s pretty easy to get out of that efficient-markets sweet spot, though, especially when talking about a placid and fairly unprofitable little niche that suddenly receives a massive influx of corporate “love” from some 800 pound gorilla with fingers in all the pies steered by an extensive managerial class hierarchy all busily drafting strategy documents. And especially when you have an influx of relatively clueless new grads looking chasing good jobs and glomming on to shiny and fashionable things in the absence of any genuine received wisdom.

                                                                                                                          Ultimately I don’t really buy that editors are necessarily going to see the same lock-ins and wholesale die-offs that have occurred in the OS and web browser markets, both because of open standards like LSP (and even UTF-8 – at the end of the day we’re all just checking in text files, right?) and because the older approaches still work well for many of us; I just don’t see any conclusive evidence that editor choice is much of a determining factor in programmer effectiveness, overall. Like people who know how to use the unix command line tools, vimmers and emacsers may remain as mildly oppressed minorities, keeping their cultural traditions alive through a long era of aggressive corporate colonization. Lord knows it’s happened before.

                                                                                                                          1. 1

                                                                                                                            This is a fair perspective. I appreciate you sharing your thoughts, cheers!

                                                                                                                2. 1

                                                                                                                  Yep. Repeat after me: there is no telos.

                                                                                                                3. 3

                                                                                                                  Lots of great points in your comment, I don’t think anything is a certainty. At the end of the day I’m making a bet based on the available evidence.

                                                                                                                  Here’s how I think about the points you brought up:

                                                                                                                  Extensions aren’t a guarantee that an editor won’t get leapfrogged by others. Emacs has great support for extensions, but they’re written in (what today is) an obscure language and the technology around it (the Emacs equivalent of Electron, if you will) isn’t exactly easy to wrap your head around it in 2020.

                                                                                                                  While technically true, the reign of the web has already been longer than the reign of Lisp and isn’t showing any signs of slowing down (mobile stats not withstanding). I agree it’s possible the web will be supplanted, I just wouldn’t put my money on it happening.

                                                                                                                  in fact, past history of open source corporate projects getting abandoned mostly teaches us that it will fare worse

                                                                                                                  One observation that I left out of the piece is that corporations, first GitHub and now Microsoft, have essentially realized they can own the text editor market for what amounts to a rounding error on their balance sheet. Text editors have historically been maintained by minuscule teams and can be out resourced easily, without corporations breaking a sweat. I don’t think this realization is going to go anywhere, given the value developers building on platforms has to these corporations. This is only half a response to your point, but it’s the reason I’m bullish on Microsoft investing in VS Code longterm.

                                                                                                                1. 18

                                                                                                                  The images fail to load for me unless I explicitly copy their URLs and navigate to them directly.

                                                                                                                  1. 1

                                                                                                                    Looks like google drive is a terrible CDN.

                                                                                                                  1. 12

                                                                                                                    In a true multi-user system, the system administrators normally do not want users to be able to install arbitrary software or run services.

                                                                                                                    I don’t know where the author gets this idea. On the multi-user systems of the 80’s and 90’s, users building and running their own software was quite commonplace. It was one of the main things that propelled the GNU toolchain to become the de-facto standard for open source software around that time: if your OS or admin did not provide a compiler for your system, you could always download GCC and build what you needed yourself. Many administrators preferred this because it meant they didn’t have to bothered with every program their users needed. Of course, a good admin would install software system-wide if enough users needed it, to save on disk space and make users lives easier.

                                                                                                                    This seems to be a bit of forgotten history… Linux did not make the GNU ecosystem popular, it was already popular for being a free set of build and userspace tools on commercial and less-capable Unix systems by the time Linux came around. It was an easy and obvious choice to marry Linux and GNU together into various distributions.

                                                                                                                    1. 3

                                                                                                                      I don’t know where the author gets this idea.

                                                                                                                      Kids these days don’t know their history. :)

                                                                                                                      What I wrote is my experience with multi-user systems. I’ve only used them at university (in the late 2000s), at research labs (in the early 2010s) and $globochem (these days). In the past, the sysadmins at those places were not excited about me installing things, and I wasn’t very comfortable compiling things on my own so I didn’t make serious attempts at it. The sysadmins didn’t mention that as a possibility, so it’s not something they were pushing people to do. At $globochem, there’s a mix of treating servers as cattle and security getting more paranoid about what you can do the closer you get to user data, so people are not excited about ad-hoc software on those hosts. Other people’s experience may of course be wildly different; people on tilde communities probably have a very different one.

                                                                                                                      1. 1

                                                                                                                        Oh, yeah, my university account with a 2mb quota. And if you don’t have enough space, you could temporarily go out to /tmp to compile stuff, and keep the binary but delete the source.