HNHacker News
TopNewBestAskShowJobs

PuercoPop

1,150 karma · joined April 1, 2012

submissionscomments
PuercoPop··on Omarchy: Any User Process Can Escalate to Root
Don't use podman compose unless you want to have a bad experience. Play kube is podman's API for orchestration.
PuercoPop··on Omarchy: Any User Process Can Escalate to Root
Indeed. Podman works great. And kube play unifies container orchestration by using k8s manifests for local orchestration instead of a separate DSL like docker compose.
PuercoPop··on NetBSD 11.0
It is not a good explanation because that is not the reason. That reason is for Mac OS. I don't know the details, but BSDs normally modify the GCC version they use. IIRC OpenBSD used to use GCC 2.95 for years. Porting NetBSD base to compile with a newer GCC version is not as simple as a version bump. My guess is that they haven't prioritized that work yet.

Patches welcome!

PuercoPop··on Hanami 3.0: In Full Bloom
It is not, Hanami is a batteries-included framework. It not even a pay-as-you-go framework like Pyramid. The equivalent of Flask in Ruby land is Roda+Sequel.
PuercoPop··on Leaving Mozilla
> but I want durable messages and a mobile client.

And IRCv3 has chat history to provide that. But https://snikket.org/ (XMPP) is more likely aligned with what you are looking for

PuercoPop··on Goblins: Distributed, Transactional Programming with Racket and Guile
The protocol is OCapN

http://ocapn.org/

PuercoPop··on Yt-dlp: External JavaScript runtime now required for full YouTube support
It is likely you use Chrome or a browser that uses Blink for its engine and the OP uses a non-blink browser like Firefox. I use Firefox and I can cofirm since the last few months Youtube usability borders on usable
PuercoPop··on Apache HTTP Server: 'RewriteCond expr' always evaluates to true
junit was not invented, it was a port from Smalltalk's SUnit, which was created on 1989, ~6 years before the first release of Apache. Yes, the extreme programming (XP) craze hadn't popularized TDD, but united testing as a practice already existed, even if only some communities.

Though I agree, that although not a technical justification, an explanation as to why there are no tests is because Apache HTTP is from the 90's. Not writing unit tests was par for course back then. Most FLOSS code bases in the 90s didn't have unit tests, let a alone a CI to run the test suite for each change. Adding tests later is hard. Though there are some tests under the test folder.

PuercoPop··on Poireau: A Sampling Allocation Debugger
Recently saw this through https://discuss.systems/@pkhuong/114532017716618023 which summaries why this would be useful:

