Mon, 28 Jun 2004

CIFF parser

Митко Миладинов преди време се сдоби с Canon Powershot G3 и не след дълго по сензорите на апарата се появиха мъртви пиксели. Проблемът има чисто софтуерно решение като се интерполира стойността на мъртвия сензор от околните му събратя по цвят. Това беше и една от функциите на програмата dcraw.c на Дейв Кофин. Неприятното е, че на изхода си dcraw винаги дава PPM-файл, а ние си искахме CRW (оригиналният недокументиран суров формат, използван във фотоапаратите Canon), само че със замаскирани мъртви пиксели. В началото на годината с Митко чоплихме този проблем няколко дни, но без резултат.

Тази вечер захраних тялото и душата си с ракия, цаца и сладки приказки. Настаних се удобно пред компютъра и се гмурнах в дебрите на CRW. Прекарах в упорито четене на изходния код на libraw. Няколко пъти криввах по грешна посока и губех доста време, докато се върна на правия път. Все пак CIFF-структурите, изграждащи CRW не са чак толкова сложно нещо, но поне малко документация да имаше... Бе то било същото като TIFF, с тия особености, че вътре наподобява директорийна структура с разни оптимизации по нея. Представете си например такава файлова система, в която за по-кратко съдържанието на файла може да се запази върху самия директориен запис, ако дължината на файла не надвишава 8 байта. Примерно. (В TIFF ограничението е 4 байта.)

С учебна цел пренаписах и сглобих на Питон нещо средно между parse.c и libraw (само в частта им за Канон). Първите лъчи на слънцето завариха новородения парсер на CIFF. Задача номер едно е изпълнена -- изчитам целия CRW в структури от данни. (Да живее модула struct!) Като страничен ефект моят парсер генерира XML-файл представящ всички CIFF-структури. Не беше нарочно -- просто след няколко часа пред конзолата не намерих по-ефективен начин за dump на вложени структури. (Да, не ползвам дебъгер и искам да виждам структурите си черно на бяло.)

Следващите задачи са:

- разкомпресиране на суровото изображение

- интерполиране на мъртвите пиксели

- компресиране на вече коригираното изображение

- сериализация на структурите обратно в CRW

Чакат ме вълнуващи моменти! :-)

След няколко часа ще дойдат моите колеги за да започнем да мятаме нашия проект. А аз дотогава ще взема да ударя наколко остри кафета в главата си...

Fri, 25 Jun 2004

Еньо

Преди 10 години на Еньовден имаше гадно вълнение и вечерта на малкия кей във Варна с Тенчо се хванахме на бас дали ще мога да преплувам до буната. Не умеех да плувам добре, вълните бяха големи и черни, но се справих, за моя и негова искрена изненада. Това беше периодът на моя луд момчешки проект-мечта "Еньо", за който може би само Пешо все още си спомня. ("Еньо" беше шеговита игра на думи с ENIAC.) Малко по-късно Еньо вече беше лирическият герой от моите псевдо-съчинения, които творях през първия семестър в Университета.

На Еньовден точно преди 3 години във Варна беше ужасен пек. С Пешо седяхме в сянката на кестените край старото училище, въздишахме и си говорехме за миналото и за това, което ни очаква. И двамата усещахме, че присъстваме на края на един период от живота си. След години сътрудничество пътищата ни се разделяха.

Този ден разбрах, че Пешо и Силвия чакат дете. Бяха диви и щастливи. Усмихнах се. Благовест по това време беше вече на 3 години.

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

-- Тати, виж, те имат очички! -- възкликна Благовест щом получи порцията си трицона, а след кратка пауза добави -- А ние имаме вилички!

Същата нощ не можах да спя. На другия ден сутринта вече бях в моряшка униформа на острова под Аспаруховия мост. Така и не успях да възстановя живота си след това.

Точно преди година излязох от работа по обяд и се качих на първия тролей. Съдбата си знае работата. В тролея срещнах Калин, моят верен другар от Пясъка. Пихме бира в "Кривото" и всеки продължи по пътя си. На този ден останах съвсем сам, но още не подозирах това.

Днес отново живея във Варна, а малкият кей е разрушен от вълните.

Mon, 21 Jun 2004

Мистерия

Днес цял ден гоним тайнствени грешки в проекта. Сякаш приказната любов край водните лилии бе вълшебен сън.

Fri, 18 Jun 2004

Гном 2.6

След като вчера направихме deploy на проекта на отдалечените тестови сървъри, днес се престраших да премина на новия Гном 2.6.

Чувствам се по-комфортно и плавно от всякога. Пространственият Наутилус е неоправдано оплюван. За мен това е чудесен спомен от OS/2 Presentation Manager. Идеята за директорията с файлове-шаблони също я знам оттам.

