eAccelerator е един прекрасен механизъм да по забързаме бавното php. Общо взето идеята е елементарна  😆 при изпълнение на php скриптове тая щуротия ги пази до opcode ниво и при следващо извикване ако няма промени пo скрипта се ползва opcode копието. Резултата е по бързо изпълнение по ниско натоварване на сървъра, по малко разхищение на ресурси. Общо взето това е.

Сега да споделя простотията която успях да сътворя. Преди малко по малко от седмица на един сървър обновявах php версията която ползва заради фаталният CVE-2010-4645 бъг. Поднових версията до 5.2.17 където видях, че е поправен. Не ми се рискуваше с 5.3.5 версията, че има разлики и не знам кое как ще сработи , а и най важното беше късно вечерта. Речено сторено. Ъпдейта мина повече от гладко, но след като приключих ми направи впечатление че пъргавостта на сайта падна доста. Но единия от разработчиците ме беше предупредил, че ще тестват нови скриптове и не му обърнах много внимание. Вчера ми се наложи да настройвам едни cron-ове на php и когато ги пуснах видях един доста неприятен надпис, че компилацията ми на eAccelerator-a е за старта версия на php-то ми и с новата не работи ;). Ясно вече всичко е ясно. Набързо прекомпилирах eAccelerator-a и всичко си дойде на мястото по груби наблюдения зареждането на страниците падна двойно като се освободиха ценни мегабайти рам. Като цяло вече поне си направих теста и със сигурност има полза особено при над 200 потребителя online нещата стават доста красноречиви а при 400 😉 Има и други механизми но според тестовете eAccelerator-a е най грамотния избор. Нямам особено време за тестване затова се доверявам на хората 😀

http://www.youtube.com/watch?v=eJarZiMQaKA

Понеже съм уникален кретен и пиша ужасно не мърлив и недообмислен код, успях да оставя без достъп до хостинг машината ми за цяла вечер. Проблема се оказа малоумно тривиален ама кой да мисли на време.

