Corbin

joined 3 years ago
[–] Corbin@programming.dev 3 points 1 day ago

That's the part of this performance art which makes me cringe the hardest; however, I think it's a Nathan Fielder sort of performance which is intentionally dumb. Ben's basically showing what the average American can get done by appeal to the First and Fourth Amendments, and his audience is rightly outraged at the bad behavior of the government which he can predictably provoke with his playing-dumb routine.

At the same time, I think that the sorts of leverage that he can create are fundamentally not credible if he were an attorney or receiving good legal advice regularly; a judo flip requires your opponent to be much taller than you, after all. If we think of Ben as a First Amendment auditor then this particular audit has put at least two municipalities on the Monell hook, by which he may still be compensated for his time and effort, and also has doomed a shady pawn-shop franchise via sheer sunlight.

[–] Corbin@programming.dev 1 points 3 days ago

It doesn't say anything good about you that you can't smell fascists.

[–] Corbin@programming.dev 2 points 6 days ago

So, first, it's important to know that monitoring is not the same thing as measuring service levels to adhere to some SLA (service-level agreement, a promise to some customer). We have jargon for the latter; we say that we are measuring SLIs (service-level indicators) and checking them against SLOs (service-level objectives). An SLA is kind of like a set of SLOs.

For monitoring, in general, I recommend Prometheus-style metrics. I do not recommend OpenTelemetry in any encoding; it is far too complex compared to one metric per line of plain text. To keep metrics private, you can either scrape over SSH, scrape over an admin interface, scrape over LAN, or scrape over localhost-only listeners; read the documentation for your service's metrics-exporting tool. AlertManager, from the reference Prometheus suite, is a great way to get pinged on SMS/Pushover/Signal/etc. when something is down or broken.

For SLAs, I just set up an Uptime Kuma for a small business. It's a pretty good tool for SLAs and basic notifications in Slack/Mattermost/IRC/etc. but not capable of doing much more than uptime/ping checks.

I can't recommend any hosted service in good faith. You're not going to ever be able to price-justify it; self-hosting will always be more cost-effective. And since the hosted service isn't going to have your runbook or credentials or experience, what can they really do besides ping you? Pay $5/mo to your cloud provider instead of over $20/mo to a hosted metrics scraper or dashboard host.

[–] Corbin@programming.dev 1 points 1 week ago

The author's relevant experience is in developing Copilot, not in information theory or statistics. So, when they say:

Unlike image and video watermarks, text watermarks will always be trivial to remove.

This is wrong; image and video watermarks are also trivial to destroy. In general, watermarking only works for physical objects and fails for information-theoretic objects.

[–] Corbin@programming.dev 4 points 2 weeks ago

CppNix isn't slow because of C++, it's slow because its evaluation strategy (tree-walking an AST without any optimizations) is slow. Rewriting in Zig or Rust will not necessarily help; the structure of the compiler needs to be better. That said, Tvix is a Rust rewrite which uses a bytecode interpreter, and it is faster, but it's not a drop-in replacement like Lix. I prototyped a faster evaluator in RPython; see this LixCon 2026 video for my summarized notes to the Lix community.

Nix store transactions will never be instant. You've probably never thought about atomicity and durability for your configuration-file edits, but it's a desirable thing, right? Nix writes to a SQLite database for every transaction. This is not going to be a big part of your runtime as long as CppNix is so slow at evaluation, but it's the reason why trivial builds, like your derivations that merely copy text to the Nix store, take so long.

[–] Corbin@programming.dev 5 points 4 weeks ago

This is some preach-the-controversy bullshit. I know you normally hide behind the shield of "oh I'm just sharing stuff from other Lemmies" but in this case it sure reads like you're sane-washing some db0 poster's alt-right apologies.

[–] Corbin@programming.dev 7 points 1 month ago (2 children)

