pkill

@pkill@programming.dev
3 Post – 211 Comments
Joined 10 months ago

I am working on fedi software that is hoping to allow Kodi, Plex and Popcorn Time get rid of IMDb/TMDB dependency. Dm me if you're skilled in SvelteKit and/or Go, especially the Fiber framework, or machine learning with Rust and willing to contribute.

I mean, correcting a LLM until it spews out something that mostly works is just good old shotgun debugging, prove me wrong

6 more...

This is a centralization problem. Come and force federation upon my SimpleX server in Iceland!

7 more...

Fucking newspeak. Corporate media must die

10 more...

Why are they even still pushing that nonsense when flatpak at least somewhat gets closer to getting bwrap implemented right?

2 more...

and therefore scales terribly ;;

3 more...

umbilicalCord.cut()

can't wait until some stupid website commits a self-pwn by making such stuff an XSS vector

2 more...

2008 will be just a little slump compared to the upcoming crash. hope this time we'll end up with a "burn down the wall street" movement, not "occupy wall street"

2 more...

you made me nostalgic for the floppy tray check sound from my old PC ;;

Luckily LineageOS and GrapheneOS have a lockdown mode (Graphene also supports disabling fingerprint for screen unlock), though rebooting your phone usually doesn't cause you to lose any work since everything autosaves as phones kill background apps to save battery and memory. Separate user profiles for situations like protests or certain contexts (preferably with some dummy data to make it not look to sus) are also useful.

2 more...

non-AMOLED devices spreading misinfo by enabling dark mode by default on low battery and it's consequences...

1 more...

Clojure. Although it's currently the most popular lisp but the ecosystem is not super lively and sometimes you need to rely on Java interop. This also severely limits the platform flexibility, if more things were written in pure Clojure or targeting BEAM or CLR it'd be nice. But luckily at least unless a library you use doesn't rely on Java interop, the language is designed in a way that really reduces the bit rot.

Fun thing about it is that despite the S-expressions which you love to appreciate - I mean, it usually looks better than }) at the end of a Promise / closure in js or super deep nesting which you'd easily resolve using a thread last macro in Clojure. Therefore I'm also really excited that the pipe operator is finally coming to JS soon. Just add colored delimiters to your IDE. The virtual lack of syntax makes it quite easy to pick up.

With lisp semantics and minimal syntax that resemble the lambda calculus very closely, dynamic typing is rarely an issue (you can still specify types optionally), not to mention that pure functions are super easy to reliably test. Also, many things like DOM, nested data structures, b-trees (to a degree) or ASTs are actually structured like an S-expression tree, making Clojure good for such applications. All of this allows for clean code that does not feel like an assortment of free functions but is usually very loosely coupled yet everything seems to fit really neatly together like a coherent tree.
In general LISPs, as the name implies, are a superb tool for studying algorithms and DS in a way that allows you to focus on the problem itself more than the implementation, unlike in imperative languages where going into every little step in what feels like almost operating at individual CPU instructions at times can feel overwhelming and confuse the hell out of you.

Realizing the open-closed principle with Clojure comes pretty naturally since you'd more likely use function composition or write new transformations than modify the existing functionality.
Since functions are the primary unit of abstraction, dependency inversion is also trivial to adhere to.
Also protocols, which are somewhat more powerful than interfaces in some OO languages. They offer multi-method dynamic dispatch, retroactive polymorphism (extending types defined outside the current codebase), are independent from class hierarchy and are generally somewhat more succinct as virtually everything in that language.

First-class support for STM and immutability also make it good for concurrency like most functional PLs and make it a bit more intuitive than the actor model of Elixir/Akka.
Some Clojure frameworks do as well in certain benchmarks as those written in Rust.
Also compared to some other lisp dialects, the "primary" data structure is not a singly-linked list.

It's goto data representation format, EDN is also a really nice thing.
And you have a REPL and get to choose what should be compiled AOT and what JIT. It's most popular build tool, Leiningen is quite neat and in my experience has been a little bit faster in terms of dependency retrieval than Mix used by Elixir.

It can also transpile to js or dart. It generally is a quite flexible and extensible language where the said extensibility does not really make you feel the levels of inconsistency comparable only with PHP a couple years ago before they've decided to get it's shit together as much as possible as can be the case with Haskell codebases that rely on a large number of language extensions.

And lastly, first-class documentation support but that should be a standard (looking at you JS and everything that still uses Doxygen)

Tbh Clojure's greatest Achilles' foot is the baggage of JVM with it's lengthy stack traces, startup time, lack of tail call optimization, different paradigm and backwards compatibility issues. So if the question was which runtime you wish was more popular, I'd pick BEAM. But in it's current state, whilst BEAM is more suited for functional programming, Clojerl doesn't allow you to do much more than the standard library since many libraries wrap java, like web frameworks for example.
But on the other hand, JVM integration might make it easier for teams using Java or Scala to adopt Clojure.

