Hacker Newsnew | past | comments | ask | show | jobs | submit | mdaverde's commentslogin

The answer to miserable health isn't exercise. It's high quality sleep.


It's not a dichotomy, both is good. I find my sleep and appetite improving with exercise, too; sleep can improve with physical tiredness on top of mental.


It's a shame how strong the reinforcement loops are. It's hard to sleep well without good exercise, and it's hard to exercise well without good sleep.


The more you age, the more you need regular sleep, it seems. Its basically the only thing that I can't fix nowadays any other way but going to bed. Modafinil can help for a couple of days but that's it.


But others do


Agree with everything has trade offs but do not agree that they are equivalent in impact. Tradeoffs have tradeoffs


So much of HN now is medical & healthcare related


This was exactly my take. This language just got a whole lot of significant focus behind it


Literally, yes.

As example, the north bridge isn't as explicit today as the document makes it seem. A lot of functionality that used to be reserved for the north bridge is now being tucked away into the CPUs or motherboards themselves.

Still, worth reading.


Question: how do you reliably deploy? And if it's just scp-ing tarballs, how do you handle dependencies? Do you run & upgrade any third-party processes that rely on having their filesystem or deps?

Struggling with this because even in a small app in a Linode box, I don't mind just cp-ing my bins but there's always other things/versions they need. Thinking of bringing in Ansible to help me out here.

Deploying feels easier in the container, Kubernetes world


If your problem is needing to synchronize a complex mesh of services when you upgrade stuff, the solution is to not have a complex mesh of services that needs managing.

I have a dist-directory, in it is a directory for with each release version, and a symlink current pointing to the current release. To deploy a new version, I create a new directory, unpack each service, and then redirect the symlink ... then "systemctl restart service-name".


Just read your article: https://www.marginalia.nu/log/09-system-upgrade/

You got rid of a lot but where did the functionality for those tools go? I understand wanting to get rid of containers & Kubernetes, but did you rewrite/bake the functionality in to your app? or maybe not care about monitoring and logs temporarily for now?


I mostly just got rid of the functionality. I do logs with grep and monitoring with vanilla prometheus.

Kubernetes and the surrounding ecosystem can create many of the problems they set out to solve.


capistrano makes it pretty easy/repeatable, at least for me deploying RoR code onto my VPS

All it is basically doing is a git pull, symlinking in the vendor code (gem) cache, doing all the rails preflight ceremony, and updating a "current release" symlink to point at the new folder. Oh and it restarts the servers (nginx, rails).

At a previous job I had an 8-line shell-script that did almost the same thing and it worked for years.


This is changing! (or technically, has changed!)

eBPF recently added the ability to look through internal data structures through iterators [0] so instead of parsing text we can run a program that traverses through all the task_structs and pushes the exact information we want to userspace in the form the developer wants.

So, alongside other tradeoffs, it's more flexible than syscalls.

[0] https://developers.facebook.com/blog/post/2022/03/31/bpf-ite...


Can you explain why you consider it to be worse?

eBPF is also working on signed programs [0]

[0] https://lwn.net/Articles/853489/


eBPF has a way to go before it is secured enough.

One should not use eBPF in production machines (along with many other things that uses the mixed write-execute memory regions such as web browsers with JavaScript enabled).


eBPF has changed several of these constraints [0]

- Verifier can explore up to 1million insns now instead of 4096

- 512 bytes of stack but with tail chaining you have up to 8k

- Bounded loops have been added. Unbounded loops are prevented by design to not stall the kernel

[0] https://docs.cilium.io/en/v1.12/bpf/


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: