Threads for benj

    1. 5

      I would still very much like a job though, which is why I invested in highly demanded skills as Vala programming and Haskell Flatpak packaging.

      šŸ™ƒ

      I find myself in a similar position and have been investing in highly demanded skills like C, GTK4 and DuckDB! oh, and a bit of Perl on the side to stand out from the crowd!

      Love to see somebody else making GTK4 applications! I have worked with Vala, but I was quite surprised of how usable the gtk .ui xml files are. I was just by default initially biased against xml, but it actually works quite similar to web development in the sense that you make the layout in XML, and then, in my case, on C call elements by id and attach functionality to those widgets.

    2. 4

      Iā€™m curious about the argument of the author. He is mentioning the challenge of systemd and that without it is not possible to run GNOME? Why would one want to run gnome on embedded Linux? Are we talking about mobile Linux for, say, a phone?

      It could be that my understanding of embedded is incorrect but I understand embedded Linux a step above RT OS, with the added benefit of solid network stack, ability to program in any language, etcā€¦ i.e. what one would have on a router or the multimedia console for a car. Both of those systems can work perfectly fine with, say, busybox and neither requires GNOMEā€¦

      So, Iā€™m puzzled

      1. 4

        If you read the parts after that, the author explicitly says that itā€™s not about running GNOME on embedded systems.

    3. 10

      Iā€™ve been reading this and even exploring alternatives and Iā€™m trying to figure out why does this feels so wrong and this is what I think:

      I have no issue at all with, for example, 1Password or Enpass for that matter. But neither of those is open sourceā€¦ so the issue for me is an unwillingness to use proprietary software. But at the same time, neither of those alternatives posed themselves as open source, then raised $100M and attempted to change or trick their users into something they didnā€™t buy.

      If Bitwarden had played this more along the lines of ā€œhey, we are making a new proprietary offering with X and Y extra featuresā€ Iā€™d have appreciated that and likely considering them just as I would, say, 1Password.

      Ever since the raising of the $100M in 2022 Iā€™ve been expecting things to change, and change visibly and possibly drastically. Raising $100M is considered a ā€œsuccessā€ but itā€™s also a 9 figures loan, and that changes things.

      Iā€™m just hoping that they can play this right and keep their devoted customers.

      But hey, Iā€™m just a $40 ARR in their booksā€¦

      1. 8

        I moved to 1password back when Bitwarden raised the $100M. The writing was on the wall then. 1Password is VC backed now too, which scared me(so far the VC investment seems small-ish comparatively though, so the evil hasnā€™t happenedā€¦ so far). Seems like we canā€™t have nice things, everyone eventually sells out to VC disasters.

        To me VC money is like Oracle Money. They care about exactly 1 thing, their own money growing into more money. Everything else is not a concern. Users donā€™t matter at all, prior promises donā€™t matter. More money for them in the very near future is all that matters.

        I guess Iā€™ll go back to writing my own, figure out how to make KeyPassKC sane for non-experts or maybe move to Appleā€™s Password app, at least Apple wonā€™t ever be taking any VC money. Iā€™ve heard it works cross platform like 1password, which is very surprising.

        1. 2

          Apparently there is another OSS password manager: https://psono.com/ The code seems to exist as Apache2 licensed here: https://gitlab.com/psono/

          I havenā€™t done any research or playing with it yet, just sharing for others that might see this and looking for a replacement someday. At first glance it looks like it might be end-user friendly, like Bitwarden and 1password.

    4. 4

      This certainly has me interested! Iā€™m curious if anyone has recommendations for Tcl learning resources that are relatively up-to-date?

      1. 7

        The Tcl Programming Language: a Comprehensive Guide is the most up-to-date book Iā€™m aware of, and was a fun read for me a few years ago. It wonā€™t cover the Tcl 9 stuff, but everything in the book I can remember ought to work as-is (and the Tcl 9 release notes will kind of just make sense afterwards, too).

        1. 3

          This is also my favorite reference but it doesnā€™t cover Tk. The second edition of the original seminal text, Tcl and the Tk Toolkit (Ousterhout, et al) is an excellent reference.

          For Tk specifically, my go to is https://tkdocs.com/

        2. 2

          I second this. I used that book to learn it too and it is indeed a great resource. Once you get the concepts the official documentation is a pretty good reference.

        3. 1

          Thank you so much!

      2. 3

        It has been really long since I did any Tcl, but since the commands areā€¦ well, commands, I got really far with just reading the official docs for them. On top of that their Wiki has really nice examples.

        Itā€™s really fun especially in combination with Tk.

        1. 2

          The manpages are excellent (man n expr etc)

    5. 2

      Iā€™m brushing up on my maths because I want to learn DSP :-)

      At $!work is time to apply for new roles (again) soā€¦ thereā€™s that too

    6. 3

      I absolutely love fish! One of the first things I do in a fresh Linux install is to install fish and append exec fish to the default .bashrc. One thing that puzzled me (unless Iā€™m missing something) was the removal of configuring aliases via the web configurationā€¦ idk in what version that changed but I was disappointed by it.

      I still use fish daily and now do alias -s gc=ā€œgit commitā€ instead but I kinda liked the visual of seeing all my aliases in one placeā€¦ I know there are a tons more ways to see my aliases but probably I was spoiled by the web configuration :-)

      1. 1

        Why not just chsh your default shell to fish instead of going through the bashrc?

        1. 2

          I find that a few tools I use still depend on bash and write their configuration to bashrc (i.e. set PATH and export env variables).

          Given that those pass to fish I donā€™t feel like translating those to fish config and managing them myself :-)

    7. 15

      I recently moved from Gnome to KDE and havenā€™t looked back, and specially with KDE6!

      But Iā€™ve been finding odd that it seemed like every new release of Gnome removed features instead of adding! And it wasnā€™t just about always expecting new features but, the seemly intentional removal of features eventually drove me of the platform.

      I still love the look of Gnome, the refined curves and ease of use, but the moment I want to change something, well, changing that was removed 7 versions ago and now is only possible to emulate that behavior with an extensionā€¦ except that the extension is already outdated and only works for a shell two version backā€¦

      KDE seems to keep adding features and making everything customizable, which, personally I find more agreeable and usable.

      Iā€™d love to understand where is gnome headingā€¦ is it working toward mainstream adoption? (It feels very M$-like to remove feature for ā€œease of useā€ determined by them) Are they trying to adopt a mobile-first kind of approach like what seems like Appleā€™s utopia of iOS everywhere? (Sounds terrifying to me, but Iā€™m ready to ditch my MacBook, as Apple ALSO continues to remove featuresā€¦)

      With that said, I recently got to use gtk 4 for a project and what a delight! The documentation is fantastic, the APIs are super clear and even glib and gobject, which I was kind of hesitant about JustWorks(TM)

      1. 18

        But Iā€™ve been finding odd that it seemed like every new release of Gnome removed features instead of adding!

        On any platform, I use an accessibility feature, which I generically call ā€œHover to clickā€ ā€“ you just place the cursor where you want to left click, the click happens automatically. Broadly, once you get used to it, its saves you most of the left mouse clicks (and a range of finger fatigue coming out of clicks).

        In line with GNOMEā€™s penchant to give generic name to everything, this feature is literally called ā€œHover to Clickā€ in GNOME.

        Now, this feature inadvertently needs a ā€œdead spaceā€, inside which an automatic click has no effect, and where you can park the cursor as a matter of reflex. In all the platforms, free space in the task bar (or menu bar in macOS) serves this purpose well.

        GNOME had a larger dead space than other platforms in its top bar until 3.14. Then, they decided that a click on the top bar should bring the focus to a/the maximised window.

        So, I am one of those rare people who got affected by GNOME adding a feature!

        1. 5

          This seems like the typical case of someone who implemented feature B not using/knowing about feature A and how it interacts. As far as accessibility is concerned, gnome does seem to care about it more than most other DEs, so maybe they would actually address this.

        2. 2

          do you know if thereā€™s a issue opened? if not and you donā€™t want to make an account on gitlab.gnome.org lmk and i will

          1. 2

            I havenā€™t pursued the problem. I didnā€™t have the best expected response to another issue I had with GNOME 40. Admittedly, they fixed the latter issue a few years later.

            cc @pta2002

            1. 1

              iā€™ve just tried hover to click on gnome-shell v46 and itā€™s still focusing the maximized window if the pointer rests on the top bar

              1. 2

                Yes it still exists.

                Admittedly, they fixed the latter issue a few years later.

                I was talking about another problem here: https://discourse.gnome.org/t/gnome-40-overview-does-not-automatically-activate-navigation-across-open-windows-by-tab-or-arrow-keys/6648/1

        3. 2

          I realised just now that I linked to a wrong discussion in my original post, which I canā€™t edit anymore.

          re: ā€œThen, they decided that a click on the top bar should bring the focus to a/the maximised window.ā€, I intended to refer to this discussion: https://discourse.gnome.org/t/why-clicking-shell-top-bar-focuses-maximized-window/6041/5

    8. 3

      Iā€™m gonna pop by tin hat for this one, but it seems to me that every new macOS release has only slowed down my MacBook without adding any noticeable benefitsā€¦ sure, now my background is animated and some other miscellaneous, but this is not ridiculous blazing fast M1 I bought a few years ago, the one that one would open all installed apps at once just for fun, and it wouldnā€™t even break a sweatā€¦

      Meanwhile my ryzen in my Linux machine feels just as snappy, and with the release of KDE 6, which adds a tons of desktop features and UI beautification, it just feels as fastā€¦

      I know that apple want me to by their M2 Pro, but I just feel being pushed awayā€¦

    9. 1

      Yes! Take my money!

    10. 8

      For me is C. I havenā€™t been able to find something as simple and streamlined as C. Given that the language is so small and lets you do literally anything is a perfect fit for my perfectionist simplicity loving self.

      The other day I was working on this little project that needed to read a CSVā€¦ after testing a couple of libraries I ended up writing my own parser in about 90LOC. I use the OS as my garbage collector and all types of things that wouldnā€™t fly in any production environment. But for me thatā€™s exactly the pointā€¦ itā€™s my code and is fun for me and thus the joy of side projects!

      1. 2

        Woah a CSV parser built from scratch just under 90LoC

        Very impressive and its in C where you have to be very careful when managing memory

        1. 3

          I mean, it is by no means feature completeā€¦ it only reads and I am aligning data to lines of 80 charactersā€¦ so, is pretty much a single purpose CSV parser, which affords me tons of performance because I donā€™t need to take into consideration all the possible edge cases and Iā€™m using just one csv file for it šŸ¤·ā€ā™‚ļø

      2. 1

        Are you willing to share some projects youā€™ve done in C?

        1. 3

          benj

          šŸ˜… sure, but with a lot of asterisks! Thereā€™s a clear difference between code I write because is fun vs code one writes professionally. An example is, I donā€™t bother a lot freeing memory. I do when I remember but I donā€™t sweat it simply because most of my programs are tiny and short lived and my OS reclaims the memory of the process when it endsā€¦ This is A TERRIBLE practice for any code that is running anywhere else! But I take certain freedoms when is my own code for my own purposes that is not meant to see the light of day!

          With that said, this is a fun project I did in C, the classic chip8 emulator. https://git.sr.ht/~benjcal/chip8/tree/main/item/src

          I think chip8.h is one of the most interesting files.

    11. 5

      archinstall! Iā€™m came back to Arch Linux after a while because Iā€™m wanted to use KDE 6 and was very pleasantly surprised to see that I can make an install now without having a second computer with the installation guide open!

    12. 45

      I doubt I have ever seen or heard of sudoā€™s logs being used effectively.

      https://xkcd.com/838/

      (sorry, this comment doesnā€™t add much value but I couldnā€™t help, šŸ˜¬)

      1. 5

        On an institution I used to work I got ssh access to a server that I needed to do some work on.

        To test what I could and I couldnā€™t do I ran a test sudo command, no access, incident will be reported, blah blah blahā€¦

        I few days later my boss informed me of how she got an angry call from the director of IT! šŸ˜…

        YMMV but in some cases ā€œincident reportedā€ is actually reported and acted upon ;)

      2. 4

        Cheered me right up after a long work day at least :)

      3. 2

        My old workplace actually got emails from all VMs for that

        1. 4

          Itā€™s extremely easy to set up, if you have a mailer on the system (used to be default) and a forwarder on the root account (/root/.forward) then youā€™ll get these mails.

          ā€œThis incident will be reportedā€, sounds scary, but all it really does is send an email internally to root.

    13. 12

      I had a similar experience when I started writing a lot of C last year. It was a surprise how enjoyable and productive it was.

      The part about using the right language for the job is particularly important. I was doing system level and embedded programming and C is very productive in those situations.

      An added bonus was that it opened the door for me to explore and understand TONS of code that I couldnā€™t access before!

      Reading headers, kernel modules, libraries and library wrappers even for other languages (i.e. looking at how a cairo library for Lua is actually using cairo, or, what graphic library is some program using).

      It also removed the ā€œunsolvableā€ issues Iā€™d come across when a ./configure; make; make install wouldnā€™t work. Are the headers on the right place? How about my LD path?

      Got a program in a .deb package but Iā€™m running fedora? No prob, unpack it to desktop, update the LD_PATH variable and we are in business!

    14. 2

      over-reliance vs. self-regulation I found this part the most interesting.

      Even though Iā€™m still semi-reluctant about AI, Iā€™ve been getting a lot more benefit by asking general questions instead of asking it to implement things. Prompts like ā€œhow can I append X to a Y structure in <language that Iā€™m learning>ā€ instead of ā€œhow can write an app that does ā€.

      I find AI absolutely phenomenal in helping come up with meaningful functions/variable names! Itā€™s also a great tool to discover functions/ libraries that I didnā€™t know about, which usually leads me to the documentation of the library.

      All of this though is in the context of a language that is not too familiar to me. In a language that Iā€™m experienced at ChatGPT feels more like an incompetent coders that I need to be constantly correctingā€¦ which, Iā€™d just rather my own code instead of exchanging coding for code reviewing.

      Students frequently (n=501, 30%) copied the task description to generate the entire code with no prior manual coding attempts. šŸ˜°

      Iā€™m not sure Iā€™d consider this negative as the paper does. While it can indeed be a sign of over-reliance it could also be a didactic tool for understanding better the problem. I think many of us might experienced how a problem/task can sound completely incomprehensible and when talking with the author or hearing the instructions rephrase the problem it suddenly clicks and things make more sense. I think that ChatGPT is very good at saying exactly what itā€™s been prompted but differently, which in some cases can be frustrating, but in some cases (maybe like this one) could be exactly what is needed!

      1. 3

        I think the part weā€™re missing here is how were the kids selected? The linked paper says that they recruited from coding camps, but is this a bunch of kids who wanted to learn to code, or a bunch of kids whose parents want them to learn to code?

        Because a kid who doesnā€™t want to be there taking the shortest path to get through the assignment seems perfectly reasonable. A kid who wants to learn skipping the whole learning part seems significantly worse.

      2. 2

        Agreed on your first point. I call this ā€œUsing AI as a Reverse Search Engineā€ and have written about it here.

    15. 2

      Conclusion

      computers

      This got me! šŸ˜‹

    16. 18

      Iā€™m so stoked about this! It feels like a macOS release back in the days when they were adding features instead removing options and locking user in.

      But itā€™s open source!

      Sometime ago I got tired of gnome forcing their idea of desktop and making it harder and harder to customize it. But I really liked the defaults of gnome.

      Then I decided to throw 10 mins at KDE and try to see if I could make it for, and just wow! Whatever you see, just right-click it and change it!

      Sorry yā€™all Iā€™m in love with KDE/plasma and Iā€™m excited to get my hands on v6!

    17. 4

      I can sort of see the point that the author makes but that is not my experience with tailwind. While they have been making some questionable choices IMHO with newer releases (I liked the v1 drop 1 single css and thatā€™s all) tailwind works perfectly for what I want it, fast iteration of front end design.

      In quite a few roles that Iā€™ve been at the frontend is one of the things that changes the most, as a company works out market fit (Iā€™ve worked most of my career in startups)

      That tailwinds says that @apply is bad practice is totally irrelevant for me. @apply is the natural next step after things get solidified designwise, and if that feature were to be deprecated Iā€™d likely start shopping for an alternative.

      I donā€™t think that the final form of a product that uses tailwind should be an html with all the utility classes in it, but a move towards a more semantic approach.

      Why not start with CSS then? Because I donā€™t know yet how the html of the component Iā€™m making should look like. Do I need an extra parent div to add some shadow? Is the a child div with inline grid to show three items in it? The traditional css writing yield the .modal and .modal-wrapper and .modal-wrapper-parent.

      After using tailwind and quickly figuring out what is needed AND what is not needed I can then go back and make my own .modal, .modal-header, .modal-body, etcā€¦

      But hey, thatā€™s just a theory!

    18. 1

      Is the first time I hear about CHERI and it certainly sounds fascinating!

      It seems like memory safety on the software add quite some complexity, so if memory safety could be handled by the hardware, that could allow for more less software complexity, more intuitive code that relies on hardware guarantees!

    19. 7

      I gave up after three efforts from 1998 until 2020. It requires a lot of dedication, the rewards mentally are immense, but there is what you like and there is life. And in my case they were incompatible.

      1. 5

        I have never written complex Haskell (the closest Iā€™ve come is porting the BlueSpec SystemVerilog compiler, written in Haskell, to FreeBSD, which was mostly mechanically adding cases to either do the same thing as Linux or macOS and to conflate things like ā€˜object file format is ELFā€™ and ā€˜OS is Linuxā€™ or ā€˜utilities behave like BSD utilitiesā€™ and ā€˜OS is Darwinā€™).

        Haskell is one of the languages, like Smalltalk and Erlang (maybe Elixir? Iā€™ve not used it yet but it seems nice from a cursory glimpse) where learning it makes you a better programmer in other languages. I much prefer reading (and maintaining) C++ code written by people who think in Haskell than people thinking in any other language. C++ code written by people thinking in C is awful and by people thinking in Smalltalk is usually inefficient (though that can be a good tradeoff for libraries when it comes along with very loose coupling).

        1. 3

          Having just picked up Elixir two days ago and then shipped a POC with Phoenix, Elixir to me falls into a different category. Iā€™ve attempted Scheme and Smalltalk and Janetā€¦ they are not the same :-) Elixir seems focused on making one productive while at the same time being fun? (pun intendedā€¦ šŸ¤Ŗ)

          But indeed, it also makes you think differently when programming on other languages (even start disliking other languages because they donā€™t have the nice features like pattern matching that Elixir has!)