A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.

Да не забравя!

Working Hard Явно, една и съща грешка може да я повтарям поне три пъти. Може би и повече…. не ми се ще да пробвам, доколко мога да стигна. Конкретният случай, целта на който е този пост е отново свързан с ъпгрейд на WordPress – този път към версия 2.9.2.

Причината не е в WordPress – за мен той си остава една от най-лесните и добре развиващи се (CMS?)  блог платформи.  Бил тежък, бил бъгав… бил не-добре (разбирай чисто програмистки и системно) написан… Не ми се спори, не съм специалист, не разбирам (тази декларация е за да няма flame). Обаче за мен, той си остава една добре проходена, добре омачкана (дори и миризлива) стара и удобна обувка. Че имало по-нови, по-лъскави, по-меки и качествени такива – какво толкова? Който е ходил из планините с нови обувки, само той може да разбере, в какво се състои разликата. Не че, кой знае какво, но точно из планините не може просто да ходиш бос, щото нещо ти убива или не си свикнал.

Коренът на  всичките ми проблеми с обновяването, са единствено поради моят мързел и доста често простотия (разбирай, пренебрегване на елементарни правила на занаята). Безпроблемните обновявания напоследък, ме направиха доста непредпазлив и немарлив, което ми беше припомнено по един доста неприятен начин (виж по-горе, онзи, дето си блъска главата в клавиатурата). Отново енкодинг, отново UTF8, отново колации (collate, на български би трябвало да е съпоставки), отново latin1_swedish_ci и utf8_general_ci… Накратко: отново кошмари с кирилицата. На всичкото отгоре, архивът на базата, който бях направил през phpMyAdmin нещо беше счупен. Добре, че имах ежеседмични, автоматични такива (Е, де! Все пак не съм толкова загубен, че да разчитам само на себе си!). Нещата ги оправих, само дето сайта стоя ден и нещо с веселата under-construction страница.

Така че, да не забравя: всеки път преди ъпгрейд на WordPress да правя архив и от “вътре” (от backup plugin-a) и през phpMyAdmin. Да не забравям и да проверявам, дали архивите са читави, т.е. дали се четат нормално.

CAN Bus или какво (не?)може да направим с колата си.

CAN Bus (Controller Area Network Bus)

Днес докато търсих читав свободен софтуер за видео конферентна система, от немай къде се натресох на сайта на HoneyQ. Техният (а по-точно неговият, т.е. на Howard Honig сайт) не блести, нито с читав дизайн (от програмист дизайн да чакаш…. все едно от умрял писмо….), нито предлага кой знае каква видео конферентна система, но пък ме втрещи с идеята да си разчовъркаш новият Мерцедес CLK350 и да почнеш да го управляваш (в буквалният смисъл на думата) с ‘някъв бозалив WindowsCE PDA. За целият му проект, може да си прочетете сами, идеите и реализацията са доста свежи и поне за мен, доста неочаквани. За да не останете с впечатление, че подобни “гаври” може да правите само с WinCE, ето един друг герой, който също е превърнал своята 2004 Toyota Pirus Hybrid в дистанционно управлявана играчка с помощта на Linux, а още по-точно с помощта на Zaurus SL-C700. Направо им завидях! Да четеш колата си, както четеш хард диска на PC-то си ми е било околешна мечта (дори още го нямаше измислен Bluetooth стандарта!), а ето че хората вече са реализирали такава функционалност.

Can BusАко сте щастлив притежател на нова (3,4 годишна) кола, шансът тя да е оборудвана с CAN шина е доста голям. Всъщност, специално за USA вече е факт, че всички коли и леко товарни машини, произведени след 2008-ма трябва да бъдат задължително екипирани с такава “екстра”.

