Use Guix/Nix, have your cake and eat it

GNU/Lisp Enthusiast!
Use Guix/Nix, have your cake and eat it



It would be nice having native programs. At least you can use any native xmpp app with the same account to do text, audio, and visual comms (including groups). The only thing they don’t support is the actual social feeds/posts aspect (and soon spaces!).


I love ipv6 but I don’t see how it is related to anything here


Yes your description is just right and is the heart of my question. To use your terminology:
Currently:
Ideally:
In the ideal case, I would never have to change anything about the wireguard config/status on the Phone, nor would I have to change the domain name used to reach the resource on the Home Server.


Oh hm I didn’t think about your last point, maybe it’s not really an issue at all. I think I’m not 100% on how the wireguard networking works.
Suppose I tunnel all of my traffic through wireguard on the remote server. Say that while I am home, I request foo.local, which on the remote server DNS maps to a wireguard address corresponding to my home machine. The remote will return to me the wireguard address corresponding to the home machine, and then I will try and go to that wireguard address. Will the home router recognize that that wireguard address is local and not send it out to the remote server?


Yes that would work, but it feels a bit cumbersome to have 2 fqdns per service, which I would have to switch between using depending on on whether I’m local or not.


Right but I want to be connected to wireguard always, I just want the DNS/routing to be different based on home vs foreign network.


And so when away do you just directly connect to the external IP and do port forwarding?


So you have a public DNS record pointing to your home IP?


I think tailscale would work, though I’d ideally want to use something like headscale instead, but that’s a bit of a logistical hastle for my setup. Do you know if pangolin can handle this as well?


Häagen-Dazs
“Häagen-Dazs” is an invented pseudo-Scandinavian phrase coined by the American Reuben Mattus, in a quest for a brand name that he claimed was Danish-sounding. However, the company’s pronunciation of the name ignores the letters “ä” and “s”, and letters like “ä” or digraphs like “zs” do not exist in Danish.
His daughter Doris Hurley reported in the 1996 PBS documentary An Ice Cream Show that her father sat at the kitchen table for hours saying nonsensical words until he came up with a combination he liked.


Where is that from? It is extremely pessimistic and obviously false.


someone should tell Iceland
wait until you try emacs
Common Lisp “solves” most language-level problems by providing metaprogramming capabilities via lisp-style macros. (Almost) any language feature you would want can be implemented with lisp macros, and many such features already have been. So you don’t have to worry whether or not lisp has “for i in…” loops, or pattern matching, or generics, or virtually anything else, because if it doesn’t, you can write it! Plus if it’s really a good feature somebody has probably already made a library for it (if it’s not already part of the standard).
One of the most extensive examples of this is Coalton, which is an ML-style statically typed EDSL for Common Lisp.
There are metaprogramming features in a few other languages: template haskell, C pre-processors, even macros in Rust or Julia. But these all fall very short of lisp-style macros because those languages are not (truly) homoiconic, which makes the macros awkward to write and integrate into the language. This kind of metaprogramming is rarely employed, and when it is only for heavy duty tasks, and even then is generally discouraged as a last resort/special circumstance. But lisp macros are very easy to write because it’s the same as writing any other piece of lisp code. This results in macros being used often for smaller lightweight abstractions in the same way you write a small function.
The other big pro of lisp is image based development. But that’s not so much solving a problem in other languages as it is simply a feature that they don’t (and pretty much can’t) have.
And all of this is done in a language with less syntactic and semantic primitives than almost any other language, including the other “simple” ones like Python, Ruby, Elixir, etc.
I understand the general job market, but what about lisp prevents you from pursuing personal ventures with it?
Yeah Clojure is like the monkey’s paw of Lisp weenies. It adds many modern day niceties that are lacking in standard Scheme or Common Lisp, but also changes enough things to make it feel very un-lispy. I go back and forth as to whether or not I even consider it Lisp (Richard Stallman doesn’t).
But I do know that I’d rather write Clojure than any other non-lisp language.
I’d also recommend people try ABCL, which is Common Lisp on the JVM , or Parenscript which is Common Lisp that compiles to Javascript.
Lisp
It solves so many problems new languages have been invented to try and solve, while being simultaneously simpler than most
Hundreds of Beavers