Sunday, February 25, 2007

Replacing numbers in text files

Recently I've encountered a very annoying problem - I have a text file which consists of the following "1. Text & Numbers 2. Text & Numbers 3. Text&Numbers...", etc. up to 60. Now since I want to add some more things in the beginning I have to renumber the rest of the list accordingly. Say I want to add seven items, then the numbers followed by dots should revert to the number seven+current number. Well, it turns out I could not find any simple way of doing this. A colleague referred to Emacs, so I will spend the next few days (whenever time is available) in learning the basic commands, but at first sight I couldn't spot something useful.
If I am unable to find other solutions, I guess I will just have to write a simple program in java or C to deal with the nuisance.
Now back to work.

Friday, February 23, 2007

Залез над Еденспур

Първо се извинявам, че не съм писал отдавна - напоследък съм минал на 14-15 часов работен ден и общо взето не ми остават никакви сили да мисля - сега си взех малко почивка, та реших да драсна някой ред.
Какво е Еденспур и защо залез? Историята е сложна и корените й стигат няколко години в миналото (четири или пет най-много). Някога живеех при по-благоприятни обстоятелства, когато слънчевата светлина не беше само абстракция, която се процежда през прозореца, усмивките на хората бяха истински и неподправени, а проблемите ми се свеждаха до това да пия ли още една бира или не. Почти. Донякъде. Все пак това са спомени, а спомените са винаги по-различни от това, което се е случило в действителност.
Веднъж една приятелка ме попита (с нея имахме навика да пропускаме лекции, за да ходим да играем шах и да пием чай) не ми ли липсват онези времена. Липсват ми и не ми липсват. Има нещо зашеметяващо в блестящата светлина, която безметежно се сипе над разцъфналите усмивки на дърветата, но има и едно мрачно удовлетворение от добре свършената работа - едното е чиста радост, родена от спокойствието на духа и сиянието на всеки отделен миг, а другото е триумфът на духа над грубата съпротива на реалността. Едното е спускане по течението, отпиване от хармонията, другото е преборването с проблемите, извайването на волята.
Но да се върна на "Залез над Еденспур" - това беше проект за разказ, който се зароди в онези безвременни години, в онези слънчеви и усмихнати сънища, в безцелните скитания и търсения. Бях нахвърлял някакви бележки в "Гнездото на Провала"(или Трафопоста, както други наши колеги го наричаха) относно 'скелета' на разказа - това е накратко конспективно описание на случващото се, героите и прочие. (Препоръчвам на всеки, който има повече ентусиазъм, отколкото сериозност, да прави същото).
И така вчера, докато си изхвърлях стария портфейл (скъса се, горкичкия) и го освобождавах от съдържанието му, попаднах на въпросните записки.
Направо си беше едно пътуване във времето. И като остане време ще седна наистина да го напиша. Ако не друго поне воля и желание имам в излишък.

Sunday, February 18, 2007

Понякога

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

Saturday, February 17, 2007

Latex Formulas in Blogger

I came upon this very nice script for inserting LATEX formulas in Blogger. Many thanks to Wolverine for writing it :-) Here is a link to the place where you can download the script (you'll need FF and Greasmonkey):
After some experiments and reading the contents on the site used to create the image I think I found the solution to background color problem (though it is still limited to white or black background of the image): just type (after the first two $ and before the formula) the following (without the quotation marks and instead of color type the color you want the formula to be displayed in)"\color \opaque"
For example, here is a formula written with \red \opaque in front of it:
The code without the $ is \red\opaque \alpha_{i} + \sum_{j=1}^{k} n^{\frac {1}{x_j}} = \beta_{j}.


Another possibility is to write \reverse \opaque in front of the formula:

Also: "\reverse \cyan\opaque \alpha_{i} + \sum_{j=1}^{k} n^{\frac {1}{x_j}} = \beta_{j}" produces


and "\reverse \cyan\opaque \LARGE \alpha_{i} + \sum_{j=1}^{k} n^{\frac {1}{x_j}} = \beta_{j}"

Автоматичен преводач 2

Вчера, докато стоях на една доста скучновата конференция - две бяха единствените смислени неща, които се казаха като информация - започнах да си драскам. После се сетих, че така или иначе смятам да се позанимая с изучаването и евентуално създаване на автоматичен преводач, та реших да направя един brainstorming по темата. Още не съм имал време да се запозная като хората с важните неща в областта - например с базите данни и онтологии (като WordNet), разработени за английския език (разбира се, идеята е да се използват готови бази данни и онтологии за всички езици - първо, защото аз и хората, които може би ще въвлека, са мързеливи, и второ, защото изграждането на подобни лексикални бази данни и онтологии е свързано с немалко трудности).
Ще се опитам да разбия задачата за създаване на Автоматичен преводач до няколко по-малки задачи. Като за начало:
Първо (и най-важно, както и най-сложно): Намиране на подходяща метрика за съответния език. "Метрика" тук се употребява условно - има се предвид реалнозначна функция, която да задава "смислово разстояние" между две думи. Предвид спецификата на всеки език, е логично да се предположи, че за различните езици тази метрика ще бъде различна.
Второ: Определяне на влиянието на контекстуалната рамка върху метриката. Също много сложна задача - най-малкото едно изречение може да бъде разгледано в контекста на съседните пет (предшестващи и следващи изречения) или на съседните десет. Как да се определи минималната контекстуална рамка за всяко едно изречение? И още по-сложния проблем: как да определим промяната в метриката, индуцирана от съответната контекстуална рамка за въпросното изречение?
Да обобщим:
1) Трябва да се създаде подходящо пространство (векторно) от всички думи в даден език и да се избере подходяща метрика за него.
2) Определяне на контекстуална рамка за подтекст на даден текст. Определяне на промяната в метриката за съответния подтекст.


