I spent some time trying to figure out why reinstalling GRUB always lead me to Waiting for encrypted source device and ultimately dropping me into a cryptsetup shell where I didn’t have any mapped device nor any /dev/sdaX. Here a list of steps to make sure everything is in place. Basic reinstall Suppose you have to install/restore GRUB on a partition table like this one: $ lsblk NAME MAJ:MIN…
Best practices to avoid CI/CD vendor lock-in by keeping pipelines portable, readable, and platform-agnostic. Improve maintainability and flexibility across tools like GitHub Actions and GitLab pipelines.
I’m often ask which Free Software/ Open Source projects could use some help and are currently accepting cash donations. Here are some ideas! Note that I’m personally involved with the projects marked with *. Projects Sylvia van Os, maintainer of Catima Nick Craig-Wood, developer of rclone Internet Archive Encode Django gbadev* gbdev* Memberships Italian Linux Society*, an organization…
↓ Click here to go directly to the solution It feels quite surreal to write a post with such a title in 2025 but I’ve been recently given the simple task to folders of ~10-20GB of Camera galleries from Android phones to back them up to a physical drive. Surely a joke at this moment in time, with devices in the GHz range and tens of gigs of RAM, right?
If you let the battery drain out completely while the headset is paired, the device will disconnect and enter a “glitched” state where it becomes completely unrensposive (not even after charging it or trying to plug it via USB instead of the bluetooth dongle) and the only thing it’ll do is blink rapidly twice in red when you press the microphone button to turn it on or off.
If you let the battery drain out completely while the headset is paired, the device will disconnect and enter a “glitched” state where it becomes completely unrensposive (not even after charging it or trying to plug it via USB instead of the bluetooth dongle) and the only thing it’ll do is blink rapidly twice in red when you press the microphone button to turn it on or off.
When modernizing your technology/work framework you don’t need to introduce: A full Kubernetes setup Helm charts Complete CI/CD pipelines (and let alone templates) Full fledged scrum cerimonies Production level security requirements to deploy all at the same time. In fact, it may even be damaging long term or counter productive. The cognitive load and the practical new blockers that will…
Monitor links It may seem obvious, but maintaining links working across every kind of web page of your project is crucial for ensuring your visitors and potential users have a good experience when learning. Broken links can lead to frustration and may discourage users, making them leave sooner than expected. Implement scripts to regularly check the status of links helps to promptly identify any…
Firewalls that only allow standard ports (such as HTTP, HTTPS) can be easily circumvented by proxying all traffic trough port 443, using an external machine. Here’s a minimal setup to obtain so with proxytunnel: Apache2, running on the external machine: [...] ProxyRequests On AllowConnect 22 <Proxy *> Order deny,allow Deny from all </Proxy> <Proxy 127.0.0.1> Order deny,allow Allow from all…
Cleaning up: Stopped containers: docker container prune Stop all containers: docker container stop $(docker container ls -aq) Dangling images: docker image prune Images with no containers: docker image prune -a All but volumes: docker system prune All: docker system prune --volumes Volumes not in use: docker volume prune Remove all containers: docker rm $(docker ps -aq) Remove all images: docker…
About gbdev “gbdev” is the home of the Game Boy development scene. A community of retro-hardware enthusiasts. Maintaning and developing many projects, including RGBDS, the de-facto standard development toolkit, curated collections of resources, documentation efforts, digital preservation and an open archive of homebrews. Follow the Game Boy Development (gbdev) initiative on Twitter,…
Context: I’m a computer scientist/engineer and during 2018 and 2019 (while I was 23-24) I started being involved and committed in a lot of side activities, while getting my MS in Computer Science. I’ve been recently asked by a lot of friends and collegues finishing college, transitioning jobs or starting a master how to choose a job and what factors/which positions and employers should…
LaTex package “float” broke after texlive 20190830 After updating texlive to the 20190830 version, the “float” package started working, giving ! LaTeX Error: Unknown float option 'H'. even if the same file was compiling correctly before and \usepackage{float} is used. You need to downgrade at least to the 20190227 version. I did apt purge texlive* then tried to install…
The blocking mechanism on Instagram isn’t exactly well-designed: Blocking someone allows you to be unblock-able from that account, while still being able to view its content freely, completely hidden for the other account (unblocking and re-blocking fastly). There’s no way to know if someone is watching your stories or content if they have blocked you, since watching (with a script)…
How to mix plain markdown and latex and get beautiful results while writing human stuff. (with results being PDF, XHTML, HTML5, docx, EPUB, LaTex and many more). Pandoc allows you to get the best of the two worlds without compromises: readable plain text files with latex expressions and everything offered by latex rendering and packages. You can write code-blocks with specific language syntax…
Recently a friend tried to install Battlefield 3 after some years and was unable to install Punkbuster due to the error The extract file failed an autheticity check during the services install. There’s no official solution or reason to this error. basically, Punkbuster services can’t be copied/installed or can’t run correctly. First of all clean your system from every trace of PB…
Yesterday I was working on a AutoHotKey project and was wondering if It was possible to automate the extraction of the age from a facebook profile without making use of API or Facebook Graph. This applies to whatever value you can’t (or you don’t want) obtain through official APIs. IE := ComObjCreate('InternetExplorer.Application') IE.Visible := True Check(){ ComObjError(0) DOB := '' Loop {…
useradd sftp-only create user In /etc/ssh/sshd_config comment the existing line starting with Subsystem sftp and add: Subsystem sftp internal-sftp Match user sftp-only ChrootDirectory /path/to/the/dir X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp service sshd restart The folder must be owned by root, remember to set the read/write permission for the user. User will be chrooted…
libGL error: unable to load driver: i965_dri.so or GLX generic errors. If you can’t launch the emulator from Android Studio with hardware emulation enabled because of these errors it’s probably because the AVD is starting using wrong versions of the libraries. Manually start the emulator and append -use-system-libs as flag, like this: avivace@debian-tp:~/Android/Sdk/tools$ ./emulator…
If you try and enable the screen sharing feature during a call on Hangouts on Chromium on Debian, it happens absolutely nothing, no error is reported. This is because the Chromium package in the debian repositories is built with the enable_hangout_services_extension=false flag (every other feature of Hangouts actually works). You can download the source, edit the rules file and enable that flag.…
If you keep getting PAM authentication failed when trying to change shell, even when running as root, you probably have some invalid settings. Change the shell manually using vipw /etc/passwd. chsh should be back working now. vipw can be used to safely edit /etc/shadow and etc/group, too.
A.K.A. Commands I keep forgetting no matter how many milions time I type them Magic SysRq key commands The magic SysRq key is a key combination understood by the Linux kernel, which allows the user to perform various low-level commands regardless of the system’s state. ALT + SysRq key (usually Stamp) + .. f to call oom_kill Remove kernel module manually installed with make/dkms If you get…
Just to name a few, Teamviewer, megasync, and MATLAB requires some dependecies that are still not in stretch/debian repo. Tuning apt preferences and sources you can mix repositories and satisfy some dependecies with packages from backports, testing or even experimental, just expect something to break (you shouldn’t do this on a production system). Some useful resources to start playing…
No previews or thumbnails If you’re missing previews and thumbnails while browsing for files, either in settings or in Dolphin, install the following packages: apt install ffmpegthumbs mplayerthumbs kffmpegthumbnailer kio-extras External HDD and Plasma Long story short: you should pay attention using external (mechanical) HDDs with Plasma. The bug is 8 years old and it’s just being…
I recently got a Thinkpad P14s Gen 2 with an Intel i7-1165G7. Here are some first impressions on how well it works with Linux/Debian. TL;DR Don’t buy it. It sucks. The machine it’s absolutely terrible. Just google for “p14s gen 2 intel throttling” to get an idea. Before initiating with the installation, disable SecureBoot and set the standby/sleep feature to…
This is resource list meant as checklist for contributing to the Debian project uploading a new package and mantaining it. If you just want to package a software as deb and distribute it in your unofficial repository, checkinstall and aptly provide an easy solution. Get involved: IRC #debian, #debian-mentors Find out if the software already exists in Debian Fill an Intent to Package issue (ITP)…
Play DRM content on Chromium You need the widevine plugin, which ships with Chrome and Firefox by default but isn’t available for Chromium. Install the package chromium-widevine. If the problem persist, manually copy the files libwidevinecdm.so and libwidevinecdmadapter.so from a Chrome install (/opt/google/chrome/) to /usr/lib/chromium/. Or wget…
Install a LISP compiler. We’ll use Steel Bank Common Lisp. Extract the downloaded archive and run install.sh. If the binary location is not /opt/sbcl/bin/sbcl note it. Install emacs sudo apt-get install emacs Set up the MELPA repository adding this to your ~/.emacs file (require 'package) ;; You might already have this line (add-to-list ‘package-archives ‘(“melpa” .…
commit & push everything remove hooks: git lfs uninstall remove lfs stuff from .gitattributes list lfs files using git lfs ls-files | sed -r 's/^.{13}//' > files.txt into a “files.txt”. run git rm --cached for each file: while read line; do git rm --cached "$line"; done < files.txt run git add for each file while read line; do git add "$line"; done < files.txt commit everything git add…
Since there’s not telegram API endpoints for this, we need to call MTProto methods to retrieve messages from the “Recent Actions” (Admin Log) since deleted messages (and medias) gets moved there for 48 hours before the permanent deletion. from telethon import TelegramClient, events, sync from telethon.tl.types import InputChannel, PeerChannel from telethon.tl.types import Channel…
Mount the linux partition, chroot to it, run grub-update. Or: fdisk -l list of physical devices (X) and partitions (Y) (or blkid) mount /dev/sdXY /mnt umount /mnt/boot and mount /dev/sdXY /mnt/boot if you have a separate boot partition grub-install --boot-directory=/mnt/boot /dev/sdX (Given you have access to a busybox/linux shell)
Here’s how to run scp to copy from machine A to machine R, with R being accessible only from machine G. A -G-> R Set up SSH tunnel: ssh -L 1234:<address of R known to G>:22 <user at G>@<address of G> Adding “cat -” will keep it running while above will get you connected to G: ssh -L 1234:<address of R known to G>:22 <user at G>@<address of G> cat - Either way you run it, open…
Confirmed to help with Portal, The Stanley Parable with these errors on start: error while loading shared libraries: libtcmalloc_minimal.so.4: cannot open shared object file: No such file or directory error while loading shared libraries: libtcmalloc_minimal.so.4: wrong ELF class: ELFCLASS64 SDL failed to create GL compatibility profile (whichProfile=0! SDL failed to create GL compatibility…
Manually setup a git repo in /etc or take a look at the etckeeper package. Don’t use a public repository, /etc can expose sensitive data such as password hashes or private keys. apt get install etckeeper git incrontab nano /etc/etckeeper/etckeeper.conf , set VCS="git" (comment the other options) and set PUSH_REMOTE="origin". # Go to the configuration directory. cd /etc # Initialize…