@ramin_hal9001@emacs.ch
@ramin_hal9001@emacs.ch avatar

ramin_hal9001

@ramin_hal9001@emacs.ch

I'm just some kind of nerd: software developer, big fan of functional programming, especially Haskell and Scheme. I also love old Macintosh computers. Haskell programming since 2007, Linux user since 2008, Emacs user since 2018. Currently working as an app developer at a small machine learning consultancy. You could call me a "full stack" engineer, but server-side is where I am really in my element.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

rml, to emacs
@rml@functional.cafe avatar

about every two years I ditch my init.el and build back up from scratch, and every time it feels great. I'm finally breaking off from org-roam which, for all the good its done me, has become a thorn in my side due to the centralized store. about to give a try, which I've been interested in for a while now.

learning via @ramin_hal9001's presentation a couple years ago at conf
https://emacsconf.org/2022/talks/rolodex/

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@dekkzz76 Hyperbole creates a set of rules for identifying links which are only activated when you press the hyperlink activate key chord "M-RET" key. Of course, Emacs can already assign hyperlink properties to arbitrary text, but Hyperbole provides two advantages over an ordinary hyperlink:

  1. Since the Hyperlink rules are only applied on the "activate" key chord, you can apply very sophisticated rules to just the text under the cursor without having to parse the whole buffer and assign hyperlink properties to text, which would be very slow. This makes the Hyperbole hyperlinking rules much more versatile.
  2. The key chord is enabled as a global minor mode, so the hyperlink rules work in any buffer, regardless of what mode the buffer may be in. It is basically a markdown for links that can be included anywhere. The advantage of markdown is of course that it is human-readable, even if your editor does not recognize it as markdown. So you can include Hyperbole links in the comments of source code, in e-mail messages, or as the output of shell scripts, and the hyperlinks all just work (as long as you are in Emacs).

@rml

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

> "If I'm understanding links/buttons correctly, it would enable me to create commands from text (and at any point I want to do so)?"

@zyd yes, there are two button markups for calling arbitrary Emacs Lisp commands:

  • Curly bracket-delimited key chords will run whatever command is bound to those key chords, for example {C-20 M-g M-g} will call "goto-line" with 20 as an argument. (Make sure the cursor is placed somewhere within the brackets, not on or before the brackets).

  • Angle bracket notation executes arbitrary Emacs Lisp code within the brackets. (It is safe because you can see what code will be executed.) For example:

    <mark-whole-buffer>

    <eval (save-excursion (goto-char (point-max)) (insert "Hello, world!n"))>

And of course you can define your own functions and commands with descriptive names:

<my/git-fetch-and-pull-here>

@dekkzz76 @rml

louis, to random
@louis@emacs.ch avatar

Or, we could just build our own Mastodon client with Common Lisp.

Took me less time to build this with than desparately trying to fetch that data in the Web UI.

Who knows what this will morph into. :p

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

> "Or, we could just build our own Mastodon client with Common Lisp."

@louis this would be my solution. Although I would go with Guile Scheme instead of Common Lisp, because of Guix packaging. And I would make a server too, and make it more like Kbin where you can do both Mastodon and Lemmy like posing.

civodul, to random
@civodul@toot.aquilenet.fr avatar

In Nixpkgs, the ‘shepherd’ package is not what I’d expect.
https://github.com/NixOS/nixpkgs/blob/nixos-unstable/pkgs/by-name/sh/shepherd/package.nix

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@civodul "shepherd" in NixOS is a little dissapointing:

"A utility for applying code changes across many repositories"

@Mehrad that's nice, if there were a copyright battle, GNU Shepherd would win.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@Mehrad @civodul it is true, Guix will need a lot more engineering resources (full-time, paid software developers) before it could become useful. It especially lacks hardware support unless you go out of your way to setup non-free software package channels.

For the most part, if you stick to only using the main package channels, and don't do anything fancy for developing your own apps like changing package dependencies or build options, everything just works. This at least gives you access to instant roll-backs, and things like GNU Shepherd.

I prefer to use Guix as a package manager, in particular, I will use Guix as an alternative to FlatPak, Snap, and AppImage. It co-exists perfectly with any Linux distro's native package manager. So I let my Linux distro handle my operating system and desktop environment, and I install my favorite apps with Guix.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@Mehrad @civodul I think if you go to the Guix hompage, there is a "Help" menu, and there are links there to a Guix reference card, the Guix cookbook, and the Guix manual. So this serves as a single entry point, does it not?

Part of the problem is that Guix can be used as an Linux distro and a package manager, and the package manager is highly configurable with various channels. So your "entry point" to Guix might be different from other people, depending on how you want to use it. I think the Guix homepage does a pretty good job of providing resources for general purpose use cases. It seems to me that if you are using the HPC channel, you are not in the group of people who use Guix for general purposes.

