HN user

dusanh

120 karma

https://dhaustein.github.io/

Posts0
Comments48
View on HN
No posts found.

I apologize this is not directly related to OP, but if you, like myself, get mad at all the "Suggested" posts LinkedIn is pushing on you, you can use the following ublock filter to get rid of these posts:

    www.linkedin.com##:xpath(//span[text()="Suggested"]//ancestor::div/div[contains(@data-id, "activity")])
Combined with carefully managing who I actually follow, it made it for a much more pleasant experience.

whereas managers are seen as useful in different domains, giving them practical mobility

And this is exactly my problem with becoming a manager. You become fungible, easily replaceable, movable and fire-able.

I worked for a medium size company that served, and still is, ~150 clients (some Fortune 500 included) by deploying prod with docker-compose. It can be done.

The already mentioned The Pragmatic Programmer, 20th Anniversary Edition is so far the best I have read. It's not overly specific to one single thing, it tries to teaches general principles and good practice.[1]

I also have a personal recommendation for when you want to better understand testing, QA, or want to/have to work with QA people. [2]

[1] https://pragprog.com/titles/tpp20/the-pragmatic-programmer-2... [2] https://www.amazon.com/Lessons-Learned-Software-Testing-Cont...

Trying to service, or even just open up, any appliance at a workplace is against the Occupational Safety and Health regulations in my country.

Thank you so much! That sounds surprisingly straightforward. I expected a lot more fiddling to get going.

Where would I start if I wanted to use a model programmatically ? Like let's say I am building a chat bot. I have a large data set of replies I want the model to mimic, and I'd want to do this in Python. Of course, I'd probably use a different model than Granite.

Replying to my own comment for posterity. I was able to figure it out!

In the LXC, I created a new non-root user and then set it's uid and git to a LOWER number than what every tutorial about rootless Podman recommends (devel being my non-root user here):

  # cat /etc/subuid /etc/subgid
  devel:10000:5000
  devel:10000:5000
Then I also had to edit configuration for the LXC itself on the Proxmox host to allow tun and have it created on container boot:
   # cat /etc/pve/lxc/{lxc_vmid}.conf
   ...truncated...
   lxc.cgroup2.devices.allow: c 10:200 rwm
   lxc.mount.entry: /dev/net dev/net none bind,create=dir
Note: I have no idea why a lower number of ids works...

That actually did not do anything different for me. I did the following:

1) Created a new LXC.

2) As root, I created a new user "devel"

3) For the "devel" user set both subuid and subgid to devel:100000:65536

4) As root, installed podman

5) In another SSH session, logged in as "devel" and ran "podman version"

Same error as before. This is in a Debian 12 LXC running on Proxmox.

Thank you, this made me realize I assigned a wrong (too little) number for uids. It did not fix my issue however. I still see

  (dev) $ podman info
  ERRO[0000] running `/usr/bin/newuidmap 3427 0 1000 1 1 100000 65536`: newuidmap: open of uid_map failed: Permission denied
  Error: cannot set up namespace using "/usr/bin/newuidmap": exit status 1
I tried a solution I found on Red Hat's Customer Portal:
  (root) # setcap cap_setuid+ep /usr/bin/newuidmap
  (root) # setcap cap_setgid+ep /usr/bin/newgidmap
Also did not work. I can run
  (root) # podman info 
just fine as root. This leads me to believe there are some other problems with my non-root user permissions.

EDIT: It probably makes little sense, to run rootless on top of an already unprivileged LXC. I just wanted to give vscode server it's own non-root user in there. Oh well...

Unprivileged LXCs? Interesting, I thought containers would require privileged LXC. At least, that it my takeaway from trying to run Podman in a nesting enabled, but unprivileged LXC under non-root user. I kept running into

newuidmap: write to uid_map failed: Operation not permitted

I tried googling it, tried some of the solutions, but reached the conclusion that it's happening because the LXC is not privileged.