1. 3

    For me personally I have already solved this “Problem”, and built myself a simple “Typewriter” computer, that I use daily:

    • Base: A Lenovo S10-2 (Released in 2010, ~10 Years ago)
    • Display: A Pixel Qi 3Qi (a Transflective liquid-crystal display, as used by the OLPC, ~2008 ish??)
    • Operating System: Haiku OS (an open source OS designed to imitate BeOS which had its last official release in 2001, ~20 Years ago)

    The Wifi is NOT working, which I consider a feature, not a bug.

    The Text Editor provided by the default Haiku OS installation is sufficient for me, so that is what I use.

    I use git to sync my work, whenever I plug into a physical network.

    The OS is super snappy, and I am writing way more without distractions. I recommend anyone to build one of those machines for themselves, who’d like to go back to a time where computers were simple writing machines.

    1. 2

      How is the board powered when the micro-USB is used for ethernet?

      1. 1

        Just over the 5v gpio pin

      1. 1

        I love darcs, and used it for a while for personal projects, …. but now all is git, it seems

        1. 2

          Switching to CLion for C++ definitely upped my refactoring game, …

          1. 21

            Corporate email is often based on an Outlook server, and it is becoming increasingly difficult to setup a regular email client that is relying on IMAP and SMTP to work with the corporate outlook server.

            getting two factor authentication to work is a problem, and for Thunderbird to work with Outlook you need to either:

            So yes, getting a plain text email client to work as a corporate developer is a problem, but you might as well blame Microsoft for putting up these barriers in their email server.

            1. 11

              I work in a company where the email infrastructure is Office 365. After many interactions with the IT team, I made them whitelist DavMail, which is connected to my Thunderbird, in which I use exteditor to write my emails using, in my case, Neovim.

              A friend of mine, who has a day-to-day job as contributor of a few FLOSS projects, had problems sending email from his company’s infrastructure (also Office 365) and decided to send patches with his private email. Last time we spoke about it, he was about to buy an Owl’s license.

              Thus, I agree with you: Microsoft is the problem in here. And the article even touches that point:

              We assumed that Outlook was to blame. Could Microsoft fix that instead? “The question always is fix it to whose standards, because we are focused much more on business and enterprise models of clients and customers. For them we fixed it to a more HTML-based model so it really depends on who your audience is and who your target is.”

              It turned out, though, that this time Outlook was not guilty. “I think it was actually Gmail that was a barrier.[…]”

              At last, I expect people contributing to the kernel to RTFM: there is a kernel.org’s page on email clients (for collaboration on the Linux’s kernel), describing problematic MUAs and even given basic configuration for some of them. And it is not the unique reference on the subject.

              So much fuzz for something that does not even address the problem of lack of good maintainers for the kernel. 🤦

            1. 8

              Turns out lay people can get through this, if given the right coaching and the wrong information: TurboTax apparently didn’t bother to sign their binary, so the official docs tell people to go down this route D: https://ttlc.intuit.com/community/troubleshooting/help/turbotax-for-mac-won-t-open-when-installed/01/26611

              1. 7

                You’d expect that a big company (software company even) would find someone to go through the trouble of properly signing the binary, …

                  1. 1

                    Immersion, Repetition, Deliberate Practice, Competitive Programming, Imitation (Fake it till you make it), Code Katas, Refactoring Katas, Code Golf, Object Calisthenics, Memory Palace Method

                    1. 1

                      I use a “Zettelkasten” System, with vim, and git-sync. Filenames are hierarchical numbers, and I navigate using the following vim feature: https://vim.fandom.com/wiki/Open_file_under_cursor https://github.com/simonthum/git-sync

                      1. 2

                        Is there a nice case for this? I guess it is not the same form factor as RaspberryPi?

                        1. 16

                          My biggest grief with modern “Apps” is latency. Even the most simple mobile application requires a roundtrip to some server for almost every interaction, over a potentially flaky wireless connection, so you can expect to have random stalls in your interaction with the software.

                          1. 5

                            It’s not just web apps that have this issue either - I cannot use Word to write documents because the characters only appear on the screen after half a second. I feel like as people use more Javascript-heavy web apps they have become acclimatised to the situation and regard it is perhaps less-than-ideal, but that it’s not possible to do anything about it.

                            1. 7

                              Part of the issue with Word is that the cursor is animated to follow the text at a slight delay so that it feels smoother. I kind of like how the effect looks, but it does definitely make the text input feel laggy even if it actually isn’t any laggier than other apps. There’s an iPhone app called “Is It Snappy?” that uses the camera at 240 FPS to help measure latency. On my machine, the lowest latency comes from the Kitty terminal emulator (it’s GPU-accelerated, which helps) and Chromium (also GPU-accelerated). Your keyboard itself can make a difference to input lag as well; this is one of the only good reasons for buying a “gaming” keyboard (aside from NKRO, if that matters to you).

                              1. 3

                                The lowest latency on my machine is in the TTYs - even when I used kitty, typing felt noticeably more responsive in the framebuffer. I do have a QMK keyboard somewhere, which I’ve never measured the latency of, but to be honest I mostly just use the laptop keyboard because it’s more convenient.

                                1. 2

                                  Yes, I was thinking of GUI apps, but typing in a framebuffer is faster (probably since all of the relevant code is in the kernel). I remember reading something about how GUI Emacs has a very low input latency, but I haven’t been able to reproduce that finding myself.

                                  1. 1

                                    I haven’t tested it, but GUI Emacs doesn’t feel slow. But it also doesn’t feel significantly faster than anything else, either.

                                    1. 2

                                      I’ve noticed that disabling compositing – if you can do that – helps tremendously under X11.

                                      1. 1

                                        I run just a window manager and haven’t installed a standalone compositor, so I don’t think I’ve got one of those. Thanks though :)

                                        1. 3

                                          Sure thing! That’s pretty much my setup as well – precisely because of the latency. BeOS spoiled computing for me, I guess :(.

                                          1. 2

                                            I never used BeOS, but I’ve used Haiku quite heavily, including as my primary OS for about six months last year. Eventually I moved back because the mouse-driven workflow really wasn’t working for me, and there were quite a few crashes, but it really made me sad for the way that computer systems had gone..

                                            1. 1

                                              funny coincidence, but I recently modded a lenovo s10-2 with a sunlight reflective screen to run Haiku-OS as an outdoor “writing laptop”.

                                              https://www.engadget.com/2010-07-19-how-to-install-pixel-qis-3qi-display-on-your-netbook-and-why.html

                          1. 1

                            This is a super interesting article, thanks for linking it.

                            I read a lot about blue noise when I was working on rastering algorithms for inkjet printers. (Digital Halftoning)

                            I’d be really curios to port a blue noise generator to OpenCL or CUDA.

                            1. 2

                              Also a nice summery: https://gareus.org/wiki/embedding_resources_in_executables

                              (bonus, this link also considers osx and win32/mingw)

                              1. 1

                                Well, you can write good tests and bad tests.

                                Writing good tests is difficult, and hard work.

                                Saying “Test-Driven Development is Fundamentally Wrong”, is like saying “C++ is Fundamentally Wrong”, or “Perl is Fundamentally Wrong”, because it is hard to write good C++, or good Perl, …

                                There is not really much of a point in the argument of the article linked above, … it is more like a frustrated rambling, …

                                1. 1

                                  Currently have a “Cherry MX Board 3.0” which is a “reasonable” choice. Nice keys, (mechanical but not clickety) and “boring” design.

                                    1. 2

                                      I believe a great way to create a structure that carries open source economically would be to form cooperatives: https://en.wikipedia.org/wiki/Cooperative

                                      1. 5

                                        Can we make Free Software more sustainable and Open Source less sustainable?

                                        1. 3

                                          Yes, with exception that instead of “version branches” create branch for release, prepare it there, tag release, then merge it to the master and call it a day, no develop/master split and having each commit on master tagged.

                                          1. 6

                                            Using tags only for web-only/evergreen software can work, but branched versions are often a must-have for desktop work. If a security issue is discovered with version 1.3.0 through 1.6.7, you may need to release 1.3.1, 1.4.6, and 1.5.3 alongside 1.6.8. In that world, it’s best to have 1.3, 1.4, 1.5, and 1.6 branches, where e.g. 1.4.5 is a tag on the 1.4 branch. In this scenario, you’d want to fix the bug in the 1.3 branch and cut a tag, then merge that into the 1.4 branch and cut a tag, then merge into the 1.5 branch and cut a tag, etc. That workflow’s not doable using just tags.

                                            Again, for evergreen/web-only software, I’m with you, but version branches absolutely have their place.

                                            1. 3

                                              But you know that you can create commit on detached head? You do not need branch for that? And even then you can create temporary branch for that particular fix, ex.:

                                              git checkout -b hotfix/space-overheating v1.3.0
                                              

                                              And after that you can create new tag 1.3.1 that will not be reachable from master (as you would do anyway) and you can remove temporary branch.

                                              1. 1

                                                I would not say “must-have”, I believe google chrome is doing just fine with a continuous release model, even though it is “desktop work”: https://medium.com/@aboodman/in-march-2011-i-drafted-an-article-explaining-how-the-team-responsible-for-google-chrome-ships-c479ba623a1b

                                                1. 4

                                                  I’m aware of that, which is why I also very clearly, twice, called out evergreen software as also not needing branched versions.

                                                  1. 1

                                                    I wasn’t aware of the term “evergreen software” is there a definition around somewhere?

                                                    1. 1

                                                      I’ve heard it used informally to refer to, for example, an API that is continously updated without a specific version number. Breaking changes are communicated by other channels, such as websites for developers.

                                                  2. 2

                                                    Google has the ability to say ‘this software is only supported for 6 weeks and then you must update’. 99% of other software vendors do not have that ability.

                                                    1. 3

                                                      Software Users have been burned by vendors too often, that is why they demand “bugfix releases”, they do not trust devs to deliver a feature upgrade without regressions.

                                                      1. 2

                                                        I mean it’s not like people trust Google to deliver a feature upgrade without regressions. They just don’t really get any say in it. Google’s web browser isn’t a product.

                                              2. 2

                                                I don’t understand what branch by abstraction is about. From the web site, it seems like a development strategy, rather than a way to use version control.

                                                1. 1

                                                  They go hand in hand:

                                                  • Don’t do long lived (>1 week) branches, especially don’t do them to build large new features.

                                                  • Instead, use a well-conceived feature-flag system to turn off in-progress code that you merge to master.

                                                  It’s a negative suggestion, not a complete version control strategy.