> Flagging old live (i.e., potentially immortal) allocations is easier (https://github.com/backtrace-labs/poireau) and more closely matches the goal of identifying why the heap grows instead of entering a steady state.

Ej. Why is Sidekiq memory consumption growing over time.

PuercoPop··on The Future Is Niri
wmii[0], it implements the acme window layout. But the interesting part is that it exposes its state as a file-system. The main loop is a shell script[1]. So BYO posible, fe here is a Ruby one [2]

[0]: https://github.com/0intro/wmii [1]: https://github.com/0intro/wmii/blob/main/cmd/wmii.rc.rc [2]: https://github.com/sunaku/wmiirc

PuercoPop··on Hy 1.0 – Lisp dialect for Python
The original hy annoucement makes it clear that they embed a Lisp by compiling with Python bytecode. You can see it in the following video about the 16:25 mark

https://m.youtube.com/watch?v=1vui-LupKJI

PuercoPop··on Starcraft (A History in Two Acts)
That is because I only mentioned them, didn't explain them.

Kara-cancel is a mechanic that lets you extend the range of your moves, in 3s is used for throws.

So the input for throws in 3s is lp+lk. Now, what happens if while one is trying to press the buttons at the same time they press one slighty before the other? A move will start to come out and then you can't throw because you are doing another move. To make it easier to input throws, devs made so that _any_ move can be canceled into a throw in the first 5 frames of the move. 5 frames is 5/60ths of a second.

Separate to that, some moves move the character forward. Ej. Chunli's HK. So people figured out that if you press a move that moved your character forward and then canceled that into a throw you can extend the effective range of your throw.

Mind you doing this means pressing a button 83 milliseconds before the other one. Which is of course not something you can do by thinking about it, instead you learn to position your hand in a way so that when you move it down together one finger lands before the other two. The name kara-cancels comes from the Japanese word for empty, because you are canceling a move that never came out.

Now I don't know the history, whether the mechanic was first found in 3s and then in SF2T or not, but it is an example of a mechanic intended to ease the input of something being used to expand the toolkit of a character.

V-cancel (not sure if that was the name ppl used for it, didn't play sfa2) refers to the fact that in sfa2 the number of frames to go from standing to downblock is more that the number of frames a character needs to go from standing to a low attack if the character is in v-ism. This means that if two characters are standing next to each other and one activates their v super, they have a guaranteed hit.

This was first used by Ricki Ortiz in a tournament setting in a finals and that is how it became wildly know. The story of it was documented in Sirlin's Play to Win book, which is how I learned about it. https://www.sirlin.net/ptw

PuercoPop··on Starcraft (A History in Two Acts)
> Also, I would love for this guy to do a deep dive on the SC:BW approach to balance, which is map-based rather than based on traditional unit-based balance changes. This way the community is effectively able to balance the game themselves.

Yes, that it something really important that the modern landscape of competitive gaming lost and the frequency of patching increasing. Not just in BW, older fighting games, especially those arcade based ones, people found ways (which sometimes blur the lines between exploit or technique) to keep pushing the bounders. Things like Kara-cancels in 3s, were one is using a mechanic meant to facilitate the throw input to extend the range of the throw. Or wave dashing. It is wild how even character tier lists changed in the original SmashBros 64.

And also how people adapt to this meta changing discoveries, like the bisu-build in BW or when Ricki Ortiz unleashed v-cancel in sfa2!

PuercoPop··on PyPI halted new users and projects while it fended off supply-chain attack
For what is worth in nix after the code is downloaded the code is built in a sandbox without network access. So one does have a viable alternative for Rust.

And is true that most package managers for popular language allow arbitrary code execution during the install process. That is how husky adds git hooks to the developers machines.

For example in Ruby I need to patch the Kafka gem, karafka because it downloads, builds and stores librdkafa.so in the gem's directory.

I understand that this as well as the husky example comes from a desire to make developer lifes easier but I'd rather we erred on the side of caution. Making sure that software builds without access to the network and without being able to modify your system (ej. Adding files to $HOME)

PuercoPop··on Embracing Common Lisp in the modern world
> is arguably the most powerful debugging experience available for any programming language.

The sly debugger is better than most debuggers, but calling it the most powerful debugging experience is a stretch. Just try the debuger in a Smalltalk implementation (Squeak/Pharo/Cuis)

PuercoPop··on Fuzzy Finding with Emacs Instead of Fzf
I use project.el instead of projectile but yeah that is exactly what I do. It is only a couple of lines.

https://github.com/PuercoPop/.emacs.d/blob/9d0b99d332d619fe3...

PuercoPop··on Breezy Version Control System
You are thinking of darcs, that is the one that was written in Haskell. Although Darcs is more related to pijul than to git
PuercoPop··on What is Glamorous Toolkit v1.0?
No, the included demos have examples for a analyzing Ruby (ActiveRecord) and Java. There was a paper a while back about moldable development where they showed a Python debugger.
PuercoPop··on NixOS RFC 136 approved: A plan to stabilize the new CLI and Flakes incrementally
That is what I was trying to say by

> Other than using version control to determine what are the sources of the derivation

I don't think that defaulting to using git to list the sources when inside a git repo means that it is tightly coupled to git. If one doesn't want to commit/stage the flake files in the repo one can do `nix develop .` and it works . It will take a little longer because it will copy the entire directory to the store iiuc.

PuercoPop··on NixOS RFC 136 approved: A plan to stabilize the new CLI and Flakes incrementally
I use nix with flakes, have written a couple of flakes day to day use. I am not a nix power user. But based on my current understanding this statement seems incorrect

> Flakes are tightly coupled to Git.

How is it tightly coupled to Git if it supports Mercurial out of the box?

Other than using version control to determine what are the sources of the derivation, what does flakes lean on version control?

PuercoPop··on Trinity Desktop Environment – a modern KDE3 fork
Amarok was the first app in Linux that was better than the Windows counterpart. My non-technical friends would ask how could they use it. It was the killer app for the Linux Desktop at the time.

> Also, dcop is probably the best GUI automation tool I’ve used.

Everytime I have to use dbus from the CLI I think to myself, dcop died for this?!

To me the best GUI automation tool (in Linux at least) was Kommander, another KDE app that didn't survived the KDE3-4 transition. A pretty decent 'low-code' tool that unfortunately didn't make it to KDE4.

I used KDE4 up to 4.2, when it supposedly 'got good'. It wasn't bad by any means. But KDE3 was better.

PuercoPop··on Trinity Desktop Environment – a modern KDE3 fork
> a fork of a DE from 2002

Not 2002, 2008. Trinity was forked after KDE3 was EOL.

I'm curious if they are keeping DCOP alive or have they embraced dbus?

PuercoPop··on Effective Rust (2021)
It is like printf to stderr and exit(1)
PuercoPop··on Ice not recommended for soft tissue injury treatment (2019)
I knew that as RICE: Rest Ice Compression Elevation. I remember seeing in in medwiki which was a wikipedia curated my doctors that Standford tried to launch iirc.
PuercoPop··on In Praise of Plan 9
> The plumber is cool, it’s like “what if xdg-open was good actually”

Yeah, plumber is way better than xdg-open in that it is extensible and it can be invoked from a script more easily via 9P. Given how hard it to customize xdg-open, I use a xdg-open wrapper that gets the caller's name using procfs and sends it to the plumber service. That way I can open links on a different browser depending from where the link was clicked/opened from .

  #!/usr/bin/env bash
  # this is named xdg-open and placed in a directory that is
  # before /usr/bin in the $PATH

  PARENT_COMMAND=$(cat "/proc/$PPID/comm")

  case "$PARENT_COMMAND" in
      slack)
   /home/puercopop/src/plan9/bin/9 plumb -s slack "$@"
   ;;
      zoom)
          /home/puercopop/src/plan9/bin/9 plumb -s zoom "$@"
   ;;
      *)
   /usr/bin/xdg-open "$@"
   ;;
  esac