Wednesday, February 14, 2007

Гледах една локва...

Точно така. Днес гледах една локва. Всъщност бях в странно настроение. Свърших съвсем малко работа и загубих желание да правя, каквото и да е. Не винаги всичко се развива според желанията ни.
Наскоро един приятел ми прати да попълня един психотест, който окончателно потвърди подозренията ми, че съм напълно побъркан. Или не напълно? Не знам. Във всеки случай, след като работата замря и известно време издирвах апокрифните произведения на Кенет Рексрот, които се оказаха не толкова апокрифни, някак попаднах на едно стихотворение на Пърси Шели (Dirge за по-любопитните) и съвсем се настроих да си ходя. Уви, не... Оказа се, че една статия, която пиша от вече не помня кога пак трябва да се преработва. И пак на мен се падна честта.
Около това време стана ясно, че всичките планове за каквото и да е тази вечер пропадат.
А навън продължаваше да вали.
Спуснах си се пеша през Борисова и, докато си вървях под дъжда, погледът ми попадна на една локва. Доста голяма. Капките, които падат образуват красиви водни кръгчета. Преплитащи се пръстени. Красота. Изглежда почти живо. Като някакво дихание от отвъдното.
И понеже си нямах друга работа се спрях да я погледам.
Много странно нещо е това гледането на локви. Когато човек се съсредоточи върху окръжностите всичко останало се изгубва - остава само той и локвата. А след известно време остава само локвата. Прекрасно усещане.

Monday, February 12, 2007

За природата

Има неизброимо много светове. Всяко живо създание, всяко съзнание, за колкото и примитивно да го смятаме, изгражда собствен свят. Удивително е, че сред цялото това различие успяваме все пак да намерим сходни неща. Това е чудо. Магия. Късмет.
Всеки от тези светове се стреми да остане единствен, да доминира, да определя, да управлява. Болката във всеки един е различна, любовта във всеки един е различна, вярата, надеждата, отчаянието са различни. Това, което е общо за всички тях е борбата за оцеляване, жаждата за живот; и заедно с това копнежът по смъртта.
Защо даваме право на съществуване на едни светове, а заличаваме други? Защо дори не се опитваме да открием, да разберем, да достигнем до милиони от тях? Ние не ги уважаваме, ние не ги забелязваме, ние ги унищожаваме без дори да си даваме сметка, че те съществуват.
Но ехото им остава.
Пронизва сънищата и мислите на тези, които са способни да го чуят.
А съвестта не е просто дума.

Thursday, February 8, 2007

Автоматичен преводач

Пак не съм писал от доста време, но този грип се оказа доста упорит. Спирам антибиотика в петък. Смятах да пиша отново за отвлечени неща като например как животът е красив, ако можеш да го направиш красив и че вярата е единственото нещо, което може да породи вяра. Щях да пиша за трагедията на един свят лишен от визия - защото именно идеята за нещо по-голямо, по-ценно, по-истинско придават смисъл на всяко съществуване. Онези "духовни същества", за които Екзюпери говори толкова красноречиво. Щях да пиша и за бездните от неразбиране между хората - естествени и непреодолими, заради начина на съсъществуване, който сме си избрали.
Вместо това ще пиша за автоматичен преводач.
Какво представлява автоматичният преводач - програма или устройство, което превежда даден текст от един език на друг език.
Основни спънки са:
1) Идиомите - буквалният им превод е обикновено безсмислен или с погрешен (несъзвучен с контекста) смисъл
2) Граматическата структура и съгласуваност - всеки език има известни граматически правила за конструиране на изречение, които често са доста сложни.
3) Многосмисловост на дума - ако една дума може да се употреби в няколко значения, то като кое от тях трябва да се преведе? Очевидно това трябва да се определи от контекста, но...как да се направи това "алгоритмично".

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

Причините:
Да знам, любопитно е защо изобщо ми е хрумнало да мисля за такива неща. Две са мотивационните сили, които движат прогреса - мързел и алчност. Представете си, че успея (то е ясно, с известна помощ) да направя успешно (или сравнително успешно), такъв автоматичен преводач - 1) работата ми като преводач ще се улесни, 2) ако продуктът е добър може да се продаде изгодно.
Хубаво е, че успях да намеря рационално обяснение за действията си.

Saturday, February 3, 2007

Събудих се с температура

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