Ето един “кратък” списък с модели и производители вече въвели CAN Bus: 2003 Ford Excursion, 2003 Ford F-250 & F-350, 2003 Ford Focus & Thunderbird, 2003 General Motors Saturn ION, 2003 Lincoln LS, 2003 Mazda 6, and 2003 SAAB 9-3, 2004 Buick Rendezvous, 2004 Cadillac CTS, XLR & SRX, 2004 Dodge Durango, 2004 Ford Explorer, 2004 Ford F-150, E-250 & E-350, 2004 Ford Taurus, 2004 Lexus LS430, 2004 Mercury Mountaineer, 2004 Mercury Sable, 2004 Mazda 3 & RX-8, 2004 Toyota Prius, and 2004 Volvo S40, 2005 Audi A4 & A6, 2005 Buick LaCrosse, Rendevous & Ranier, 2005 Cadillac STS, 2005 Chevrolet Cobalt, Corvette & Malibu, 2005 Chevrolet Equinox, 2005 Chevrolet SSR, 2005 Chevrolet Trailblazer EXT, 2005 Chrysler 300C, 2005 Dodge Dakota & Magnum, 2005 Ford Crown Victoria, Five Hundred, Focus & Mustang, 2005 Ford E-150, 2005 Ford Escape & Expedition, 2005 Ford Freestyle, 2005 GMC Envoy ESV & XL, 2005 Isuzu Ascender, 2005 Jeep Grand Cherokee, 2005 Lexus LS400 & GX470, 2005 Lincoln Town Car, 2005 Mercury Grand Marquis, Montigo & Sable, 2005 Mercury Mariner, 2005 Pontiac G6, Grand Prix & GTO, 2005 Land Rover LR3, 2005 Mazda MPV & Tribute, 2005 Mercedes SLK350, 2005 SAAB 9-7X, 2005 Toyota Avalon, 2005 Toyota 4Runner, Sequoia, Tacoma & Tundra, and 2005 Volvo S60, S80, V50, V70, XC90.

Sorry, малко дълго стана, доста модели са американски, но просто ако ви е интересно и имате някое от посочените по-горе возила, може пък и да се запалите да поекспериментирате с него, а?

За CAN Bus или Controller Area Network Bus може да си прочетете и сами. Стандартът е сравнително млад, но пък като гледам как се развива и какъв потенциал има, не остава и капка съмнение, че доста скоро ще видим и други чудеса покрай него. Само един пример: DVD player и навигационна система за скромната сума от 1400лв. Или примерно, това за Megane II? Не се сяпкайте от цената, има и по-евтини, тези ги избрах случайно. Може и да не е прекалено очевидно, но въпросните “добавки” са всъщност обикновени PDA с Windows CE 5.0. Т.е. вече може да имате и доста атрактивно изглеждащ контролно диагностичен модул в таблото на колата си.

A самият факт, че без да бъдеш голям специалист, може да направиш прецизна диагностика и дори тунинг на колата си, поне за мен е доста показателен. Без особен зор, из мрежата може да се намери и доста рерурс за скан-кодовете от шината за различните устройства и модели коли. Ето малко  линкове, просто за да са събрани на едно място:

– физическо описание на шината: http://www.interfacebus.com/Design_Connector_CAN.html

– подробни описания от Bosch: http://www.semiconductors.bosch.de/en/20/can/index.asp

– всичко останало: http://www.semiconductors.bosch.de/en/20/can/5-partners.asp

splunk>

splunk Едно от сечивата, които винаги са ми липсвали, като админ, е възможността за централизирано събиране, търсене и анализ на журналите от  различните устройства. Явно, не съм бил единствен…..

Вчера, от немай къде ми се наложи да ровна из историята на няколко от суичовете в завода. Още на третия се оттегчих страхотно. То, не само това, ами търсенето беше почти невъзможно, защото журналите си стояха по устройствата. Повече от ясно, защото досега не ми е трябвало да правя нещо по тях (днес пък забелязах, че първият инсталиран в завода комутатор е с uptime 489 дни – какво повече да искаш от него!?). Конфигурирането на общ syslog не отне много време и резултатът не закъсня – за нула време се натрупаха около 500-600К в които с прост grep може да правиш, каквото ти душа иска.

