593 shaares
Un gros +1
Après avoir vu Black.Mirror.S02E01, ça fait froid dans le dos...
graaah !
Détail de l'assemblage de la bête : http://www.45drives.com/wiki/index.php/Screenshot_assembly_tour
A retenir la carte 4 Ports SATA à pas trop cher :
http://www.amazon.com/Syba-Express-Ports-Controller-SY-PEX40008/dp/B002R0DZWQ/ref=cm_cr_pr_product_top
Par contre pour raid soft uniquement.
Détail de l'assemblage de la bête : http://www.45drives.com/wiki/index.php/Screenshot_assembly_tour
A retenir la carte 4 Ports SATA à pas trop cher :
http://www.amazon.com/Syba-Express-Ports-Controller-SY-PEX40008/dp/B002R0DZWQ/ref=cm_cr_pr_product_top
Par contre pour raid soft uniquement.
Une pluie coronale capturée le 19 juillet 2012
Dommage que la météo n'ait pas été de notre côté vendredi dernier.
Franchement quel est l'intérêt de n'avoir qu'un seul GROS fichier flac pour tout un album ?
Surtout que les lecteurs qui supportent les fichiers .cue nativement doivent se compter sur les doigts d'une main...
[EDIT]
Ya plus simple :
#Split en fichiers .flac séparés
shnsplit -o flac -f <fichier>.cue <fichier>.flac
#On applique les tags :
cuetag <fichier>.cue split-track*.flac
#Et on renomme le tout :
lltag --yes --no-tagging --rename '%n - %t' `ls split-track*.flac`
Surtout que les lecteurs qui supportent les fichiers .cue nativement doivent se compter sur les doigts d'une main...
[EDIT]
Ya plus simple :
#Split en fichiers .flac séparés
shnsplit -o flac -f <fichier>.cue <fichier>.flac
#On applique les tags :
cuetag <fichier>.cue split-track*.flac
#Et on renomme le tout :
lltag --yes --no-tagging --rename '%n - %t' `ls split-track*.flac`
Eh oui, la RAM c'est pas aussi secure que ça.... un p'tit coup de frigo et hop on peut récupérer les data tranquille...
Graah Ulrich Schnauss + Tycho <3
Une liste d'ASCII Art pour les Sushis.
Ça donne envie de lâcher Chrome et de repartir sous FF...
ahah bien vu :)
Yeah, le nouvel album de Ochre est sorti !
Ochre est - à mon avis - un des meilleurs artistes "IDM"
[edit] Bon bah il est tellement bien, que je viens de l'acheter sur son bandcamp : http://ochre.bandcamp.com/album/national-ignition
Ochre est - à mon avis - un des meilleurs artistes "IDM"
[edit] Bon bah il est tellement bien, que je viens de l'acheter sur son bandcamp : http://ochre.bandcamp.com/album/national-ignition
Impressionnant ! Pour arriver à un tel niveau de détail, il faut de la patience et des bons outils...
Pas bête comme méthode, mais ça ne peut pas s'appliquer partout...
Superbe ! Et tout ça en 24h chapeau !
A retenir dans les commentaires, le script d'optimisation des paramètres :
#!/bin/bash
blockdev --setra 16384 /dev/sd[abcdefg]
echo 1024 > /sys/block/sda/queue/read_ahead_kb
echo 1024 > /sys/block/sdb/queue/read_ahead_kb
echo 1024 > /sys/block/sdc/queue/read_ahead_kb
echo 1024 > /sys/block/sdd/queue/read_ahead_kb
echo 1024 > /sys/block/sde/queue/read_ahead_kb
echo 256 > /sys/block/sda/queue/nr_requests
echo 256 > /sys/block/sdb/queue/nr_requests
echo 256 > /sys/block/sdc/queue/nr_requests
echo 256 > /sys/block/sdd/queue/nr_requests
echo 256 > /sys/block/sde/queue/nr_requests
# Set read-ahead.
echo "Setting read-ahead to 64 MiB for /dev/md0"
blockdev --setra 65536 /dev/md0
# Set stripe-cache_size for RAID5.
echo "Setting stripe_cache_size to 16 MiB for /dev/md0"
echo 16384 > /sys/block/md0/md/stripe_cache_size
echo 8192 > /sys/block/md0/md/stripe_cache_active
# Disable NCQ on all disks.
echo "Disabling NCQ on all disks..."
echo 1 > /sys/block/sda/device/queue_depth
echo 1 > /sys/block/sdb/device/queue_depth
echo 1 > /sys/block/sdc/device/queue_depth
echo 1 > /sys/block/sdd/device/queue_depth
echo 1 > /sys/block/sde/device/queue_depth
En pleine extention du raid, je suis passé de 30mo/s en moyenne à 50mo/s, c'est pas rien :)
#!/bin/bash
blockdev --setra 16384 /dev/sd[abcdefg]
echo 1024 > /sys/block/sda/queue/read_ahead_kb
echo 1024 > /sys/block/sdb/queue/read_ahead_kb
echo 1024 > /sys/block/sdc/queue/read_ahead_kb
echo 1024 > /sys/block/sdd/queue/read_ahead_kb
echo 1024 > /sys/block/sde/queue/read_ahead_kb
echo 256 > /sys/block/sda/queue/nr_requests
echo 256 > /sys/block/sdb/queue/nr_requests
echo 256 > /sys/block/sdc/queue/nr_requests
echo 256 > /sys/block/sdd/queue/nr_requests
echo 256 > /sys/block/sde/queue/nr_requests
# Set read-ahead.
echo "Setting read-ahead to 64 MiB for /dev/md0"
blockdev --setra 65536 /dev/md0
# Set stripe-cache_size for RAID5.
echo "Setting stripe_cache_size to 16 MiB for /dev/md0"
echo 16384 > /sys/block/md0/md/stripe_cache_size
echo 8192 > /sys/block/md0/md/stripe_cache_active
# Disable NCQ on all disks.
echo "Disabling NCQ on all disks..."
echo 1 > /sys/block/sda/device/queue_depth
echo 1 > /sys/block/sdb/device/queue_depth
echo 1 > /sys/block/sdc/device/queue_depth
echo 1 > /sys/block/sdd/device/queue_depth
echo 1 > /sys/block/sde/device/queue_depth
En pleine extention du raid, je suis passé de 30mo/s en moyenne à 50mo/s, c'est pas rien :)
Un "oneliner" pour détecter des fichiers musicaux sans tag dans un répertoire.
awk > * stout.
Je paste tout ça ici, au cas où...
find . -type f -name '*.[Mm][Pp]3' -exec id3 -Rl {} + -o \
-name '*.[Ff][Ll][Aa][Cc]' -exec metaflac --show-md5sum \
--with-filename --export-tags-to=- {} + -o \
-name '*.[Oo][Gg][Gg]' -exec sh -c 'echo "$0";vorbiscomment -lRe "$0"' {} \; |
awk 'BEGIN {
id3n = split("album artist title track", id3_tags)
vorbisn = split("album artist title tracknumber", vorbis_tags)
vorbisfile = "\\.([Ff][Ll][Aa][Cc]|[Oo][Gg][Gg])$"
ignorepatt = "^ *(unknown|track *[0-9]*)* *$"
}
/^Filename/ || $1 ~ vorbisfile {
if (fn)
fn ~ vorbisfile ? check_tags(vorbisn, vorbis_tags) : check_tags(id3n, id3_tags)
fn = /^Filename/ ? $2 : $1; f = x
}
{
if (split($0, tmp, "=") == 2) { $1 = tmp[1]; $2 = tmp[2] }
tags[tolower($1)] = $2
}
END { fn ~ vorbisfile ? check_tags(vorbisn, vorbis_tags) : check_tags(id3n, id3_tags)
printf "\n"
}
func check_tags(limit, tagarray, f) {
for (i = 1; i <= limit; i++) {
if (tolower(tags[tagarray[i]]) ~ ignorepatt) {
invalid_tags[tagarray[i]] = tags[tagarray[i]]; f || f++
}
}
if (f) {
printf "%s%s *** missing/invalid tags: ", RS, fn
for (t in invalid_tags)
printf "[%s=\"%s\"]", t, invalid_tags[t]
printf " ***"
}
split(x, tags); split(x, invalid_tags)
}' FS=:
awk > * stout.
Je paste tout ça ici, au cas où...
find . -type f -name '*.[Mm][Pp]3' -exec id3 -Rl {} + -o \
-name '*.[Ff][Ll][Aa][Cc]' -exec metaflac --show-md5sum \
--with-filename --export-tags-to=- {} + -o \
-name '*.[Oo][Gg][Gg]' -exec sh -c 'echo "$0";vorbiscomment -lRe "$0"' {} \; |
awk 'BEGIN {
id3n = split("album artist title track", id3_tags)
vorbisn = split("album artist title tracknumber", vorbis_tags)
vorbisfile = "\\.([Ff][Ll][Aa][Cc]|[Oo][Gg][Gg])$"
ignorepatt = "^ *(unknown|track *[0-9]*)* *$"
}
/^Filename/ || $1 ~ vorbisfile {
if (fn)
fn ~ vorbisfile ? check_tags(vorbisn, vorbis_tags) : check_tags(id3n, id3_tags)
fn = /^Filename/ ? $2 : $1; f = x
}
{
if (split($0, tmp, "=") == 2) { $1 = tmp[1]; $2 = tmp[2] }
tags[tolower($1)] = $2
}
END { fn ~ vorbisfile ? check_tags(vorbisn, vorbis_tags) : check_tags(id3n, id3_tags)
printf "\n"
}
func check_tags(limit, tagarray, f) {
for (i = 1; i <= limit; i++) {
if (tolower(tags[tagarray[i]]) ~ ignorepatt) {
invalid_tags[tagarray[i]] = tags[tagarray[i]]; f || f++
}
}
if (f) {
printf "%s%s *** missing/invalid tags: ", RS, fn
for (t in invalid_tags)
printf "[%s=\"%s\"]", t, invalid_tags[t]
printf " ***"
}
split(x, tags); split(x, invalid_tags)
}' FS=:
Un autre script d'optimisation MySQL