1. 1

    I’ve been unknowingly using Emacs Lisp since much earlier – not in the sense of writing packages – my old man taught me how to use Emacs when I was nine

    (This makes me jealous)

    I decided to scrap my BMP encoder and go with PPM instead. Netpbm is text-based

    I was playing around with a NetPPM encoder myself in Scheme, just a few weeks ago, having have read the same article, and storage-wise, it’s helpful to remember that NetPPM can also be generated using binary data. The header stays the same, but after the P6 100 200 256 part, you just write bytes.

    Clojure’s license makes it a complete non starter for me, sorry. Live free or die.

    What’s this about? I recently read RMS saying that an argument to not consider Clojure a proper lisp is that it’s (allegedly, idk) based on cons-cells, so that “the most basic programming techniques of Lisp don’t work in Clojure”.

    1. 6

      What’s this about?

      EPLv1 isn’t GPL-compatible. Not totally evil, but it’s enough for me to want to avoid using it.

      https://www.eclipse.org/legal/eplfaq.php#GPLCOMPATIBLE

      1. 3

        Fun facts:

        • the EPLv2 is GPL-compatible
        • the Clojure developers have collected copyright assignment from all contributors, which would be needed to update the license to use it
        • despite this, the Clojure developers have indicated that they are uninterested in doing so
        1. 1

          Would it make you feel better or worse if it were MIT?

          1. 2

            If Clojure were licensed under MIT? I would feel better, as it’s compatible with the GPL.

        2. 3

          If you’re interested in Clojure, by the way, Phil Hagelberg (who wrote Leiningen, the standard Clojure build tool) is nowadays contributing a lot to Fennel (which is also mentioned in the article, and compiles down to Lua).

          Libre Lounge has a really fascinating interview with him that covers that topic – caveat auditor, I ended up buying his Atreus keyboard after listening to the podcast.

          1. 5

            Careful, for he lurks among us. Some say that if you say the word “technomancy” out loud three times he may appear.

          2. 2

            From what I can see, Clojure uses the Eclipse Public License? (based on https://github.com/clojure/clojure).

            Is the EPL that problematic?

          1. 8

            In addition to cd and ls, I suggest to use pushd/popd. Built into practically every shell, so nothing to install.

            Apart from that, Fish autocompletion is good enough to remember my “current” project folders.

            1. 2

              Is there a way to automatically push a directory unto the directory stack? And possibly just have it remember the last 10, 20 or however much? pushd/popd are two commands I could never get used to, because I think of them after I need them, not before.

              1. 5

                I think using popd after pushd is seldom useful.

                What I do is prepopulate the dirs stack using pushd -n and then navigate between the “bookmarks” using tilde expansions like cd ~2 which don’t “pop” folders from the stack.

                1. 1

                  I think using popd after pushd is seldom useful.

                  Why? It would be like a “back” button in a browser/file manager.

                  navigate between the “bookmarks” using tilde expansions like cd ~2

                  Meh, I have a “jump” function already where I can use human-readable names.

                2. 2

                  Unfortunately bash doesn’t have zsh’s autopushd. Years ago I made two aliases that suppress pushd/popd’s noisy output and alias cd/bd (“back directory”) to them - I’ve found it very handy and use it daily.

                  # don't echo the current stack on pushd
                  function quiet_pushd() {
                      # preserves functionality when aliasing cd to quiet_pushd
                      if [ $# == 0 ]; then
                          builtin pushd $HOME/ > /dev/null;
                      else
                          builtin pushd "$@" > /dev/null;
                      fi
                  }
                  
                  # don't echo the current stack on popd
                  function quiet_popd() {
                      builtin popd "$@" > /dev/null;
                  }
                  
                  1. 1

                    In zsh: setopt autopushd

                    I’m unclear about other shells, though it can be emulated by writing a function / alias for cd.

                  2. 1

                    I know about pushd and popd, have a few scenarios in my head where I think they might be useful, but have never used them productively in practice. Some times I note in passing that it would be nice to go back more levels into cd history than simple cd - but those moments are quite rare. And once you catch yourself wanting to do that using pushd is already too late.

                    I secretly wish pushd would be auto implemented as cd history with a shortcut to trigger it, like maybe cd ^

                    1. 2

                      autopushd and pushdsilent seems to be what you want. I think oh-my-zsh enables them by default but I’m in the process of setting my shell from scratch these days (zsh + starship + cherry-picking the cool parts of oh-my-zsh) for performance reasons, and this discussion finally made me search for it.

                      http://zsh.sourceforge.net/Intro/intro_6.html

                      1. 1

                        Thanks for these.

                        I am somewhat on a streak for getting back to minimal (almost ascetic) setup on my machines, so things like zsh are out of the question. But will definitely keep autopushd thing in mind if someday I change my mind.

                    1. 3

                      The complaint against system apps is a bit overstated - on Android you can disable system apps and they won’t run (they’ll just take space). On iOS that’s not an option.

                      (And on a related note, usability wise it’s really annoying that iOS doesn’t let you clear an app’s data without uninstalling it).

                      1. 29

                        I have friends who work for Red Hat who are Not Happy about this.

                        My speculation is that clients of Red Hat will see at most slow change. IBM’s not going to toss the cash cow RHEL, and the various cloud software offerings are what they apparently bought it for. However, internally I think we’ll see a massive diaspora of talent as Red Hat becomes IBM-ified. (All claims to the contrary from either company’s PR are of course to be ignored completely. They have to say that, to stave off the employee flight as long as possible.)

                        Hot take: I wonder what this will mean for SystemD? ;)

                        1. 8

                          I’m unfamiliar with IBM’s Linux strategy; why would this mean anything wrt systemd specifically?

                          1. 5

                            Nothing, it’s just a play on the (IMHO very wrong) meme that systemd is only as successful as it is because it had RedHat backing.

                            IBM probably doesn’t even know what systemd is on the “we’re buying a huge company for 20 billion” plane.

                          2. 6

                            Employees are rarely excited about being acquired, and let’s face it, history has shown that’s it’s been bad for both customers and employees unless the company being acquired is going out of business.

                            1. 12

                              Hot take: I wonder what this will mean for SystemD?

                              Can it be a hot take if it’s not even a take? This is inquisitive (not argumentative), which is good for discussion but probably bad if your goal was to have an opinion.

                              1. 3

                                hot question

                              2. 5

                                I’m out of the loop. Could you explain the systemd comment?

                                1. 14

                                  systemd was originally written by Lennart Poettering and Kay Sievers who work at Red Hat.

                                  1. 3

                                    Is it still maintained by them as part of their jobs at Red Hat?

                                    1. 5

                                      Yes

                                      1. 3

                                        Lennart Poettering on Twitter this morning (:

                                        As you all know we never have been fans of portability. It will come at no surprise that in light of the recent developments we will discontinue all non-S/390 ports of systemd very soon now. Please make sure to upgrade to an S/390 system soon. Thank you for understanding.

                                        1. 1

                                          Even POWER? ;)

                                2. 3

                                  Hot take: I wonder what this will mean for SystemD? ;)

                                  I’m pretty sure Facebook will keep developing it if nobody else does:

                                  https://media.ccc.de/v/ASG2018-192-state_of_systemd_facebook

                                  (disclaimer: I work there, though not on the team that works most with systemd – and this is of course my personal opinion)

                                1. 11

                                  After the Amiga, I started using Unix-like OSes exclusively up until today. From about 1999 to about 2002, BeOS was my sole operating system on my personal machines and much of my recreational coding was done on BeOS (its almost-sorta-kinda-POSIX-compliance was sufficient that I could do a little work coding on it too).

                                  I could fit the entire API in my head at once, more or less. Sure there were corner-cases and gotchas, but there weren’t a million different frameworks and technologies at play. The Be Book was literally all you needed.

                                  (Yes, that might have limited the complexity of the software you could write, but that’s a good thing.)

                                  That’s the last time I felt like I knew every part of my operating system’s API. All the code I write now is pretty much targeting POSIX with the occasional lower-level Linux API, which I can mostly keep in my head (though certainly not completely), but GTK+/GLib/GStreamer/… and Qt just seem gargantuan to me.

                                  That’s not to even talk about the Windows API.

                                  Haiku, sadly, will never be my daily driver so long as I have a job like the one I have now. I need to be able to run VMs, videoconference, and so on…and those are things that Haiku will probably never do (especially the videoconferencing thing; the relevant services can barely bring themselves to support things that aren’t Chrome-with-closed-source-components, so WebPositive is right out).

                                  1. 10

                                    I need to be able to run VMs, videoconference, and so on…and those are things that Haiku will probably never do

                                    QEMU almost works well enough (but no KVM, so, that’s a dealbreaker for a lot of people, I’m aware.) Videoconferencing, there’s the Telegram native client, which works (but we don’t have good USB webcam support yet, so, it’s mostly audio-only really.) So we are not too far away, I guess? We need some more work on WebAudio and WebRTC to get those to run in WebPositive properly, but, it’s not impossible.

                                    1. 3

                                      Thank you and your colleagues for all your hard work. Haiku is a bigger deal than a lot of people give it credit for.

                                      I’m still hurting from when Google Hangouts wouldn’t even work in recent versions of Firefox. Even now, Google Meet (the successor to Hangouts) only works in recent versions of Chrome and Firefox: no IE, no Edge, and I think no Safari/Opera/Vivaldi though I haven’t checked. Even for Chrome and Firefox, Google isn’t real good about supporting them on operating systems other than The Big Three (for example, builds of Firefox on OpenBSD don’t really work or at least didn’t last time I tried).

                                      So I’d imagine that even if/when WebAudio and WebRTC work in WebPositive, Google Meet will somehow find a way to be incompatible.

                                      I’d love to be proven wrong though. :)

                                    2. 4

                                      Yeah… even on Linux, the state of proprietary-but-necessary-for-work application support is marginal at times. Citrix Receiver/Workspace’s full client still uses the super-old (and full of security holes) WebKitGTK 1 (Fedora killed it around 1 year ago when Fedora 27 was released).

                                      1. 2

                                        I’ve had good luck with my strategy of quarantining the proprietary shit mostly to my mobile. Most of it runs on my Linux laptop, but I’d much rather keep that muck off it since my phone is already a morass of untrusted code unavoidably.