#!/bin/bash -x
wget http://checkip.dyndns.org/ -O /tmp/ipaddr
IPADDR=$(cat /tmp/ipaddr | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>')
IPADDROLD=$(cat /tmp/ipaddr_old | grep -Eo '\<[[:digit:]]{1,3}(\.[[:digit:]]{1,3}){3}\>')

if [ "$IPADDR" != "$IPADDROLD"  -a "$IPADDR" != "" ]
then
 sed -i "s/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/$IPADDR/" /etc/bind/neo2shyalien.eu
 /etc/init.d/bind9 restart
 echo "server localhost" > /tmp/nsupdate
 echo "zone neo2shyalien.eu" >> /tmp/nsupdate
 echo "update delete ns.neo2shyalien.eu. A" >> /tmp/nsupdate
 echo "update delete ns.neo2shyalien.eu. CNAME" >> /tmp/nsupdate
 echo "update add ns.neo2shyalien.eu. 38400 A $IPADDR" >> /tmp/nsupdate
 echo "update add *.neo2shyalien.eu. 38400 CNAME ns.neo2shyalien.eu." >> /tmp/nsupdate
 echo "show" >> /tmp/nsupdate
 echo "send" >> /tmp/nsupdate
 echo "" >> /tmp/nsupdate
 /usr/bin/nsupdate -k /etc/Kns.neo2shyalien.eu.+157+59417.private -d /tmp/nsupdate
 mv /tmp/ipaddr /tmp/ipaddr_old
fi

Това вече е поправения скрипт които няма да допуска грешка. След малко ще обясня къде е била проблемата част сега да обясня какво прави скрипта. Поне нали съм на динамично публично ip. Съм пуснал горния скрипт да проверява за промяна в адреса ми ако се смени да променя настройките на машината и да праща информация за домейна ми, че има промяна. Общо взето тривиален скрипт но в него бях допуснал ужасно малоумен пропуск. В частта където се проверява за смяна на адреса

if [ "$IPADDR" != "$IPADDROLD"  -a "$IPADDR" != "" ]

Преди беше


if [ "$IPADDR" != "$IPADDROLD"]

Така самия ред прави следното взима 2-та IP адреса и ги сверява ако са еднакви пропуска ако са различни ъпдейтва. В предния вариант бях пропуснал много важна грешка поради някаква причина скрипта ми беше решил че имам IP = „“ (нищо) и пренаписало конфигурацията на bind-а ми с празно поле и при следващата смяна вече не може да пренапише правилно конфигурацията което води липса на връзка с nameservr-a. Малоумно нали 😉

Понеже имах доста полемики докато стигна до оптималния вариант – за Android върху моя HTC реших да драсна едно що годе подробно обяснение за нещата. В случая ще вляза в конкретизация за инсталация върху NAND-а на телефона, haret boot варианта няма да го разисквам, въпреки че при него нещата трябва да са идентични.

1. Подготовка – преди да започнем трябва да подготвим ядрото с което ще флашнем NAND чипа и ще направи възможно директното boot-ване на Androida. Ако сте с Linux или Mac OS ви препоръчвам Atools-а варианта ако сте с Windows NBH Editor-a е вашата панацея.  След това смъквате последното ядротo от GIT-a аз лично ви препоръчвам последния вариант на версия 2.6.25. Работи по стабилно от 2.6.32 и пести повече ток, недостатък е по ниския трансфер на wifi адаптера, което мен ме устройва. След това отваряте nbh файла и прилагате настройките за вашия телефона и версията на дроида . След това запазвате новия преработен за вашия телефон kernel. И го поставяте на SD карата си. Задължително трябва да е формат kaisimg.nbh за да можем ако сме си SPL-нали телефона да префлашенм от SD карата ни. За тея неща има доста изписано навсякъде така че няма да ги дискутирам. След флашване с въпросното ядро вече можете да кажеше чао на Windows Mobile 😉

2. Android – След като сме приключили с горната част телефона ще започне да зарежда в конзолен режим и ще ни прикани да задържим d-pad-а или средния бутон на предния панел. С него влизаме в boot менюто от което можем да си инсталираме ъпдейтваме ресетваме и прочие Androida ни. За да можем да инсталираме трябва да имаме папка andboot в SD карата ни в нея трябва да има файл с името androidinstall.tar.gz или androidinstall.tgz. След като пробвах почти всички Froyo версии мисля че най бърза и стабилна е Fat Free Froyo. Лично него ползвам и не съм имал почти никакви бъгове, ще се надявам и за напред разработчика му да се старае толкова много. Разумно е преди да почнете да инсталирате да си направите един поне 512 или малко повече ext2 дял на вашата SD карта където ще седи data.img или часта на дроида вив която ще са инсталирани програмите. Самата инсталация е тривиална избирате системата ви да бъде върху NAND-а а дата-та ви върху ext2 дяла. Изчаквате 2-3 мин докато всичко се нагласи и ще се върнете в първоначалното меню. Избирате Quit и ще започне да ви се стартира прясно инсталирания Android. От тук нататък дерзайте и се забавлявайте.

3. Малко думички за другите неща – Преди всичко препоръчвам Radio ROM-а да е версия 1.65.хх версия. Версиите 1.7хххх не работят толкова добре. Има известни неприятности около тях с обхвата четенето на контактите от SIM картата ви и прочие. Ако все пак искате да тествате 2.6.32 ядрото има вероятност вашият Android да не се стартира заради различните параметри които подава новото ядро към init системата. В такъв случай упдейтвате системата като сложите архивчето то тука в adboot папката и после от boot менюте се избира да се ъпдейтне системата.  Хубавото при него че прави системата една идея по бърза wifi адаптера смучи с по голяма скорост но не е толкова стабилен като 2.6.25 което не е малък минус 😉 отделно че с него Fat Free Froyo-то не може да запаметява контактите от SIM-a.

Крайно време беше се запася с по грамотен domain. Преди около седмица попаднах на уникално добрата оферта за .eu и нямаше как да не се възползвам. Няколко дни си играх да настроя машината понеже публичния ми адрес е динамичен и се искат някои хватки да се приложат, но почти всички проблеми са изчистени. Публичния ми адрес се подновява в ddns стил. Но винаги ще имам проблеми с доставчиците които кешират заявките, а винаги ще има такива, за съжаление това няма как да се избегне, ще видя ако реша, че ми е проблем ще сменя динамичния адрес с статичен. Това като цяло са разни бъдещи полемики които ще решавам някои друг път.

Засега стария домейн съм го направил да прехвърля към новия такъв и не мисля че ще имам проблеми. Необходимо е да подновите RSS адресите си за да сте сигурни, че получавате вярната информация, за което искам да се извиня за неудобството. Е стига толкова глупости мога само да се поздравя за добрата работа, която не беше малко особено като се има на предвид че почти не съм си имал вземане даване с DNS услугите и първоначално действах като на магия. Накрая обаче му хванах цаката и дори си разписах скриптче което върши черната работа на обновяването на записите, но това ще е тема за в бъдещи разговори след като по изуча из дълбини нещата.

p.s Забравих да пиша нещо важно промених кардинално домейна, защото предишния домейн беше избран с една определена идеална цел, която след толкова години се оказа, че няма да бъде осъществена поради множество причини. Иначе нямаше да е проблем mud-land.eu. Дори е по кратко но блога си е мои и си го водя с една единствена идеална цел – пиша за всичко онова което ме вълнува, и си струва да се сподели. Аз не пиша за всичко и не искам да пиша за всичко искам да оставя една част от себе си скрита. Моето лично пространство претърпя множество от промени. Надявам се тази да не е последната.

Време е за подскачане и релакс малко стига толкова коване 😉 😛

Наскоро ми се наложи да разбера защо аджеба тия глупости на VIVACOM (БТК) – ADSL Model CT-5367 не стават за нищо. Освен кухия си хардуер някой голям умник е решил, 4MB рам е голя лукс и е сложил 2 което е безумно малко- защото всяка конекция която извършвате е използване на механизма за маршрутизиране съответно системен ресурс. За да съм по конкретен в примера си отваряте си торент клиента и правите няколко стотина кънекшъна. Което е абсолютно достатъчно да сгънете рутерчето. Като цяло няма да обяснявам как да му подобрим работат защото е невъзможно! Единствено мога да дам парола и потребителско име 🙂

user:  root
pass: warmWLspot

С тях може да се telnet-вате към рутера ви да влизате в него и прочие. Полезни са ако физически сте далече от рутера и ви мързи да ставата да го рестартирате.