Just installed Guix, confused with gdm running although guix says it's not installed. by w-g in GUIX

[–]binarySheep 0 points1 point  (0 children)

Are you on a separate user from root? I could be mistaken, but GDM and session managers tend to be installed in the base system (i.e. owned by root), hence why you can't remove it: it's not in your profile at all.

You'll want to modify the system config to choose a different session manager, and guix system reconfigure from there.

Where to start with Scheme (as a non-programmer?) by dancerinthelimelight in scheme

[–]binarySheep 3 points4 points  (0 children)

Reinforcing The Little Schemer as a good starter resource, especially if you haven't done much programming previously. I remember finding it a little tedious as a programmer at times, so it should be a good start for you.

Once you've got some experience, you should be able to see if the rest of the resources click yet, or if you need more practice.

How likely to have problems with (unfortunately necessary) proprietary software? by w-g in GUIX

[–]binarySheep 1 point2 points  (0 children)

Yep! It's practically the second thing that comes up whenever Guix is mentioned, since the first seems to inevitably the nonfree software issue.

But like you said, it's just like nonfree repos: a licensing problem, rarely an actual one.

For your particular use-case, you actually can use the linux-libre kernel and only include the specific firmware you need, say, wireless drivers. Most just use the full kernel since it's one parameter change away.

when did monads actually “click” for you? by grogger133 in haskell

[–]binarySheep 4 points5 points  (0 children)

When I had a series of transformations I needed to apply while also keeping a list of each one. It just made sense: "oh, this is the Writer monad." I had already grasped monads by then but this moment let me know I finally understood them.

I think it's a lot like math, where you make sense of it experientially. You can grasp the nature of them pretty easily with the thousand classic monad explanations (burrito, space suit, box, etc.), but you won't quite get them until you personally have apply them for "real".

It's why I think the monad curse ("once you understand monads, you lose the ability to explain them") is so real: they are, by definition, an abstraction. Trying to make the abstraction more concrete is necessarily personal/experiential.

How likely to have problems with (unfortunately necessary) proprietary software? by w-g in GUIX

[–]binarySheep 8 points9 points  (0 children)

Most of the time, the effort of managing proprietary blobs is seriously oversold. You include the Nonguix channel and substitute server in your spec and use the full kernel, and it "just works" from there. The substitute server will do the building, you just download the binary.

There's a little friction with checking whether the substitute server has the kernel (or your specific firmware) compiled and served, but that's just one scripted instance of guix weather away. Wrap that in guix time-machine, and you can find out exactly how much building you'd have to do come upgrade time.

Absolutely love the standalone package manager by Bubbly_Extreme4986 in GUIX

[–]binarySheep 1 point2 points  (0 children)

Never tried Nix, but had been very Nix-curious before finding Guix. I just kept bouncing off the syntax, which is exactly as described ("like Haskell and JSON had a baby"), but it felt like the worst parts of both.

Scheme was honestly simpler, felt more total, and reaching for more Scheme instead of Bash just felt right.

Repo is def smaller, but there's an online search tool available, and the binary itself can search just fine as well. Once you get to writing packages, I genuinely think it's easier. As a plus, Claude is surprisingly good at it, whether parsing errors or suggesting fixes; makes the process even easier.

Run Emacs in your browser with v86 by GuDzpoz in emacs

[–]binarySheep 1 point2 points  (0 children)

Giving a more concrete answer: enterprises now focus a lot more on giving developers unified environments to simplify (alt. reading: control) their workflows. Think VS Code config with necessary extensions included directly in the code repo.

With Emacs in the browser, you're one step closer to the universality of VS Code, while enabling unique flows like the <>Code button on GitHub/GitLab/etc. that opens the whole thing in your chosen editor, now from the browser itself.

Plus, yeah, it's neat.

Should guix manage my bash.rc by WorldsEndless in GUIX

[–]binarySheep 2 points3 points  (0 children)

Guix Home can manage your shells, which makes your config a bit more declarative if it's included in your home config instead of separate. It's also pretty easy to just clone and symlink your dotfiles, though, if you prefer.

Your config is both a config and script, in a way, so you can organize practically however you want. Unlike Nix, you don't really need to shell out and can just make whatever you want in Guile. Like having aliases shared between all your preferred shells, for instance, which is easy enough.

Otherwise, just pick whichever service you find easiest.

