Kashmir Hill went 6 weeks without the big 5 tech giants (Amazon, Facebook, Microsoft, Google, Apple). It seems you basically have to become a level 5 vegan especially if you also avoid anything hosted/using their cloud services (e.g. AWS, Azure, GCloud).
Wrestling with the Python
Sometimes Python makes some useful things unnecessarily complex for weird and inconsistent reason … e.g. “code blocks.”
Naïvité FTW
Daniele Procida explores how a certain naivety (being unsophisticated) can lead to beautiful and useful things.
Update 2021-08-15: the original video from DjangoCon 2018 is not available any more. It seems Daniele gave a similar talk at EuroPython 2018 also.
https://www.youtube.com/watch?v=JNGNuiXLAcY
ECCploiting with Rowhammer
Certain types of ECC RAM can also be exploited with Rowhammer. ?
Affektbesaugung
Affektbesaugung, f.
leidenschaftlicher Kuss
ZIO Pipeline
This is an awesome talk for nerding out on ZFS interna. ?
https://www.youtube.com/watch?v=qkA5HhfzsvM
Threads on async
If you were to design a threading library today how would it look like? David Beazley manages to demonstrate a lot of edge cases in tiny examples … while live-coding! ?
https://www.youtube.com/watch?v=xOyJiN3yGfU
systemd from BSD
A remarkably sober analysis of what problem systemd solves for Linux … at a BSD conference of all places. ?
https://www.youtube.com/watch?v=6AeWu1fZ7bY
Moving LXD Containers From One Pool to Another
When I started playing with LXD I just accepted the default storage configuration which creates an image file and uses that to initialize a ZFS pool. Since I’m using ZFS as my main file system this seemed silly as LXD can use an existing dataset as a source for a storage pool. So I wanted to migrate my existing containers to the new storage pool.
Although others seemed to to have the same problem there was no ready answer. Digging through the documentation I finally found out that the lxc move command had a -s option … I had an idea. ? Here’s what I came up with …
Preparation
First we create the dataset on the existing ZFS pool and add it to LXC.
sudo zfs create -o mountpoint=none mypool/lxd lxc storage create pool2 zfs source=mypool/lxd
lxc storage list should show something like this now:
+-------+-------------+--------+--------------------+---------+ | NAME | DESCRIPTION | DRIVER | SOURCE | USED BY | +-------+-------------+--------+--------------------+---------+ | pool1 | | zfs | /path/to/pool1.img | 2 | +-------+-------------+--------+--------------------+---------+ | pool2 | | zfs | mypool/lxd | 0 | +-------+-------------+--------+--------------------+---------+
pool1 is the old pool backed by the image file and is used by some containers at the moment as can be seen in the “Used By” column. pool2 is added by not used by any contaiers yet.
Moving
We now try to move our containers to pool2.
# move container to pool2 lxc move some_container some_container-moved -s=pool2 # rename container back for sanity ;) lxc move some_container-moved some_container
We can check with lxc storage list whether we succeeded.
+-------+-------------+--------+--------------------+---------+ | NAME | DESCRIPTION | DRIVER | SOURCE | USED BY | +-------+-------------+--------+--------------------+---------+ | pool1 | | zfs | /path/to/pool1.img | 1 | +-------+-------------+--------+--------------------+---------+ | pool2 | | zfs | mypool/lxd | 1 | +-------+-------------+--------+--------------------+---------+
Indeed pool2 is beeing used now. ? Just to be sure we check that zfs list -r mypool/lxd also reflects this.
NAME USED AVAIL REFER MOUNTPOINT mypool/lxd/containers 1,08G 92,9G 24K none mypool/lxd/containers/some_container 1,08G 92,9G 704M /var/snap/lxd/common/lxd/storage-pools/pool2/containers/some_container mypool/lxd/custom 24K 92,9G 24K none mypool/lxd/deleted 24K 92,9G 24K none mypool/lxd/images 24K 92,9G 24K none mypool/lxd/snapshots 24K 92,9G 24K none
Awesome!
⚠ Note that this only moves the container, but not the LXC image it was cloned off of.
We can repeat this until all containers we care about are moved over to pool2.
Cleanup
To prevent new containers to use pool1 we have to edit the default profile.
# change devices.root.pool to pool2 lxc profile edit default
Finally …. when we’re happy with the migration and we’ve verified that everything works as expected we can now remove pool1.
lxc storage rm pool1
Silicon Valley or Soviet Union
This made my day.
Things that happen in Silicon Valley and also the Soviet Union:
– waiting years to receive a car you ordered, to find that it's of poor workmanship and quality
– promises of colonizing the solar system while you toil in drudgery day in, day out
— anton (𝔴𝔞𝔯𝔱𝔦𝔪𝔢) (@atroyn) July 5, 2018