• 483 Posts
  • 1.54K Comments
Joined 1 year ago
cake
Cake day: April 4th, 2025

help-circle






  • It us totally OK to start easy.

    Scheme (for example Guile) or Racket are great beginner languages, because they have a very minimal core, and at the same time a lot of power. Created by teachers, they also have great guides.

    Clojure is also a fantastic Lisp language, extremely elegant and very powerful. Its user community has many experienced programmers, and it is very friendly.

    Python is probably the most popular choice for beginners. It has a nice tutorial and countless libraries, which allows to put programs together from components. But its build and packaging system is notoriously messy (though it seems improving) and can get in the way when doing more complex stuff later. Its user forums also suffer currently most from AI slop.

    I wouldn’t recommend Go language for beginners. It is relatively simple, true, but although it is well-geared to its main target - web applications - it has serious pitfalls with concurrency, which can lead to arcane bugs and a lot of hair-pulling.

    You could also start with Rust. The language is larger than others, that’s true. But you do not need to learn it all at once. Also, it has best-in-class online tutorials, books and documentation. Its compiler error messages are extremely helpful. And its build and packaging system are so much easier to use than almost anything else. This matters for beginners, too, since this allows you to put together interesting programs quickly.






  • Yeah Linux is a bit addictive. The open source devs use insiduous amounts of seductive features. Such as:

    • stable TCP networking… since 1997
    • operating systems that virtually don’t crash
    • good security
    • data stays local and under control of the user
    • frugal on hardware resources and costs. My main PC is 16 years old and is still oversized - it has 16GB of RAM which I never use fully. My laptop is a Thinkpad T490 which I bought as a refurbished device.
    • frugal on required attention. If you want to write a book, you can have a blank text screen with a cursor and that’s is it
    • security updates which happen quietly in the background and don’t break stuff.
    • no user tracking in local apps
    • depending what you use, superb documentation
    • stability of good interfaces over decades. I can manage files with the same shell commands as I did in 1994, when I learned them. My favourite text editor had stable interfaces since 1984. My mail program hasn’t changed its UI since 2009. This extends to document formats. I have documents lying around that are over 30 years old and which I can change, format and print on a whim.
    • and at the same time, I can get the newest fancy stuff with a few key presses. The krita drawing program? Annotating PDFs with Xournal and my Wacom graphics tablet? GNOME with PaperWM extension? The Arduino IDE? The jiujiutsu version control front end? PlantUML to make a nice flowchart? Just type the name into the package manager! And bang it’s there.
    • easy user interfaces without byzantine bloated features. A really easy, simple word processor? AbiWord. If I want to scan a document with my Brother printer scanner combo thing, I type “simple-scan” and press the “scan” button and then the “save” icon. This is fast.

    The common denominator is that Linux is developed by some of its users, and centered around their own interests. This is what underlies all the mentioned qualities.

    But yeah, computers can be a bit addictive. Don’t forgot to have a coffee once in a while, and take breaks. Don’t forget to touch grass and go dancing, or whatever makes you happy.

    And fuck AI. Fuck these companies. Fuck those employers pushing AI who don’t give a shit about the mental health of their people.







  • For certain highly formalized types of diagrams - for example flow charts -, PlantUML is great, and since it uses a textual language, it could be wired to a lot of different programs.

    MetaPost ist similar but a bit lower level. It can generate very complex diagrams for arbitrary content.For example, I used it once to draw and publish a globe-like 3D sphere with fields depicting different spherical probability values in it.

    Racket, a Scheme descendent, is very nice for elementary graphics - it can output pictures in the REPL of its integrated IDE, DrRacket. And it can output these seamlessly as vector graphics, or into interactive user interfaces, too. It also has an elementary but good graphing package. I have used it for a web app which did some data analysis, presented it as a plot in SVG format in the browser, and provided a PDF for download. Neat!

    And then there is Python with Matplotlib. It is made for almost every imaginable visualization of numerical data.

    For 3D data, there is VTK, which has bindings for C++, Tcl/Tk, Java, and Python.

    And TeX/LaTeX with various graphing packages.

    As said, all of these can be used programmatically, and can be included in other systems, as long as the latter can generate text commands which can piped into these special-languages, or library calls.





  • Well, US-Americans use almost exclusively cars, and we know well that cars are inefficient, especially in densely populated areas.

    One aspect that also causes these distortions is that Americans cannot freely chose the most efficient means of transport for a specific journey, but are bound to using cars because of political influences. You could say that Americans are less free than other people, in this respect.

    (And that’s an anomaly, not the cultural norm for humans).



  • I’ve found similar issues with NVidia cards.

    A probable cause is bootloader/initrd issues since these need extra initrd support when booting, and a couple of things can go wrong in updates. You could try to chroot into the system and reinstall the kernel, initrd, and graphics driver.

    Oh, and hibernate doesn’t work with dual-booting Linux distros (it does not leave file systems unmounted), and although grub was once designed to dual- and multiboot distros, dual-booting is problematic today… I think some (graphics?) driver stuff can get put into the EFI partition where grub updates can step on other distro’s feet.