Нещо обаче, не се изкефих. Добавих multitail за цвят…. ОК, нещата станаха шарени, доста по-добре се открояваха отделните елементи, но…. “ръчната” работа пак ми се видя много (log-ване, писане, параметри…. бля-яя!).

Реших да реализирам web базиран централизиран сървър – хем шарено, хем удобно, хем мързеливо! Накратко – точно за мен. Преди доста (вече) години в “Хеброс” бях правил нещо подобно. Имах, спомени че се беше получило добре, но за зла беда изобщо не можах да се сетя за името на приложението. AWstats, на пръв поглед ми се стори подходящо, но…. не беше това, което ми трябваше. Покрай многото четене на описанията на различни пакети (комерсиални и free), някъде мернах, че едно приложенията (даже не помня и кое беше) било съвместимо с около 10-тина различни системи за анализ и обработка на данни. Почнах ги наред, защото точно такава функционалност ми трябваше. Един от тези десетина пакета беше и splunk. Името звучеше, точно като че ли нещо солидно и тежко пада в тоалетната чиния, но аз съм свикнал на какви ли не имена в ИТ сектора, така че “сплунк” даже ми и хареса. В крайна сметка google си каза тежката дума – splunk> ще да е!

Въпросното приложение си заслужава да се види – просто бях сразен! Едно, че поддържа и работи върху AIX, OSX, Linux, FreeBSD, Solaris и Windows в добавка може да си реализираш цяла разпределена инфраструктура за анализ и обработка на резултатите от журналите и събитията. Думичката splunk се оказа, че е своеобразна алюзия на data mining (събиране и обработка на данни) и спелеология (spelunking). Нищо общо с тоалетните чинии (леко разочарование). Аве… шантава работа.

Поддържат се два лицензионни режима – free (с известни ограничения в обема и модулите) и enterprise. От това, което съм видял досега, като работа, free версията е повече от достатъчна. Ако се интересувате, от тази връзка може да видите разликите. На всичкото отгоре – приложението работи, като Enterprise в периода на тестване (40 дни), след което автоматично си преминава във free версията.  Данните и конфигурациите от Enterprise-a се губят, затова, ако ще карате докрай въпросните 40 дни, четете внимателно особеностите на лиценза. Аз лично, предпочетох да го сменя на free още в самото начало (че после да не съжалявам). Да спомена само, че за да свалите, каквото и да било ви трябва регистрация (е, какво пък толкова?), която е и вход за форумът на общността.

В самото инсталиране няма никаква интрига – за Debian, едно вулгарно “dpkg -i splunk-4.0.6-70313-linux-2.6-intel.deb”. Доколкото успях да прочета – при останалите OS нещата са същите (прости). Даже нямаше и никакви претенции за зависимости – просто се инсталира и тръгна без проблем. Конфигуриране? Скука! По подразбиране се обхожда и събира всичко в /var/log. Оттам нататък всичко е едно цъкане по връзките. Интерфейсът доста ме впечатли – изключително добре написана Java с краен резултат Flash (отзад стоят до колкото успях да разгледам доста Pyton скриптове и много bin файлове). Знам, че комбинацията от двете не е типична за админски чук, но повярвайте (‘кво да ми вярвайте, вижте филмчетата тук), тук шаренията и анимацията някак си е точно на място. Идеята на пакета е, че той е модулен – стартираш и инсталираш точно това парче (по терминологията им: “приложение”, “app”), което ти трябва. Нищо оригинално, като идея, но доста добре реализирано и работещо перфектно. Споменах ли, че поддържа и WMI? Който знае, какво е WMI (подсказка: Windows Management Instrumentation), особено ако е с по-богато въображение знае добре, че тук просто няма граници в данните, които могат да се съберат и анализират. Естествено, поддържат се и външни (собствени) скриптове, т.е. нещата наистина започват да се събират в точка, някъде в безкрайността.

