Наводнение

Това на снимката е воден кран – може би най-боклучивия воден кран, който някога е произвеждан и внасян в България. В кварталната железария този кран струва 5 лв. и е единствения предлаган от този вид кранове. Цената по каталог на крана е 2,05 лв. Най-вероятно истинската му цена е 0,20 лв., а хората които го продават са мошенници. А чиновникът позволил внасянето на този боклук в България е за затвора. Марката на този кран е “HD” – каквото и да означава това. В единствения каталог, който успях да намеря пише, че този кран е произведен от “Metalica – Гърция”. Силно се съмнявам тази информация да е вярна. Най-вероятно това е китайски кран. Логото изглежда така:


На тази снимка се вижда счупения кран, счупен след 3 години употреба. Просто една нощ кранът реши да се счупи. Целия апартамент беше залят с гореща вода до глезените. Естествено заливането с гореща вода не се отразява особено добре на паркетите, килимите, вратите и талашитите. Всичко това води до големи разходи – разходи които производителите на крана, търговските представители за България и българската държава в ролята си на стандартизиращ орган – няма да поемат. Ако живеех малко по на запад може би имаше някакъв шанс да осъдя тези мошенници. Но тъй като живея в България, единственото нещо което мога да направя е да предупредя всички минали, бъдещи и настоящи техни клиенти – веднага си сменете всички кранове. Всъщност, както вече споменах, смяната на тези кранове не е толкова проста работа, тъй като по-читави много трудно се намират. Това е и причината аз да съм с тези. Но все пак има една фирма (няма да казвам коя), която предлага по-добри – или поне се водят за такива. Никога не съм си представял, че може да ми се случи подобно нещо – поцинкованите тръби и техните кранове, с които съм боравил през целия си живот никога не са се чупили.
Към морето
Тази вечер ще пътувам за Созопол. Не съм ходил по Черноморието в близките 4-5 години. Миналата седмица си взех билети за автобус – Груп Плюс/Етап Адрес, или както там са решили да се наричат тези измамници. Последното ми пътуване с тях, на последното ми ходене по Черноморието завърши с много псуване и счупен автобус. Оказаха се обаче монополисти, други билети за автобус не успях да си взема. Записал съм си филми и книги на телефона, в случай че се наложи да висим някъде. Всъщност на автогарата в София, на гишетата за билети (в стил 70-те години) има едни каки, които дори нямат компютри. Всичко се пише на ръка, на хартия, а автомат за билети там би изглеждал, като излязъл от фантастичен филм. Разбира се, плащанията са само в кеш. По кофти стечение на обстоятелствата, ентусиазирани археолози изровиха някакви библейски, еврейски кокали на островчето. Утре се очаква целият български народ да се събере в Созопол, за да участва в шествие, разнасяйки въпросните кокали из центъра на града. Сигурен съм, че произхода на Божидар Димитров и намирането на тези кокали в Созопол си е едно най-случайно съвпадение. Важното е да се развива местната икономика. Да има пари за предприемачите, да има пари и за ТИМ (или техния местен аналог). Хотел в Созопол не успях да си харесам по Интернет. Всичките ми се струват скъпи и тъпи, особено скъпи през август месец, но също толкова тъпи. Грозни, зле направени сайтове и фотошопирани снимки. Едно от нещата, с които са известни българските хотели е тяхната енерго-неефективност. Абсолютно всичко в тях се прави на ток. Когато бях в Созопол за последно тока спираше редовно. Една вечер си стоях гладен, поради простата причина, че не можеше да се намери кръчма, която да е в състояние да готви без ток. А това се дължи на един дърт 110 киловолтов далекопровод. Мислех си, че тези проблеми вече са решени, но очевидци и потърпевши разказаха друго. Може би някой местен предприемач трябва да се разходи по комшийте и да обърне внимание на големите газови цистерни, които са пред входа на почти всеки техен хотел. Или мушмороците от ЕВН/НЕК да спрат за малко да лапат и да вземат да си поправят мрежата. Онзи ден пък затвориха един плаж там наблизо, който бил радиоактивен заради медните мини. Голяма работа, малко уран от хвостохранилището, местните се къпели там от малки и нищо им нямало. А преди да се разшуми, че е радиоактивенм бил известен като екологично чист, понеже наоколо няма хотели. Съмнявам се за тези години да са решили и проблема с пречиствателните станции. То ако има нормална канализация в новия град – и това ще е някакъв напредък. Цените на чадърите и шезлонгите на плажа сигурно са нарастнали за тези години, най-вероятно е и по-мръсно. Въобще как да не му е кеф на човек да отиде на море в България. Навих се само заради едни приятели. Не знам колко време ще издържа – но сигурно ще ми пази влага дълго, и няма да отида скоро пак там. От положителната страна на нещата – тази нощ се очаква облакът с частици от Слънцето да достигне Земята. Според някой сайтове, aurora borealis може да се появи и на нашите географски ширини. Дано да е ясно времето тази нощ.
България и МеВеРе 1
Гордост е да служиш в редовете на България и МеВеРе!
Утре със сълзи в очите и треперещи ръце ще отида да подаря гербер на сержант Петров в нашето РПУ!
Входиране 2
Днес Агенцията по вписванията ме уведоми:
УВАЖАЕМИ/А ГОСПОДИНЕ/ГОСПОЖО,
Агенция по вписванията Ви уведомява, че постъпилото искане/заявление е входирано в информационната система на Търговския регистър под номер 20100630xxxxxx.
*Това е автоматично генерирано от информационната система на Търговския регистър уведомление, на което не следва да отговаряте. За повече информация можете да използвате информационната система на Търговския регистър (www.brra.bg), като направите справка в партидата на търговеца по ЕИК или в Документи без партида.
Чак ми се насълзиха очите от умиление. Всъщност “входирането” има дълга предистория. Тази сутрин, излизайки от вкъщи си мислех, че няма какво по-лошо да ми се случи. Цяла нощ водих преговори със Софийска вода АД да ми пуснат водата. Цяла нощ вуйната на горещия телефон ме лъжеше, че водата ще дойде след час. Вместо от 10 до 22, нямаше от 10 до 6:30, ама 6:30 сутринта на другия ден. В офися обаче колегата леко закъсня. Висял като паяк цяла сутрин на опашка пред Агенцията по вписванията. След като разказа какво е станало накратко, аз се плеснах по челото, че това май и мен ме засяга. Някой болен мозък в държавата е решил, че финансовите отчети на фирмите трябва да се пращат в Агенцията. Това е третото място, където човек се налага да подава едни и същи данни през годината. Първото е Националния статистически институт, второто е Националната агенция по приходите, а от тази година – третото е Агенцията по вписванията. Три различни информационни системи, написани на три различни платформи, очевидно без никаква връзка по между си, задължават фирмите да им подават едни и същи данни. За разлика от първите две места обаче, на третото удоволствието се заплаща – струва 35 лв. по Интернет. Злите езици казват, че на живо било 50 лв. И така, започна борбата с информационната система на Агенцията. Всичко започна едно такова невинно – име, егн, булстат, адрес на регистрация, адрес на кореспонденция. И разни други подобни данни, за които Агенцията гарантира, че са мой и са верни – за по-сигурно да си ги препиша. След това стигнах до прикачването на файл – опа. Единственият известен формат, който НЕ се поддържа на това място е XLS. Толкова е логично, кой идиот би решил да си подава финансовия отчет в XLS формат. Къде ли по света има счетоводител, който да работи с Excel. Тук започна бясно конвертиране на XLS в PDF. Не се получи много читаво, ама какво пък, така или иначе никой няма да го чете. Стигнах и до последната част – подписването. Опа – тук сесията гръмна, понеже не съм имал инсталиран Java plugin. А за да се инсталира такъв, както всички знаем браузера трябва да се рестартира. Пък след рестартирането на браузера какво следва? Ами ясно е – всичко от начало. Набих всичките данни от начало, но без да искам изкарах частта за прикачване на втори документ. Е да де ама втори документ нямам, а това е голяма грешка, понеже тази част изкарана веднъж не може да се махне. И така, трябваше да прикача нещо, но какво по дяволите. Мислех си за едно хубаво порно – примерно с трима негри и блондинка. Е да ама, сигурно имат ограничение за размера на прикачения файл, а и трябваше да го преименувам, което значи, че няма как да го изгледат. И така ненадейно ровейки из документите си стигнах до един шедьовър, който изчерпва всичко, което бих искал да кажа на Агенцията по вписванията. Картината много добре описва взаимоотношенията между държавата и бизнеса. Казва се Запорожките казаци пишат писмо на турския султан, на Иля Репин:

