@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.

ramin_hal9001, to fediverse
@ramin_hal9001@emacs.ch avatar

I am running across more and more trolls lately using that hack for Mastodon where they post from the same account on multiple instances (not sure how it works). The same account can post to a thread from like 5 different instances very rapidly. It is likely a bot (or a very dedicated basement dweller), they seem to be programmed to copy-paste from a long list offensive racist posts, and it is deliberately targeting underprivileged people.

It wouldn't surprise me if they were getting paid by Elon Musk himself to lower the quality of interactions on Mastodon and drive a wedge between people, because that is exactly what this kind of attack does.

software developers need to step up their game, provide admins with better to track the sources of these posts. This is a real problem, there are feature requests about this already.

Blacklisting is slow to respond to these kind of threats, but it untile we get better tools, it is currently our only means to fight back.

We may even need to discuss ditching the Mastodon reference implementation written in Ruby for an alternative server software, if these threats can't be addressed in a timely manner.

ramin_hal9001, to random
@ramin_hal9001@emacs.ch avatar

Question for anyone familiar with programming, and in particular (@wingo): how hard would it be to port GOOPS to other Scheme implementations like , , Gerbil, or Chicken? I know that other Scheme implementations provide their own systems (e.g. Chicken COOPS), but what if I want my library written in Guile to be more portable, could I still use GOOPS and try to move the code over to some other platform?

Or has this already been done? Is there a portable GOOPS, akin to a large Scheme library such as SLIB?

daviwil, to random
@daviwil@fosstodon.org avatar

I asked GPT-4 how to send an e-mail using Guile Scheme. Its first suggestion was a completely imaginary Guile module called (gnu inet). When I corrected it, it then suggested guile-email which has no SMTP functions.

Humanity will never be the same!

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@daviwil
I had a similar experience. I asked it about an obscure software engineering question (I think it was about whether there were any software libraries for mapping objects in a Datalog database to a JSON representation of that data). It recommended I use several non-existent technologies, and when I asked it where the documentation for these technologies were, it apologized and told me something to the effect of "this technology that I just made up to answer your question is what the technology would be called if it exsited." Because that is how it works, it just guesses the next word in the sentence based on advanced statistical models of language. It is not sophisticated enough to model the real world and run symbolic logic computations on those models. This will happen in due time, but ChatGPT cannot do it yet.

ChatGPT has no Internet connection so it cannot confirm facts using a search engine. It has "memorized" the entire internet, but if you ask question about a not-well-known computer language, or a very new computer language, it will just make shit up.

mttaggart, to opensource

Too many folks in the and communities fail to understand that the moral valence of a tool or product is not its primary feature to most users.

Lemme explain with tomatoes.

In the US, organic produce sales growth outperforms non-organic produce. It costs more, so why is this true? Two things are going on: first, the organic tomato still tomatoes as well as the non-organic tomato—it may even tomato better! Plus you have the added value of buying a thing you feel good about purchasing. We don't need to unpack "organic" right now, but I hope we can agree the term is designed to signal, among other things, a higher ethical echelon than the alternative.

So why don't people prefer "organic" software?

Because unlike the grocery store counterpart, organic software almost never performs the function at the level expected by the user, and often requires assembly. Even worse, it comes with bugs without support. Imagine buying a tomato that came with worms and you could not return it.

The thing needs to thing as well, if not better, than the alternative to be competitive. Taking the whole population into account, almost no one cares about "free software." Almost no one cares about freedom from advertising; we're all conditioned to accept it as part of internet life. And almost no one cares about privacy in a real sense. Those aren't your primary features, developers; those are bonuses.

I guess I'm trying to say the whinging about people moving to closed platforms is kinda telling on ourselves. If you sell a wormy tomato, you can't blame the buyer for picking from another shelf.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@mttaggart
There are two solutions to this problem, that I can see:

  1. just dump money and resources into open source for improved documentation, testing, UI/UX design, and gathering end-user feedback. Oh, wait, it is all done by volunteers who are increasingly having less free time and more difficulty in putting food on their own table.

  2. Educate the majority of people about why it is important to make ethical choices in the products that they buy, and that ethics should always be the first consideration, not the last. Also, educate the majority to organize and demand of their government that anything bought and sold be required by law to not cause anyone harm. But then, this would basically solve the crisis of capitalism that is melting the Earth right now.

So, your complaints are legitimate and address a real problem, but there is no viable solution to the problem.

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

The GCC release notes mention C23 features: type inference, and ‘constexpr’. Yes, C. 😱
https://gcc.gnu.org/gcc-13/changes.html

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@civodul
So C is going to standardize what C++ did years ago and redefine the semantics of the "auto" keyword.

