18 Apr 2024
Kernel Planet
Pete Zaitcev: sup Python you okay bro
What do you think this does:
class A(object):
def aa(self):
return 'A1'
class A(object):
def aa(self):
return 'A2'
a = A()
print("%s" % a.aa())
It prints "A2".
But before you think "what's the big deal, the __dict__ of A is getting updated", how about this:
class A(object):
def aa(self):
return 'A1'
class A(object):
def bb(self):
return 'A2'
a = A()
print("%s" % a.aa())
This fails with "AttributeError: 'A' object has no attribute 'aa'".
Apparently, the latter definition replaces the former completely. This is darkly amusing.
Python 3.12.2
18 Apr 2024 2:44am GMT
16 Apr 2024
Kernel Planet
Pete Zaitcev: Trailing whitespace in vim
Problem:
When copying from tmux in gnome-terminal, the text is full of whitespace. How do I delete it in gvim?
Solution:
/ \+$
Obviously.
This is an area where tmux is a big regression from screen. Too bad.
16 Apr 2024 8:26pm GMT
15 Apr 2024
Kernel Planet
Pete Zaitcev: Boot management magic in Fedora 39
Problem: After an update to F39, a system continues to boot F38 kernels
The /bin/kernel-install generates entries in /boot/efi/loader/entries instead of /boot/loader/entries. Also, they are in BLS Type 1 format, and not in the legacy GRUB format. So I cannot copy them over.
Solution:
[root@chihiro zaitcev]# dnf install ostree
[root@chihiro zaitcev]# rm -rf /boot/efi/$(cat /etc/machine-id) /boot/efi/loader/
I've read a bunch of docs and the man page for kernel-install(8), but they are incomprehensible. Still the key insight was that all that Systemd stuff loves to autodetect by finding this directory or that.
The way to test is:
[root@chihiro zaitcev]# /bin/kernel-install -v add 6.8.5-201.fc39.x86_64 /lib/modules/6.8.5-201.fc39.x86_64/vmlinuz
15 Apr 2024 5:51pm GMT