В центъра на кое?
25 август 2010 16:02В центъра на селото има мини-зоопарк с ягуари, лами, сърни, елени, муфлони, крокодили, костенурки, орли, фазани, диви патици, щрауси, пеликани, японски петли, токачки и други екзотични животни.
Като чревца
21 август 2010 05:19When the film was first shown at the Berlin festival in 1979, one of the biggest incidents of its history resulted when the Soviet delegation walked out in protest against the way the film portrayed the people of Vietnam. The ensuing domino effect led to the walk-outs of the Cubans, East Germans, Bulgarians, Poles and Czechoslovakians, and two members of the jury resigned in sympathy.
Бор Чвор номер някой си
18 август 2010 14:55Несъмнено ще има дни, в които ще се чувстваш адски глупав, безполезен и творчески импотентен. Случи ли се това, не губи надежда: на милиони хора също им се е случвало и някои от тях са написали любимите ти книги или знаят физика. Вместо това си припомни, че когато си можел да си татуираш йероглифи, не си го направил.
Game over
16 август 2010 01:56Peter: Sorry – I forget I am talking to a script. Would the turnaround time be closer to a day or a week?
Wayne: :) this is not a script
Peter: Can you prove it? :)
Wayne: I am afraid of death
Peter: Could be scripted… What is the 3rd number in the fibonacci sequence?
Wayne: No clue
Peter: :D Fair enough… It is 2
Song of the day
11 август 2010 05:57Song of the day
27 юли 2010 01:04Song of the day
24 юли 2010 12:15<CTRL-[HWUM]>
22 юли 2010 04:55Enter и Backspace са ми едни от най-трудните клавиши за натискане. Докато се опитвам да минимизирам употребата на втория, първия е задължителен. Натискам с извиване на китката (без да си местя ръката) за да не изтърва home row-а. Това не е никак здравословно – проблемите ми с ръцете започнаха когато правих това на по-голяма клавиатура.
От известно време нося накитници, които ми държат китките изправени и не ми позволяват това движение. Така се налага да местя цялата ръка. Освен че е досадно, така да изпускам home row-а. За щастие, в повечето среди има решение.
В шеловете CTRL-H работи като Backspace – трие последния символ. CTRL-M пък функционира като Enter. На всичките ми компютри CapsLock работи като Control, което прави тези комбинации лесни – трябва само да отпусна лявото си кутре надолу и да натисна клавиш с дясната ръка. Допълнително, CTRL-W трие последната дума, а CTRL-U всичко до началото на реда.
Първоначално ми бе трудно да свикна с тези комбинации, но след няколко дни ми станаха удобни. Работят във Vim и няколко други програми. За нещастие, в браузърите и TextMate имат различно поведение. Но въпреки това, горещо ви препоръчвам да ги пробвате и да видите дали така не е по-добре.
Като бонус – CTRL-_ работи като undo в bash и zsh. Ако изтриете нещо, може да го върнете обратно. Най-често го ползвам с glob expansion-а в zsh – когато напиша rm *_spec.rb и натисна Tab, zsh замества *_spec.rb с имената на съществуващите файлове. Така мога да видя дали това наистина са нещата, които искам да изтрия, и ако не, натискам CTRL-_ за да се върна до rm *_spec.rb и да коригирам.
А вие? Има ли непопулярни „горещи клавиши“, които постоянно използвате?
2242
10 юли 2010 08:16Колкото и да ми е мъчно, че съществуват хора, за които Ефектът на пеперудата или някой Батман са най-добрите филми на всички времена, три пъти по-тъжно е, че има такива, за които Ченгето киборг е най-тъпият такъв. Да не ти е интересно до къде би могла се простира човешката глупост в кино изкуството означава да не ти е интересно кино изкуството въобще.
Never give up
06 юли 2010 13:09lidia: I also report a tiket to send and I have answered the esYGP tiket ID-294 039
Wayne: You will be replied to soon
lidia: tiket to send a support and I have replied
Wayne: And you will be replied to soon
lidia: no
lidia: no answer
Wayne: You will be replied to soon
lidia: ok
lidia: thanks
А ти превеждаш ли WordPress на български?
28 юни 2010 16:05Здравейте, смотаняци!
Ако имате или някога сте имали блог (а какво е блог?) и ако сте българи (а аз мебел ли съм?), е много вероятно да сте ползвали именно машината на времето, наречена WordPress, и именно българския й превод, почти изцяло дело на Николай Бачийски. За съжаление, но съвсем резонно, той не може да преведе последната версия сам, и тук идвате вие (смотаняците от първото изречение). Не бъдете тъпите егоисти, които сте били през целия си досегашен живот! Ако имате съвършен английски и поне адекватен български, интимно и в дълбочина познавате WordPress и винаги сте се чудили как можете да дадете нещо обратно, ето как точно става. Този сезон всички готини деца превеждат WordPress – колко точно готин си ти?
Кратък урок по история
16 юни 2010 08:20Често има любопитни имена в компютърните неща. Може би знаете vi. Там, например, има следната команда:
s/foo/bar/
Това замества първото срещане на foo с bar в текущия ред. Съществува и по-обща версия – g:
g/something/s/foo/bar/
Това замества foo с bar на редовете, които съдържат something. Демек, g приема шаблон и команда, която прилага на всички редове, в които шаблона съвпада. Ето как може да изтриете редовете, съдържащи something:
g/something/d
Тези неща идват от един още по-архаичен текстов редактор – ed. Там има команда p, извеждаща всички редове, в които шаблона съвпада. Но все пак, ето как да изведете всички редове от текущия файл, съдържащи something:
g/something/p
Впрочем, something е регулярен израз – „regular expression“, често съкращавано като „re“. Общия запис на командата е:
g/re/p
И ето откъде идва името на една от най-използваните shell команди в POSIX света.
Забавно, а?
Song of the day
02 юни 2010 15:42Структури vs. обекти
30 май 2010 05:19Има нещо некомфортно в тезата „всичко е обект“. Ето едно любопитно разсъждение, на което попаднах наскоро (в Clean Code, която препоръчвам):
Обектите скриват данните си зад абстракции и предлагат функции, които работят с тях. Структурите предлагат директен достъп до данните и нямат смислени функции. На практика са противоположности.
Изтъркан пример в Ruby:
class Circle def initialize(center, radius) @center = center @radius = radius end def area Math::PI * radius * radius end end class Square def initialize(top_left, side) @top_left = top_left @side = side end def area side * side end end
Клиентският код изглежда така:
Circle.new(Point.new(0.0, 0.0), 2.0).area Square.new(Point.new(0.0, 0.0), 2.0).area
Всяка фигура отговаря за собствените си операции. Обектно-ориентирано програмиране по учебник.
Ето и структурния подход:
class Circle attr_accessor :center, :radius def initialize(center, radius) @center = center @radius = radius end end class Square attr_accessor :top_left, :side def initialize(top_left, side) @top_left = top_left @side = side end end module Geometry def self.area(shape) case shape when Circle then Math::PI * shape.radius * shape.radius when Square then shape.side * shape.side end end end
…и клиентския код:
Geometry.area(Circle.new(Point.new(0.0, 0.0), 2.0)) Geometry.area(Square.new(Point.new(0.0, 0.0), 2.0))
Сега, сигурно искате да ме замерите с Refactoring и да престанете да четете. Но дайте шанс на процедурния код за момент. В някои случаи има интересни предимства.
Например, какво става ако искате да добавите нова фигура? В обектния подход е лесно: създавате нов клас и имплементирате операциите. В структурния е по-трудно – освен новия клас, трябва да промените всяка операция в Geometry. Очевидно тук обектите са по-подходящи.
Но ако искате да добавите нова опреция? В обектния подход трябва да промените всяка една от фигурите. В структурния е лесно – добавяте нов метод в Geometry. Тук структурите са по-подходящи.
Накратко
ОО кодът ни позволява да добавяме нови типове, без да променяме съществуващите операции. За сметка на това, когато добавяме нова операция се налага да променим всички съществуващи типове. Процедурният код ни позволява да добавяме нови операции, без да променяме съществуващите типове. За сметка на това, когато добавяме нов тип се налага да променим всички съществуващи операции.
Прочетете го пак.
Заигравка с Ruby
Има нещо много досадно в процедурния подход – трябва да пишете Geometry навсякъде. Ruby ви позволява избегнете това:
module Geometry def method_missing(message, *args, &block) if Geometry.singleton_methods.include?(message.to_s) Geometry.send(message, self, *args, &block) else super end end end class Circle include Geometry end class Square include Geometry end
Така клиентския става:
Circle.new(Point.new(0.0, 0.0), 2.0).area Square.new(Point.new(0.0, 0.0), 2.0).area
От друга страна, част методите на Square са имплементирани в друг модул (Geometry) и то по крехък начин. Не съм сигурен, че допълнителната сложност си заслужава.
Visitor
Ако приложите visitor design pattern (или какъво и да е double-dispatch) в ОО подхода, може да извъртите нещата така, че добавянето на нови операции да не предизвиква промяна във всички типове. Гъвкавостта на Ruby ви позволява да направите това с малко код. От друга страна, това (1) прави кода доста по-сложен и (2) го кара да изглежда по-процедурен. Рядко попадам на случаи, в които е оправдано.
Една генерализация
Това ръзсъждение може се генерализира лесно. Въпросът опира до това дали да държите операците заедно с типовете или отделно от тях. В обектно-ориентирания подход те са заедно, докато в процедурния – отделно. Така може да приложите тази логика за Haskell или LISP.
Обобщение
Във всяка достатъчно сложна система се срещат и двата случая. На места обектите са по-подходящи, на други – структурите. Не всичко е обект – понякога имате нужда от прости структури и процедури, които боравят с тях.
От друга страна, много неща са обекти.
Song of the day
29 май 2010 09:20Towel day 2010
24 май 2010 16:10Хавлията е навярно най-полезното нещо, което един междузвезден стопаджия може да притежава. На първо място тя е много ценна в чисто практическо отношение — можеш да се загърнеш с нея, за да се топлиш, докато подскачаш по мразовитите луни на Джаглан Бета; можеш да легнеш върху нея на плажа, покрит с жарък мраморен пясък, и да дишаш опияняващия морски въздух на Сантрагинус V; можеш да подремнеш под нея и под звездите, огряващи с яркочервените си лъчи пустинния свят на Кактафун; би могъл да я опънеш като платно на минисал по ленивите тежки води на реката Мот; намокрена, ще ти послужи и в ръкопашен бой; можеш да си завиеш главата с нея, за да не дишаш отровните изпарения или за да не срещнеш погледа на кръвожадния звяр Бъгблатер от Траал (едно невероятно глупаво животно, което си мисли, че ако ти не го виждаш и то не може да те види — но макар и тъпо като галош, то е много, много кръвожадно); ако изпаднеш в беда, можеш да я размахаш над главата си в знак, че се нуждаеш от помощ, и, разбира се, можеш да се избършеш с нея, ако все още ти се струва достатъчно чиста.
Зад кулисите на Големия финал
22 май 2010 08:45Финалът в Шампионската лига е една от най-големите дати в сезона на европейския футбол, може би най-голямата, освен в годините когато има и Европейски първенство. Организацията на такъв финал обаче не е лесна задача. За да може всички на стадиона, всички пред телевизионна и всички в града да усетят атмосферата е нужна изключително голяма подготовка.
Повече от 15 години Паул Бургес се грижи за футболни терени. Днес той е отговорен за „Сантяго Бернабеу“, един от стадионите преживели велики триумфи и огромни поражения. „За всеки мач моята задача е теренът да изглежда така все едно никой не е излизал на него досега“, обяснява той. „Бях 12 години в Арсенал, преди през 2009 г. да ме поканят тук“, пояснява той. Досега той е печелил 5 пъти наградата за най-добре поддържан терен в Премиершип и иска всичко на финала на Шампионската лига също да е перфектно.
Подготовката тече в пълна сила и за ТЕАМ, маркетинговата агенция на Шампионската лига, която е отговорна за логистиката на телевизиите и медиите. 700 места за журналисти са създадени в новоизградена постройка зад основните трибуни на стадиона. Седмица преди големия мач още осем панорамни студия със стъкло към терена бяха окачени на покрива, за да приемат екипите на телевизиите, които отразяват събитието. То пък ще бъде предавано от 33 камери, които няма да изпуснат от погледа си никое ъгълче на стадиона.
„Денят на мача е най-спокойния от всички дни подготовка“, обяснява ни Маркус Хьоевел, който ръководи екипът на ТЕАМ за финала. 24 часа преди мача са с последните тестове на оборудването, залата за пресконференции и микс зоната. Там където след мача е най-голямата „битка“, за да може всяка медиа да вземе мненията на основните действащи лица.
Логистиката по транспорта на трофея е не по-малко интересна. Освен за поръчката на медалите и съдиите, плакетите за стадиона-домакин и наградите за играч на мача Патрик Вонез е отговорен и за то трофея да стигне до тъч линията преди началото на мача. Още след като пристига в испанската столица купата стои в хотелската стая на Вонез, два дни преди мача е занесена на стадиона, където се съхранява в стая с високо ниво на охрана.
„Невероятна част, но и огромна отговорност“, така описва задачата си Вонез. Въпреки, че ще бъде на „Сантяго Бернабеу“ той няма да види много от случващото се на терена, защото освен да подготви медалите ще трябва да подготви и гравирането на купата. Веднага след последния съдийски сигнал днес, в рамките на 15 минути върху купата трябва да бъде изписано името на новия й носител преди капитанът на шампионът на Европа да я вдигне в ръцете си.
Важна част от финала е церемонията преди него. Обикновено подготовката й отнема няколко месеца, в които хореографи и историци се грижат заедно, за да пресъздадат атмосферата. „Най-хубавата част от тези церемонии е че и играчите участват в тях в момента, в който излизат от тунела на терена“, споделя Диего Риберо, който е отговорникът на УЕФА по тази част.
За да се движи всичко по вода с тази церемония обаче отиват много нерви и подготовка. В Мадрид концепцията ще включва музиката на турнира, заедно с традиционни ритми от Испания и фолк музика. 176 пък ще бъдат участниците в церемонията, от които 60 са само танцьорите от покрайнините на Мадрид, които репетират ежедневно всичко покрай големия мач.
Шампионската лига в цифри
- 1400 човека са екипите на телевизиите за финала
- 75 телевизии отразяват финала на живо
- 280 000 000 души са гледали миналогодишния финал по телевизията
- 3 576 363 фенове са посетили финалите на Шампионската лига от 1992/93 насам 130 места за коментатори за телевизии и радио са заделени в Мадрид
- 180 са фотографите, които ще снимат финала
- 5 са финалите играни със специалната топка на adidas, чийто външен вид и днес е специално за финала
- €30 968 000 е наградният фонд (включващ цялото участие в турнира и приходите за клуба от ТВ права и реклама), който са спечелили миналогодишните победители Барселона за участието си тогава. Тази година носителят ще спечели повече.
Написано за sportni.bg
Баварската инвазия в Мадрид
22 май 2010 08:41Когато научих, че мога да посетя финала на Шампионската лига в Мадрид не се колебах много. Имаше обаче един дребен проблем – как да стигна до там? Всички директни полети от Мюнхен бяха пълни, имаше места единствено в първа класа за скромните 1200 евро.
Решението дойде бързо – влак TGV от Мюнхен до Париж и от там до Мадрид с нощен влак. Всичко вървеше по план, реших да тръгна рано от Мюнхен, за да имам време да разгледам столицата на Франция.
Още на гарата в Мюнхен обаче ми стана ясно, че не само аз съм стигнал до тази идея. Поне 20-ина пременени в червено-бяло привърженици на баварския гранд, носещи традиционните кожени панталони щурмуваха влака. Когато 6 часа по-късно акостирахме в Paris Est гарата се огласи от мощни викове. Ден преди финала дори във Франция щяха да научат кой трябва да спечели и защо. При обиколката по забележителностите тук таме се срещаше част от групичката, за да видим и баварското знаме опънато на айфеловата кула.
В нощния влак за Мадрид съседното спално купе е окупирано изцяло от червено-бели. Запознавам се с Флориан, който е на 28, идва от малкото градче Бамбрг и е за Байерн от… както се помни. Не се съмнявайте, че същото споделят с мен и спътниците му – Кармен, Йенс и Михаел. Запознали са се в Мюнхен на стадиона и от тогава са посетили не един и два мача.
Фло ми разказва за последното му пътуване за Мадрид и загубата с 3:2 от Реал през 2007 г. „Въпреки това се класирахме, защото ги бихме на Алианц Арена“, спомня си той.
Сега и четиримата са убедени, че Байерн ще бие. И изпивайки последните запаси от бира, които носят със себе си преди заспиване си позволяват дори да дадат прогнози и кой ще вкара. Всички са убедени, че решаващият играч в този мач ще е Робен. И някъде в морето от фенове на баварската машина на „Сантяго Бернабеу“ от 20:45 местно време ще бъдат и те и ще празнуват този иначе прекрасен сезон на Байерн, който може да бъде спокойно и още по-запомнящ се след довечера.
На финал като на финал – никой не се съмнява, че организацията на УЕФА отново е перфектна. От юг (където и на „Алианц Арена“ е сектора на Байерн) ще бъдат немците, а от север – италианците. На няколко метра от стадионите са обособени фен зони. В централната част на Мадрид пък се провежда така нареченият Champions Festival, на който всичко могат да усетят типичната за такова голямо събитие атмосфера. От бабичките седнали на кафе и оглеждащи се какво точно става, до запаленият хардкор фен на Байерн или Интер.
Написано за sportni.bg!