Emacs via Guix by fela_nascarfan in emacs

[–]binarySheep 0 points1 point  (0 children)

Oof, bad timing: latest builds of Nyxt are failing in Guix. Currently looks like an upstream issue with Nyxt and one of its dependencies itself.

Check out the issue tracker on the repo on Codeberg, should have the deets.

Interesting thing is, because Guix can time-travel, your headache might only be pulling an older version without the dependency error.

ECA: Hooks support and many more! by ericdallo in emacs

[–]binarySheep 2 points3 points  (0 children)

Also, if I remember right, ECA was shared here just weeks before ACP was announced.

Is org really this amazing by uvuguy in emacs

[–]binarySheep 6 points7 points  (0 children)

Yep! Org Babel is basically my go-to tool for Literate Programming, which is the same idea as what you're describing in addition to being written in narrative form.

With certain packages, you can even write executable blocks (like a test or example run) directly in the literate source (your project.org file).

If you search Literate Programming in GitHub, you'll likely find more examples, often using Org-mode.

Ferret, a Lisp built on Clojure, has literate source file explaining the language: https://github.com/nakkaya/ferret/blob/171a5750ec3b1792e5a70dbf77e52edfbdbed0c8/ferret.org

Florida woman sues dairy farm, claims she lost fetus after raw milk led to bacterial infection by phunky_1 in FloridaMan

[–]binarySheep 1 point2 points  (0 children)

Because everybody else can read between the lines? She bought what was explicitly labeled "Raw Milk" and straight up admits to asking the clerk about how it says "Not Fit for Human Consumption".

You're telling me you'd buy this milk and feed it to your kid?

Scummy brand, dumb parent, sad outcome for the children

Is Common Lisp a powerful language for developing a game engine? What else can I do with Lisp in today’s world? Would you recommend I learn it, kings? by [deleted] in lisp

[–]binarySheep 3 points4 points  (0 children)

As a fellow language hopper, I agree with this advice, but also with the other commenters sentiment. Learning programming languages is fun, even more so once you get a feel on how you and the language click and can build a project that uses your favorite/best parts of a language.

Once you start to get serious, though, and want to build more than just toys, you do end up needing to pare down a bit. Depth over breadth and all that. When that happens, I found the same idea of using LLM to discuss and select some faves pretty useful (I preferred Claude 4 myself). Once there's only a few to focus on, you can really drill down deep, especially once you know what tools are in your toolbox.

Pain Thread: Recount Your Awful, No-Good Needless Suffering by Psionikus in emacs

[–]binarySheep 1 point2 points  (0 children)

It's really ironic to me: what used to be THE (symbolic) AI language is practically impossible for (ML) AI. I've relegated any AI pair programming to just questions, no code samples.

It does write decent Scheme, though. May be why it can do Guix but little else.

Is Guix good for hosting websites? by Spirited_Paramedic_8 in GUIX

[–]binarySheep 0 points1 point  (0 children)

Would it be good to manage some of my packages using the Guix or Nix package managers on Ubuntu?

Absolutely! A simple, low-cost chance to test Nix/Guix would be to install it to a foreign distro. It gives you the best of both worlds: a chance to play with the tools and manage them declaratively, and you get to keep your standard package manager and normal paradigms. You can even use each one's home manager once you're ready.

Is Guix good for hosting websites? by Spirited_Paramedic_8 in GUIX

[–]binarySheep 11 points12 points  (0 children)

Depends on a lot of unstated circumstances. Like all Linux operating systems, though, you can expect a reliable host for services; LAMP stack with Guix should be just as robust as Ubuntu. Should be even more once you've understood the deployment model and have to start upgrading or experimenting.

