Наложи ми се да правя 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

2 бързи RAID 5 съвета

  1. Ако имате RAID 5 система дръжте дисковете в MBR вместо в GPT – поне при мен даде +10 – +15% разлика
  2. Задължително настройте /sys/block/md0/md/stripe_cache_size тъй като по подразбиране е твърде малък. Тука стойностите са според зависи при мен 32768 даде най приличен резултат

От около 2 седмици php 5.3 влиза във историята бавно но сигурно. На 11-ти обявиха края на поддръжката му и че ще бъдат пускани само кръпки по сигурността в продължение на 1 година. В общи линии PHP 5.4 преминава в стадии old stable а PHP 5.5 става stable, което е малко забавно понеже все още част от допълненията и плъгините на php не работят съвсем коректно но пък и версия 5.5 е доста нова затова ще се въздържа от миграция към нея.

Та нека да си кажа за миграцията ми към 5.4 от 5.3. Предварително бях пуснал информация за остарелите функции, такива които са променени кардинално и такива които вече няма да се поддържат за да нямаме драми и от двете страни дали ще запали или не 😉 Та днес сутринта избрах час за старт на миграцията около 7 като стана, че да има минимални болки при миграцията ако не мине гладко. За моя огромна изненада всичко мина повече от гладко – компилирах си PHP 5.4.17 стартирах apache-то и о небеса всичко е там. Бърз поглед из логовете няма рев на depricated или въобще непознати функции – явно момчетата са си свършили работата добре. След това ми остана само да прекомпилирам и допълненията които са компилира със старото API като APC, RAR и прочие. Втори рестарт и всичко заспа. Отделно очаквам подобрения в производителността тъй като навсякъде хората сочат с големия пръст едни таблички дето се показва как PHP 5.4 консумира по малко РАМ и изпълнява скриптовете по бързо.

/dev/random

Имах една доста интересна закачка закачка – трябваше да създам огромен брой случайно генерирани пароли като имах изискване да са с определена дължина да съдържат големи малки букви и цифри, нормални неща. Звучи лесно нали и в общи линии е. Използвах /dev/urandom за оснонвата генерация и след това с един кратък конвейер филтрирах до желания брой знаци и видове знаци които трябва да се използват. Стига съм увъртал в основната скрипта е конвейера :

cat /dev/urandom | tr -dc '[:alnum:]' | fold -w 20| head -n 1

Така нека да разгледаме малко по подробно какво се случва тука. Взимаме изхода на cat /dev/urandom. След това го филтрираме да се показват само малки, големи букви и цифри. След това с fold ограничаваме дължината на низовете до желания от нас брой. Накрая лимитираме да се показва само 1 ред от целия изход. В общи линии лесно като 1-2-3. Ако искате да повишите сложността на паролата и със специалените символи в регуляярни израз на tr може да се използва :graph: или :print: вместо :alnum:, които включват всички символи без или със space.

cat /dev/urandom | tr -dc '[:graph:]' | fold -w 20 | head -n 1
Enhanced by Zemanta

Моите хора от Debian пак са оцапали гащите със зависимостите. Т.е не са ги оцапали ами са разкарали пакета ia32-libs който е в зависимостите на skype. Няма да коментирам защо им е в зависимостите при положение че е х64 версия 😉 Та в крайна сметка има няколко приложения които директно се трият заради премахването на тоя пакет. За хубаво или лошо няма как да се справя без тях така, че се налага да се възстанови пакета. Най лесния вариант е да се добави testing хранилище и да се даде приоритет на него в общи линии е това в е чак толкова пак това 😀 Стъпките по надолу разглеждат системата когато вече сме я обновили и ia32-libs вече го няма.

1. Добавяме testing хранилище или wheezy- това е кодовото име на следващия stable Debian. В /etc/apt/source.list добавете ред който изглежда по подобен начин


deb http://debian.ludost.net/debian/ wheezy main contrib non-free

2. Даваме приоритет на testing пакетите над тези на unstable хранилищата тъй като към момента пакета все още го има там. Създаваме файлът /etc/apt/preferences.d/apt (това си е лично мой избор) може да е в /etc/apt/preferences вместо /etc/apt/preferences.d/ и му добавяме следното съдържание


Package: *
Pin: release a=testing
Pin-Priority: 1010

3. apt-get update за да обнови новите хранилища и приоритети. Смъквате си skype на ново които към момента е версия 4.0.0.8.1 и си го инсталирате dpkg и след това си поправяте липсващите пакети


dpkg -i skype-debian_4.0.0.8-1_amd64.deb

apt-get install -f

 

В доста общи линии това е процедура за принудително сваляне на версиите на пакетите но аз съм я използвал само за тези за които ми трябва в последствие може дадете приоритет на  ia32-libs ia32-libs-gtk lib32v4l-0 да се свалят само от testing хранилката.