I upgraded my laptop and VPS to Debian 10, as usual in Debian everything worked out of the box, the necessary daemons restarted without problems.
I followed my usual upgrade approach, which involves upgrading a backup of the root FS of the server in a container, to test the upgrade path, followed by a config file merge.
I had one major problem, though, connecting to my php based Dokuwiki subsole.org website, which displayed a rather unwelcoming screen after the upgrade:
I was a bit unsure at first, as I thought I would need to fight my way through the nine different config files of the dokuwiki debian package in /etc/dokuwiki
However the issue was not so complicated: as the apache2 php module was disabled, apache2 was outputting the source code of dokuwiki instead of executing it. As you see, I don't php that often.
A simple
a2enmod php7.3
systemctl restart apache2
fixed the issue.
I understood the problem after noticing that a simple phpinfo() would not get executed by the server.
I would have expected the upgrade to automatically enable the new php7.3 module, since the oldstable php7.0 apache module was removed as part of the upgrade, but I am not sure what the Debian policy would recommend here, or if I am missing something else.
If I can reproduce the issue in a upgrade scenario, I'll probably submit a bug to the php package maintainers.
Sunday, August 4, 2019
Saturday, June 8, 2019
PowerShell on Debian
I heard some time ago that Microsoft released their interactive and
scripting language PowerShell under an opensource license (MIT) but I completely missed that they were providing a repository and ready to use packages for your favorite distribution.
Anyway an apt-get away and that's it:

New-Object net.sockets.tcpclient("libera.cc", 80) opens a TCP connection to a target host, a quick way to test if a port is open ( look for Connected: True for a successful socket creation)
scripting language PowerShell under an opensource license (MIT) but I completely missed that they were providing a repository and ready to use packages for your favorite distribution.
Anyway an apt-get away and that's it:

New-Object net.sockets.tcpclient("libera.cc", 80) opens a TCP connection to a target host, a quick way to test if a port is open ( look for Connected: True for a successful socket creation)
Sunday, March 17, 2019
Splitting a large mp3 / flac / ogg by detecting silence gaps
If you have a large audio file coming for instance from a whole music album, the excellent mp3splt can do this for you:
mp3splt -o @n-@f -s my_long_file.mp3
will autodetect the silences, and create a list of tracks based on the large file.
mp3splt is available in the Debian / Ubuntu archive.
mp3splt -o @n-@f -s my_long_file.mp3
will autodetect the silences, and create a list of tracks based on the large file.
mp3splt is available in the Debian / Ubuntu archive.
Tuesday, November 20, 2018
Normalize a bunch of audio files to the same loudness
I had a bunch of audio files in a directory, each recorded live with different devices, and it proved very ear-painful to hear the audio files in a playlist because of the difference of loudness.
To normalize audio filesm you can find a number of tool working with ID3 tags, but after testing with vlc, mplayer, and the pogo mp3 player none of them did produce a measurable change. So I converted everything to wav, normalized the wav files, then converted back to mp3.
delete funny chars and spaces in file names
converting files to wav is just a matter of
normalizing files with the
converting back to mp3
To normalize audio filesm you can find a number of tool working with ID3 tags, but after testing with vlc, mplayer, and the pogo mp3 player none of them did produce a measurable change. So I converted everything to wav, normalized the wav files, then converted back to mp3.
delete funny chars and spaces in file names
detox music_dir
converting files to wav is just a matter of
# this uses zsh recursive globbing
for file in **/*.mp3 ; do ffmpeg -i $file "$(basename $file .mp3).wav"; done
normalizing files with the
normalize-audio program, from the debian package of the same name.# this uses zsh recursive globbing normalize-audio **/*.wav
converting back to mp3
for file in **/*.wav ; do ffmpeg -b:a 192k -acodec libmp3lame -i $file "$(basename $file .wav).mp3"; done
Sunday, September 2, 2018
Test if your microphone input is working from the command line on Linux
arecord -vv /dev/null
That's it. Now clap your hand and observe the ascii vumeter.
That's it. Now clap your hand and observe the ascii vumeter.
Wednesday, July 25, 2018
Inspecting an Atari ST hard disk image with Unix / Linux tools
GNU libparted has Atari partition table support since two years ago.
For this you will need the
Let us try this with a disk image I used for my Ultrasatan device, for example st_mint
Print the partition table
This should give a loopback device
looks an Atari ST system inside
when your work is finished, unmount the partition and detach the loop device from the disk image
disktype and parted programs. Any good Unix should have
those (I use Debian GNU/Linux)Let us try this with a disk image I used for my Ultrasatan device, for example st_mint
wget http://www.subsole.org/static/retrocomputing/st_mint-0.7.img.zip
Unzip the disk imageunzip st_mint-0.7.img.zip
Inspect the diskimage with the disktype program, an excellent disk analysis tool.disktype st_mint-0.7.img
--- st_mint-0.7.img
Regular file, size 600 MiB (629145600 bytes)
ATARI ST partition map
Partition 1: 128.0 MiB (134201344 bytes, 262112 sectors from 4, bootable)
Type "BGM" (Big GEMDOS)
FAT16 file system (hints score 3 of 5, ATARI ST bootable)
Unusual sector size 4096 bytes
Volume size 127.9 MiB (134119424 bytes, 16372 clusters of 8 KiB)
Partition 2: 384.0 MiB (402666496 bytes, 786458 sectors from 262116)
Type "MIX" (Unknown)
Notice the two partitions, first one is of type BGM, the second one is a Minix partition.Print the partition table
parted (this will output some warnings if running as non-root)parted st_mint-0.7.img print
Partition Table: atari
Disk Flags:
Number Start End Size Type File system Flags
1 2048B 134MB 134MB primary boot
2 134MB 537MB 403MB primary
Print the partition table with the begin and end of each partition being printed in bytes
we will need this to create the loopback devicesparted st_mint-0.7.img -- unit b print
Partition Table: atari
Disk Flags:
Number Start End Size Type File system Flags
1 2048B 134203391B 134201344B primary boot
2 134203392B 536869887B 402666496B primary
Now using the beginning and end of each partition in bytes from the line above, create the /dev/loop devices corresponding to each partition: sudo losetup --find --offset 2048 --sizelimit 134201344 --verbose st_mint-0.7.img
This should give a loopback device
losetup --all
/dev/loop3: []: (/home/manu/Téléchargements/st_mint-0.7.img), offset 2048, sizelimit 134201344
Now let us do a file check on the partition
sudo fsck.vfat /dev/loop3
fsck.fat 4.1 (2017-01-24)
/dev/loop3: 217 files, 966/16372 clusters
and mount itsudo mount /dev/loop3 /mnt
looks an Atari ST system inside
ls /mnt
APPS CBHD502 CLIPBRD FSELECT.INF MICO MULTITOS TOOLS
AUTO CBHD.SYS CRIPPLE HUSHI.SYS MINT NEWDESK.INF
file /mnt/APPS/QED/QED.APP
/mnt/APPS/QED/QED.APP: Atari ST M68K contiguous executable (txt=189972, dat=16234, bss=103214, sym=0)
when your work is finished, unmount the partition and detach the loop device from the disk image
sudo umount /mnt
sudo losetup --detach /dev/loop3
Friday, July 20, 2018
Generating a visual history of a git repo
If you haven't met it yet the gource programm really rocks: it generates a OpenGL rendered graph of all the commits of a git project.
You can see the video on real time just by calling the command gource in your git repo, or generate a video of it by piping to ffmpeg
This is the command line I used to generate my own video:
gource --hide filenames --hide files --title "the history of pmc" -s 0.1 --highlight-users -1280x720 -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 gource.mp4
You can see the video on real time just by calling the command gource in your git repo, or generate a video of it by piping to ffmpeg
This is the command line I used to generate my own video:
gource --hide filenames --hide files --title "the history of pmc" -s 0.1 --highlight-users -1280x720 -o - | ffmpeg -y -r 60 -f image2pipe -vcodec ppm -i - -vcodec libx264 -preset ultrafast -pix_fmt yuv420p -crf 1 -threads 0 -bf 0 gource.mp4
Subscribe to:
Posts (Atom)