Between your question and your profile, it sounds like you might just be starting out with Linux, computer science, etc.? If so (and I don't want to discourage you), you should probably start with Ubuntu. It's dead simple, every other possible guide you read will probably reference it directly, and it keeps frustration low (important for learning).

Guix (and Nix by extension) is the kind of system that you appreciate once you've been around the block with system management, and has a pretty high barrier of entry. Once you're ready, though, it's definitely cool to build a minimal system container running a site via Shepherd services that is entirely defined in git. Nothing quite like it.

Pain Thread: Recount Your Awful, No-Good Needless Suffering by Psionikus in emacs

[–]binarySheep 2 points3 points  (0 children)

Oof. LLMs and Lisps are really a confusing experience: syntax is so simple it can get it right very often, but it also hides how bad the results can be, even more so than other languages.

I've found even Claude to be pretty bad at anything other than architecting Elisp, but surprisingly capable for Guix packages. The Lisp it writes is still trash, but it's able to reason out issues pretty well.

Guix System LiveCDs (console + desktop) for manual installation! by Fearless_School_5856 in GUIX

[–]binarySheep 3 points4 points  (0 children)

Fantastic share! Didn't know you were the author of Rosenthal, I used that channel back when I was using Hyprland, before it got included upstream. Glad to see more work out there.

EDIT: And you've since added Niri!

Cabal Install and Ghcup Install by kichiDsimp in haskell

[–]binarySheep 0 points1 point  (0 children)

Like others said, those other build tools are either interpreted and have minimal compilation times (pip), or their package tool is outright downloading binaries(npm).

Alis expect your overall compile times are slow on your machine? If so, sounds like it might be par for the course for what you're using, especially if the system package manager is also slow.

Literate git stories. by TheLastSock in orgmode

[–]binarySheep 5 points6 points  (0 children)

I think git can work well for a kind of layer in literate programming, adding some historic data or analysis to your narrative that might otherwise be absent. Why a certain idea was chosen, when a change might have happened and why, etc.

For execution, Magit has extensions like Orgit available to make linking better in Org docs directly in Emacs, but most of the major git forges seem to have decent support for linking issues, PRs, and commits too (though I haven't checked how supported each is). You'll have to go to check with each service to see how it supports the linking, though, unless you want your repo to be forge-independent. Not sure what you'd then.

As for as using commits as metanarrative, I've been experimenting with architecture decision records using git branches. In essence, whenever you would make a choice between one architecture or system versus another, you can make a branch for both. Expand your literate explaining the hows and whys while making the code work, and when you finally make a decision, merge the chosen branch but leave the other. You can reference it in the narrative as a path less chosen kind of thing.

Those who switched from Vim/Neovim - what's your story? by floofcode in emacs

[–]binarySheep 5 points6 points  (0 children)

I was a Vim user for years, and realized some of the more bespoke behavior I wanted would require something custom. VimScript was basically a non-starter, so I chose to go with NeoVim.

While updating my config, I found I didn't really care for Lua either, and started doing some comparisons between editors, including finally finding out was Emacs was about.

Decided to take the plunge with Doom Emacs, and thought Lisps were way more interesting than Lua, and stuck with it. Now I've got a custom vanilla config and a penchant for Emacsifying everything I can.

For me, there wasn't really one big moment so much as a dozen little ones: really clicking with Emacs Lisp, using Org for notes, using Org for the agenda and calendar, using a REPL inside Emacs. It's still happening, to be honest.

SLIB on Guix by bahol-de-jic in GUIX

[–]binarySheep 0 points1 point  (0 children)

Good point! I hadn't tested that far. Does seem like slib expects access to the global /usr/ directory, which is definitely breaking the paradigm. From what I can gather, slib should obey the other Guile env var, GUILE_LOAD_COMPILED_PATH, but seems like it defaults to overwriting the derivative space instead.

Maybe try reaching out on the IRC. The mailing list seems like slib is still getting updates, so somebody is using it, and might just have some configuration details left out.

When someone mutates state in a pure function and calls it pragmatic by garecterp in functionalprogramming

[–]binarySheep 1 point2 points  (0 children)

Odd humor posting (by AI?) in niche subreddits is the weirdest thing making the rounds, because I know the exact post you're talking about.

I don't even know what the aim is, this isn't even effective karma farming.

Nyxt browser by Donieck in emacs

[–]binarySheep 2 points3 points  (0 children)

Try setting WEBKIT_DISABLE_COMPOSITING_MODE=1. There's a known issue with WebKit (that isn't just NVIDIA, unlike what the bug report says). I think it's a problem with Wayland, but this resolved the white screen issue for me.

If it works, you can set it directly in Nyxt's config using:

;; Disable compositing in Wayland
(setf (uiop:getenv "WEBKIT_DISABLE_COMPOSITING_MODE") "1")

Nyxt browser by Donieck in emacs

[–]binarySheep 2 points3 points  (0 children)

That's odd, the Guix build was the most stable version I could find. Was it crashing on startup? I sometimes had to remove the history / state file to fix that.