> "For example as one of the most confusing parts: there is https://packages.guix.gnu.org/ and https://hpc.guix.info/browse to search for packages, (why?)"

The reason why is because there are multiple channels for packages. I recommend you use Guix command line tools to search for packages, rather than using the websites, because the Guix command line will search all the channels that you have access to, rather than you needing to know which channel provides which package and searching the channel website.

guix package --search='name-of-thing*'

> "Guix extremely relies on info pages. But that is not well known to 99.9% of world population."

For what it's worth, I really love the Info manual pages, it is very easy to find all the information I am looking for in this documentation, as long as you use Emacs (which I do) or the stand-alone "info" CLI utility. All you need to do is use the search features: index search (press "i" and type your query with tab completion) and menu search (type "m" and type your query with tab completion). The "index" is the index of all keywords in the manual, it is good to use if you do not yet know what you are looking for. The "menu" is a list of all documentation subsection titles, it is good to use if you already know what you are looking for.

freakazoid, to random
@freakazoid@retro.social avatar

Until the kids started using the Xbox again I had no idea how many games these days are networked and "multiplayer" except that the presence of other players seems to add very little value to the game, because even though the game might show them, you don't actually interact with them in any way. The networked nature of the game doesn't change the gameplay at all except for leaderboards or whatever. It's like in The Sims where other Sims from the same install (perhaps belonging to other players) would occasionally interact with yours.

Kids who grow up loving these games aren't going to be able to play them later, because many of them won't work at all when they're not networked even though being networked didn't really matter to the game, all in the name of "engagement" or encouraging in-game purchases or whatever. And that's before even considering DRM.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@freakazoid I got my kids on Minetest (the free Minecraft) from a young age. They play minecraft now, but they will always be ablt to go back to Minetest.

krusynth, to random
@krusynth@mastodon.publicinterest.town avatar

Happy 40th Anniversary of the day the Breakfast Club had their detention.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@msquebanh @krusynth "The Breakfast Clib" movie still feels fairly modern, it is kind of hard for me to beileve that the kids in the film (if they are the same age as their fictional characters) would be 57 or 58 years old now.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

> "Who was your fave character/actor in it?"

@msquebanh

> "i think i could relate to the goth girl (Ally Sheedy), but tbh it's been so long, i would have to see the movie again."

@blogdiva

> "that was who I related to most - I loved Ally Sheedy in that role."

@msquebanh Oh jeez, I still have a crush on Ally Sheedy's character in Breakfast Club, she is so beautiful. I don't know if she was supposed to be goth per say, but they referred to her as "a basket case" in the letter to the principle at the end of the film, so maybe? But yeah, I related mostly to Ally Sheedy's character, and to a lesser degree, the nerdy kid who admitted to suicidal thoughts.

@krusynth

daviwil, to random
@daviwil@fosstodon.org avatar

The indoctrination begins at birth

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@daviwil of course I have never met your wife, but I can tell that this kid takes after her, she is way too cute to have taken after you! 😝

rml, to random
@rml@functional.cafe avatar

Under communism will be the mandatory first programming language for all aspiring programmers.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@rml Python and JavaScipt are the languages of the liberal petite-bourgiouse. There can be no freedom until these are overthrown.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

> "2023: Guile , Guix

> 2024: Stalin scheme, Red Star OS"

@rml ah, the compiler that single-handedly defeated the Nazis during the second world war. I get the sense that we again have a need nowadays for some good Nazi-smashing technology.

I have never tried Stalin, but I think it is R5RS only, and that would make it a bit difficult to run on the majority of my code which is R7RS.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

> "Legend has it that intermittently flashes the word across the screen as a subliminal "fuck you" to the man. I think its working."

@rml "git grep" wont work as-is because it is encoded in the source code with ROT-13, so you would have to grep for the ROT-13 encoded string for "COMMUNISM" in order to find it. They aren't stupid enough to leave a subliminal clue like that as plain text right there in the source code.

LBH UNIR ABGUVAT GB YBFR OHG LBHE PUNVAF

timnitGebru, to random
@timnitGebru@dair-community.social avatar

Have you heard of expert systems? Probably not. That was the "AI" that was gonna change humanity that billions were being poured into in the 80s. The same news orgs hype stuff up during "AI summers" without even looking into their archives to see what they wrote decades ago.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

> "Have you heard of expert systems?"

@timnitGebru https://www.youtube.com/watch?v=_S3m0V_ZF_Q

This epsidode of "The Computer Chronicles" mentions expert systems and Lisp systems.

Also, I am pretty bitter that Python became the language of choice for statisticians and therefore modern machine learning and neural networks, when back in the 70s and 80s everyone thought Lisp machines were computers that was going become sentient. Lisp is superior in quality to Python in almost every way.

