Difference between revisions of "Hacks"

From Jon's Wiki
Line 54: Line 54:
  
 
== Restoring huge databases to PostgreSQL ==
 
== Restoring huge databases to PostgreSQL ==
 +
 +
'''''See also:''''' ''[[PostgreSQL]]''
  
 
Skip some huge tables by dumping the TOC, removing culprit large tables, and restore with the edited TOC, e.g.
 
Skip some huge tables by dumping the TOC, removing culprit large tables, and restore with the edited TOC, e.g.

Revision as of 22:48, 14 December 2020

Image renaming by create date

When you have a bunch of files from your old Android phone with a timestamp filename (e.g. 1388042328550.jpg), you can rename them thus:

for f in 1*.jpg; do
  mv $f $(date +IMG_%Y%m%d_%H%M%S.jpg -d @$(echo $f|cut -c 1-10))
done

Otherwise, we can fish out the Create Date from the EXIF data, using exiftool:

exiftool '-FileName<CreateDate' -d %Y%m%d_%H%M%S%%-c.%%e .

Repair broken or rotated phone videos

You can fix broken video .tmp files from your Android phone using untrunc. This will create a fixed.mp4 file in cwd:

untrunc working_video_from_the_same_camera.mp4 broken.mk4.tmp

Did your phone unhelpfully rotate your video? Fix the metadata:

ffmpeg -i original.mp4 -acodec copy -vcodec copy -metadata:s:v:0 rotate=0 unrotated.mp4

Or, did you actually film your shit the wrong way up? You'll need to re-encode it:

ffmpeg -i original.mp4 -acodec copy -vcodec libx264 -crf 20 -metadata:s:v:0 rotate=0 unrotated.mp4

Export your photos

Before uploading your photos, remove all the EXIF tags, and reduce the resolution; nobody needs 5000x4000 pixels, much less corporations hoovering up your stuff to put in adverts.

mkdir tmp
for f in $.jpg; do
  convert -resize 1600x1200 $f tmp/$f
  exiftool -all= -P -overwrite_original tmp/$f
done

Clean out your revoked and expired PGP keys

Spring-clean your gpg database, make it go faster. Just go:

gpg --delete-keys `gpg --list-keys|grep -P 'revoked|expired'|awk -F/ '{print $2}'|awk '{print $1}'`

Obviously. If you can't be arsed confirming each key, add --batch --yes to the first gpg call.

Firefox opening your shit in gedit

I don't know, who thought that was a good idea? Jesus.

sed -i 's#.*octet-stream.*#application/octet-stream=xdg-open#' ~/.local/share/applications/mimeapps.list ~/.config/mimeapps.list

GNOME not sorting your folders first

It's not in a dialog anywhere, and a pretty lame default behaviour.

dconf write /org/gnome/nautilus/preferences/sort-directories-first true

Restoring huge databases to PostgreSQL

See also: PostgreSQL

Skip some huge tables by dumping the TOC, removing culprit large tables, and restore with the edited TOC, e.g.

pg_restore -l huge.dump > TOC
# edit the TOC file...
pg_restore -L TOC -d dbname huge.dump

Output PostgreSQL queries to CSV

COPY (SELECT <query> ...) TO STDOUT CSV HEADER;

Turn off the shitty default "visual" mouse mode in vim

Christ. Add set mouse-=a to ~/.vimrc

Too many leftover git branches merged into master? Nukem!

This will remove any branches on your local git repo that have been merged to master.

for i in $(for b in $(git branch|grep -v '\*'); do git branch $b --merged master; done); \
    do git branch -D $i; \
done

Move your MySQL databases

Used to be you could move your /var/lib/mysql directory somewhere else and symlink it. You can, but in newer distros with Apparmor you'll need to declare it:

# In /etc/apparmor.d/tunables/alias
alias /var/lib/mysql/ -> /mnt/wherever/mysql/,

Note the trailing comma.

Split audio CD rips using the cue file

Single-file FLAC or Ape files of a CD can be split up using the .cue file for both the timestamps and the tagging data. Also, install flacon (from a PPA).

sudo apt install shntool
shnsplit -o flac cdimage.flac -f cdimage.cue -t '%n.%t'

You may need to do tags again, if they didn't stick:

sudo apt install cuetools
cuetag cdimage.cue *.flac