В диалога за отваряне/запис ми липсва старото текстово поле и функцията за попълване с Tab. А иначе Кольо е прав, че SMB browser-а работи чудесно. Вече няма да се налага толкова често да монтирам споделени SMB-ресурси, които така ефективно задръстват клетото ядро. (Работата с монтирани мрежови ресурси е една от най-слабите страни на Линукс, според мен.) Реших да дам нов шанс на Epiphany, поне докато новия Firefox 0.9 не влезе в Debian unstable. :-)

Разбира се, за един ден употреба не може да се прецени доколко промените в интерфейса са удачни. Тепърва ще изникват още неща, предполагам.

Wed, 16 Jun 2004

sad & sed

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

-- Добър човек си ти, момче -- каза ми тя и се усмихна.

-- Благодаря -- отвърнах.

-- Знаеш ли, ти като минеш оттук и винаги ми върви.

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

На сутринта се запътих към банката, за да уредя някои дела на Сдружение "Свободен софтуер", но един SMS на Кристина ми припомни, че съм пропуснал да взема печата на сдружението. Отложих за следобед.

На работа се хванах да парсвам jsp-файлове с навързани команди във верига, които накрая редактирах със sed. Мощта на конзолата няма аналог. Сашо Шопов правеше нещо подобно върху xsl-файлове, когато бяхме колеги. Днес през целия ден разменяхме консултации за sed срещу такива за Дебиан. В крайна сметка работата стана. :-)

Сега отивам да раздам останалите фланелки на редовната бирена среща.

Wed, 09 Jun 2004

Байпас

Днес решихме да пуснем GNU Mailman за обмен на поща в рамките на фирмата. С Пешо се наложи да доизкусурим причудливата мрежова конфигурация, която се образува в резултат на комбинацията от два доставчика на Интернет и калпав USB-модем.

Строихме теории за житието и страданието на някои определени видове пакети, опитващи се да излязат от вътрешната мрежа. Според една от теориите, един такъв пакет би трябвало да се зацикля между моста и шлюза. Двете машини си подават пакета една на друга като горещ картоф, докато той съвсем изстине (TTL=0) и не го изпуснат на земята (DROP).

Човек наистина трябва да има въображение за тая работа. Не им завиждам на системните администратори. Трябва да пият системно.

Tue, 08 Jun 2004

Leprository

Снощи Сашо Шопов ми се обади и едва не хленчеше на слушалката. Хардуерен срив е довел до пълната загуба на хранилището за изходен код http://source.rightnet.net, по което работех навремето. Вие правите ли редовно backup?

Вечерта пих с Ибрахим и Галя, тактично им съобщих за хранилището, след като вече си бяхме казали "Наздраве". (Нали го знаете оня виц за Иванчо в казармата?) Сетне отидох офиса да си почовъркам по моя любим G3. Инсталирах ядро 2.6.6 за PowerPC и OpenOffice.org 1.1.1 с bgOffice. Спах до него, разбира се, с вече отработената ми поза върху четирите стола.

Рано сутринта с Васето щурмувахме БУЛСТАТ и данъчните, а по обяд вече бяхме отличници с изрядни документи в срок. Хванахме последния ден от срока. Сега очакваме целият Управителен съвет да ни черпи при първа възможност. :-)

Mon, 07 Jun 2004

безсмъртна моя

Случвало ли ви се да станете свидетел на разтягане на времето? Зад себе си имате толкова емоции и впечатления, че просто се чудите как са се побрали в календара. Точно така и аз сякаш преживях цял месец за последните 5 дни.

Tue, 01 Jun 2004

Debian след LUG-BG

С Пешо гоним някакъв проблем-фантом, проявяващ се при добавянето на два метода в един Enterprise JavaBean. Засега имаме няколко фантастични хипотези.

Вчера междувременно платих на Ицо за новия стар Power Macintosh G3 (beige) и успешно му инсталирах Debian. Emacs хвърчи като комета! :-)

Започнаха да се появяват още летописи за легендарния LUG-BG. Както се вижда по историите на Жоро Чорбаджийски, Васил Колев 1, 2 , Дончо Ангелов и други, не можем да компилираме общ разказ за събитията. Вярно, открояват се синоптични моменти, но... всички истории се различават, дори понякога си противоречат, но всички до една са верни и истинни.

Утре на гарата ще видя усмивката на Елена. Пищната хубавица ми гостува във Варна за няколко дни. Опитвам се да запазя присъствие на духа и да не треперя от вълнение. Взех си метла за квартирата и довечера ще чистя, че да не се излагам много като домакин.