Утре (или по-нататък) мисля да проверя, как се държи пакета върху останалите ОС, които се навъдиха в мрежата – Solaris 10, Windows (че за къде без него!) и с разните му там Cisco железа. Все пак основната идеята е в разпределеността и работата в хетерогенна среда.

Все пак да предупредя: приложението е ненаситно на CPU ресурси, особено когато се индексират журналите. Дискът също направо замириса – то няма и как другояче, просто обемите трябва да се изчетат. Нищо ново под слънцето: за сериозна работа, трябват сериозни машини (с “Лада” нива не се оре, требе си трактор!).

Проблеми след ъпгрейд на WordPress към версия 2.7 (и нагоре)

WordPressПреди време, когато преминавах от версия 2.6.х към 2.7.х видях голям зор да оправя производителността. Ефекта след ъпгрейда беше, че зареждането на която и да е от страниците на блога, включително и admin достъпът бяха потресаващо бавни. Като пиша “потресаващо” имам в предвид забавяне от порядъка на 2 до 3 минути. Зора се изразяваше предимно в това, да изтърпя безумно бавното зареждане, за да мога все пак да натрупам някакво впечатление за проблема и да направя малко тестове. Поведението беше еднакво и при всичките операционни системи с които тествах, както и с няколкото браузъра с които правих опитите. Бавно, та чак да ти се доплаче. Иначе, отдавна всеки един ъпгрейд на WordPress протича, като по мед и масло. Очевидно, проблемът беше в самият WordPress, но със сигурност не и само в него. Толкова сериозен проблем, просто няма как да е останал незабелязан. Очевидният заподозрян бяха правата върху различните директории, но в този случай, просто ключът от палатка не беше в това.

След известно ровичкане из Мрежата, в крайна сметка намерих разрешението. И оправих всичко, както си беше преди – пъргаво и бързо. Сайта направо хвърчеше! Пределно доволен от резултата, все едно някой ми “дръпна казанчето” и всичката информация за това, как се оправяха нещата изтече в канала. Даже в добавка, някак си се изхитрих да забравя, че изобщо е имало проблем с ъпгрейда.

Днес минавам от версия 2.7.1 към 2.8.2 и …. направо щях да се гръмна! В момента, в който зареждането на admin страницата ми “удари” 30-тата секунда, цялата случка с предишният ъпгрейд се стовари отгоре ми. А като капак на всичко и грам идея нямах в главата си, как се справих предишният път. Все пак, търсенето на решението не отне тол΀ºова време, колкото предишният път, още повече, че имах и малко повече вътрешна информация за хостинга на СпектърНет. За да си спестят неприяπ‚ности с атаки от техни клиенти, както и вируси, които се правят  на какво ли не, колегите просто бяха забранили трафикът през изходящ порт 80 за целият хостинг сървър. Не коментирам целесъобразността или елегантността на решението им, всеки се справя както може. Понякога бързината за справянето с проблема е по-важна от удобството на клиентите. Нещо, като ампутация на крак в полеви условия.

Файлът, който трябва да се пипне е http.php намиращ се в директория wp-includes. Функцията request, която е добавена във версия 2.7 (и по-късни) просто не получава необходимата информация (забранен порт 80) и генерира гадното забавяне от 2-3 минути. Решението е елементарно, въпросната функция просто се шунтира.

Промяната за версия 2.8.2 е следната: просто под ред 218 добавяте едно return;

218: function request( $url, $args = array() ) {
219: return;
220: global $wp_version;

Не е много коректно, но така или иначе функционалността на тази функция е отрязана от хостинга, поне да не пречи. Естествено, ако вие имате подобни грижи, може да опитате да се преборите с вашият доставчик да върне функционалността на сърръра. Лично аз избрах по-лесният път. Това, което се загуби, като функционалност на WordPress-a беше, че Dashboard-ът престана да си обновява информацията.

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

Допълнение: всъщност, най-голямата загуба на функционалност е невъзможността на спам филтърът Askinet да работи коректно. За голямо съжаление той също използва fsockopen и порт 80. Явно, май ще се бяга при друг доставчик…..