That might be nice, I suppose. It would make it easier to declare one-off "struct" and "union" data types without always declaring an associated typedef for it, since now I can just declare the type "auto" and let the constructor expression speak for itself, no need to type the name of the datatype twice.

Although it might be another 10 years before people feel comfortable using this feature regularly, out of a fear of not being able to compile their code on older C compilers.

https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3007.htm

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@civodul
> "Also, my thoughts go to the developers of “small” C compilers like MesCC and TinyCC"

LOL! Well, is it really that bad? I thought MesCC does not need to be fully compliant with the C standard, it just needs to be able to compile the Mes fork of TinyCC. As long as TinyCC can compile GCC (and the GCC code base may not make use of this new feature for a while yet), it should be OK for a little while, right?

rml, to programming
@rml@functional.cafe avatar

"The focus of my research is applying , in particular , to low-level problems — the type of situations that usually call for or #c"

— highly recommended talk on programming with serialized data from @vollmerm @

https://www.twitch.tv/videos/1803057942

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@rml @theruran @vollmerm
I love how the minimal interpreter (without the compiler) on x86_64 Linux is only 346800 bytes. That is small and minimal. But the Chez compiler is best-in-class, producing the among the fastest and smallest binaries of any Lisp.

That said, Guile's licensing and it's use in , and it's extensive collection of libraries and SRFI support, make a superior choice for practical applications (IMHO). Also now I know of someone working on porting the "PreScheme" compiler from Scheme48 (a Scheme subset with no garbage collector) to Guile for use in building low-level performance binaries: https://gitlab.com/flatwhatson/guile-prescheme

> "I promise I'll convince everyone here that types are good by the end of this talk"

As a Haskeller, I do not need convincing at all. One thing that got me to even pay attention to however was a conversation with a friend, William Byrd -- by the way, who's dissertation is in relational logic programming from the University of Indiana under Dan Friedman, same school as the presenter in this video -- explained to me that the power of Scheme comes from both it's minimalism, but also it's macro system which you can use to implement any type system you might want. Byrd told me he is frustrated by the world kind of gravitating toward the Hindley Milner type checking algorithm used by OCaml, F#, Haskell, Typed-Racket, Coalton, Carp, and PreScheme, as if it is the end-all-be-all of type systems.

So anyway, Will Byrd convinced me how cool it is being able to use any type system at all in Scheme. Hindley-Milner, CSP, Pi Calculus, Calculus of Constructs, Separation Calculus, Location Calculus (which I just now learned about!), or maybe even more exotic constraints systems modeled on physics -- use whatever is best for your problem domain.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@rml @vollmerm @theruran

> "are there any texts on typing scheme you'd recommend?"

For calculus of constructs, I recommend Benjamine C. Pierce "Software Foundations," which you can read online. It uses for the exercises, and you can use the "Proof General" front-end to Coq in to do the exercises on your own computer. I've only got through the first chapter of the first volume so far though: https://softwarefoundations.cis.upenn.edu/

I don't have any one that kind of summarizes or compares all type systems. I ran across all these different type systems at times throughout my life. CSP and Pi Calculus I was introduced to in a class in graduate school, the original textbook on CSP by Tony Hoare was pretty good, pretty easy to read. Hindley Milner I just learned by using Haskell. Separation logic is described in this paper, but pretty heavy on mathematics: https://www.cs.cmu.edu/~jcr/copenhagen08.pdf

ramin_hal9001, to linux
@ramin_hal9001@emacs.ch avatar

Guix maintainers Janneke Nieuwenhuizen @janneke and Ludovic Courtès @civodul have announced just today that their "seed" C compiler "Mes" is now in production in Guix OS. Mes can, after several boostraping stages eventually compile GCC which in turn compiles Linux, Guile, and Guix. The bootstrap program (as I understand it) is written in Guile Scheme, and compiles to a 357 byte binary. Now when you do guix pull you will see that the entirety of the core operating system (some 22,000 expressions) all depend on that single 357-byte bootstrap program. The idea is to eliminate the footprint of trusted binaries that build the software for the OS and compiler toolchain -- the famous "Trusting Trust" problem outlined by Ken Thompson which he presented while receiving his Turing Award. Thanks to their hard work, we now have an operating system for which every stage of the build can be verified by a human. https://guix.gnu.org/blog/2023/the-full-source-bootstrap-building-from-source-all-the-way-down/

Nix OS people do not need to feel left out, a new issue on the Nix OS GitHub page has announced that they will begin a similar project. https://github.com/NixOS/nixpkgs/pull/227914

cwebber, to random

