Раздялата не е във думите,
раздялата е в премълчаното,
в страха, че нещо ще изгубиш,
в страха, че вече нищо нямаш.
Раздялата не е във времето,
в което тръгваш ти сама,
в което сбогом ти си вземаш,
раздялата е след това…
Firefox databases VACUUM and REINDEX
Един хитър трик за подобряване на скоростта на firefox браузъра ви е като вакумирате sqlite базата му данни. VACUUM процеса преизгражда базата данни като по този начин я дефрагментира, намаля размера и прави търсенето в нея по бързо, използването на диска по ефективно евентуално намаля и натоварването върху диска ви тъй като чете в последователност от секторите ми. Като цяло това важи за всяка база данни която не извършва автоматично vacuum/defrag на себе си.
Самият процес по дефрагментиране на базата данни на Firefox е доста тривиален – изпълняваме sqlite3 db-file VACUUM в профилната директория на firefox. В linux пътя до нея обикновенно е ~/.mozilla/firefox/random-name.default. По принцип трябва да имате само 1 диркетория в .mozilla/firefox ако имате повече може да проверите ~/.mozilla/firefox/profiles.ini за коректната директория в е профила на вашият браузър. Тъй като не ми се занимава да извършвам процеса на ръка разписах елементарен скрипт с който да дефрагментирам базите данни:
for db in $(find ~/.mozilla/firefox/$(grep Path ~/.mozilla/firefox/profiles.ini | cut -d'=' -f2) -maxdepth 1 -name "*.sqlite" -type f) do echo "VACUUM ${db}" sqlite3 ${db} VACUUM sqlite3 ${db} REINDEX done
След изпълняване на скрипта търсенето в history-то и самото зареждане на лисика е чувствително по бързо. Скрипта предполагам че с малки модификации може да се ползва и в Mac OS.
p.s Ето варианта и за Mac OS X – тестван на Mac OS X Sierra. Налага се да форсираме делимитъра да е нов ред заради space в пътя до папката в която се съдържа профила на firefox
OIFS="$IFS" IFS=$'\n' for db in $(find ~/Library/Application\ Support/Firefox/$(grep Path ~/Library/Application\ Support/Firefox/profiles.ini | cut -d'=' -f2) -maxdepth 1 -name "*.sqlite" -type f) do echo "VACUUM && REINDEX ${db}" sqlite3 "${db}" VACUUM; sqlite3 "${db}" REINDEX; done
Размисли покрай 25 годишни Linux
Преди няколко дни се навършиха 25 години Linux. Винаги когато чета писмото на Линус изпадам в едно такова силно забавно настроение. Нямам никакво намерение да обяснявам колко е важен Linux и каква роля играе в нашият живот. По скоро се замислих каква роля е изиграл в моят живот. След което изскочиха множество въпроси
- Ако нямаше linux дали щях да бъда BSD или не дай си боже Windows админ ?
- Дали щях да бъда администратор въобще
- Какво щях да работя ако не бях администратор – програмист (опазил ме….)
- Каква OS щях да използвам
- Каква техника щях да използвам – телефон компютър – сигурно щях да съм поредният apple fan boy
Debian broken package lists
Преживях малка драма с диска на лаптопа ми. След фиксването на проблема при apt-get update лъсваше следният крайно не приятен край на процеса
E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/apt/lists/debian.ipacct.com_debian_dists_sid_contrib_binary-i386_Packages E: The package lists or status file could not be parsed or opened.
Както обикновено проблема е крайно очевиден /var/lib/apt/lists/debian.ipacct.com_debian_dists_sid_contrib_binary-i386 не може да бъде прочетен коректно. Фикса е също толкова елементарен колкото и самата диагностика на проблема:
rf -f /var/lib/apt/lists/*
В крайна сметка резултата е форсирана синхронизация на apt.
Mac OS X faster dd
Наложи ми се да правя bootable USB под OS X. За моя огромна изненада открих че скороста на копиране с DD е отвратитлно ниска ~600KB/s 😕 . След кратко търсене открих, че трябва да използвам rdiskX вместо diskX. Идеята е че rdisk е синоним на raw device. До тук добре веднага добавих едно r на блоковото устройство към което копирх ISO-то след което установих че скоростта е още по ниска ~150-200KB/s 😡 . Вече мистиката е пълна а предишната информация се потвърди от много източници!!!! Всичко си дойде на мястото след като сложих bs директива.
bs=n Set both input and output block size to n bytes, superseding the ibs and obs operands. If no conversion values other than noerror, notrunc or sync are specified, then
each input block is copied to the output as a single block without any aggregation of short blocks.
След като сложих 1M за размер на bs постигнах скоростите които очаквах от USB-то ми. След което тествах и разликата между disk и rdisk определено разликата беше около 10-12 пъти в скоростта в полза на rdisk. Много културен начин за да наблюдавате скоростта и прогреса на dd може да се постигне със следният конвеир
sudo dd if=Downloads/path.to.iso bs=1M | pv | sudo dd of=/dev/rdisk2 bs=1M