Also it might not do the best job of handling bugs gracefully. This is good in the sense of giving you those almost Rust-like levels of strictness but without the lengthy compilation time but if you are looking for a way to move fast and tolerate some breakage, Elixir could be a better pick.
Also currying is not automatic and you have to use partial or macros.
But speaking of macros, they are almost as neat as in Rust and much more intuitive than in C or Scala.

1 more...

does it federate? 🦊

the twisted idea of extreme proprietarianism, which we'll combat with free software extremism!

And your IDE is laggy as hell

2 more...

bump the taxes on petrol to subsidize electromobility which actually necessitates smaller vehicles, problem solved

2 more...

They'll cut corners the more the shittier APIs and ABIs you provide

your walls won't save you from the latter tho

9 more...

so basically anything without manual memory management. I don't really see a good point in shilling particular names aside from discussions on performance impact of GC vs VM vs ownership

1 more...

I think it's reasonable if the users are given the ability to fill in bug reports via discord and then that gets forwarded to a git forge via some bot so that they don't have to deal with setting up an account on said forge. But if discord is the primary tool for such tasks then it's kinda messy, like trying to idk, replace pliers with scissors, or trying to use a ruler to cut things. Technically you can and it might work, but we created specialized tools for various tasks for a reason, why try to make the tools we use like jacks of all trades and masters of none?

AGPL RULEZ

LLM is pretty much guessing the next word

if voting changed shit it would have been made illegal. don't legitimize slavery by acts of expressing gratitude for being able to pick your masters.

19 more...

Rooting for Bevy so much rn

4 more...

laundering copyleft inputs into copyrighted outputs sucks tho. This has been happening before AI, but I think that any form of violating GPL, CC-NC or CC-ND should be punished.

based

matrix exists

Why not gitignore the build artifacts and either publish them with releases or include a build directive in makefile/justfile? I mean, your platform might not be someone else's. Also consider using less global variables and shortening your main() in favor of dedicated functions ( that can still run in a loop inside main()) and using shorthand := assignment. Otherwise good job with documenting your code well.

PS, this one's more of a marketing tip really: try including a GIF in README.

GDP is fake and moneyless tribal societies were able to invent mechanisms of caring for the elderly sometimes more considerate than what industrialized societies have

tips fedora

Vue.js, it's the simplest of the popular frontend frameworks

You can learn a hellton about sysadmin and DevOps by running a home lab and aiding that with some courses and maybe one cert or two but I wouldn't splurge on certs that readily.

Golang, Express.js, Nest, Flask, SQL (a must), maybe Spark if you dare. Any popular and expressive framework/language for full stack/backend, except for Rails and PHP, those are dying technologies despite their still relatively high popularity in some countries.

Maybe Flutter, Swift or React Native if you want to get into mobile dev.

Just go to a job board, then to learnxinyminutes.com, pick something and start with building small, then medium sized, then maybe more complex projects or contributing to FLOSS written using your tech of interest (but please, PLEASE don''t treat OSS contributions primarily as a way to get a job. Pick something you use instead. Try to figure out how you would implement something, do that and don't let the impostor syndrome win if it uses a tech you're familiar with whenever you want to open an issue on a git forge.

let's lynch the landlord!

Also constant time is not always the fastest

you can do so much more to defeat the reactionaries by visiting:

  • a gym
  • a shooting range
  • a library
  • your local revolutionary organization's meeting

than a polling station

3 more...

This is Bill.

Bill doesn't need to minify his code, he names things using a single character even in compiled languages.

Bill is a heckin chad who can guess what the code does merely by looking at types and control flow.

Be like Bill

2 more...

simple is often the opposite of easy

1 more...

fuck any website that requires an account to just READ it's stupid content and at the same time blocks guerrillamail/10minutemail (looking at you, Glassdoor,I don't want to get fucking spam just so that I can check approximate salary in a company)

the lower airway has collapsed because of insufficient structural support when the guy in the upper one walked through

20 years ago 32-bit systems, CRT monitors, dial-up modems, single core processors or HDDs with most people having 160 GB of storage at most were common. And laptop battery life and thermal performance was just ridiculous in most cases.

Moore's law is mostly dead for commercial crap, i.e. JS-heavy 3rd party spyware filled websites with comparably slow and costly backends and Electron/React Native bloat on desktop/mobile, because shorter time to market and thus paying the devs less is often much cheaper for a lot of companies.

I'd argue free software luckily proves this theorem wrong. There are still a lot of actively maintained, popular programs in C and C++ and a lot of newer ones written in Rust, Dart or Go.