Guix (and Mes) have achieved a FULL source bootstrap! This is INCREDIBLE STUFF! https://guix.gnu.org/blog/2023/the-full-source-bootstrap-building-from-source-all-the-way-down/

> We are delighted and somewhat relieved to announce that the third reduction of the Guix bootstrap binaries has now been merged in the main branch of Guix! If you run guix pull today, you get a package graph of more than 22,000 nodes rooted in a 357-byte program—something that had never been achieved, to our knowledge, since the birth of Unix.
>
> We refer to this as the Full-Source Bootstrap.

!!!!!!!!!!!!!!!!!!!!!!!!!!!

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@aeva @cwebber
Sorry, I just have to ask you, why specifically the number 357 transistors? Is this like the smallest know number of transistors required to implement a lambda machine in hardware?

oliphant, to random

And you can’t keep crying over every mistake

You just keep on trying ‘til you run out of cake

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@oliphant
We do what we must, because we can.

For the good of all of us (except the ones who are dead).

oliphant, to random

Fox News just axed Tucker Carlson.

https://tvline.com/2023/04/24/tucker-carlson-leaving-fox-news-final-last-episode/

I guess too fascist for the fascist network?

Nah, probably because of Dominion settlement reasons.

You know, money.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@oliphant
I have no fucking clue, none of this makes any sense at all.

My best guesses:

  • Tucker decided to betray their true lord and savior His Royal Highness Donald the Trump, maybe he Tucker wants to run for president?

  • Tucker isn't right-wing enough for them anymore and is going to be replaced by someone who dons a KKK uniform on air and openly calls for the construction of gas chambers to enact his final solution against the "Woke Question."

Otherwise, I've got nothing. No fucking clue.

pivoinebleue, (edited ) to random

𝐁𝐑𝐄𝐀𝐊𝐈𝐍𝐆:

Fox News Breaks Up With Tucker Carlson In Exit Surprise

https://www.msn.com/en-us/tv/news/fox-news-breaks-up-with-tucker-carlson-in-exit-surprise/ar-AA1ah97k

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@pivoinebleue
What the mother fucking mother fuck is going the fuck on here? I never in a million years would have seen this coming.

It can't be good news though, there has to be some corrupt, scheming, self-serving reason as to why Fox would fire their most beloved high priest by their rabid fans, most skilled liar, and most masterful at stirring fascist goons into a frenzy. Maybe they think his straight-up Nazi-level anti-trans bullshit has become financially damaging to them somehow? Maybe they think guys like DeSantis who have enacted Tucker Carlson's policy suggestions in real policy is going to somehow cost them elections?

That can't be it. I have no fucking clue, seriously.

oliphant, to random

dude creates a server called facefucker.social

Facefucker admin: "Okay, let's see, probably should have some rules on this server, let's see:

  • Rule 1: Don't be a f*g
  • Rule 2: No one gets banned for hurting anyone's feelings
  • Rule 3: Don't do anything illegal
  • Rule 4: There are no more rules, no moderation, lol

Facefucker admin: "Wait...why are all these servers I've never met defederating from me? I haven't even done anything yet!"

Narrator: And that was how Oliphant silenced an important voice in the debate, who would have contributed all kinds of important insights. But he didn't even care. He didn't even listen. Based on the provided server rules, he just made a judgment to defederate. What a jerk that guy is. What a gatekeeper. It's almost like he couldn't handle the truth and was unwilling to be challenged. It's almost like he's just a precious, precious snowflake--

me, interrupting Narrator

"It's almost like I run this server and get to make my own decisions."

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@oliphant
> "They will repeatedly act surprised, 'But we didn't even DO anything yet.' "

Oh man, I can assure you that they are genuinely surprised because they've lived most of their life in a protective bubble in which their ostensibly-libertarian/actually-fascist worldview has never been challenged. "What?! You mean not everyone has been raised in this protective bubble of pure religious indoctrination of imperialist propaganda? Not everyone shares my faith in free markets?!"

And you can tell them, "welcome to the real world, bozo," but their religious indoctrination has a ready-made response to this: "oh they're just a bunch of communists, detached from the reality of how free markets work. Scary how us normal people who live in reality seem to be a dying breed!"

But who cares. They're not in a state of mind where they can be educated, so it isn't our place to educate them. Block and move on.

nix, to random
@nix@social.stlouist.com avatar

@futurebird I have no strong feelings about ants but I just want to say I admire your enthusiasm about those little guys. Always fun to see on my feed. I'm also suspicious you are an ant.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@futurebird @nix

Reminds me of that mock-Marvel/DC universe superhero character from "Rick and Morty" -- One Million Ants Man.