blogdiva, to random
@blogdiva@mastodon.social avatar

NO.
now is NOT the time to tell people not to criticize Biden. look at what he is doing for after almost half a million votes during these .

NOW IS THE TIME TO PUSH DEMOCRATS, TO THE LEFT AS HARD AS WE CAN.

Protests work.

Democrats need to be the party, not the party of meeting the fascists in the middle.

now is the time for all democrats to act like members of an antifascist party and not as just the opposition.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

> "Historically speaking, centrists capitulate to fascists while they will utterly and violently reject the 'left'"

> "to be afraid to criticise Biden because of what the other side is doing would be very dangerous"

@fedwards9965 @ozzy @blogdiva damn, ain't that the truth. Looking at the centrist comments in this thread is proof positive of that. Centrists love to think of themselves as so much more reasonable than the Trump right, but then lose their shit when anyone criticizes their president, casting around accusations of "ruining our democracy".

So the centrists defend thir own brand of fascism while calling it "democracy", and claim to be "anti-fascist." They oppose the fascism of Trump simply because Trump isn't the brand of fascism they prefer, and to that end defend a president who... (checks notes) assists in committing genocide of simitic/arab people in Gaza, but that's OK because Trump would do the same and worse. Yeah. "Reasonable" people, not "far left." Well done guys.

I'll vote Democrat because, as @blogdiva has said before, it is harm reduction, and I will still criticize Biden and the Democrats for every single last amoral thing that they do office, because that is the moral thing to do.

> "I just think that demanding that Biden snap his fingers and fix everything is just another example of American Exceptionalism"

> "Stop the attacks on our President."

> "I am anti-facists ... But I am not 'far-left' by any means. "

> "I'm not worried about criticism, I'm worried about depressing turnout."

> "this toot is just. massive load of poop ... If you help Trump get elected "

@ShredderFeeder @barney @ariaflame @lovelylovely @mloxton @thetechtutor you all are closeted fascists who are tacitly supporting genocide, every one of you. I am so sick of all of your bullshit.

ramin_hal9001, to linux
@ramin_hal9001@emacs.ch avatar

If you cannot use , which is better: Mac OS X or Windows

I ask because I am starting a job where the IT department can only supply me with a generic Windows PC or . I actually want to run or something with Linux (Guix OS) on the host machine, since most of the software I rely on is for Linux. I have tried but it has never been a good user experience for me.

I am leaning toward Mac OS X just because it seems to require less memory than Windows but both Mac and Windows ask for a minimum of 4 GB, and I want the host OS to take as little memory as possible and leave as much as possible for the guest Linux OS. Also, its a system with , and in my experience the native versions of most Linux software work pretty well on Mac OS X.

Does anyone have experience with all three operating systems who can offer advice?

louis, (edited ) to emacs
@louis@emacs.ch avatar

Not sure what I'm doing wrong, but I'm trying to do some project-find-regexp with an expression like this: func() and it still finds everything with func. I was expecting that it only finds "func()", what did I get wrong?

ramin_hal9001, (edited )
@ramin_hal9001@emacs.ch avatar

> "I've worked with regexp libraries that took () as literal and () as grouping operators (e.g. in sed and nvi)"

@RogerBW @louis this is the correct answer in the case of Emacs. Here "(...)" are grouping operators, do not use backslashes if you want to match literal paren characters. Another good way to ensure you mean literal parens is to write "[(][)]", i.e. place them in character sets.

Confusingly, Emacs treats "+" as "match one or more" and "+" a literal character, which is the opposite of how Sed and "grep -e" does it. Apart from that, the escape codes in Emacs work pretty much the same as Sed or "grep -e".

DrALJONES, (edited ) to Israel
@DrALJONES@mastodon.social avatar