And then on my plumbling file I have

  type is text
  src is zoom
  data matches 'https?://.*'
  plumb to firefox-trunk $data

  type is text
  plumb to xdg-open $data
PuercoPop··on Eglot has landed on master: Emacs now has a built-in LSP client
> Why wouldn't you want the lint error to be highlighted right as you type the code?

Why do you think you need to involve an LSP for that?. ESLint, as most linters, can take their input from stdin. That is exactly how the eslint-flymake[0] works. Lint on buffer contents, not file on disk. No JSON RPC involved.

0: https://github.com/emacs-pe/eslint-flymake/

PuercoPop··on Eglot has landed on master: Emacs now has a built-in LSP client
Eglot was written with the explicit goal of landing into Emacs. Which is why from the start it required copyright assignment for non trivial changes.

Landing into Emacs core was never a goal for lsp. So it wasnt a choice between eglot vs lsp. It was eglot, yay or nay.

PuercoPop··on Eglot has landed on master: Emacs now has a built-in LSP client
Why would one want to run eslint through an LSP? Using flymake it call the CLI works just fine and is more direct.
PuercoPop··on Why Fix Kubernetes and Systemd?
The author did a great job explaining the motivation for Aurae. I fully agree that there should be tighter integration between k8s and the init system on each node. But thinking of the desktop, having a gRPC server on PID 1 seems unnecessary. dbus is the RPC used by systemd. Is there a reason why gRPC instead of dbus[0]? Or is the goal of Aurae to replace systemd in the cloud/server Linux space?

[0]: dbus normally is used over a unix socket but afaik you can use dbus over a regular tcp socket

PuercoPop··on Using HTTP Basic Auth in 2022
Because many inputs map to that hash (the hashing function is surjective instead of bijective). People re-use passwords all the time. If the hash leaks it will only affect the particular service.
Page 1 of 12Next →