И тъй като нивото на администрацията в България е сравнимо с това на Тюркменистан и Северна Корея, сигурен съм, че никой държавен служител няма да види тази прекрасна картина в моето “входирано” “искане”.
Защо не се издават електронни книги у нас?
Из статия в azcheta.com
В част от коментарите около казуса “Читанка.инфо” се появиха коментари, че издателите нямат желание да издават електронни книги у нас. Представяме ви мнението по въпроса на Диана Бойчева от БГ Книга ЕАД, които се занимават с търговия с електронни четци и както става ясно от материала, планират издаването на електронни книги.
Ние работим по въпроса с е-книгите усилено. Инсталирахме Adobe Content Server – международно призната среда за съхранение, защита и дистрибуция на електронни публикации. В момента сме все още в тестов период на работа на сървъра.
Как тази система има отношение към дискутирания тук въпрос? Нека обясня с две думи: тя ще даде възможност на издателите да защитят своите книги, чрез DRM, да ги продават, както и да ги отдават под наем безплатно или платено за определен период.
Работейки по темата бих споделила някои впечатления.
Дали книгата да се издаде в е-вариант е решение по-скоро на автора, отколкото на издателя. Много от чуждестранните автори и собственици на права не продават право за е-издаване на българските издатели, тъй като никой към момента не може да им гарантира DRM защита. Аз лично се свързах с Кори Доктороу, писател на фантастика и лидер в безплатното разпространение на е-книги. Литературните му агенти ми отказаха да преведа и издам негова книга в e-вариант, ако не направя и определен тираж на хартия.
- Издателство “Захарий Стоянов” се съгласиха да направим е-варианти на всичките им издания (около 1300), като тези които не са обект на авторско право ще бъдат безплатни. Благодарим им за това.
- За защита на е-книгите (изисквана от собствениците на правата) се дължи такса към Adobe, която щем не щем ще плащаме.
Виждате, че безплатен обяд няма за никого. Няма и за читателите в България и по света.
Бях си обещал да не дълбая в случая с “chitanka.info”, но някой ще трябва да отговори на въпроса на Диана Бойчева от БГ Книга ЕАД – защо не се издават електронни книги у нас. Хайде преди да разгледаме въпроса с електронните книги, да обърнем малко повече внимание на класическите, хартиени книги. Книги на български не си купувам от години. Не защото не чета, а защото се дразня. Дразня се на неграмотния превод, на нискокачествената хартия, на кориците, от които човек се цапа с боя, на грозните шрифтове. За всеки разумен човек е ясно, че съвреммения българин не чете – ама хич не чете. Това води след себе си сериозен спад в търсенето на книги. А пък при ниско търсене, издателите не са мотивирани да превеждат и издават качествени, нови творби. Цените на малкото пуснати на пазара книги изкуствено са държат ниски, което рефлектира силно на качеството им. Това води до още по-малко търсене, защото повечето “грамотни” хора си купуват книги на английски и кръга се затваря. Всички тези предпоставки, естествено биха довели до намаляване броя на издателствата, и хората заети в тази област. Нищо подобно обаче не се наблюдава в България. Този феномен се дължи на двете големи “далавери” в българското книгоиздаване – учебниците и рекламите. Със сигурност всеки родител си е задавал въпроса – необходимо ли е всяка година на българския пазар да се издават такова огромно количество нови учебници. Очевидно, не само, че не е необходимо, а е вредно. Вредно е за българското образование – неговото качество спада с всяка изминала година. Издателите и министерството обаче не се вълнуват от това. Защото този проблем не засяга техния “бизнес модел”, който е изграден върху връзката между издатели, служители в министерството, учители пишещи учебници (и преподаващи частни уроци). Безмислените промени в образователната система, начевани от всеки нов министър, водят до промени в изискванията за учебниците. Това налага издаването на нови учебници. За да бъдат написани новите учебници – трябват учители, които да ги пишат. Учителите пишат учебниците, по които после ще преподават – и искарват така необходимите им допълнителни доходи. “Големите пари” обаче отиват при издателите. Подобна е ситуацията и с рекламите – всички тези хартий, които ни навират в ръцете по улиците, някъде са отпечатани. Някъде им е направено страниране и художествено оформление. Диплянки, безплатни вестници, плакати – втория основен бизнес за издателите. Издаването на книги носи риск – читателите може да не ги харесат. Разбира се, учениците също може да не харесат учебниците, но те нямат избор – искат или не ги купуват.
Но да се върна на въпроса с Диана Бойчева. Усилената работа по Adobe Content Server-а въобще не искам да я коментирам. Изразът “щем не щем ще плащаме”, звучи малко като “най-мразим да мислим”. Този софтуер не е в състояние да реши каквито и да било проблеми, само може да ги задълбочи. Свободното разпространение на информация в Интернет е факт. Факт, който нито БГ Книга ЕАД, нито Adobe са в състояние да променят. Някои големи компании, като Apple например, вече осъзнаха този факт, и изхвърлиха DRM решенията от своя софтуер (iTunes). Странно е, че в една подкрепяща DRM статия се споменава Corey Doctorow. Той е отявлен противник на DRM, нещо което не става ясно от статията. Безплатен обяд няма, но безплатна книга има – това са книгите на Corey Doctorow. Препоръчвам на Диана Бойчева да се запознае и с размислите на RMS по темата. И въобще с абсурдите, които води след себе си съвременното право на копиране. Проблемът на издателите не е свързан със сайтове, като chitanka.info, а с факта, че те не искат да се променят. Светът се развива и променя, вместо да използват “авангардни” DRM решения, които да принуждават читателите да спазват “доброто старо право на копиране”, те трябва да измислят нов бизнес модел. Много по-лесно е обаче, да си гледат учебникарските и рекламни далаверки – и да скачат срещу всеки, който се опитва да промени нещо в ненормалния им бизнес. Да, никой автор не иска лошо преведената му книгата да се отпечата на евтина хартия и да се пусне на Славейков. За това не се издават качествени книги в българия – било то хартиени или електронни. chitanka.info очевидно не е комерсиален сайт, хората го използват най-вече защото е удобен. Голяма част от книгите там не могат да се намерят на пазара – нещо за което само издателите са си виновни. Книгите в този вид са много по-удобни за четене, от голяма част от хартиените си аналози. А това се дължи не на последно място и на липсата на DRM. Дори утре Диана Бойчева да пусне безплатни книги в нейния Adobe Content Server, аз няма да мога да стигна до тях. Защото това изисква използване на Adobe продукти – може би комерсиални и със сигурност – със затворен код. Въпросното DRM също така няма да ми позволи да редактирам “бисерите” на евтино платения й преводач. Тя няма да издаде книгите на Corey Doctorow на български, защото е очевидно, че в България няма кой да си ги купи. Ето за това, дори и след евентуалното (знам, че е невъзможно) затваряне на chitanka.info, издателите пак няма да са доволни и бизнеса с книги пак няма да върви. Въпрос на време е да се появи следващия сайт, и следващата шумна акция на КиберЯвор. А аз ще продължа да си купувам книги от Amazon.com и парите ми ще отиват не в БГ Книга ЕАД, а в lulu.com например. Класическите произведения на български ще си чета от гонените от “Рицаря на книгата” сайтове.
chitanka.info 3
chitanka.info е тук. Сийдвам от няколко места, като гледам и много други хора го правят. И моите сървъри са скрити, в метални кутии. Чакам Явор Колев да дойде да ми ги спре – лично. На “рицаря на книгата” май трябваше да му обяснят за какво служат книгите, преди да го наградят.
Късат пари на недоволна американка в чейндж 3
Из статия в Sofiadnes.com, със заглавие Късат пари на недоволна американка в чейндж бюро:
“Американска гражданка извика полиция, за да й върнат сума от обменно бюро в София, съобщиха от пресцентъра на МВР. В чейндж бюро на бул. “Витоша” към 12.30 часа в столицата американска гражданка е обменяла валута. Когато трябвало да подпише бордерото не била съгласна с курса и поискала да й се върнат парите. Касиерката на обменното бюро не пожелала да й върне цялата сума – върнала й само половината от парите, а другата половина скъсала и се затворила в кабинката. На мястото е изпратена полиция, тъй като касиерката не пускала никого в кабинката. Работата по случая продължава.”
Стандартна полицейска хроника, обаче детаилите са доста интересни. Тази “американска гражданка” е моя приятелка. Всъщност, преди да й пратя линка към статията, тя дори не подозираше, че е американка. Но очевидно журналистите отново са решили да използват фантастични елементи в статията си. Въпросното бюро не е конкретизирано, но аз ще го конкретизирам – намира се на бул. Витоша 3. Кратка справка за историята на това място, показа че то съществува от поне 5 години. Случаите за измамени “клиенти” там са много. Всъщност не знам дали това бюро има не измамени “клиенти”. Схемата е проста, на табелите е обявен изгоден курс. Жертвите влизат вътре, питат касиерката, дали курса наистина е този, а тя потвърждава. Когато парите бъдат обменени, “клиентът” разбира, че е измамен, като получава по-малка сума пари и бележка, на която курса е различен. Естествено касиерката отказва да върне парите, като използва обиди и заплахи за да изгони жертвата от стаята. Както всеки разумен човек може да се досети, тази схема се развива със съдействието на охраната, а най-вероятно и със знанието на полицията. Как мислите, дали собственика на това бюро, намиращо се на бул. Витоша 3 е случаен? Едва ли. По-интересното е друго, защо сега, след 5 години работа се обръща внимание на това бюро, че чак и сайтовете пишат за него. Много е просто, в природата съществува закон – законът на джунглата. Винаги по-голямата риба изяжда по-малката, а по-големи риби винаги има. Та въпросната мутра, държаща тази дупка за измами, наречена change бюро попадна на голяма риба. Моята приятелка е завършила право и е търговски представител на американска фирма, която инвестира в България. Също така, тя има роднински връзки с премиера на една друга, интересна държава. След разправията с кифлата зад витрината, охраната е отказал да й даде телефонния номер на полицията. Ето такава охрана имат тези бюра. В крайна сметка се оказало, че номера е запаметен в мобилния й телефон. И тя е успяла да извика полиция без да излиза от там. Като видяла, че става напечено и няма да й се размине, касиерката продължила с обидите и заплахите и демонстративно скъсала банкнота от $50. Когато полицията пристигнала, касиерката отказала да им отвори. Отворила чак когато дошъл шефът й. В крайна сметка всички отишли в полицията, а моята приятелка обяснила коя е и предложила да реши проблема на дипломатическо ниво. Предполагам, че това е дало една добра мотивация на полицайте, да поработят. Не очаквам това бюро да го има още дълго – всъщност ще бъде интересно, ако след някой и друг ден Б.Б. или Ц.Ц. отиде лично да го затваря. Май тази приятелка е в състояние да реши доста проблеми, които “простосмъртните” хора не могат. Това е доста жалко, предвид европейските претенции на България.
SCADA
За да реализираме една SCADA система, най-напред трябва да помислим за комуникацията с различни видове PLC. На пазара за контролери се срещат най-различни производители, предлагащи уреди с най-различни характеристики и десетки комуникационни протоколи. В почти всички случаи данните, които трябва да четем от контролера са малко по обем, в сравнение с паметта на съвременните компютри. Традиционно комуникацията с контролерите е трудна, понеже те могат да бъдат разпръснати на голяма територия. Този проблем е довел до използването през годините на най-различни комуникационни протоколи и преносни среди – голяма част от които изглеждат доста глупаво от съвременна гледна точка. Но тъй като в повечето случаи става дума за производствени процеси – на никой не му и минава през ума да променя каквото и да било. Тоест, принудени сме да работим при тези условия. Когато започнем работа, всякакви предположения за марката контролер и комуникационния протокол, след време ще се окажат неверни (по законите на Мърфи). Можем да се сблъскаме с всичко – от 9600 bps RS232 връзка, с ASCII протокол, до ISO върху Industrial Ethernet. Често пъти библиотеките за комуникация с контролерите не са с отворен код (за щастие при мен случая не е този). Можем да се надяваме, че те предлагат някакъв C интерфейс, който ние да ползваме от някакъв външна програма. Една от първите ни задачи е да реализираме универсален интерфейс към контролерите, който да ни позволява да четем и пишем в тях, без значение каква марка са и какъв протокол използват. Лично аз, дълго време живеех с убеждението, че е най-добре просто да използвам асинхронна комуникация с event loop. Това щеше да работи, ако “драйверите” за различните видове контролери се държаха добре и не променяха настройките на подаваните им файлови дескриптори. За съжаление, това е прекалено оптимистично предположение. Повечето контролери са ужасно бавни, в сравнение със съвременните процесори. Данните могат да се точат “дълго време”, а буферирането в ядрото може да забави получаването им от програмата. Понеже комуникацията се очаква да бъде в “реално време”, а реализацията на различните специфични протоколи върху TCP/IP например, е сложна – можем да очакваме, че голяма част от тези драйвери ползват блокираща, синхронна комуникация. Очевидно блокирането на event loop при отпадане на контролер не е добра идея (особено ако работим със стотици контролери). След обстоен анализ на ситуацията и кратка справка с някои исторически системи, аз се спрях на Reactor pattern за решаване на този проблем. Тъй като искаме да пишем на Ruby, нашата Reactor pattern реализация е EventMachine. За да я ползваме, трябва да напишем Ruby bindings за драйверите на контролерите. Това е доста досадна и неблагодарна работа, но за щастие разполагаме с Extending Ruby главата от Programming Ruby. След няколко дни писане имаме работещи Test::Unit::TestCase(s), които събират данни от контролерите. Как обаче да използваме нашия binding с EventMachine? В общия случай имаме клас PLC, в който има един гаден метод, например fetch, реализиран на C, който може да блокира. EventMachine ни дава метод defer, той приема два аргумента – процедури. Първата процедура е блокираща, тя се изпълнява на отделен thread в реактора, а втората е callback – извиква се с резултата от изпълниение на първата процедура (изпълнява се извън реактора). EventMachine ни дава възможност да работим с нишки индиректно, като по този начин си спестяваме всичките проблеми свързани с директното им използване. Ето една примерна конструкция с defer:
require 'rubygems'
require 'eventmachine'
# Контролер
class PLC
# Голям, блокиращ C метод
def fetch
"result"
end
end
plc = PLC.new
EM.run do
# Тази процедура ще изпълняваме в реактора, на отделна нишка
# Ако всичко е наред, ще четем през една секунда паметта на контролера
op = proc { sleep 1; plc.fetch }
# Тук обработваме резултата, и пускаме следващата операция за четене
cb = proc { |result| puts result; EM.defer(op, cb) }
# Пускаме първата операция
EM.defer(op, cb)
endЕстествено, за да работи всичко това, блокиращата операция трябва да има разумен timeout. Той зависи силно от вида контролер, комуникационния протокол и наблюдавания производствен процес. При мен този timeout е от порядъка на 5 секунди. Тъй като EventMachine е реализиран на C/C++, нашия драйвер за контролера също е писан на C, можем да очакваме, че закъсненията от използването на Ruby – динамичен език от високо ниво, са минимални. Гаранции за това обаче няма, много е важно всички компоненти да бъдат тествани много подробно, преди да бъдат пуснати в експлоатация. Официално, системата която аз разработвам се пише на Ruby, но реално зад всеки един ред код на Ruby стоят между 10 и 100 реда код на C. За съжаление, това в случая е неизбежно. Прочетените от контролерите данни отразяват състоянието на реалните обекти, които участват в производствения процес. Връзката между обекти и контролери е основополагаща за всички подобни системи – важно е да имаме максимално гъвкави методи за описание на тази връзка. За целта използваме DSL, който лесно може да бъде реализиран на Ruby. След като имаме добре дефинирани обекти, техните състояния и събитията, които водят до промяната им, можем да започнем да мислим за визуализацията им. За подобна система, би било много глупаво да не използваме Web-базирана технология. Тъй като изображенията на обектите са инженерни чертежи, които трябва да бъдат скалируеми, не можем да ползваме нищо друго, освен SVG. Във всяко едно SVG изображение има определено количество графични обекти. Всеки графичен обект може да бъде в едно от няколко изброени състояния, което се променя във времето. За да визуализираме графиката използваме WebKit прозорец. Този прозорец се създава с помощта на QtRuby, като за целта (леко) се променя WebKit конфигурацията. За да следим измененията на състоянията на обектите във времето трябва да използваме, някакъв вид асинхронна комуникация с WebKit. Тъй като събитията се случват на сървъра, използването на XMLHttpRequest заявки (по-известни като AJAX) не е достатъчно. Клиентът няма как да знае кога дадено събитие се е случило, за да пусне заявката. Разбира се, можем да ползва polling, но е далеч по-елегантно комуникацията да бъде асинхронна. Това което ни трябва е известно, като Reverse AJAX, HTTP Server Push или Comet). За да реализираме каквото и да било Web-приложение, трябва да имаме HTTP сървър. Естествено, той може да бъде нещо съвсем отделно и външно за системата, но тъй като така или иначе, ние имаме работещ EventMachine event loop, че даже и реактор, за комуникация с контролерите – ориентираме се към търсене на EventMachine-базиран HTTP сървър. Както може да се очаква, някой преди нас е написал такъв, казва се Thin. Можем ли да използваме Thin и EventMachine за Comet комуникация с WebKit? Върху този върпос е размишлявал и автора на Thin. Той е написал един Ruby gem, който се казва Pusher и върши точно това което ни трябва. Благодарение на тези технологии, можем да обединим функционалността на HTTP сървъра, Comet сървъра, и модула за комуникация с контролерите. Разбира се, това е просто възможност за интеграция, в някои случаи не е разумно да се прави. Възможно е да “сглобяваме” SVG документите динамично, при всички случаи е трябва да имаме някакво Web приложение на сървъра, което да обслужва заявики към различни URL адреси. Най-удобно за целта можем да използваме Sinatra, или още по-добре Async Sinatra. Вече можем да доставяме SVG документите до клиентите, и да правим асинхронен “push” на съобщения към тях. Това което ще им изпращаме може да бъде XML или JSON съобщение (всъщност може да е всичко). Но най-ефективно от страна на браузера се обработват JSON съобщения, понеже те са просто сериализирани JavaScript обекти. При получаване на JSON съобщение, някакъв JavaScript в браузера трябва да намира елемента от документа, към който се отнася съобщението и да сменя някакви негови атрибути (или да го заменя с друг елемент). В HTML документите тези неща стават много лесно, благодарение на DOM стандарта, както и популярните JavaScript библиотеки от сорта на Prototype, Dojo и т.н., които го разширяват. Тези библиотеки не са много наясно с SVG и различните негови елементи, които могат да се срещнат в документа. Спасението в този случай беше библиотеката Raphaël, тя разширява DOM за SVG документи.
Мисля, че преди време Кнут беше казал, че съвременното програмиране все повече прилича на сглобяване на пъзел. В работата си по този проект, отделих адски много време за проучване на различни, вече реализирани библиотеки и технологии и много малко време за същинско писане на код. Но това не е задължително да бъде лошо.
Лампичките на Евроинс 2
Човек и нова кола да си купи, рано или късно му я блъскат. Моята я блъсна един доста типичен за българските пътища екземпляр. Набор 76, от Ихтиман, с ужасно бърз Голф 2. Той понеже “карането го може”, даже и с джапанки – гуми да не е луд да сменя. Един ден, карайки с “несъбръзена скорост”, по време на дъжд, на бул. България “спря” в 6 коли. До тук добре, все пак са 6, ако беше само в моята щеше да е значително по-зле. И така, с протокола от КАТ, право в Евроинс. Естествено, както може да се очаква, човек на подобно място попада на гишета и каки пред компютри. От каките “клиентът” взема формуляри, тип тоалетна хартия, и на тях започва да преписва данните. Данните на колата, данните от протокола на КАТ, данните на фирмата, данните на шофьора. И много други данни, намиращи се на други формуляри тип тоалетна хартия, които Евроинс очевидно грижливо пази в папки, шкафове, мази и т.н. След преписването идва огледът. Няколко бацета слизат от офиса долу в гаража, да документират щетата – с писания, снимки и чудене. Понеже едното баце не беше обърнал внимание на протокола от КАТ в оригинал и копие, които се намираха в ръцете му, опита се да мине с номера, че нямало да се вместим в 10% от общата застрахователна стойност (която се полага без протокол). Като видя, че протокол все пак има, в два екземпляра, беше готов да дава пари. Естествено мен пари не ми трябват – трябва ми ремонтирана кола. И така, колата стигна до сервиза на Евроинс, който се намира на китната софийска улица Луи Аиер. Луи е характерен с това, че една от многото улици в Манастирски Ливади, която стига на 10-15 метра от Околовръстното – но не и на самото Околовръстно. Тъй като в тази част на София, условия за пешеходене практически няма – за да се стигне до там (или от там), човек трябва да разполага с някои базови уреди за оцеляване – добри обувки, GPS и кучегон. Приемането на колата в сервиза се оказа не толкова проста работа. За да приемат колата, от сервиза на Евроинс, от Евроинс трябвало да направят втори оглед. Понеже в протокола от първия оглед били написали, че задната врата трябва да се ремонтира, пък тя не подлежала на ремонт. Наложи се да обяснявам на приемчика, че всъщност мен въобще не ми дреме какво ще се разбира Евроинс с Евроинс. И така, след няколко дни правиха повторен оглед, с други думи мотаха се няколко дни. Срокът за смяната на задна врата с няколко пластмаси и изправянето на предна беше фиксиран на около 1 седмица. Естествено това стана с преговори, нямало части, не било ясно дали има на склад, не било ясно кога ще дойдат, не било ясно на колко пъти ще се поръчат. 2 седмици по-късно, с много бутане, юркане и подсещане по телефона – колата беше готова. В уговорения час трябваше да си я вземем. С радостен вид и усмивка на устата, приемчика даде ключовете. Това не беше необходимо, понеже колата беше отключена. Централното заключване обаче не работеше, след кратко чудене от страна на приемчика – стана ясно, че никъде в колата няма ток. Обяснението на приемчика успя да ме извади извън равновесие:
- Нали знаете, в колата има едни лампички, които светкат, като се отворят вратите. Понеже вратите на вашата кола бяха ремонтирани и сменяни, тези лампички са светили дълго време и акумулатора е паднал. Ако искате оставете кола да ви го заредим.
Добре, мързяло ги е да махнат клемата на акумулатора, мързяло ги е да изгасят плафоните, но защо трябваше да ги мързи да ми заредят акумулатора преди да ми дадат ключовете? С изправянето на ламарините, смяната на вратата и боядисването се бяха справили без забалежки. Обаче бяха “забравили” да сложат част от пластмасите, които запушват различни отвори по вратите. Също така, бяха сложили всички гумени оплътнения от старата врата, на новата вратата. Като с просто око се вижда, че голяма част от тях са скъсани. Оправданието беше, че не са знаели, че желая да се сменят. Това наложи баналния въпрос – а дали не са забравили да монтират накладки, или да налеят спирачна течност? Най-смешната част от приемането на колата беше приемно-предавателния протокол. Оказа се, че всъщност, според приемчика, човек не може да напише нищо в полето “забележки” на протокола. Беше категоричен, че ако има забележки, колата трябва да остане там, за да ги отстранят. Отказа да напишем “паднал акумулатор” в това поле. След 2 седмици без кола, и цялото разтакаване от тяхна страна, нямаше никакъв начин да ги чакам още 4 часа да зареждат акумулатор. Очевидно за да вършат работа от Евроинс, човек трябва да ги бута и да им казва какво да правят. Явно се очакваше аз да им кажа да сменят гумените оплътнения, аз да им кажа да изключат плафоните, аз да им кажа да ми заредят акумулатора, аз да им кажа, че на вратата има декоративна лепенка, аз да им кажа, че не са запушили всички дупки по вратите. В крайна сметка, не стана ясно – аз ли съм клиент или те?
Коджабашиевизми 3

Из статия в dnes.bg попаднах на следните подробности от новия проектозакон за образованието:
“Новият проектозакон за образованието предвижда учениците да минават и с двойка в следващия клас, но според Коджабашиева, това не трябва да поражда остри коментари в обществото, защото това се случвало и в момента.”
Така е, това не трябва да поражда остри коментари в обществото. Това трябва да породи обесването на заместник-министъра на образованието Милка Коджабашиева на пилоните пред НДК, филмирано и излъчвано на живо по всички телевизии. Безспорно, това е най-голямата министерска простотия, която някога съм чувал. Не мога да си представя, как един нормален, влизал в училище човек, би могъл дори да си помисли за подобна глупост. Тази патка заспала обаче е министър, не само че си го е мислила, не само че го е казала, но се опитва да го пробута и в закон. Бях започнал да се чудя, кога на сцената ще изгрее по-рафиниран дебил от Симеон Дянков. И ето, че не трябваше да чакам дълго.