deleted_by_author

  • Loading...
  • ramin_hal9001,
    @ramin_hal9001@emacs.ch avatar

    @DrALJONES I would like to believe that the "uncomitted" vote is for solidarity with Palestine and a protest against Biden' pro-Israel policy, but unless there are exit polls showing that this is the precise reason, I have to think that the actual reason has more to do with his age and his choice of vice president.

    louis, to random
    @louis@emacs.ch avatar

    I really wanted to get my hands dirty with C++ tonight. Instead , I spent the last three hours fighting against spam and blocking domains.

    That constellation is perhaps the reason why it makes me a little mad to read from the Mastodon Corporation's CEO that "enabling hCaptcha for sign-ups" would solve the spam problem.

    At least this statement explains the blatant lack of moderation tools available on the Mastodon server software.

    ramin_hal9001,
    @ramin_hal9001@emacs.ch avatar

    @louis I have seen no spam. Thank you so much for you hard work!

    ajsadauskas, to ai
    @ajsadauskas@aus.social avatar

    In five years time, some CTO will review the mysterious outage or technical debt in their organisation.

    They will unearth a mess of poorly written, poorly -documented, barely-functioning code their staff don't understand.

    They will conclude that they did not actually save money by replacing human developers with LLMs.

    @technology

    ramin_hal9001,
    @ramin_hal9001@emacs.ch avatar

    @ajsadauskas @technology good prediction. This is basically what they always do with every overly-hyped technology.

    ramin_hal9001, to emacs
    @ramin_hal9001@emacs.ch avatar

    I finally started using Mastodon.el in

    Given the recent changes planned to be coming to coinciding with a rare lull in my daily work, I finally decided to go through with the effort to switch my browser over to on all of my computers, and also to start using non web-based clients for as many of my apps that I can. Part of this effort includes switching over to Mastodon.el in .

    So far it has been one of the easiest Emacs apps I have ever used, and if I had known it would be this nice I would have switched a long time ago. I only wish there were a more distinct visual division between each "toot", but I can get used to the way it is now no problem. And also the fact that now it integrates into the rest of is in and of itself an incredibly handy feature that the web-based client could never have.

    ramin_hal9001, to fediverse
    @ramin_hal9001@emacs.ch avatar

    Bonfire: a general server with pluggable front-end modules

    ...and it is programmed in Elixer!!! This typed programming language that runs on the Erlang platform automatically gives it a powerful advantage over more mainstream programming languages like Go or Ruby, through type safety and a language runtime that is built from the ground-up to be massively parallelizable and upward scalable, and easy to debug and patch running systems without downtime.

    But from an end-user perspective, this is a social network framework in which you can install whatever front-end features you want through pluggable modules. If you want a Mastodon-like module, install that, if you want a Lemmy-like, or a Pixelfed-like, or a Frendica-like, you can theoretically just plug those in as well. From administrative tools to search and post indexing to social graph analysis, there are as many as 75 currently listed plug-ins. For anyone interested in technology, this is definitely a project to watch, and possibly even to which to contribute.

    See also this article by Sean Tilly.

    RickiTarr, to random
    @RickiTarr@beige.party avatar

    Well y'all, we did it, we got Taylor Swift to date Travis Kelce, and her magic vagina gave him the strength to win the Superbowl. Through our collective Socialism and Witchcraft, Biden will now win the election...somehow.

    Liberal Conspiracy Highfives!

    ramin_hal9001,
    @ramin_hal9001@emacs.ch avatar

    @RickiTarr @AlgoCompSynth

    > "You'd think just not destroying the country would be enough"

    I expect 1. the country to not be destroyed and 2. acts of genocide not be committed with the direct aid of our tax money.

    Apparently, this is way too much to expect.

    ramin_hal9001, to Lisp
    @ramin_hal9001@emacs.ch avatar

    New PeerTub channel

    So I asked Will Byrd if I could re-upload his YouTube videos to PeerTube and he said it was OK, so I created a PeerTube channel called "Unofficial William E. Byrd" and am going to upload as many of the videos he makes to this channel that I can. (We'll see how diligent I can be about that.)

    Will recently decided to just create 2 or 3 videos every day for the next year, he is hoping to create 1024 videos this year.

    geekmomprojects, to portland
    @geekmomprojects@mastodon.social avatar

    Setting up my wearables installation with the CETI Institute in the Lloyd center (old GAP storefront) for the Portland Winter Lights Festival. Just need to clean up and tape down the power wires now. There are lots of other people setting up awesome original illuminated projects in the same space. If you're in the area, come by and check it out sometime this weekend. Info here: https://ceti.institute/event/constellations-2024/

    A walk-by view of six mannequins wearing a varied assortment of illuminated clothing. The first three are wearing little black dresses enhanced with LED strips and fiber optic cables. The last three all have denim jackets with illuminated diffused shapes on the back, worn over clothing decorated with LED strips and strings. Each mannequin is carrying an Illuminated purse.

    ramin_hal9001,
    @ramin_hal9001@emacs.ch avatar

    @geekmomprojects on the one hand, I absolutely love the artwork and creativity in these designs! On the other hand, a part of me is dying inside thinking about the e-waste that this could cause if these LEDs are not properly recycled when the clothing is discarded.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • megavids
  • rosin
  • Durango
  • osvaldo12
  • khanakhh
  • mdbf
  • DreamBathrooms
  • ngwrru68w68
  • magazineikmin
  • thenastyranch
  • cubers
  • Youngstown
  • slotface
  • kavyap
  • JUstTest
  • GTA5RPClips
  • anitta
  • tacticalgear
  • modclub
  • ethstaker
  • cisconetworking
  • InstantRegret
  • everett
  • provamag3
  • normalnudes
  • Leos
  • tester
  • lostlight
  • All magazines