“Passkeys and the WebAuthn specification were intended to make public key cryptography accessible to average users, rather than just the domain of the tech-savvy. If done right, they could seriously improve security on the Web.” @Drbruced summarises why passkeys are such a good idea in theory and explains where current implementations of the technology fall down in practice.
Author: edafe
Was Griechenland wusste: das tödliche Geschäft des Abu Sultan
“Eine monatelange Untersuchung unter der Leitung des griechischen Investigativmediums Solomon und des Netzwerks Arab Reporters for Investigative Journalism in Zusammenarbeit mit El País und der taz ergab, dass die griechischen Behörden schon früh wussten, dass die ‘Pylos 9’ unschuldig waren, sie aber fast ein ganzes Jahr in Untersuchungshaft behielten.” Griechenland kriminalisiert systematisch die Opfer eines der schwersten Schiffsunglücke im Mittelmeer, um von den Versäumnissen der eigenen Behörden abzulenken.
Viele gute Gründe für das Fediverse
“Die vor uns stehenden Umwälzungen der digitalen Transformation sind von historischer Dimension. Sie sind in ihrer Bedeutung vergleichbar mit den Veränderungen im Zeitalter der Aufklärung, die die Grundlage für die Menschenrechte und ein friedlich vereintes Europa legten.”
Mario Birkholz sieht die Hochschulen in der Pflicht, ihre digitale Kommunikation mit den Anfoderungen des demokratischen Gemeinwesens in Einklang zu bringen.
How to install Espanso on Debian 12 bookworm from source
Unmet dependencies continue to prevent available Espanso packages from installing on my machine running Debian 12. Given that I depend on Espanso to expand all kinds of text and wanted to upgrade to the latest version for Wayland, I updated the following instructions and installed from source.
Following these instructions, Espanso 2.2.1 for Wayland will be installed on your system and enabled for the current user.
Compiling Espanso from source code
Side-step any dependency problems by compliling Espanso from source and moving the binary into place.
Step 1
Install the required C/C++ compiler and some additional tools.
$ sudo apt-get install --yes build-essential curl git wl-clipboard libxkbcommon-dev libdbus-1-dev libwxgtk3.*-dev libssl-dev
Step 2
Install the required Rust compiler, which is managed by the rustup
tool.
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh&&source ~/.bashrc
Press [Enter] to proceed with the installation.
Current installation options: 1) Proceed with instalation (default) 2) Customize installation 3) Cancel installation >
Install cargo-make
, which is required during the build process.
$ cargo install --force cargo-make --version 0.34.0
Step 3
Get the source code by cloning the Espanso repository to the local directory ~/.local/src/espanso
.
$ git clone --progress https://github.com/federico-terzi/espanso ~/.local/src/espanso
Step 4
Compile the Espanso binary as a Wayland-only build in release mode.
$ cargo make --cwd ~/.local/src/espanso --profile release --env NO_X11=true build-binary
Move the resulting binary to the /usr/local/bin
directory.
$ sudo mv ~/.local/src/espanso/target/release/espanso /usr/local/bin/
Step 5
Give Espanso the permissions required for operation.
$ sudo setcap "cap_dac_override+p" $(which espanso)
Check to see if the Espanso binary was installed successfuly.
$ espanso --version
Step 6
Register Espanso as a systemd service.
$ espanso service register
Launch Espanso.
$ espanso start && espanso status
Step 7
GNOME desktop only: remove the conflicting default shortcut for activating the window menu.
Settings > Keyboard > Keyboard Shortcuts > View and Customize Shortcuts > Windows > Activate the window menu > [Backspace]
Use [Alt + Space] to open Espanso’s Search bar.
All Done!
Experimental support for Wayland
Espanso has some known limitations under Wayland. Most notably, “there is currently no support for App-specific configurations”.
Big ‘Thank you’ to Federico Terzi for creating Espanso!
Use the Zyklop Pocket for bicycle maintenance
These days, the Wera Zyklop Pocket ratchet is my go-to tool for any kind of bicycle-related maintenance. It is easily small enough to fit in my hip pack and I carry it everywhere I ride. Get a few additonal bits to fit the particular requirements of your bike and you’ve got a fantastic tool that, because of its ergonomic properties, represents a significant step up on any of the traditional multi-tools.
With regards to Tomas.
Linux in 2024 – charting its own path to innovation
“Why do people take the path less traveled and choose an operating system based on Linux over the proprietary based ones from Microsoft Windows and also the Apple Mac OS? So welcome to the intriguing world of Linux, an operating system that’s been quietly revolutionising the tech landscape.”
DJ Ware
Stephen vs Sabrina full 3-point challenge
Stephen Curry is considered the greatest shooter in basketball history. Sabrina Ionescu set the WNBA record for most three-pointers in a single-season and holds the WNBA and NBA records for most points in a 3-point shooting contest. They go head-to-head in the first ever contest of its kind…
Shrink and optimise an existing QCOW2 image
A virtual disk image is a block device in a file. There are a number of different disk image formats to choose from when setting up a virtual machine. QEMU Copy On Write version 2 (QCOW2) is the default virtual disk image format for the Quick Emulator (QEMU). Features such as thin provisioning, snapshots and compression make QCOW2 one of the most versatile virtual disk formats available.
In the following example, the overall objective is to shrink and optimise an existing image for random read and write operations. You can also grow disk images using the same approach.
These instructions specifically use Debian 12 with a GNOME desktop as the host, but they should also be applicable to other Linux distributions such as Ubuntu or Linux Mint. The virtual machine in this case is a Windows 10 guest using the NTFS file system.
Before you begin
Shut down the virtual machine and delete all existing snapshots from the image file.
Never modify images currently in use by a running virtual machine.
Step 1
On the host, install the necessary tools for working with virtual disk images.
$ sudo apt-get install --yes libguestfs-tools gnome-disk-utility
Step 2
Only root can access the host directory /var/lib/libvirt/images
. Use the following command to obtain the necessary privileges.
$ sudo su
Step 3
Continue by creating a directory in which to keep your virtual machine backups.
# mkdir /var/lib/libvirt/backups
Step 4
Now create a backup of the virtual machine with the name windows by copying its QCOW2 image file to the backups directory.
# cp /var/lib/libvirt/images/windows.qcow2 /var/lib/libvirt/backups/windows-backup.qcow2
Step 5
Sparsify the image file to convert any free space within the disk image to free space on the host.
# virt-sparsify --in-place /var/lib/libvirt/images/windows.qcow2
Step 6
Rename the sparsified image file.
# mv /var/lib/libvirt/images/windows.qcow2 /var/lib/libvirt/images/windows-sparsified.qcow2
Step 7
Check the disk size of the sparsified image file. The disk size should be smaller than the virtual size. In this particular case, the disk size is 26.7 GiB and the virtual size 64 GiB.
# qemu-img info /var/lib/libvirt/images/windows-sparsified.qcow2
image: /var/lib/libvirt/images/windows-sparsified.qcow2 file format: qcow2 virtual size: 64 GiB (68719476736 bytes) disk size: 26.7 GiB cluster_size: 2097152 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false
Step 8
Determine which partition to resize by obtaining more detailed information about the contents of the sparsified disk image.
# virt-filesystems --long -h --all -a /var/lib/libvirt/images/windows-sparsified.qcow2
On the virtual device /dev/sda
, the size of the partition /dev/sda2
is 63G. It appears to offer the greatest scope for resizing, as the overall disk size in Step 7 is only 26.7 GiB in total.
Name Type VFS Label MBR Size Parent /dev/sda1 filesystem ntfs System Reserved - 50M - /dev/sda2 filesystem ntfs - - 63G - /dev/sda3 filesystem ntfs - - 530M - /dev/sda1 partition - - 07 50M /dev/sda /dev/sda2 partition - - 07 63G /dev/sda /dev/sda3 partition - - 27 530M /dev/sda /dev/sda device - - - 64G -
Step 9
Load the network block device (NBD) kernel module.
# modprobe nbd max_part=8
Step 10
Connect the sparsified image.
# qemu-nbd --connect=/dev/nbd9 /var/lib/libvirt/images/windows-sparsified.qcow2
Step 11
The partition /dev/sda2
listed in Step 8 is equivalent to /dev/nbd9p2
connected as a network block device. Use GNOME Disks to shrink /dev/nbd9p2
to its Minimal Size.
Use a graphical utility to minimise the risk of introducing errors.
Step 12
Disconnect the resized image.
# qemu-nbd -d /dev/nbd9
Step 13
Unload the NBD kernel module.
# modprobe -r nbd
Step 14
Create a target image larger than the resized source image. In this example, the size of the target image is 32G and its format QCOW2 with full preallocation and a cluster size of 2M.
# qemu-img create -f qcow2 -o preallocation=full -o cluster_size=2M /var/lib/libvirt/images/windows-target.qcow2 32G
Step 15
Copy the source image to the target image and specify the partition to expand in the process.
# virt-resize --expand /dev/sda2 /var/lib/libvirt/images/windows-sparsified.qcow2 /var/lib/libvirt/images/windows-target.qcow2
Step 16
Confirm the actual disk size of the target image.
# qemu-img info /var/lib/libvirt/images/windows-target.qcow2
image: /var/lib/libvirt/images/windows-target.qcow2 file format: qcow2 virtual size: 32 GiB (34359738368 bytes) disk size: 32 GiB cluster_size: 2097152 Format specific information: compat: 1.1 compression type: zlib lazy refcounts: false refcount bits: 16 corrupt: false extended l2: false
Step 17
Obtain detailed information about the contents of the target disk image.
# virt-filesystems --long -h --all -a /var/lib/libvirt/images/windows-target.qcow2
The partition /dev/sda2
of the virtual device /dev/sda
is now 31G in size. The overall disk size in Step 16 is now only 32 GiB in total.
Name Type VFS Label MBR Size Parent /dev/sda1 filesystem ntfs System Reserved - 50M - /dev/sda2 filesystem ntfs - - 31G - /dev/sda3 filesystem ntfs - - 530M - /dev/sda1 partition - - 07 50M /dev/sda /dev/sda2 partition - - 07 31G /dev/sda /dev/sda3 partition - - 27 530M /dev/sda /dev/sda device - - - 32G -
Step 18
Rename the target image file.
# mv /var/lib/libvirt/images/windows-target.qcow2 /var/lib/libvirt/images/windows.qcow2
All done!
You can also modify format specific options for an existing image without having to create a target disk image. Or alternatively expand into a target image that uses a format compatible with other hypervisors, such as RAW, VMDK, VDI, VHD, VHDX or QED.