"Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearUN
Unixporn Ramin_HAL9001 7 days ago 83%
Check out the work of @SethStorm666@mastodon.social

I am not this artist, I just thought his work was worth sharing. - Mastodon: https://mastodon.social/@SethStorm666 - DeviantArt: https://www.deviantart.com/sethstorm666

61
14
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    3 weeks ago 96%

    Also every manic pixie dream girl

    So much this.

    Also, its not just Bart Simpson, it is Homer too.

    • Homer: (wakes up from a daydream about "the land of chocolate"). "What? Huh? Oh, uh we were talking about chocolate?" -- Boss: "That was ten minutes ago!"
    • At a Stone Cutters meeting, he uses the Sacred Parchment as a napkin. When everyone starts yelling at him for that, he gets nervous out and starts using it as a napkin even more.
    • "You have my undivided attention" (watches a cartoon in his head)
    • "What would my life be like if I robbed the Quick-E-Mart?" (imagines himself living in a mansion, wearing a tuxedo, spinning his gun on his finger, Marge in a swimsuit doing a 60's dance beside him.) "I'll do it! I'll rob the Quick-E-Mart....D'oh!" (he has already walked out to his car and is driving home).
    • When marge spends the whole day cleaning the house to host a party for friends, homer plays with a toy racecar track in his underwear. Marge says to him: "Homer! The only thing I asked you to do for this party is to put on pants and you didn't do it!"
    25
  • linux Linux Recommend me a scripting language
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    3 weeks ago 100%

    I would go with Guile, because it is built-in to the Guix Package Manager which is a really good general-purpose package manager.

    It ticks several of your boxes:

    • has a CLI interpreter
    • is a general purpose language, Scheme, amd compliant with revisions 5, 6, and 7 of the language standard
    • allows writing in a functional style (it is one of the original functional programming languages)
    • small disk footprint, but still large enough to be "batteries included"
    • decent documentation, especially if you use Emacs
    • simple setup: not so much, unless you are using Guix to begin with. The standard distribution ships with lots of pre-built bytecode files, you need an installer script to install everything.

    It also has pretty good libraries for system maintenance and reporting:

    4
  • linux Linux More Linux libertarian shitposting 🦅🇺🇸🦅
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    2 months ago 94%

    I'm a communist but I suddenly realised that American conservatives should all be hardcore Linux enthusiasts. Why is this not already the stereotype?

    Libertarians and conservatives in the US demand liberty only for the already wealthy and powerful upper class, the liberty to enslave and exploit whomever and whatever they choose. They believe the ultra-wealthy have somehow earned the right to do so. On the contrary, the socialists, especially the anarchists, are opposed to unjust hierarchies, and the hierarchy created by wealthy and politically powerful classes are the most unjust of all -- quite the opposite of the libertarians and conservatives.

    Libertarian (Liberal) propaganda appropriates the more popular socialist ideologies while conflating liberty for only the wealthy/powerful versus liberty for all people. One can see appropriation done in the same way in the very name of the National Socialist (Nazi) party of Germany. These tactics that were used by the Nazis are still used by various American conservative and libertarian parties, who mostly align under the umbrella of the Republican Party. Just look at what the Trump cult weirdos are all saying nowadays. It is pure KKK and Nazi ideology resurrected, under a thin veil of euphemisms.

    So if you take at face-value what libertarian and conservative politicians in the US say publicly about freedom, small government, civil liberties, etc., then they ought to be very enthusiastically in favor of Linux, but it is all just propaganda. They don't care about freedom, only freedom for the elite clique of their supposed "supermen," the wealthy elites, the freedom to exploit groups of people who they hate most --- take your pick: foreigners, black people, women, gay and trans, Jews, Muslims, the "woke," the "leftist," etc. The libertarians and conservatives hate things that benefit society at large, because what benefits society also benefits these people they hate.

    Linux is pretty authentically a community project for the good of society, and it is truly subversive to the authority of the corporations and elites. So the various libertarians and conservatives of the US recognize Linux as a threat. Only that small group of privileged, middle-class libertarians stupid enough to be duped by the wealthy elite propaganda believe that free software is aligned with their ideology.

    15
  • energy Green Energy Kinetic Energy 👟⚡️
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    2 months ago 100%

    What I want to know is, how much energy was used to create these floors, install them, and how much energy will be required to service them (the electronics) if they break down over the useful life of the installation, including how much energy was spent on resource extraction and processing.

    Then I want to see that number compared as a ratio to the amount of energy these floors can generate over their expected useful life span, say 15 years in high pedestrian traffic areas.

    I am highly skeptical that the ratio would even approach 1:1, I expect a net energy loss. But I could be convinced otherwise with some good data.

    14
  • energy Green Energy Interesting Solar Concepts
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    2 months ago 100%

    Adding Solar to More Devices

    I never understood why this wasn’t more common already. ... Why not? Seems like an obvious solution…

    Good question, with a simple engineering answer: often times the energy cost of creating these solar panels and installing them into devices is considerably higher than the amount of energy those devices could possibly except after many decades of constant use. The point in time at which the solar energy collected by the device matches the energy cost to create and install the device might actually be longer than the life of the solar panel or the device itself. So adding solar to every last little thing will actually cost a lot more money for consumers while causing more harm to the environment.

    That is not to say that solar is always bad, in fact solar is incredibly good when used at industrial scales, especially in power stations, and on the rooftops of factories, parking lots, shopping centers, data centers, and warehouses.

    We see too often on the news stories about how some amazing invention might help solve global warming, but this is often just propaganda. The oil and car companies want you to think buying more technology from these tech companies (which are often their own subsidiary companies) will solve the problem. But really it is just another way of profiting off of people, tricking them into buying their stuff rather than reducing consumption, reusing, and recycling, and without those companies doing any of the hard work on the energy transition themselves.

    1
  • linux Linux Before your change to Linux
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    2 months ago 100%

    both can be installed side by side if you have enough disk space.

    Yeah, this is exactly what I do using QEMU and Aarch64 Debian. I suppose I could try the Asahi Linux in QEMU but that actually might be more difficult since I don't think QEMU can emulate the MacBook hardware, as far as I know. And I can't do dual boot, I want to be able to switch back and forth between Mac OS and Linux without rebooting anything.

    1
  • linux Linux Before your change to Linux
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    2 months ago 100%

    You can try asahi linux on the macbook :)

    I could, but I still need Mac OS for work-related things.

    1
  • linux Linux Before your change to Linux
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    2 months ago 100%

    I switched to Linux permanently in 2008. Last OS I used before Linux was Mac OS X version 10.4 "Tiger" (if I recall correctly) which is what came with the Macintosh PowerBook that I had bought roughly in the year 2004. I have never used Microsoft software unless someone was paying me to, but at the time, Windows XP was still all the rage even though Microsoft was trying to get everyone to switch to Windows Vista. (Vista got a lot of well-deserved hate too, sort of similar what we see with Windows 11 right now, actually.)

    Anyway, I was a die-hard Apple fanboy, but getting more and more into free software and I kept on using Macports/Homebrew to build Linux stuff I found online, but back in those days a lot of apps I wanted to try did not have good support for the Darwin kernel build of GCC which was pretty old compared to what Linux was using at the time. Occasionally a build would fail, and I would try to port the software on my own, with the idea of maybe submitting a package to Macports. But after a while I realized, "if I want to use Linux software, why not just use Linux?"

    So I bought a Netbook (Dell Inspiron Mini 10) with Ubuntu pre-installed. I really loved that little computer, I used it for a good 5 years until I needed a more powerful computer. I still have it, actually. I never went back to Apple until this year when I took a new job where they wanted me to use a MacBook Pro. (Again, not using proprietary software unless I am well paid.)

    I can say with confidence that Linux is considerably better than Apple's operating systems. I use Aarch64 Debian 12.5 in a QEMU on that MacBook for most things, only switching over to Mac OS when I really need to.

    5
  • linux Linux OpenSUSE is the best
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    2 months ago 100%

    Never tried it, but everyone I know who has tried it says its the most stable rolling release OS ever. That is pretty cool. Btrfs support is cool too, copy-on-write, deduplication, and whole-disk snapshot and rollback capability, its great for keeping your data safe.

    I don't care about rolling releases, I get my stability from Debian, or sometimes Mint. If I want the latest software I'll install Guix packages or FlatPaks. And I can still use Btrfs on Debian.

    4
  • linux Linux Not really sure I get Wayland
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    2 months ago 98%

    I can explain the difference between X11 and Xorg with an analogy to the web and web browsers: X11 is like HTTP, Xorg is like the Chrome browser. X11 is the protocol, Xorg is software that implements that protocol.

    X11 is old, it was designed back in the 1980s and includes messages for drawing lines and circles and fonts on the screen. Also, back then there were a lot of "thin clients", computers that were basically nothing but a browser, since graphics were computationally expensive and could not be done on the client computer, graphics rendering was done server side. There are lots of messages in the protocol for handling screen updates over a computer network.

    Nowadays, all personal computers are powerful enough to render their own graphics, and no one needs the display server to draw individual lines or circles on screen. Vector graphics and fonts are done at the application level, not over the network. So these these messages specified in the X11 protocol are hardly ever used. Really, most of X11 (let's say 90% of it) is not used at all, only the parts where the keyboard and mouse are defined, and how you can allocate memory to buffer a graphic and copy that buffer to the display. But you still need to maintain the Xorg software to handle everything that X11 specifies, and this is just a waste of code, and a waste of time for the code maintainers.

    So basically, they decided about 10-15 years ago that since no one uses most of X11, let's just define a new protocol (called Wayland) that only has the parts of X11 that everyone still uses, and get rid of the 90% of it that no one ever uses. Also, the protocol design takes into account the fact that most modern computers do all of their own rendering rather than calling out to a server to render for them. Also the Wayland protocol design takes into account that a lot of computers have graphics cards for accelerated graphics rendering.

    Since the Wayland protocol is much simpler, it is easier for anyone to write their own software which implements the protocol, these software are called "compositors." Finally, 10 years after some of the first implementations of Wayland, the protocol and compositors are becoming mature enough that they can be used in ordinary consumer PCs.

    96
  • aboringdystopia A Boring Dystopia If Biden Isn’t the Democrats’ 2024 Candidate, Harris Will Be
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    3 months ago 88%

    She had a history of horrible policies.

    The idea that voters vote based on policy rather than loyalty is totally incomprehensible to the Democratic party.

    13
  • linux Linux The anti-AI sentiment in the free software communities is concerning.
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    3 months ago 97%

    No, it is because people in the Linux community are usually a bit more tech-savvy than average and are aware that OpenAI/Microsoft is very likely breaking the law in how they collect data for training their AI.

    We have seen that companies like OpenAI completely disregard the rights of the people who created this data that they use in their for-profit LLMs (like what they did to Scarlett Johansson), their rights to control whether the code/documentation/artwork is used in for-profit ventures, especially when stealing Creative Commons "Share Alike" licensed documentation, or GPL licensed code which can only be used if the code that reuses it is made public, which OpenAI and Microsoft does not do.

    So OpenAI has deliberately conflated LLM technology with general intelligence (AGI) in order to hype their products, and so now their possibly illegal actions are also being associated with all AI. The anger toward AI is not directed at the technology itself, it is directed at companies like OpenAI who have tried to make their shitty brand synonymous with the technology.

    And I haven't even yet mentioned:

    • how people are getting fired by companies who are replacing them with AI
    • or how it has been used to target civilians in war zones
    • or how deep fakes are being used to scam vulnerable people.

    The technology could be used for good, especially in the Linux community, but lately there has been a surge of unethical (and sometimes outright criminal) uses of AI by some of the worlds wealthiest companies.

    36
  • aboringdystopia A Boring Dystopia Least unhinged society
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    3 months ago 100%

    If you get the government to simply declare everyone else "terrorists" then there is no need for rule of law anymore, you can do whatever you want! Because they are by definition worse than anything we do to them. How convenient for those states with plans for committing genocide, it doesn't count as genocide if you are mass-murdering terrorists.

    This strategy of the government calling every troublesome minority ethnic group anywhere "terrorists" got kicked into high gear when the US government started using 9/11 as an excuse to commit war crimes and remove restrictions from police forces (like the right of habeas corpus), and it has been a constant slippery slope since then. Nowadays the Biden administration officially considers the "Anti Fascist" movement in the US "terrorism," although no one in government refers to fascist mass shooters as "terrorists." Gee, I wonder why they would do that?

    15
  • unixporn Unixporn [Cinnamon] Monochrome with tiny splashes of color here and there
    Jump
    "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearUN
    Unixporn Ramin_HAL9001 3 months ago 100%
    [Cinnamon] Monochrome with tiny splashes of color here and there

    Screen shots of my new Cinnamon Desktop environment on #Aarch64 #Debian 12.5. I am really digging the combination of the "High Contrast" widget theme with the ordinary (non-high-contrast) icon and window decoration themes. I am using the "[Mojave Light](https://cinnamon-spices.linuxmint.com/themes/view/Mojave-Light )" window decoration theme from the Cinnamon theme repository, and the Adwaita default icon theme for all applications programmed using the Gtk framework. Fonts are all set to *DejaVu Sans Mono*.

    39
    4
    linux Linux What are your must-have programs?
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    4 months ago 100%

    Emacs is a religion, or an OS

    Philosophy is a subset of religion, and there is a definitely an Emacs philosophy about making absolutely all software hackable, and controlling the computer using text.

    App platforms are a subset of operating systems. People confuse the two because most app platforms are inseparable from the operating system on which they run. But some software, like the Web, or Java, or to some extent .NET/Mono, are app platforms that run the same apps across multiple operating systems. Emacs is an app platform.

    1
  • linux Linux What are your must-have programs?
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    4 months ago 100%

    How do you think one should get started with Emacs? Should they start start with regular GNU Emacs or should they install one of the “distros”?

    I always recommend using the default setup for any software. The same goes for learning GIMP, Krita, Blender, FreeCAD, or whatever else, even though you can customize them all to your liking.

    It is usually a good idea to try and learn the workflow that was intended by the people who developed this software, you could learn something from trying to use the computer in the same way that the professionals do. Same for Emacs: professional software developers have used it for almost 50 years, the default keyboard shortcuts are set the way they are partially for random historical reasons, but partially because they often make a lot of sense.

    If you are interested, please check out my blog series on getting started with Emacs, called Emacs for Professionals

    2
  • linux Linux What are your must-have programs?
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    4 months ago 100%

    Of course people who pull the power plug to exit Vi would be the type of people to confuse app platforms with operating systems.

    1
  • linux Linux What are your must-have programs?
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    4 months ago 91%

    Emacs.

    Emacs is an app platform in and of itself, and the vanilla installation comes with dozens of its own apps pre-installed. Like how web apps are all programmed in JavaScript, Emacs apps are all programmed in Lisp. All Emacs apps are scriptable and composable in Lisp. Unlike on the web, Emacs encourages you to script your apps to automate things yourself.

    Emacs apps are all text based, so they all work equally well in both the GUI and the terminal.

    Emacs comes with the following apps pre-installed:

    • a text editor for both prose and computer code
    • note taking and organizer called Org-mode (sort of like Obsidian, or Logseq)
    • a file browser and batch file renamer called Dired
    • a CLI console and terminal emulator
    • a terminal multiplexer (sort-of like "Tmux")
    • a process manager (sort-of like "Htop")
    • a simple HTML-only web browser
    • man-page and info page browser
    • a wrapper around the Grep and Find CLI tools
    • a wrapper around SSH called "Tramp"
    • e-mail client
    • IRC client
    • revion control system, including a Git porcelain called "Magit"
    • a "diff" tool
    • ASCII art drawing program
    • keystroke recorder and playback

    Some apps that I install into Emacs include:

    • "Mastodon.el" Mastodon client
    • "Elfeed" RSS feed reader
    • "consult" app launcher (sort-of like "Dmenu")
    19
  • socialism Socialism Question about ownership of the means of production
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    4 months ago 100%

    What I do wonder about is to what extent private ownership would still be permitted to exist?

    Yeah, I think that is debatable and there are probably a few solutions, since we are only talking about hypothetical society. Just thinking out loud myself now: your example of leasing the tractor to other collectives could be done using money but there would have to be strict regulations to ensure that your lease price was fair, and maybe you would not be to charge interest, or only enough interest to cover the risk of losing the tractor. Or it could all just be done much more informally on a "to each their need" basis and the honor system, and you could maybe take them to court for a new one if they destroyed it or something.

    I wish I knew more about how it worked in countries like Vietnam or Cuba, they probably have it all worked out.

    1
  • socialism Socialism Question about ownership of the means of production
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    4 months ago 100%

    If I saved up my money and bought a tractor

    What if I instead offered to plow their fields for them instead

    You assume it is necessary to use money to buy a tractor for yourself, you assume "their fields" are owned by "them." What if the state provided you with a tractor and the land? Or even if money were involved, what if the state provided you with the money to buy the tractor and the land?

    There would be laws to allow you to hire other people to use the tractor and farm the land, but by law, the surplus of their labor (whatever they planted, farm, sell at market) would belong to them, likewise the surplus of your own labor would belong to you. You could use the surplus (money, goods, what have you) to trade with anyone else.

    2
  • palestine Palestine DarkMatter2525: I don’t support Palestine. I support the innocent children who are being killed there.
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    4 months ago 84%

    I used to like that guy. But the "New Atheist" movement turned out to just be a bunch of reactionary atheist neoliberal YouTubers who were sick of reactionary Christian fascists hogging all the political power for themselves.

    9
  • theonion The Onion Florida Students Given Lifelike Dolls To Simulate Responsibility Of Owning Slave
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    4 months ago 100%

    I know, this one is so plausibly something those psychos in the various school board across the fucked-up state of Florida would actually do, I honestly thought this was real for a moment.

    They have already shut down entire school libraries, and censored several other public libraries, and are trying to make it illegal to speak freely about slavery or genocide or generally being critical of the US or the glorious military. And there is no shortage of 100% serious, 100% unironic talk ("protected free speech") among ordinary Florida folk about how the slaves actually had it pretty good since they never had to worry about paying for rent or food, and anyone could have done the unskilled labor they did, "I mean, they never had human rights, but what would animals I mean black folk want with those."

    I mean, this Onion headline is really, really plausibly real, and might even become real pretty soon.

    3
  • linux Linux Tips/tricks for beginners
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    4 months ago 96%

    I wrote a few articles on my blog for people in your situation, who are mostly only familiar with Windows and/or Mac and want to learn Linux more in depth.

    "Advice for people who want to learn linux" -- This article is kind of an overview of the Linux learning process. The point of this article is to teach you what it is you need to learn about so that you set your own curriculum. Once you understand what a few of the basic things are, you can look up your own tutorials on how to learn each thing.

    "How to pick a Linux distro" -- This article is for people who are overwhelmed by the number of choices for Linux distro. The bottom line is: don't over-think it, just pick a mainstream distro like Mint, Ubuntu, or Fedora. There is like a 99.99% chance that each of these will just work as soon as you install it, no weird issues with audio, graphics, WiFi, BlueTooth, security updates, or anything else. Also, a lot of the "choices" you see among all those distros are only skin deep -- differences in the default theming (i.e. the default "desktop environment", a concept explained in the "advice" article above). But really they are all using the same basic software packages so there very little substantive difference between any of them except in their app stores, and the mechanism they each use install software.

    If you have any questions, feel free to ask me here. I can clarify here, and also update my blog posts if you think anything is confusing.

    23
  • linux Linux Where to "practice Linux" terminal commands
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 100%

    As many here have said, but I will emphasize: learn the Bash programming language. Linux Survival is a very good start, and you can just start experimenting right away in your own terminal on your own computer.

    To go more in depth, you can read through the manual on your computer by typing "info bash". The Info documentation browser is a command line app. You may need to install it using your package manager ("apt-get" or "pacman" or "dnf").

    In the "info" app, you can navigate with the arrow keys, pressing enter on hyperlinks, typing l (lowercase "L") works like the "back" button in a web browser, typing r (lowercase "R") works like the "forward" button. Info also lets you search the index by pressing i (lowercase "I") then entering your search in the prompt, or search the full text by pressing s and entering your search in the prompt. And q quits back to the command line prompt. "Ctrl-Z" pauses the "Info" app and drops you back into the command line, and you can resume your "info" session using the "%" (percent sign) command.

    Another thing that can help is to learn about the GNU "Coreutils", this is a suite of commands usually installed into /usr/bin or /bin which provides helpful command line utilities. These are commands like cat, wc, sort, cut, ls, du, cp, ln, chmod and many others. Read through the Coreutils Info manual by typing "info coreutils".

    And I will also reiterate recommendations from others: learn how to use Vim and/or Emacs. Vim has the more difficult learning curve but is extremely useful for writing scripts. Emacs is better though because it lets you split-screen with manual pages, and copy-paste commands between Man pages, "Infodoc" documents, the shell, and/or a text file, all using only keyboard commands. I think it makes it much easier to learn since everything is integrated together. Ask the Emacs community how to get started if you are interested.

    10
  • linux Linux Configuring Kakoune Bindings in the Helix Editor!
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 100%

    It’s a i3-6006U with just 4.0GiB of RAM.

    Emacs is considerably more lightweight than a modern Web browser, or any app based on Electron.js (e.g. VSCode) so a computer with those specs is more than powerful enough to run Emacs. If you use version 29.1 or later, Emacs comes with "libgccgit" which will spend a little time pre-compiling Emacs code to very fast native code.

    Emacs used to have a reputation for being slow back in the early 1990s when 32 bit personal computers were just beginning to gain popularity. But nowadays when everyone downloads FlatPak and AppImage and Snap apps which install many hundreds of megabytes of code, Emacs is relatively small and light.

    Also, Guile Emacs and Guilemacs are two different projects, right? Because I also happen to come across this, and I’ve been interested in this project as well.

    The whole history of Guile and Emacs is here on the Emacs Wiki.

    So there are a few projects related to Guile and Emacs. The link you provided me by Ken Raeburn is a fork of older versions of both Guile and Emacs, it seems it has not been worked on in about 20 years, unfortunately.

    The project by Robin Templeton is also a little bit out of date, but still somewhat actively developed. You must build it from source from a patched version of (I think?) Emacs 26 or 27, I am not sure which it was. It works by loading libguile (the Guile interpreter/compiler) into Emacs so you can run Scheme code, and it also provides Scheme "foreign function" wrappers to the Emacs C APIs so you can do everything Emacs Lisp does in Scheme by importing the elisp-functions Scheme module. (There is an example of how to use it on the Emacs Wiki.)

    I did hear Robin say in a recent Spritely chat that it could be made to work on Emacs 29 with not too much effort, they just haven't had time to do it.

    If you are interested in Scheme, you might also want to check out the Edwin text editor which is built-in to the MIT/GNU Scheme compiler, you launch it from the Scheme REPL with the (edit) function. It is a clone of Emacs 19 (a very old Emacs) written entirely in Scheme, but unfortunately it is a little too old to be useful nowadays, in my opinion. Still, you could learn something by reading the Edwin source code.

    Finally there is TeXmacs, which is a full WYSIWYG application with a built-in LaTeX rendering engine designed for writing scientific papers, and it includes the Guile Scheme compiler for writing extensions, although I would not call TeXmacs a general purpose programming text editor the way Emacs is.

    2
  • linux Linux Configuring Kakoune Bindings in the Helix Editor!
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 100%

    Steps are being made toward Guile Emacs integration. The work is mostly being done by Robin Templeton, who (last I heard) works at the Spritely Institute. And as I understand, there are other people pushing on the Guile in Emacs front as well, so you may not have to wait long.

    Have you considered trying to setup Kakoune bindings in Emacs? For example like this: https://github.com/jmorag/kakoune.el

    2
  • emacs Emacs [Humor] A song about the Emacs Philosophy
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 100%

    The argument stretches “Unix philosophy” so far that Lisp systems end up being a better fit for it than Unix itself. To me that just makes the whole thing lose meaning. Emacs doesn’t particularly fit the Unix philosophy and that’s fine!

    Thanks for reading my article, and for your thoughtful comment!

    I will go further and say that no GUI or TUI application fits into the Unix philosophy.

    I suppose I can agree with you on this point for sure, since the Unix philosophy is not really all that well formulated to begin with (it is a philosophy closely related to the principles of functional programming devised by people who were seemingly not interested in functional programming).

    Nonetheless there are people who still insist there is wisdom in the Unix philosophy, which I think is more misguided ritual than carefully-considered principle. The reason I wrote the article was to make people question the utility of this ritual, of drawing an arbitrary border line around a piece of software and saying "within these borders is a tool that does just one thing and does it well."

    2
  • emacs
    Emacs Ramin_HAL9001 5 months ago 100%
    [Humor] A song about the Emacs Philosophy https://www.extrema.is/blog/2024/04/29/emacs-philosophy

    A close friend of mine was "inspired" to write a song by my series of blog articles called "[Emacs Fulfills the Unix Philosophy](https://tilde.town/~ramin_hal9001/articles/emacs-fulfills-the-unix-philosophy.html )" (actually I think he is busting my chops a bit for being an annoying Emacs evangelist, but anyway...) I thought it was pretty funny and worth sharing here. He wrote the lyrics and used one of those Large Language Models like Stable Diffusion (or something like it) to make the actual music, and settled on a few different renditions of the song. You can listen to them on his website: https://www.extrema.is/blog/2024/04/29/emacs-philosophy

    13
    2
    linux Linux Janus, a simple text editor
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 100%

    I have been using both professionally for at least 15 years and IMO without a doubt Qt is so much easier to use, read and work with it’s not even a comparison.

    I also use Qt professionally, and it is indeed an excellent GUI library. I have absolutely no complaints with how well it is designed and how easy it is to use, and I am consistently amazed by how beautiful the results are, especially with desktop environments like KDE Plasma.

    My complaint, which is really a deal-breaker for me, is that Qt effectively forces you into using C++ and Python and/or QML+Quick. For the non-professional software I develop, I want my apps to be scriptable by end users, and I do NOT want to force them to choose between only Python or Quick as their scripting language. For building scriptable, truly cross-platform GUI apps, Gtk is the only game in town.

    Gtk is much harder to use only if you are coding in C, because it depends so heavily on the C preprocessor to hack together the infrastructure that C++ has built-in. But because it is so easy to bind scripting languages to Gtk, you only need to program a few very core features in C, the rest you can program in any scripting language of your choice. This very important feature I think is a worthwhile trade-off for making it harder to code in C, especially if you are able to code the larger portion of your application (which is almost always the case) in a scripting language like Lua or Scheme. (Although I admit, most Gtk scripting is done in Python, just as it is with Qt.)

    Plus in comparison to Qt there are almost no commercial outfits using Gtk professionally and selling products based on it.

    Perhaps, but I would point out that both Canonical and RedHat (now IBM) are both heavily invested into developing Gnome, and I believe most of the paid Gtk development has been funded by these two companies.>

    1
  • linux Linux Janus, a simple text editor
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 75%

    As someone who is trying to develop my own Linux destkop apps, I can tell you that the day that I switch to Qt is the day Qt provides a feature that works as well as GObject Introspection (GI) does for Gtk. GI creates a cross-platform database of objects, properties, and signals, for auto-generating language bindings, so you can customize your Gtk programs with scripting languages (Python, Lua, Vala, JavaScript, Scheme). It is a relatively simple task to bind any programming language to GObjects thanks to GI.

    Qt does have a QMetaObject system which is similar, but C++ is a difficult language to bind to on most operating systems because of how native language functions are labeled in the library code -- names are "mangled", a hack to work around the miss-match between object libraries features (.so or .dll files), which do not provide the ability to "overload" functions, and C++ libraries features, which do provide this ability. The function/method overloading feature is used quite often in any C++ program. But decoding mangled names for language bindings can be very error-prone without the sort of automation that GI provides.

    As it is now, really the best way to develop Qt apps is to use C++, with Python for scripting, because these languages are the most well-supported by Qt (C++ natively, Python being the most stable and well-maintained "foreign" language for Qt). And I like neither of these two language. Gtk gives you a much larger selection of scripting language choices, even though it is programmed in C, and this is thanks to how well GObject Introspection works.

    2
  • aboringdystopia A Boring Dystopia US Air Force successfully tests AI-controlled fighter jet in first dogfight against human pilots
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 50%

    According to the story told by Schwarzenneger's character in part 2, Skynet started out controlling only in US Air Force drones (hence the name), and was soon after connected to everything else. Eventually human decision making was removed from the control of the system.

    0
  • aboringdystopia A Boring Dystopia US Air Force successfully tests AI-controlled fighter jet in first dogfight against human pilots
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 50%

    It was also the plot of the Terminator series of films. Well, except for the detail that the AI controlling the aircraft (called "Skynet") became "self aware" and that is what caused it to launch all the nukes to kill all the humans.

    So how it differ from Terminator's "Skynet" is that these real life AI are being controlled by genocidal maniacs (the largest concentration of whom seem to live in the US and Israel at present) and they are setting these things to "auto-kill" mode, like what happened in Gaza recently. And the genocidal maniacs gleefully ignore international law, saying "you want to stop me, you and what army?" So who is to keep them from turning the robots against you and me?

    0
  • palestine Palestine Big Bang Theory actor who plays Amy Farrah Fowler is a vocal Zionist
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 100%

    You seem to know more about these ethnic groups than I do.

    In my opinion, the ethnic or racial categories that define "white" or not make no sense. The definition of "white" according to white supremacists has always been very ephemeral (e.g. sometimes including Italians or Irish, sometimes excluding), and has no basis in science or reason. "White" is defined purely by political ideology.

    From a more practical point of view, I believe if you are trying to understand how white supremacists think, I would say they define "white" as the people protected by the politically powerful, who are seen as human, or as first-class citizens, or as deserving of protection under the law, whereas non-white are those who the politically powerful want to erase from humanity. They constantly shift the definition of "white" to match these criteria as the political ideology evolves over time.

    So from that point of view, you could think of antisemitism as a form of white supremacy that excludes Jews from the "white" category, while Zionism is a form of white supremacy that includes Jews as "white." But both are white supremacy, both are evil.

    2
  • palestine Palestine Big Bang Theory actor who plays Amy Farrah Fowler is a vocal Zionist
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 100%

    Yeah, I knew about this. Well, now she can also include "vocal supporter of genocide and white supremacy" on her resume as well.

    7
  • til Today I Learned TIL that quadruple A batteries exist
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 100%

    Came here to say this. I once cut open a 9-volt battery and discovered it was really just 6 AAAA batteries wired in series.

    1
  • linux Linux Noob Question Thread: Ask Any Questions About Linux!
    Jump
  • "Initials" by "Florian Körner", licensed under "CC0 1.0". / Remix of the original. - Created with dicebear.comInitialsFlorian Körnerhttps://github.com/dicebear/dicebearRA
    Ramin_HAL9001
    5 months ago 100%

    Awk is a programming language designed for reading files line by line. It finds lines by a pattern and then runs an action on that line if the pattern matches. You can easily write a 1-line program on the command line and ask Awk to run that 1-line program on a file. Here is a program to count the number of "comment" lines in a script:

    awk 'BEGIN{comment_count=0;} /^[[:space:]]*[#]/{comment_count++;} END{print(comment_count);}' file.sh
    

    It is a good way to inspect the content of files, espcially log files or CSV files. But Awk can do some fairly complex file editing operations as well, like collating multiple files. It is a complete programming language.

    Sed works similar to Awk, but it is much simplified, and designed mostly around CLI usage. The pattern language is similar to Awk, but the commands are usually just one or two letters representing actions like "print the line" or "copy the line to the in-memory buffer" or "dump the in-memory buffer to output."

    4
  • mastodon
    Mastodon Ramin_HAL9001 9 months ago 84%
    Block Meta/Facebook from Mastodon https://tilde.town/~ramin_hal9001/articles/fediblock-facebook-and-threads.html

    (*This is an extended version of one of the most [widely re-shared post I have ever written on Mastodon](https://emacs.ch/@ramin_hal9001/111579818136072605).*) The new "Threads" app by Meta (Facebook) is just the old 4-E strategy strategy to destroy Mastodon: 1. **Embrace:** (what they are doing now) launch a competing but compatible service with that of Mastodon. The vast majority of users, most of whom don't care about the privacy and intimacy of the Mastodon network, will go with the brand with the most name recognition. The number of users already signed up for Threads shows this to be true. 2. **Extend:** make their service appear to be better with features like search, which they have the resources to do, but the rest of the Mastodon network does not. Also include features for tracking and advertising, sell this as a good thing, "a better place to grow your personal brand, your business." When people think about joining either Facebook Threads or some other Mastodon instance, which will they choose? "Oh, Threads users can also talk with Mastodon users so they are basically the same? Well, why not just use Threads then?" The one with the most name recognition will always win. Then comes the blogs and YouTube videos about, "I tried Threads, Bluesky, Mastodon, Pixelfed, each for 1 month, here is what I learned" type videos in which the author decides Threads or Bluesky is best because they have better features and you don't have to decide which instance to join. 3. **Extinguish:** after attracting a critical mass of users large enough to decimate the user base of the competing Mastodon network, and temporarily making appear to have better features like search, quietly remove compatibility with the Mastodon network. This might effect only 10% of Mastodon users because the other 90% will be on Threads. Then people will think, "who cares if we lose contact with that tiny minority of *old Mastodon* users, they should have just joined Threads by now anyways, they still can. It has search, and more people voted for it with their patronage. And you don't have to think about what instance to join, its easier\!" At this point, people begin to wonder what the point of Mastodon even is. 4. **Enshittification:** without any real competition to keep people from leaving for an alternative, start exploiting users for more and more content for ad revenue, while also exploiting advertisers with ever-increasing costs of ad revenue, while also cutting costs on the quality of their service until it becomes unusable. But at this point it is too late for Mastodon, the momentum it once had is now long gone and no longer a threat to the Meta corporation. Their investment paid off. Meta is one of the worlds largest corporations that has made most of its money not just through advertising but from gathering and selling people's personal information. They are scared to death about losing control over the Internet that they had gained over the past 15 years or so, and they are fighting to take that control back for themselves. **We built this,** but now a corporation like Meta/Facebook feels they have the right to exploit it for all its riches until it is destroyed. Don't let it happen. Join the Fediblock cause, it is the only way to protect our home-grown community from corporate take-over. ### Eugene Rochko thinks Threads is good, he is wrong [Eugene Rochko](https://en.wikipedia.org/wiki/Eugen_Rochko) who developed Mastodon as a Twitter-like app based on the [ActivityPub protocol](https://en.wikipedia.org/wiki/ActivityPub), has a [blog post](https://blog.joinmastodon.org/2023/07/what-to-know-about-threads/) explaining why he thinks federating with Threads is good for Mastodon. > We have been advocating for interoperability between platforms for years. The biggest hurdle to users switching platforms when those platforms become exploitative is the lock-in of the social graph, the fact that switching platforms means abandoning everyone you know and who knows you. The fact that large platforms are adopting ActivityPub is not only validation of the movement towards decentralized social media, but a path forward for people locked into these platforms to switch to better providers. Which in turn, puts pressure on such platforms to provide better, less exploitative services. This is a clear victory for our cause, hopefully one of many to come. ![Eugen Rochko: \<q\>if you've got questions about what interoperability with Threads means, we wrote this up back in July, and you can still refer to it. Make no mistake, this is huge for Mastodon. Currently people have to choose between X, Mastodon, and Threads, and network effects play a dominant role in that choice. IF we can say, you can access all the folks that went to Threads from a Mastodon account, that makes it a far more attractive option given all of its other perks :winking\_face:](./media/eugene-rochcko_facebook-threads-is-huge.webp) No, Threads will get people to leave Mastodon in droves. Really all Facebook is doing here is leaching users away from Mastodon. The average user doesn't know or care about the “perks” of non-Facebook Mastodon instances that Eugene is talking about. They will go with the service with the most name recognition every time, rather than trust an independent, small-time instance operator. Threads is just Facebook with ActivityPub compatibility and extended Facebook's ads and tracking. The goal is to pull people away from decentralized networks and back to being under their control. Then the network effects Eugene is talking about will kick in, but moving people away from Mastodon and toward Threads. ### History repeats itself again We have seen all this before. Google did something similar when they first **embraced** support for the open and federated XMPP protocol in their Google Talk (GChat) app, and exactly the situation I described above happened. Eventually Google [shut it down,](https://arstechnica.com/gadgets/2014/04/reminder-third-party-google-voice-apps-shut-down-in-20-days/) and started calling the original XMPP apps "unauthorized third-party apps," although in fact Google was itself originally a third-party to the existing XMPP services that existed before GChat was invented. People [can and do still use XMPP](https://providers.xmpp.net/), and I would encourage you to use it as well for video/voice/text chat. But all that momentum and popularity was **extinguished**, and was never really regained, at least not in the 9 years since Google extinguished it. So Google was successful in destroying a community of federated services using a popular communication protocol that made it difficult for Google to track and control people on the Internet. We know for sure what Facebooks goal is **not**: they do not want to do something good for the various communities of people that have organically sprung-up around Mastodon and the other ActivityPub-based federated social networks. Mastodon does not need to make this mistake with Facebook Thraeds. ### Mastodon and ActivityPub are important Mastodon became most popular in the wake of Elon Musk buying out the Twitter corporation. Calling himself a "[free speech aboslutist](https://theconversation.com/twitter-and-elon-musk-why-free-speech-absolutism-threatens-human-rights-193877)," which sounds as though he believes everyone should have a voice online no matter how unsavory that voice might be, quickly proved to be anything but a proponent of free speech, quietly censoring his critics and the political groups he hated, while giving a voice to everyone else, including (seemingly enthusiastically) giving a voice to racists and hate speech. This happens every so often, although not always with the amount of drama churning around a single central figure such as Elon Musk. People see how dangerous it is that the communities we form over the Internet can only actually exist at the whims of an impersonal corporation that might at any point go insane and destroy their communities. When an Elon Musk event happens, then the problem becomes clear to everyone: they had been putting their faith into a monarch and/or despot like Twitter, and now it has turned against them. The solution to this is, and always has been, the democratic approach, which in this case is Mastodon. Do not allow any one authority to have aboslute control over the plane of existence. Allow people to opt-in, and give them a say in how their community is run. Trust that people are smart enough to understand what is in their own best interest, and allow them to make their own decisions and cast their own votes. This is how ActivityPub and Mastodon work. But if a democracy is not careful, it can easily be overwhelmed and elimitated by the well-equipped armies competing for their resources.

    91
    20
    lisp
    Lisp Community Ramin_HAL9001 11 months ago 80%
    ICFP 2023: Why Program in C+Python when you can program in Zig+Scheme? https://icfp23.sigplan.org/details/declmed-2023-papers/5/Why-code-in-Python-C-if-you-can-code-in-Lisp-Zig-

    Another bit of gold from ICFP 2023 by Pjotr Prins of the University of Tennessee. **The actual title of the talk is "Why code in Python+C if you can code in Lisp+Zig?"** but the "Lisp" in this case is actually Guile Scheme. I didn't know this, but Zig uses the C ABI so it binds to any language that can do FFI bindings to C, including most Scheme and Common Lisp implementations. But why don't I just post the abstract here: > "Most bioinformatics software today is written in Python and for performance C is used. Lisp has been around for over half a century and here I don’t have to tell how or why programming Lisp is great. I will talk about Zig as a minimalistic new language that is unapologetically focused on performance, tellingly with a blazingly fast compiler. It is advertised as a replacement for Thompson, Ritchie, and Kernighan’s C, but it may even replace C++ in places. Zig uses the C-ABI and does not do garbage collection, so it is ideal for binding against other languages. In this talk I will present combining GNU Guile Lisp with Zig. I’ll argue that everyone needs two languages: one for quick coding and one for performance. With Guile and Zig you get both at the same time and you won’t have to fight the Rust borrow checker either."

    3
    0
    lisp
    Lisp Community Ramin_HAL9001 12 months ago 100%
    "How is Lisp useful?" -- a blog post in which I explain how I use Lisp https://tilde.town/~ramin_hal9001/articles/how-is-lisp-useful.html

    **Note:** this was originally [a comment I wrote on Lemmy](https://lemmy.ml/comment/4311120) in answer to the question “what type of problems do you solve using Lisp?”. The post got to be a bit too long, and I am re-publishing it here as a proper blog post. I am also including some of [a post I wrote on Mastodon](https://emacs.ch/@ramin_hal9001/111106996069927016) which touched on some of these same issues. So to answer the question: I have known about Common Lisp and Scheme for years, but only recently started using them. This is the story of the 3 Lisp dialects that I use. ### Emacs Lisp I use Emacs and Emacs Lisp to manage my tens of thousands of text files, I write Emacs Lisp scripts to automate simple tasks like searching for pieces of information, formatting it, and outputting it to a report that I might publish on my blog or send in an e-mail. I also use Emacs to help with data cleaning before running machine learning processes. Emacs helps with navigating CSV and JSON files, it also is a really good [batch file renamer](/~ramin_hal9001/emacs-for-professionals/batch-file-renaming.html). ### Scheme I have recently started using [Guile Scheme](https://www.gnu.org/software/guile/) to do some personal projects. I went with Guile over the myriad other Scheme dialects because it is the implementation used for the [Guix package manager](https://guix.gnu.org/) and operating system. - Also, there the [Goblins](https://spritely.institute/goblins/), which is a [distributed object-capability programming system](https://en.wikipedia.org/wiki/Object-capability_model) is officially supported on the Guile platform, and I have been really wanting to write applications using this programming style ever since I first learned about it. - Also, there is the [G-Golf](https://www.gnu.org/software/g-golf/) foreign interface layer allows Guile to automatically use an C library that implements the GObject Introspection interface. So through Guile, like with Python, you can use any C code library used to create of all native apps in the [Gnome](https://www.gnome.org/), [MATE](https://mate-desktop.org/), [Cinnamon](http://cinnamon-spices.linuxmint.com/), or (my personal favorite) the [Xfce](https://xfce.org/) desktop environments. This potentially makes Guile a viable alternative to Python scripting across all of those Linux desktop environments. Of all the Lisp dialects, Scheme is my favorite, for a few reasons: - **It is absolutely tiny.** Guile is relatively large (not as big as Common Lisp), but other implementations are unbelievably small. for example the Chez Scheme “petite” interpreter is fully compliant with the R5RS standard, and the executable is like 308 kilobytes on a 64-bit Linux computer system. - **Hygienic macros** with [`syntax-case`](https://www.gnu.org/software/guile/manual/html_node/Syntax-Rules.html) - **[Recursive functions](https://www.gnu.org/software/guile/manual/html_node/Control-Flow.html)** over using the [`loop` macro](http://www.lispworks.com/documentation/HyperSpec/Body/m_loop.htm) of Common Lisp. When writing algorithms, I personally find it easier to reason about recursive functions than loops. Scheme also provides me the ease-of-mind that comes with knowing the optimizing Scheme compiler will ensure recursive loops will never overflow the stack. - **[Pattern matching](https://www.gnu.org/software/guile/manual/html_node/Pattern-Matching.html)** is well supported by most Scheme implementation. - **It is a "Lisp-1" system**, meaning there is only one namespaces for variables and functions, as opposed to Common Lisp (a "Lisp-2 system") which allows a name to be either a variable, a function, or both. I personally find it easier to reason about [higher-order functions](https://www.gnu.org/software/guile/manual/html_node/Higher_002dOrder-Functions.html) in Lisp-1 systems. - **Support for [Delimited Continuations](https://www.gnu.org/software/guile/manual/html_node/Prompts.html)**, which is a fairly recent discovery of computer language theory (first being discussed back in the 1990s), but is available across a few Scheme implementations. ### Common Lisp That said, I am also starting experimenting with [Embedded Common Lisp (ECL)](https://ecl.common-lisp.dev/) because it is a lightweight standards compliant Common Lisp implementation that compile your program into C++ code, and this is useful to my professional work. The modern software industry, especially in the realm of big data and machine learning, has mostly settled on a pattern of using C++ for creating performance critical libraries, and creating Python binding to the C++ libraries for scripting. I was hoping languages like Haskell and/or Rust might come along and change all this, but it will take decades (if ever) for the software industry to turn in that direction. The problem with Python, in my experience (and I believe many other software engineers would agree) is that it does not scale well to larger applications at all, whereas Common Lisp does. This is for various reasons, but mostly due to how Lisp does strong dynamic typing, and also the CLOS implementation of the meta-object protocol. Yet too many companies waste time writing large applications in Python — applications that are much larger than the scripting use cases that Python was originally intended to be used. I believe this is time and money better spent on other things. So I see Common Lisp, and the ECL compiler, as a potentially viable alternative to the sub-optimal status quo of Python as a scripting layer around C++ code libraries, at least perhaps for my day job, if not being more generally true industry-wide. Mostly, ECL would allow me to write a program in Common Lisp instead of Python, but deliver to my clients the C++ code that ECL generates to be used in their machine learning projects. (I have not actually done this yet, I am still investigating whether this would be a viable solution to any of my projects). ECL makes it easy to use C++ libraries through Lisp instead of Python. And there are so many good C++ libraries out there: [Qt](https://www.qt.io/), [OpenCV](https://opencv.org/), [Tensorflow](https://www.tensorflow.org/), [PyTorch](https://pytorch.org/), [OpenSceneGraph](http://www.openscenegraph.com/), [FreeCAD](https://www.freecad.org/), [Godot game engine](https://godotengine.org/), [Blender](https://www.blender.org/). And it compiles easily on Linux/Unix (GCC), Windows (MSVC), and MacOS (via Clang++), so good for cross-platform development. ### Conclusions So in spite of Lisp being such an old family of languages (its earliest incarnations dating all the way back to 1958), and being superseded in popularity and widespread use by languages like Python and JavaScript across the software industry, Lisp is still a modern, relevant, evolving, and very useful family of programming languages. At the same time, a Lisp such as Scheme or Common Lisp would even be a better choice of programming language in many applications where Python is currently used. I just hope I eventually find the time to try out all of these Common Lisp and Scheme related ideas I have. I especially hope ECL turns out to be a profitable technological choice for the professional work that I do. But only time will tell. Please feel free to comment here, or [on Mastodon](https://emacs.ch/@ramin_hal9001/111149420430195320 )

    6
    0
    linux
    Linux Ramin_HAL9001 12 months ago 96%
    Using a Laptop as a KVM (or dumb terminal) with SSH X11 forwarding https://tilde.town/~ramin_hal9001/articles/linux-laptop-as-kvm-with-xorg_ssh-x11-forwarding.html

    Here is my latest blog post on a method of using a laptop equipped with an X11 server as a KVM or graphical dumb terminal (not to be confused with "kernel virtual machine") to display an entire desktop environment on one of the virtual terminals of the laptop. You might be familiar with running an X11-compatible program over SSH, seeing a remote GUI app displayed on your local machine. You could also run a whole desktop environment such as "xfce4-session" over SSH and attach it to a virtual terminal (which you switch between using Ctrl-Alt-F1 through Ctrl-Alt-F7, usually, on Debian-based systems). This is nice if you have a few always-on Raspberry Pis laying around, and you usually use SSH to remote login and control them, but you would like to have a full desktop environment, not just one app, show up on your local computer.

    55
    14