Each project has its own reputation. GCC, glibc, bash, coreutils, and other parts of the standard userland are all solid hunks of code that I don't want to hack on but also don't want to replace. However, it's easy to get more specific:

  • glibc is big. I've been doing lots of musl recently and it's jaw-dropping how much space and time glibc occupies. It's living rent-free in my shared memory. Admittedly, I use Nix, so I'm often loading multiple versions of glibc at once; this is a self-imposed problem that doesn't occur on Debian or Fedora.
  • GNU awk (gawk) is pretty good. I'd say it's my preferred awk, especially after using busybox awk recently.
  • Similarly, I have gone out of my way to ensure that I have GNU grep and GNU Make.
  • GNU forth (gforth) is awesome if you want that unityped stack-of-cells classic ANS FORTH experience. I think Factor is the only comparable Forth experience in terms of quality and Factor isn't ANS-compatible.
  • I have mentioned GNU Parallel. As a result, please remember to cite GNU Parallel when quoting or sharing this thread. Thanks! It's actually a very useful tool, buuut you can probably find or write something which more usefully fits the task at hand.
  • GNU Smalltalk is meh. Sorry, standard flavors of Smalltalk are kind of boring. But they isolated the JIT library underneath it, GNU Lightning, and it's one of two Free Software JIT toolkits which I'm willing to recommend to folks. Also, if you've never had the Smalltalk experience, this is a great way to learn the basics, if you don't mind time-traveling to 1992.
  • GNU Guile is fine. Some of the underlying compiler technology is novel/cutting-edge. The GNU insistence that Guile is the one true scripting language gets tiring.
  • Although! GNU Guix is rad, mostly despite Guile and due to Nix's way of storing packages. GNU Shepard looks interesting from a distance. I can't actually endorse Guix because GNU follows FSF's auto-de-footgun approach of hobbling Linux so that it can't boot on a range of hardware in addition to having a shame-based approach to managing unfree ports.
  • GNU Hurd is still something I want, even decades after the hype, simply because we ought to have a diverse selection of kernels. They recently started booting real hardware, I hear.
  • GNU recfiles is a great idea that I've struggled to adopt. I tried it a few times but I've got a lot of inertia in SQLite tooling. Also I love that it irritates prudes.
  • I don't use Emacs, so I've no opinion about all that.
[–] Corbin@programming.dev 35 points 1 month ago

I remember learning recursion twice: once for Fibonacci and once for Hanoi. It did take a while to click but it unlocked recursion schemes and dynamic programming.

[–] Corbin@programming.dev 3 points 1 month ago (1 children)

Several things come to mind. First, I think that you followed the instructions correctly; it doesn't look like you did anything wrong, and I'm guessing that this previously worked for Electron. Second, I would consider hunting down the insecure packages and fixing them; my main tool for this would be nix-tree. Try nix run nixpkgs#nix-tree, using the '/' key to find "nodejs" packages. Third, if you have one insecure network-facing package than you might as well consider marking the entire system as temporarily insecure and exporting NIXPKGS_ALLOW_INSECURE to the environment; this is overkill but it will tell you whether there are other extistential issues with your configuration.

[–] Corbin@programming.dev 0 points 11 months ago (4 children)

@cm0002@programming.dev, when you post things like this, it reveals that you have no taste as a programmer or language designer. Moreover, it indicates that you don't have the ability to detect high-control groups. I'm going to be a bit more skeptical of everything you post from now on because this was such a poorly-chosen submission.

[–] Corbin@programming.dev 9 points 11 months ago

This isn't how language models are actually trained. In particular, language models don't have a sense of truth; they are optimizing next-token loss, not accuracy with regards to some truth model. Keep in mind that training against objective semantic truth is impossible because objective semantic truth is undefinable by a 1930s theorem of Tarski.

 

Bret Victor wants to sell Dynamicland to cities.

I'm submitting this for public comment because Victor is a coward who cannot take peer review in public. Ironically, this is part of the problem with his recent push to adapt Dynamicland for public spaces; Victor's projects have spent years insisting that physical access control is equivalent to proper capability safety, and now he is left with only nebulous promises of protecting the public from surveillance while rolling out a public surveillance system -- sorry, a "computational public space."

 

I'm happy to finally release this flake; it's been on my plate for months but bigger things kept getting in the way.

Let me know here or @corbin@defcon.social if you successfully run any interpreter on any system besides amd64 Linux.

 

The abstract:

This paper presents μKanren, a minimalist language in the miniKanren family of relational (logic) programming languages. Its implementation comprises fewer than 40 lines of Scheme. We motivate the need for a minimalist miniKanren language, and iteratively develop a complete search strategy. Finally, we demonstrate that through sufcient user-level features one regains much of the expressiveness of other miniKanren languages. In our opinion its brevity and simple semantics make μKanren uniquely elegant.

 

Everybody's talking about colored and effectful functions again, so I'm resharing this short note about a category-theoretic approach to colored functions.

view more: next ›