Embed this noticeSexy Moon (moon@shitposter.club)'s status on Saturday, 09-Dec-2023 22:14:44 JST
Sexy MoonFediverse decentralized achievements/badges are on hold because there's no JSON-LD canonicalization/signature library for Elixir/Erlang. I might give up and implement it without signatures though, I'm trying to decide because complete compliance with the Verifiable Credentials spec is important to me. I don't want to write a JSON-LD library.
@NEETzsche they are gonna be displayed on your profile. any server can issue them to any other user on any other server after a user "accepts" the offer of a credential. You can google them they are called "Verifiable Credentials"
That’s what I was about to ask next: if you have to accept them. Imagine if anybody can give you a “retard” award and it goes on your profile with no recourse lmfao
We should just start over and write out our own fedi implementation in a scripting language that has all the cool toys. Phoenix is a meme and so is Elixir. Functional programming was a mistake.
Really, scripting languages were never meant for speed so I just never cared. If I need to crunch numbers I write a liberry in C or use CUDA or something.
I still get recruiters trying to shill me Ruby jobs because I did so much work in it. They’re using it for medical records now, apparently. I bet it’s still a shitpile, just like a decade ago when I was doing that garbage, just in .NET instead.
If you’re comparing it to C, or even other languages like Go or Elixir, Ruby is pretty clunky no matter what. However, as far as really effective API string manipulation songs and dances, it really can’t be beat in terms of code elegance. I keep insisting on using the right tool for the job, and if it’s JSON sperging then the buck stops at Ruby.
But again, if you have to do any real number crunching, just skip all of these scripting languages outright. Skip Ruby, Python, JavaScript, Lua, fuck all of that
Well, except for the JSON-LD issue you just brought up. This is one o them “rubber hits the road” scenarios where the universally-hated language/framework does, legitimately, just win.
@NEETzsche@Moon yeah and it's not problem for UI or web stuff, look at dioxus, full fledged UI based on CSS rendering and react-style component rendering
Bro I’m in a thread where people are coping about how Elixir can’t handle JSON-LD shit and that the issue isn’t Elixir, but JSON-LD. I realize it’s a combination of you and Moon and neither of you are doing all of this, but the facts on the ground are that these more mature scripting languages still stand on top of things like Rust, Go, or Elixir, and this is coming from someone who has no ideological objection to any of them.
These languages and their libraries just plain aren’t mature and it’s unclear if they ever will be.
@rees@NEETzsche@Moon without using unions you can't get the value off of a key in a json message without having a stroke using like 4 different functions
I’m not learning a statically-typed language to manipulate strings for marginal “decoding performance” when, in practice, anything that relies on heavy string manipulation isn’t about processing it fast, but about processing it right.
@Moon@NEETzsche no it doesn't I've seen multiple schemes for that and they aren't json-ld specific. ever seen signatures embedded inside AP objects? lol
It doesn’t take long to learn new languages, but it does take long to reimplement extant projects in new languages from scratch, which is usually pointless unless you’re doing something. If you insist on dropping everything to chase the new meme language every couple years you’re not a polyglot, you’re a retard.
Rust is a meme language. I don’t need an excuse to not learn it. I’m likely going to be starting a new project for work and I’m going to be picking out new language/framework, so I’m going to be looking at Rust more seriously soon.
But it’s a meme language. Basically anything that isn’t C, Python, or .NET is a meme language at this point. Ruby is a meme language and I love it. Elixir is even more of a meme language and I’ve found it nice to work with, although I’m not very good in it yet.
@NEETzsche@Moon >is a meme language use real words, no one knows what you mean by "meme language" at this point when JS is the majority of the web and has more usage than your non-meme languages
Whenever I go on fedi or places like it and talk about programming languages it just feels like people are trying to shill me on their language that nobody knows like it’s some kind of fucking religion.
Do you remember the late 2010s functional programming sermons?
@NEETzsche@Moon@rees I dunno, I think a meme language is one that deliberately goes out of its way to have ugly syntax, and includes its own shitty "package manager".
@NEETzsche@rees@Zerglingman I'm actually using Elixir in my job, I am using functional programming, I am using heavy concurrency, I am using pattern matching, these used to all be memes and I'm doing them all and they are great.
@rees@fantasia@NEETzsche the guy who wrote the Curl program wrote about Gemini and not 100% of what he said was positive so Gemini people lost their shit even though he was right.
Don’t get me wrong, I’m pro-meme in this respect, but I see all these people getting activated in my mentions about how Rust isn’t a meme language or how Elixir is totally legit bro and I have to lol lmao. But you’re right: I’m very likely going to pick up something I consider a meme for work, since I’m about to have carte blanche.
@Moon@rees@NEETzsche >concurrency >meme Isn't that just a meme name for threading? Of course threading's great, until you accidentally create a race condition.
I had an entire course in college about multithreaded programming but what made that class cool is that they let undergraduates like me use the supercomputer to crunch mad numbers with CUDA. The jobs were designed to run for 30min and you had carte blanche. Half of us wrote BitCoin miners and SHA hash crackers. Shit was so cash, even though the SHA hash crackers didn’t work lol
@rees@fantasia@NEETzsche of course it's political, they even say so. it is somewhat different because they intentionally designed the gemini spec so it's not extensible so that it can't be "ruined" over time
@Moon@fantasia@NEETzsche gemini it's just stupid if you think about it for more than 10 seconds. all gemini does is time travel back the standards to where we were 20-30 years ago. well we already did that, and we found out the result of that. it's not a technical solution it's a political one. if you are going to do that we should just be passing around JSON like fedi instead of shitty html
@NEETzsche@Zerglingman@Moon I linked you to a study (and pete, got no replies) on rust creating sound code for kernels
https://dl.acm.org/doi/10.1145/3623759.3624554 >The memory-safe systems programming language Rust is gaining more and more attention in the operating system development communities, as it provides memory safety without sacrificing performance or control. However, these safety guarantees only apply to the safe subset of Rust, while bare-metal programming requires some parts of the program to be written in unsafe Rust. Writing abstractions for these parts of the software that are sound, meaning that they guarantee the absence of undefined behavior and thus uphold the invariants of safe Rust, can be challenging. Producing sound code, however, is essential to avoid breakage when the code is used in new ways or the compiler behavior changes. >In this paper, we present common patterns of unsound abstractions derived from the experience of reworking soundness in our kernel. During this process, we were able to remove over 400 unsafe expressions while discovering and fixing several hard-to-spot concurrency bugs along the way.
@NEETzsche@Zerglingman@Moon >During this process, we were able to remove over 400 unsafe expressions while discovering and fixing several hard-to-spot concurrency bugs along the way.
@fantasia@rees@NEETzsche the purpose of gemini is to reduce back down to a simple hypertext document web, and it more or less succeeds at that. I personally think it is TOO reduced.
Currently they can’t even write code much less debug it. I use GitHub Copilot and it’s basically just a really sophisticated autocomplete. It’s cool but it isn’t replacing me
@rees@feld@Zerglingman@NEETzsche I use ChatGPT to get answers to programming questions whjen I can't find the answser anyt other way and it literally just lies to me 80% of the time and tells me to do things that are impossible. It works well for languages that are in wide use and common problems in those languages but that's not nearly most code
That’s the thing. Everybody uses Midjanny and SD and LLMs for throwaway shit but getting it to write anything longform or to consider greater context is a wash. LLMs require a lot of guidance and wrangling. Source: I work with them professionally.
@fantasia@feld@rees@Zerglingman@NEETzsche@Moon LLMs can't replace programmers only for the simple fact that 99.99% of the corporate code is written to be broken at the slightest shift in logic and the horror is spread across multiple systems
@FrailLeaf@feld@rees@fantasia@Zerglingman@NEETzsche LLMs can code specific problems you give them but I haven't seen any evidence at all that they can design complete software. however, in big companies design is a distinct job from programming so programmers may be toast in ten years.
I use LLM “programming” and then fix it up a bit. It’s like 80% correct most of the time and it’s still faster than having to do it yourself. I don’t think it will automate my job away because I still have to know what to change. But it does make that job a lot easier.
It’s how much information an LLM like GPT-4 can process at a given time. Ever notice how ChatGPT has goldfish brain, forgets things? You’re hitting the limits of its context window.
What it’s going to do is automate away a very specific kind of entry level programmer from India who can’t do fizzbuzz but can pass those certification tests. Which is most people with job titles like “Software Engineer” anyway. So there will be job loss, but I doubt it’s going to get rid of people who actually build things. That requires vision, and LLMs are notoriously robotic for obvious reasons
@fantasia@rees@feld@NEETzsche@Moon@FrailLeaf Why are you asking me? They're fun toys, and in some specific contexts they can even be useful. Programming, overall, is far too wide of a space for them to handle, and probably always will be, until they reach something approaching the Totally Randomly Evolved™ complexity of a human. (And then we can start working on cutting down the resources required to run them from being several orders of magnitude more than a human!) In the meantime we're more likely to see some specific subsets being targeted and automated. I can't predict what those subsets will be.
@Zerglingman@teknomunk@feld@NEETzsche@Moon I've lost a lot of passion for programming because it's started to feel like manual labor. paraphrasing elon here but he said something like "I lie awake at night sometimes wondering why I am working so hard when AI will be able to do it for me"
Write a Ruby/Python script that downloads random GitHub projects, tells GPT-4 to fix them, and submits pull requests with whatever garbage it returns. Make sure to use your real name on these PRs so they know you fixed their shit and are a prolific computer programming genius
I've been programming for 26 years. Writing good programs is extremely difficult. The LLMs are interesting toys, but I've yet to see anything that says they can replace a person with an IQ over room temperature. Check back in 10 years.
I will also get to dunk on “clean code” faggots because it will take everybody’s batshit spaghetti code that works and return beautifully-formatted and well-organized professional code that doesn’t.
Fine-tuning isn’t even that hard or terribly expensive. And depending on your definition of fine-tuning (there are several) it can include things like using embeddings
First would be anything niche. There are a billion guides on how to build a site with React, it follows LLMs will be good with web dev stuff. When it's something niche (there are a million niche fields) that's where they falter; there is relatively less text regarding the topic.
Second would be anything low level (hardware, embedded, operating systems, compilers, databases). They require debugging on a level an LLM will probably never do. What if the hardware has a hidden bug, or the CPU has undocumented behavior? What if there's a miscompilation? If you write an optimized ASM routine it still has to be tested on real hardware.
@fantasia@feld@rees@Zerglingman@NEETzsche@Moon this makes me question the possibility of having LLM hooked into your infra and have it generate some boiler plate for you. You build on top of it, it learns from your work & can now potentially debug it for you (?). This means that you tailor the LLM to your infra and I can only imagine the cost of that
You are again assuming that code is easy and that the PRs and commit messages generally contain useful information instead of things like "fixed a bug" and "initial commit".
@NEETzsche@teknomunk@feld@Zerglingman@Moon microsoft was a fucking genius for acquiring github lol. what an amazing dataset for having PR and commit messages attached to code changelogs
@NEETzsche@Moon@rees@feld@teknomunk Real commit history: >lol forgot to update this for ages >I don't need that anymore >Still splitting matrix out from corelib >lol >I don't know what I'm doing here >lol gitignore doesn't appear in a star >init commit 2 (no token)