Хрониките на един Цветомир

Live like you were going to die tomorrow; learn like you will live forever. — Gandhi

Merge

Възстанових постовете от стария ми блог, но за съжаление без коментарите. Извинявам се на всички, които са отделили време да пишат за това. За по-голямо удобство запазих реалните дати на написването на постовете.

Downtimes

Наполседък доста downtime му се събра на блога ми:) Местих го от едно място на друго, от един сървър на друг…. Но вече окончателно го настаних на топло местенце с добра свързаност:) Писанията ми вече са гордо хоствани от FColor. Преди използвах разни лични машини със съмнителна свързаност, но вече нямам ентусиазъм за такива неща. Отнема много повече време и усилия отколкото парите, които ще давам за хостинг сега.

Между другото успях да се сдобия с базата данни от стария ми блог. Ще копирам всички статии, които ми се струват ценни или полезни тук. Случайно забелязах, че феноменът braindamage отново е онлайн. Лудите умора нямат:)

При по-различно стечение на обстоятелствата сега може би щях да пиша този пост от Малта. Или може би нямаше да го напиша изобщо. Но ето ме удобно разположен в квартирата пишейки поредната доза душевни терзания:) Може би е за добро, може би не е… Вдъхновен от речта на Стив Джобс пред випуск 2005 на Станфордския университет аз вярвам, че съм взел правилно решение. Времето ще покаже дали е така.

Чао Малта

Довечера, в 00:55 малтийско време (01:55 българско) отлитам от Малта за София. Изкарах тук около 2 месеца и половина. Видях и преживях много неща - някои хубави, други не чак толкова. Силно се надявам това да ми е последния толкова дълъг престой в Малта за близкото бъдеще. Преди време се шегувах, че ако трябва да дойда за още 2 месеца то по-добре да остана да живея тук за винаги:).
Очаквах с нетърпение да се прибера в България, но в момента съм със смесени чувства. Не, че искам да остана тук, но все едно острова е откраднал част от мен, която няма да мога да си прибера никога. Това леко ме обърква. Имам чувството, че за тези 2 месеца и половина се промених много. Може би когато се разделиш с нещо за дълго време оценяваш реално какво ти липсва от него и какво не. Може да звучи леко пресилено, но в моя случай раздялата с живота ми (не във физическия смисъл на думата) за 2 месеца ми помогна да откроя някои важни от някои маловажни елементи. Не знам дали това е начина - може би аз съм прекалено глупав и не съм ги осъзнавал до сега, но все пак важен е резултата, нали? Факт е, че в Малта направих много неща, които до сега не съм искал или просто ме е било страх да направя.Може би това е следствие от “преосмислянето” или може би просто климата ми действа зле. Струва ми се, че като резултат от всичко това станах съвсем малко по-добър човек. Дано съм прав.
Ако не съм прав престоя ми тук ще остане просто като спомен от една малко по-дълга и по-странна ваканция. След 3 дена като видя този пост ще се чудя какво съм ял предната вечер, че да пиша такива глупости и дали в главата ми е звучал саундтрак от латиноамериканска сапунка докато съм писал тези неща.

Пренасочване с Apache

Трябваше да направя пренасочване на потребителите към страници със съдържание на техния език, в зависимост от страната, в която се намират. Т.е. например потребителите от Германия, България и Франция се пренасочват към страници съответно на немски, български и френски, а всички останали - към англииски. Стори ми се най-лесно да направя това с mod_rewrite и GeoIP.
GeoIP е продукт на MaxMind - предлага се свободна база данни, но актуализирането на базата е платено. Не си спомням точно каква беше цената, но е по силата на всяка дори и малка фирма. MaxMind имат модул за Apache - mod_geoip. Инсталира се заедно със GeoIP C API - и двете неща са свободно достъпни на сайта. Компилацията на API-то е праволинейна, а модула за Apache се компилира по този начин:

apxs -i -a -L/usr/local/lib -I/usr/local/include -lGeoIP -c mod_geoip.c

