Send via SMS

Вторник, Ноември 30, 2004

Женски му работи

От известно време ми е по-стрес, отколкото мога да понеса и днес си взех почивен полуден. Та с една приятелка се размотавахме... и тя ми разказа нещо, което в началото ме накара да прихна от смях, а после да се замисля.

Става въпрос за това как една нейна приятелка разкарала гаджето си. Въпросната мадама е на 27, ама последният й бе на 21 (веднъж излизахме заедно, та съм ги виждал и двамата. Мадамата си я бива). Каква е причината за раздялата? Ами момъка уж имал проблеми с дишането и тя на няколко пъти намирала засъхнали сополи по възглавниците сутрин. В добавка “миришел някак си по-остро”... Казала му го направо :-D

Събота, Ноември 27, 2004

Универсалният боец

За пореден път се убеждавам, че разработчиците на компоненти в целта си да предоставят продукт, който да изпълнява функциите си в различен контекст (и с това да задоволява потребностите на клиента-програмист), изписват цяла каца подлежащ на оптимизация код.

Чудесен пример за това са компонентите на Macromedia Flash. Да вземем ScrollBar-а - със сигурност най-използвания от тях... Той копира 1:1 функционалността на системния scroll bar, което е супер. Заедно с нея е имплементирана и възможността да променяш външния му вид (така нареченото skinning), което отново е супер. Но това има и своята цена - изписан е бая код и поради същността на Macromedia Flash заедно с компонента се утежнява и крайния продукт - стига се до по-голям размер на SWF фаила, респективно по-дълъг момент на зареждане и т.н. Като добавим още няколко от компонентите на сцената и става "гомна с мед"(ударението пада на О-то). Спомняте ли си колко разработчици пуснаха олекотени версии на компонентите (т.нар. LightWeight версии)? Аз си спомням поне 3-ма(GhostWire например)... А да не говорим колко хора пък са пренаписвали компонентите за себе си или за фирмата без да го споделят или да предоставят сорс код!

Друг пример са typed DataSet класовете генерирани от Microsoft Visual Studio .NET или от XSD.exe... Ето задачка-закачка: Имам три бизнес единици - Hotel, Room и Price. Тъй като целта на бизнес процеса е резервация на хотелска стая, то единиците се навързват по следния логичен начин: обект от тип Hotel съдържа колекция от обекти тип Room, а от своя страна Room съдържа колекция от Price обекти - по един за всеки ден от престоя. Всяка бизнес единица разполага с нужния асортимент от членове-данни. Членовете-данни на Hotel и част от тези на Room се взимат от локална база данни, а останалото от хранилище, достъпът до което е скъп откъм ресурси. Като резултат от бизнес операция получавам колекция от Hotel обекти, която искам да кеширам в сесия, за да не се налага да правя ненужни и скъпи запитвания към гореспоменатото хранилище. Сесията ще е out-of-process и затова се налага сериализация(в последствие и десериализация). Тъй като процесът на сериализация/десериализация може да бъде доста скъп, когато трябва да се сериализират по-сложнички структури като Hotel с всичките му Room и Price колекции, реших да запазя и сериализирам само информацията, която не мога да взема от локалната база данни. Замислих се... чоплих си носа... чесах се по врата... ходих до тоалетна. И дойде то... Реших, да ползвам някакъв олекотен контейнер и че една typed DataSet е много подходяща за целта с всичките й там благини като вградена възможност за сериализация, а с помощта на ForeignKeyConstraint-ти и DataRelation щях да запазя взаимоотношението Hotel:Room и Room:Price. Проектирах XSD схема в XmlSpy за DataSet с три таблици (Hotels, Rooms, Prices) - по една за всяка структура и ги навързах с ForeignKeyConstraint-ти т.е връзката между Hotel и Room е общото поле HotelID в таблиците Hotels и Rooms, а връзката между Room и Price е общото поле RoomID в таблиците Rooms и Prices. В дефиниционната схема на DataSet-а указах, че ако HotelID e null искам системата да хвърля изключение.


<xs:element name="HotelID" type="xs:string" minOccurs="0" codegen:typedName="HotelID" codegen:nullValue="_throw"/>
Дотук всичко е чудесно. Сладкиши с мляко. Обаче когато опитах да генерирам DataSet клас с XSD.exe програмката, взеха да ми изкачат съобщения за грешки: схемата не била валидна. Валидирам в XmlSpy - няма проблем, всичко е тип-топ. Брях! От Google разбрах, че понякога, когато в DataSet дефиницията има релации между таблиците XSD.exe се дъни. Отворих схемата в Visual Studio .NET и си генерирах класа безпроблемно.

Реших да погледна що за код ми е генерирало студиото...