https://youtu.be/6crlvh90xq8?t=20

dthompson, to random

lol this is the CEO of Epic Games shilling for Twitter Blue, the $8 checkmark no one wants. This guy currently has some of the smartest PLT people occupied with making a new programming language for gosh dang Fortnite.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@dthompson
> "some of the smartest PLT people occupied with making a new programming language for gosh dang Fortnite"

I wish Simon Peyton Jones and other PLT gurus working for Sweeny all the best. Guys like SPJ are slowly removing money from overpaid tech company chair warmers while humoring their delusions of "changing the world" with one of their pet projects, which sounds to me like one of the few instances in our astonishingly unjust society in which money is transmitted to someone fully deserving of it.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@dthompson
Simon Peyton Jones is genuinely one kindest and most morally well-aligned people I know of in the tech industry. I have heard a dozen interviews with him and have seen him speak in person on a few occasions. His greatest passion is education (of computers and tech, of course), especially of high school and undergraduate kids.

SPJ spoke highly of Sweeny as an expert of technology in a recent interview, but to be fair he is the kind of guy who only ever speaks well of people, I have never heard him speak ill of anyone. He usually keeps his personal opinions to himself, but in this most recent interview, he did say (and I paraphrase) that he had concern the direction that AI technology was heading and encouraged engineers and technologists to remain vigilant and engaged in political discourse to affect societal outcomes.

Here is his latest interview: https://www.youtube.com/live/fBFsxmJEk7M?feature=share

davidrevoy, to random
@davidrevoy@framapiaf.org avatar

Tried to install cat on Windows. Failed, instruction unclear.

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@davidrevoy
You can try reading the "cat" manual but I don't think it will help:
https://www.gnu.org/software/coreutils/manual/html_node/cat-invocation.html#cat-invocation

ramin_hal9001, to programming
@ramin_hal9001@emacs.ch avatar

Interview with Simon Peyton Jones, maintainer of the Glasgow Haskell Compiler (GHC), and has been hired recently by Epic Games to develop a new Haskell-inspired programming language called "Verse".
https://www.youtube.com/watch?v=fBFsxmJEk7M

ramin_hal9001, to programming
@ramin_hal9001@emacs.ch avatar

I've been learning about Delimited Continuations lately, because I have recently learned that several programming language theory heavyweights, including Oleg Kiselyov, now believe the classic continuation control construct, e.g. "call/cc" in the language, were big mistake that make program optimization needlessly difficult, though I don't fully understand why this would be the case. Unfortunately, "call/cc" is encoded in the Scheme language standard, so compiler authors need to come up with work-arrounds -- who knew at the time of the first revision (1975) it would be a bad idea?

Delimited Continuations solve the problems inherent in continuations (again, I don't understand why), and are composable, meaning it is easy to write modular pieces of code using continuations in isolation that can all be made to fit nicely together with a few simple high-order functions.

So fortunately for me, there is already a good implementation, so I can probably figure it all out by just reading the code and studying the type definitions: https://hackage.haskell.org/package/CC-delcont

Here is the research paper by R. Kent Dybvig, Simon Peyton Jones, and Amr Sabry describing the implementation: https://legacy.cs.indiana.edu/~sabry/papers/monadicDC.pdf

Here is a primer on Delimited Continuations which I found helpful: https://gist.githubusercontent.com/sebfisch/2235780/raw/c1d9340e26fcf8b334d994c173d9c26fa8f4129f/gistfile1.md

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@rml
> " actually implements delimited continuations as slices of the runtime stack now, similarly to

Yes, I know, GHC and Guile are both amazing! I had run across the delimited control primitives in the Guile manual not long ago: https://www.gnu.org/software/guile/manual/html_node/Prompt-Primitives.html

I had also heard Alexis King give a presentation, who if you don't know is a brilliant young computer scientists who implemented an S-Expression based embedded in called "Hackett" , who was talking about using delimited continuations to improve the performance of Free Monads and the "Monadic Effects" libraries built on top of them. She mentioned that the GHC runtime already provides delimited control primitives.
https://www.youtube.com/watch?v=0jI-AlWEwYI

Incidentally, here is Alexis King's StrangeLoop presentation on Hackett: https://thestrangeloop.com/2018/hackett-a-metaprogrammable-haskell.html

rml, to random
@rml@functional.cafe avatar

tip of the day:
upstream server issues got you retriggering a command until the download succeeds? fire up a repl and have it automate the process for you with just a few lines of .

ramin_hal9001,
@ramin_hal9001@emacs.ch avatar

@rml @jeko
I have only recently started my jounrey of replacing with , nice to know it will only take 1.5 years.

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