I agree but this is the state of the nix world right now. Perhaps flakehub can help?
Plutus, Haskell, Nix, Purescript, Swift/Kotlin. laser-focused on FP: formality, purity, and totality; repulsed by pragmatic, unsafe, “move fast and break things” approaches
AC24 1DE5 AE92 3B37 E584 02BA AAF9 795E 393B 4DA0
I agree but this is the state of the nix world right now. Perhaps flakehub can help?
I think there’s a few levels above NixOS.
Thanks for the clarification.
On the latest Haskell interlude podcast, the guest was talking about how using the ReaderT monad specifically introduces safety issues. My ears perked up because I’m right in the middle of leaning on it heavily in one of my Haskell projects.
Thanks for the pointers.
Thanks for the advice.
I’m working on getting my own fork of Lemmy therefore I’m attempting to repackage it independently of Nixpkgs so I can get a flake in their actual repo that allows devs to spin up a Lemmy dev environment. I want my dev environment to reflect the changes being made on Lemmy in that dev environment when I make them. Unless I’m missing something, with your suggestion, I’d have no way to test a major change to Lemmy’s codebase in my fork (as I intend to).
Ruby, Python, PHP, and JavaScript. 🤮
Trying to build Lemmy entirely from a flake for my rolling fork. I’m a big Nix fanboi so I figured the first project in my fork would be to get it running like I did with my Haskell/Purescript projects that use nix and flakes for EVERYTHING.
edit: anyone out there have any pointers?
I’ve been looking into building and developing a Lemmy fork using Nix but I got stuck on nixifying the part of the build instructions where you have to combine front end and back end in git submodules. It’s a bummer too because I won’t even write a single line of code on this fork until I have it properly setup with flakes. It’s just how I am. 🤣
Maybe my flake can help you get Tauri working and maybe that would motivate you to help me get Lemmy working with Nix tooling instead of Ansible and Docker as it is now? ;)
Nice. I don’t know much about Nim.
I should also mention: Once Purescript switches over to a Chez Scheme compiled back end, it would be (IMO) the ideal lightweight Haskell, suited to quick terminal apps that you’re looking for.
As someone else mentioned, you should rewrite this in Haskell (or Purescript or Scala or even Python’s ‘Coconut’) because using vanilla Python for functional programming is like driving Formula 1 with a Toyota Camry.
Learn Haskell.
Since it is a research language, it is packed with academically-rigorous implementations of advanced features (currying, lambda expressions, pattern matching, list comprehension, type classes/type polymorphism, monads, laziness, strong typing, algebraic data types, parser combinators that allow you to implement a DSL in 20 lines, making illegal states unrepresentable, etc) that eventually make their way into other languages. It will force you to learn some of the more advanced concepts in programming while also giving you a new perspective that will improve your code in any language you might use.
I was big into embedded C programming years back … and when I got to the pointers part, I couldn’t figure out why I suddenly felt unsatisfied and that I was somehow doing something wrong. That instinct ended up being at least partially correct. I sensed that I was doing something unsafe (which forced me to be very careful around footguns like pointers, dedicating extra mental processes to keep track of those inherently unsafe solutions) and I wished there was some more elegant way around unsafe actions like that (or at least some language provided way of making sure those unintended side effects could be enforced by the compiler, which would prevent these kinds of bugs from getting into my code).
Years later, after not enjoying JS, TS (IMO, a porous condom over the tip of JavaScript), Swift, Python, and others, my journey brought me to FRP which eventually brought me to FP and with it, Haskell, Purescript, Rust, and Nix. I now regularly feel the same satisfaction using those languages that I felt when solving a math problem correctly. Refactoring is a pleasure with strictly typed languages like that because the compiler catches almost everything before it will even let you compile.
My config demonstrates a few different ways of importing fonts. I think, despite my config’s complexity, it would be a helpful guide for you:
https://github.com/harryprayiv/nix-config/tree/intelTower/system/fonts
This looks great. I’ll try to incorporate some of what you did in a little while. Thanks!
I’ll definitely give that a try.
I was hoping to spell out everything in the flake. So, maybe I’d use the lemmy-server nix build instructions to help me get a proper flake working. I definitely want to contribute because, at least for me, it kept me from joining their dev efforts in any meaningful way.
I suppose, if it comes to that, nothing is stopping devs like me from hard-forking Cardano’s open source code and launching that fork with a 100% public initial token allocation. I’ve honestly already been considering that option for a while now.
Hopefully you’re wrong and it never comes to that… but I’d be ready if it did, for sure.
None of them do what I’m trying to do but thanks for the advice. I’m working on a DApp in the Cardano ecosystem that uses data from an Oracle on Ergo. Not sure if you consider Cardano or Ergo illegal securities but the SEC hasn’t come after them YET.
I’ll sincerely take your example/suggestions to heart moving forward on my own project. I had different ideas about what a fair distribution is and this really turns that on its head. This idea satisfies many of the more egalitarian instincts I have.
Thank you.
Interesting. I like your idealism.
As a dev myself, it’s a pretty hard sell to get collaborators as it is. I can’t imagine that I’d be able to find ANY if I were to roll my entirely own cryptocurrency with fully realized tokenmonics on consensus algorithm on day one. Sounds like your idea couldn’t possibly be implemented in a staking context as well.
Do you know of any projects that did it this way (Bitcoin, IMO, doesn’t count since the devs DID end up taking a huge stake in it for themselves)
“You’re wrong” proceeds to not correct anything OP wrote.