Миналата неделя ми беше модулния изпит за втория ми семестър на Cisco академията върху Routing Protocols and Concepts. Общо взето за разлика от първия семестър този път съм доволен от резултата на изпита извадих 98% което ще рече от 50 въпроса 49 верни. Резултата не е чак толкова изненадващ понеже все пак разбирането на routing-a и протоколите около него е част от работата ми, вярно не съм работил с динамични routing протоколи като OSPF IS-IS или EIGRP но пък поне статичния routing и самите таблици са ми ясни както и самите мтрики в тях. Резултата както бях отбелязал и в предишния final exam не е определящ за сертифицирането но е вид надъхване за следващия семестър. С по голямо самочувствие да се заходи към материята.

Надявам се да минем по бързо през материята за 3-тия семестър, че вече донякъде взе малк ода ми писва, защото групата ми понякога се движи с малко бавни темпове, но това си е риск които съм поел защото нивото в групите на академията не е еднакво. Не мога да очаквам от момчетата с по малко опит от мен да се справят със същата скорост с материята като мен.

Засега остава да се наслаждам на моя момент на малка слава (както каза една приятелка) 😀 все пак резултата не е от най ниските 😉

При мен интернета ми се рутира от домашно рутерче D-Link DIR-600 което на което съм инсталирал DD-WRT . Общо взето никак не лош маршрутизатор подържа относително добър максимум стабилна работа и N wi-fi стандарт. Отделно DD-WRT софтуера ми дава голяма свобода на настройки и вуду магии.

Зад него в локалната ми мрежа е сървъра на които се хоства скромния ми блог. Общо взето драмите се получават от факта, че когато се изпрати запитване към dns-a отговаря публичното ми IP на което съм направил forwarding към хоста на блог-а ми и когато заявката от вътрешната мрежа не е необходимо да се обръщам към публичния си адреса. Решението на проблема се оказа повече от елементарен трябва да се направи запис в /etc/hosts файлът в които да се посочи domain-a и IP адреса. Това става посредством следните 2 команди

echo '192.168.1.2 host.com' >> /etc/hosts
killall -HUP dnsmasq

Тях ги слагате като startup script в administration ->commands часта. След това си рестартирате рутера или дайте run на командата за да се изпълни и сте готови вече хоста коиот сте описали от вътрешната ви мрежа ще бъде видим с локалния ви адрес.

Вчера ми пристигна 1650mHa батерия за HTC Kaiser-a ми, което е с 300mHa повече от оригиналната 😎 . Понеже ползвам телефон които е non native Android се налга да се направят няколко магии за да отчита правилно батерията в %-ти. Единия по лесния вариант е ако ползвате стандартен kernel си го едитвате с Atools като задавате новата стойност за mHa на батерията флашвате с новото NBH и дерзаете. Другия вариант е да ползвате нестандартно ядро което не се поддава на atools обработка и да направите грозена кръпка на създалия се проблем.

Първо нека да разясним малко теория и след това да пристъпим към кръпката. Когато правите промени по ядрото си с atools вие правите фини настройки на система в /sys/module/ и след това според зависи за вашия хардуер. При мен важния файл който отговаря за настройката на батерията се намира в /sys/module/board_kaiser_battery/parameters/battery_capacity. В него се съдържа колко единици е количеството на вашата батерия и на база на цифрата вътре се изчислява на колко % е вашата батерия в момента. Казвам единици защото не се пише чисто число в mHa а се изчислява на база на формулата

mHa*1.6=единици

В моя случай това ще рече 1650*1,6=2640 единици, сиреч това ще ни е съдържанието на файлчето. Речено сторено набързо в конзолата си набивам едно


echo 2640 > /sys/module/board_kaiser_battery/parameters/battery_capacity

Така до тука нещата са кристално ясни какво трябва да се прави, къде и защо. Обаче тука идва и момента за малката подробност, файлът в /sys директорията си занулява съдържанието след всеки рестарт на телефона, което не е много оферта. Затова следващата стъпка е да го сложим горния ред init-a на нашия Android.

Тъй като несъм съм го сложил в init-аискам да изчакам няколко дни преди да го направя. Когато го набия в init-a ще драсна набързо едно дребно how to 🙂

Днес се заиграх леко да си изчистя всички XHTML грешки от главната ми страница и вече резултата е на лице абсолютно валиден код.

The document located at <https://neo2shyalien.eu/> was successfully checked as XHTML 1.0 Transitional. This means that the resource in question identified itself as „XHTML 1.0 Transitional“ and that we successfully performed a formal validation of it. The parser implementations we used for this check are based on OpenSP (SGML/XML) and libxml2 (XML).

Доволен съм, защото това е една важна част от един експеримент които съм започнал с блога ми от няколко дни. Сега се боря и с скоростта на зареждане, че е доста ниска което не ме радва преди времето беше максимално до 2 секунди сега е около 4 което не е никак добре.

Мале как ги мразя тия пичове от Mysql 😆 Днес си направих обновлението от mysql 5.1 до 5.5 версия и отново сървъра не запали, a в mysql log-а всичко умираше чисто и просто с:

110527  9:27:38 [ERROR] Unknown/unsupported storage engine: InnoDB
110527  9:27:38 [ERROR] Aborting

Хах се сети какво става 😀 След като почнах да забранявам настройки по my.cfg нещата палнаха чак след като забраних

skip-innodb

Луда работа 🙂 Без тази опция в конфигурацията всичко си работеше както хората, обаче това положение не ме устройваше, защото innodb не се ползва на тоя сървър и няма нужда да заема излишна памет, която така или иначе е оскъдна. След известно ровене открих проблема и съответното му решение. Ако не е зададена default storage engine сървъра няма да опознае командата и съответно няма да се стартира 😯 . Чини ми се че леко вече прекалиха в предишния си ъпгрейд от 5.0 към 5.1 нещата пак бяха с драми поне 10 от параметрите в my.cfg бяха с различни имена и поне 5 бяха драматично изрязани и не поддържани. Тоя път само един проблем 😀 Решението на проблема очевидно е задаване на default storage engine, което става с следната команда

default-storage-engine=MyISAM

От тук нататък всичко си работеше по старо му.