Където:
-I/usr/local/include - директорията, където се намира GeoIP.h
-L/usr/local/lib - където е инсталирана libGeoIP

И следва по-веселата част, конфигурацията на Apache. Ето част от моя конф. файл:

GeoIPEnable On #Активира mod_geoip
GeoIPDBFile /usr/local/share/GeoIP/GeoIP.dat #Пътят до базата данни

RewriteEngine On #Активира mod_rewrite

Redirect /index.html http://www.example.com/index?lang=en #Пренасочване по подразбиране към англ. език

#Клиентите от България се пренасочват към страница на български
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^BG$
RewriteRule ^/?(index.html)?$ http://www.example.com/index?lang=bg [L]

#Клиентите от Германия се пренасочват към страница на немски
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^DE$
RewriteRule ^/?(index.html)?$ http://www.example.com/index?lang=de [L]

#Клиентите от Франция се пренасочват към страница на френски
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^FR$
RewriteRule ^/?(index.html)?$ http://www.example.com/index?lang=fr [L]

%{ENV:GEOIP_COUNTRY_CODE} е променлива, която съдържа двусимволния код на страната според ISO 3166-1. Приемам всякаква градивна и не чак до там градивна критика относно решението:)
За по-подробна информация относно mod_rewrite или regular expressions бих препоръчал следните четива:
Документация за mod_rewrite от сайта на Apache
Книгата Mastering Regular Expressions на Jeffrey Friedl
Книгата The Definitive Guide to Apache mod_rewrite на Rich Bowen

Работното място

Преди известно време попаднах на тази статия, посветена на подреждането на работния кът. До сега поради ограничено място моят е представлявал само бюро с неудобен стол, един компютър и около него купчина учебници. И да не пропусна плюшения демон-пазител на стаята:)
От скоро се изнесох на квартира, заедно със съквартиранта ми. Всъщност в момента не знам къде точно живея, защото съм виждал апартамента само на снимка, но това е друга тема. Може би вече е време да си спретна някакво уютно място. Идеята от този пост за ъгловото бюро ми хареса. Ако обстановката позволява може да опитам да направя нещо подобно и в новото вкъщи.
Иначе в момента работното ми място представлява това. Причината е, че в квартирата използвам някакъв свободен wireless, който се хваща само в орпеделени ъгли на стаята. А защо не сме си платили за нормална връзка - това е дълга история.

WildLife in Malta

Автентични кадри от дивия свят на Малта. Който си мисли, че там няма слонове бърка много:

Слон в Малта

P.S. За неразбралите (или хората с не толкова болна фантазия) героят от клипа имитира слон.

Интересна имплементация на баните в Малта

От известно време съм в Малта и искрено се възхищавам на баните тук. На пръв поглед няма нищо специално - мивка като мивка, душ/вана като душ/вана… НО! Пичовете тук са решили, че не е нужно да има сифон на пода и съответно не са сложили. Това принципно не е голям проблем, стига всичко да работи както трябва - има си мивка, която не прелива, ваната/душа си имат собствено сифон. Ако тези аксесоари отсъстват - няма сифон:)
Та днес в офиса стана следната драма - стоя си аз мирно и тихо и се наслаждавам на спокойствието на неделния ден и забелязвам подозрително голяма локва, излизаща от банята и насочваща се към кухнята в офиса - това са няколко метра. С ужас нахлувам в банята и естествено виждам, че е пълна с вода:) В този момент се сетих за една лекция в ТУ, където един мениджър обясняваше за управление на риска. И гордо разказваше как е наредил да се пробие пода на един наводнен дата център с канго, за да се изтече водата и да не изгорят сървърите вътре. Гениално решение:) Жалко, че нямах канго. Е отне само час и половина да подсушим пода… И всичко това заради липсата на един сифон:) Както казваха в един филм: This is madness! Madness? This is Malta!

Reloaded

