RSSAmplifier

Blog

Odi's astoundingly incomplete notes

Completeness is for nerds

odi.chRSS feed ↗10 posts

Latest posts

[Reviews] Restic is my favorite backup tool

Restic deserves a shoutout. Only recently I have discovered this outstanding backup solution. It s simplicity is ingenious. It allowed my to replace my 10 year old Bacula solution in just 15 minutes! Now I have a reliable automate backup with no clicky UI, no central database that uses minimal resources. The coolest feature is its git-like storage. Files are only stored once. There is no need to…

[Code] Creating a kernel source diff

When you roll your own kernel and frequently update it to the current stable version from git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git , then this script may be helpful. It creates the diff from the currently running kernel version to the latest stable one. You can easily apply it to your build source tree with: patch -p1 <~/patch.diff #!/bin/bash REPO=~/code/linux-stable…

[Code] Improve font rendering in Firefox

If fonts in Firefox look uglier than in Chrome then probably LCD Filtering is not enabled in fontconfig. In Gentoo enable LCD filtering like so: eselect fontconfig enable 11-lcdfilter-default.conf eselect fontconfig list And make sure the other LCD filtering options are disabled. In my setup I get good fonts with: Available fontconfig .conf files (* is enabled): [1] 10-autohint.conf * [2]…

[Code] Stackoverflow can break your locking scheme

Simple Java locking code, looking innocent, right? private ReentrantLock lock = new ReentrantLock(); private void doIt() { boolean locked = lock.tryLock(); try { ... } finally { if (locked) lock.unlock(); } } Well, only until you realize that a call to unlock() causes 4 nested method calls. So unlock() requires a little bit of free stack. But what happens when stack is tight? Well... unlock() will…

[Code] Gentoo updates su binary

If your Gentoo spits out cron errors like this: run-parts: /etc/cron.daily/man-db exited with return code 1 after updating to sys-apps/util-linux-2.37.3 then you should run pwck to check the consistency of /etc/passwd, /etc/shadow etc. # pwck user adm : directory /var/adm does not exist user lp : directory /var/spool/lpd does not exist user news : directory /usr/lib/news does not exist user uucp :…

[Code] Gentoo switches to libxcrypt

Update these packages before others: emerge -v1 virtual/libcrypt sys-libs/libxcrypt Otherwise you can run into dependency issues if there are a lot of other package updates. Also this gets you into a stable state again (as it causes a glibc rebuild) more quickly when you update a system that can t afford longer downtimes.

[Code] Cast CLOB to BLOB in Oracle

select TO_BLOB(UTL_RAW.CAST_TO_RAW(myclob)) from mytable This will provide a CLOB column as a BLOB. The character set / encoding that is used here is to be determined. Probably DB default.

[Code] Gentoo switches to Python 3.9

To find remaining packages that still have a python3_8 useflag that prevents depcleaning 3.8: find /var/db/pkg -name USE | xargs grep python3_8

[Code] Gentoo has a binary Rust package

Rust takes a lot of time and resources to compile. Very annoying. Fortunately there is a binary package: dev-lang/rust-bin But virtual/rust prefers the source package via RDEPEND="|| ( ~dev-lang/rust-${PV}[${MULTILIB_USEDEP}] ~dev-lang/rust-bin-${PV}[${MULTILIB_USEDEP}] )" So any sane person should add dev-lang/rust to their /etc/portage/package.mask file, so portage picks rust-bin by default.

[Code] Root can NOT access all files

If you think that root has universal privilege on the filesystem, then you may need to update your opinion. Consider an NFS share for example that is exported from the server as: /var/nfs 10.1.2.3(rw) and the permissions on that directory are: drwxrws---. 2 foo bar 6 Apr 15 17:33 nfs On the client where that NFS share is mounted the directory looks innocuous (same as above). But when root tries to…