try {
    return ((string)(this[this.tableRooms.LocalHotelIDColumn]));
}
catch (InvalidCastException e) {
    throw new StrongTypingException("Cannot get value because it is DBNull.", e);
}
Баси... на всяко поле на което съм дал да хвърля изключение при стойност null имаше по един try-catch блок! А от Microsoft знаем, че try-catch блоковете не трябва да се ползват за подобни проверки т.е за щяло и нещяло... Ето защо промених кода на:
if( this[this.tableRooms.LocalHotelIDColumn] == System.Convert.DBNull )
{
    throw new NullReferenceException("Cannot get value because it is DBNull.");
}

В последствие махнах всякакъв код, който ми се стори излишен за целта. Размера на C# файла се смали от 70К на 43К и сега си имам една наистина лекичка DataSet. Тествах. Всичко си бачка пер-фект-но! Остава да направя един DAL компонент за нея и съм готов :)

И всичко това го пиша в 6 часа сутринта!? Ненормалник... Всъщност не съм единствения - U2 цяла нощ ми пяха A Man And A Woman. Кукуригууу!

Вторник, Ноември 23, 2004

A Star is born

“25-jährige Musikerin Maria Ivanova auf ihrem steinigen Weg in die Charts”
или преведено
“25-годишната музикантка Мария Иванова по нейния трънлив път към класациите”

Всеки ден в продължение на една седмица по националната телевизия на Австрия ще се излъчва документална-сапунка (уникален термин) разкриваща перипетиите на едно българско момиче - от самодейните музикални банди до подписването й на договор с EMI Music Austria.

В сряда ще бъде представянето на пробивния й сингъл в клуб Passage. Името му, както и част от него ще пусна, когато му дойде времето. Само ще подшушна, че в него имат участие и музиканти от легендата Tower Of Power добре познатa на меломаните, хехе

Сигурно се питате що е тоя пост... Ми щото това е първата ми братовчедка вееее!

Оптимизация в Microsoft .NET

Днес търсих из интернетя информация за тъй наречените best practices при сериализацията на обекти в .NET. Намерих една статия, която разяснява прилично как се правят фокус-мокус-бокусите. Статията е част от обширното Performance Best Practices at a Glance ръководство на Майкрософт, което определено се причислява към списъка ми със задължителните четива. Лошото е, че в момента поради липса на време мога само да го попрегледам набързо и да прочета секциите, които могат да ми бъдат полезни на момента.

Понеделник, Ноември 22, 2004

Виртуалната барманка

Уникална по рода си барманка - прави всичко само и само да е доволен клиента. Е... почти всичко.

За да я накарате да направи нещичко за вас трябва да напишете команда в полето и да натиснете бутона. Списъкът с команди е в XML формат и определено е доста обширен, така че само с налучкване няма да стане. За тези от вас, които не са наясно с XML ето част от тях:

striptease, rob zombie, light saber, turn into, beef curtain, ball bag, dirty pillows, sunshine girl, la hoya, chalk board, coyote ugly, star wars, sour puss, bad loser, rip off, count sheep, hand stand, kate moss, trot out, beastie boys, dr dre, method man, snoop dog, jay z, ja rule, lil kim, phone number, bottle cap, mariah carey, e mc, river dance, martial art, air guitar, stone temple, perl jam, limp bizkit, led zepplin, head bang, head banger, metal head, lei mek, hoola hoop, push up, jumping jacks, jumping jack, split leg, rear end, tail end, lip gloss, ta tas, big ones, cha cha, jack daniels, make out, southern comfort, pull off, turn off, pull out, whiskey sour, white russian, what up, you feeling, how are, how it, bloody mary, show off, darth vader, luke skywalker, kung fu, jiu jitsu
Желая ви приятно прекарване!

Неделя, Ноември 21, 2004

A List Apart се завръща

След почти тримесечно мълчание Интернет изданието за “Хората, които правят уеб-сайтове” - A List Apart, отново проговаря. Статията е Invasion of the Body Switchers и както всички статии в списанието си струва да се прочете.

Петък, Ноември 19, 2004

Търсят се чаши за вино!

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

Покрай винените чаши се сетих за един мой приятел... Поканил нашият една рускиня - пианистка. За целта сготвил, направил торта, купил винце... Само две неща пропуснал. Винени чаши и салфетки. Винените заместил с чаени(от онези големите, в които като дете си пил/пила мляко с мед), а за салфетки сложил прегънат на две и дооформен с ножица лист от принтер. Яли пили и се веселили. Накрая рускинчето му казало нещо от рода на: “Сори, батка, ама имаме несходство в характерите”.

Е, затуй са важни чашите! И салфетките. И приказките... Мдам.

Сряда, Ноември 17, 2004

Всичко мога, всичко знам

В първи клас играхме една пиеска, в която оклепан с варена тиква дребосък пееше:
Всичко мога, всичко знам!(2)

Поводът днес е секцията Services на сайта на студиото изработило страничката на “Шоуто на Слави”.

В гореспоменатата секция четем следното:

Our services include but are not limited to:
последвано от списък с услугите, които предлага студиото. Е добре, какво още предлагате, момчета и момичета? Кисело зеле? Пеене под душа? Или “к'вот ти трябва”? Освен това, ако съдя по сайта както и този на “Шоуто на Слави”, то мисля, че Web site design не би трябвало да е в списъка с услугите ви.

Мир!

Понеделник, Ноември 15, 2004

Програмист-единак

Днес попаднах на една полезна статия, която се опитва да отговори на въпроса “Може ли програмист-единак да бъде конкурентноспособен на екип от програмисти в разработката на висококачествен софтуер?”. Всъщност статията дава и насоки за писане на качествен код. Въпреки прочетеното оставам с убеждението, че господин Тричко-Зная-Всичко не е оптимален избор.

Неделя, Ноември 14, 2004

Умно, тати, умно!

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

Димов уточни, че мярката се налага във връзка с отправяните клеветнически твърдения към политици, държавници и магистрати, както и със случаите на заплахи за терористични актове.
И какви са тези клеветнически твърдения, които си ги сложил на първо място? Гарван гарвану око не вади! Как ви прилепя поговорката на всички вас мръсни политиченца, държавничета и магистратчета. Благодарение на гаменчета като теб, Росенчо, станахме и ще бъдем свидетели на подобни изцепки. Лошото е, че все ще се намери някой да ги подкрепи. Колкото и да не искам да го казвам - на калпав народ се падат и калпави управници. Хак ни е!

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

Петък, Ноември 12, 2004

Спортният хъс и женските колена

Увод

Хокей. Да, същият “хокей” в който се размахват тояги, във въздуха летят твърди предмети, а игрището е от достатъчно твърдичък и още по-достатъчно хлъзгавичък лед. За да се опазят здрави и читави, играчите навличат голяма част от предпазното облекло/снаряжение на сапьорите от LAPD.

Освен гореспоменатите потенциални опасности, грозящи участниците в играта, има и други, против които е трудно за де вземат предпазни мерки. Чудесен пример е т.нар. спортна злоба. Братче, изпитвал ли си желанието да спънеш невинно противника в момента, в който те “излъгва” и отнема футболната топка? Ами да дръпнеш за ръката по-бързо бягащия съученик в час по физическо? Аз щото съм го изпитвал. Като малък... и като не чак толкова малък :-) Мдам... спортната злоба.

Същина

Моята партньорка по танци е спортна натура - ходи на плуване, танцува (освен на салса ходи и на фламенко), от време на време отскача до фитнес залата, бяга за здраве... с други думи поддържа телесните си заоблености и вдлъбнатинки в доволно вдлъбнат и заоблен вид...

Та миналата седмица ходила момата да играе хокей. Раздали им там по някой и друг шлем, наколенници, налакътници, вързали им кънките и айде почваме. Дотук всичко е тип-топ. Обаче трябва да се има едно наум - внимавай къде, какво и как удряш. А не да размахваш стика наляво надясно както дървар размахва брадва. Чшш, тук има и момичета - не си само с Мики, Щефан и празноглавия Ханси... Именно един такъв празноглав Ханс изхакал един стик в коляното на девойчето. Изследвания, рентгенови снимки и т.н. За едно кафе не можем да се видим, а за танцуване - да не говорим.

Като за край

До преди малко си ревахме по телефона. Тъкмо взехме да си свикваме и виж какво се случва. Лоша работа... Ще трябва да танцувам с друга - то е ясно.

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

Както се казва поживьом-увидем :-/

Неделя, Ноември 07, 2004

Нека битката започне!

Малко преди сблъсъка с пода

Бам! Подсечка и си вече на земята.

Под “капуера” разбираме бразилско бойно изкуство-танц. Красиво и изключително зрелищно, то може да заплени всеки. Мен например, хехе...

Във Виена са ми познати две групи занимаващи се с капуера. Разгледайте малко снимки.

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

Сряда, Ноември 03, 2004

Пародия американска

Целият свят следи изборите в САЩ - медийните гиганти са си плюли в устите и само за това говорят/излъчват/пишат. Вярно, че Щатите са световна сила и това кой ще бъде начело е въпрос важен, но моля пощадете ме - вече ми писна!

Днес, по време на сутрешния банан(кафе не пия, както и не пуша... заменям ги с плодче някакво) преглеждам новинките и попадам на една RIA на сайта на BBC - US Election's Map. Много изпипано и достатъчно сложно, за да ме заинтригува. Постарали са се разработчиците. Само дето при подобни карти винаги има един досаден проблем: опитай да избереш някоя по-малка и “назъбена” част от картата. Хавай или Ню Джърси например... Трудно е да ги нацелиш.

Та исках да кажа, че американците са тъпи парчета. Офффце! Пак ще изберат избраха Бушчо :-/

*