Дааа, за ужас на цялото Интернет пространство моят блог отново е онлайн - по-лъскав и по-скучен отвсякога. Може би дължа обяснение на ентусиастите, които отделяха от скъпоценното си време за да четат глупостите ми в старата версия. Поради прецакване от “web партньори” (не можах да се сетя за по-високопарен израз) машинката, на която се помещаваше скромния ми блог, беше необратимо изключена. Обещавам щом се докопам до нея да прехвърля тук всички постове с ценно съдържание (ако изобщо има такива).
На въпросната машина се намираше и друг блог, в който “творях” активно, но още се колебая дали да продължавам да се занимавам с него. Но ви уверявам, че няма да лиша бъдещите поколения от това интелектуално наследство - само да се докопам до машината:)

racktables

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

Ubuntu 7.10 на Toshiba Satellite U300-13J

Отскоро работя на една такава машина, която по подразбиране върви с Windows Vista. Аз и инсталирах Ubuntu 7.10 и понеже имах известни трудности реших да споделя малко опит тук:).
Голяма част от информацията тук е взета от поста на ItLinux. и коментарите към нея. Също така, в случай, че не сте запознати с ndiswrapper полезна е и тази статия.
И така… Стандартна инсталация на Ubuntu и след рестарт се забелязва “странно” поведение на графичната среда. За да се отстрани това се инсталират допълнителни драйвери за видеокартата (Intel GM965). Последната версия може да се изтегли от тук:

http://ppa.launchpad.net/kyle/ubuntu/pool/main/x/xserver-xorg-video-intel/

Инсталират се с dpkg и се пренастройва X сървъра:

dpkg -i xserver-xorg-video-intel_2.1.1-0ubuntu10_i386.deb
dpk-reconfigure xserver-xorg

За да заработи звука е нужен този пакет:

apt-get install linux-backports-modules-2.6.22-14-generic

Wireless адаптера сработва с ndiswrapper. Windows драйвери може да се изтеглят от тук:

http://www.atheros.cz/download.php?atheros=AR5006EG&system=1

След това се инсталира ndiswrapper и се добавя драйвера:

apt-get install ndiswrapper-common
ndiswrapper -i net5416.inf
ndiswrapper -l
net5416 : driver installed
device (168C:001C) present (alternate driver: ath_pci)

Освен това трябва да се забранят и модулуте за адаптера, които се зареждат при зареждане. С тях адаптера не работи. В /etc/modprobe.d/blacklist се добавя това:

#wireless stuff
blacklist bcm43xx
blacklist ath_pci
blacklist ath_rate_sample
blacklist ath_hal

И накрая ndiswrapper трябва да се зарежда при първоначално зареждане. В /etc/modules се добавя следния ред:

ndiswrapper

Bluetooth адаптера тръгна след като инсталирах omnibook. Компилира се от сорс код. Преди това се инсталират следните пакети, като зависимости:

apt-get install subversion build-essential linux-source

Кода се изтегля от subversion хранилището с тази команда:

svn co https://omnibook.svn.sourceforge.net/svnroot/omnibook/omnibook/trunk

Преди да се компилира трябва леко да се модифицира laptop.h. Добавят се следните редове (не на края на файла, обърнете внимание на структурата му):

{
.callback = dmi_matched,
.ident = “Toshiba Satellite U300″,
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, “TOSHIBA”),
DMI_MATCH(DMI_PRODUCT_NAME, “Satellite U300″),
},
.driver_data = (void*) TSM70
},

Тази модификация е публикувана от Михаил Кеепа.
И след това се компилира:

cd trunk
make
make install

Модула се зарежда с:

modprobe omnibook

И се добавя следния ред в /etc/modules за да се стартира при boot:

omnibook

Не съм тествал card reader-a и web камерата, като за последната нямам голяма надежда. Иначе всичко останало за сега работи чудесно. Също така искам да изкажа и благодарности на източниците, цитирани по-горе, които ми спестиха много време и усилия в подкарването на хардуера.

P.S. И card reader-a и камерата работят (тествах със Skype) без допълнителни модификации.

© 2008 Хрониките на един Цветомир
Experten AVZ | Weleda