2012-02-06 стига с тоя openfest
February 6th, 2012 by Vasil KolevСлед като снощи Кънев в прилично насмукано състояние почти ми се обясни в любов, докато ме навиваше да се занимавам с Openfest се сетих, че има нещо, което съм пропуснал да обясня:
1) За мен участието в организацията на Openfest е изнервящо и уморително
2) Не си струва да пия антидепресанти или огромни количества алкохол само заради това
3) Мога да свърша много други полезни неща
4) Няма каквото и да е, за което да съм наистина нужен (лесно може да се провери, питайте хората какво точно съм направил аз и ще видите, че просто няма такова)
5) Каквото и да съм правил, в техническия екип има някой, който да го поеме (и който по принцип го е вършил, а аз съм му се пречкал например).
Единственото, което може да направя е да си измисля лекция за тая година. Така и така имам няколко интересни идеи, все някоя от тях може и да избутам до края.
(Кънев, следващия път ще ти разтворя някакви транквиланти в питието, превантивно)
2012-02-04 борба със скуката
February 4th, 2012 by Vasil KolevСериозното нещо, което пиша не е готово, така че ето с какво се забавлявах в последно време, за да не ми е скучно:
Дойде желязото за курса по системна администрация и проучвам точно с какво ще го ползвам. Дотук vmware бяха дисквалифицирани заради windows-only клиенти, така като гледам това, което има за Xen за linux е силно счупено (openxenmanager), вероятно ще трябва да направя някоя магия. Ето така ми изглеждаше бюрото снощи, по време на началния setup.
(да живее ipmi-то, мога да държа желязото в другата стая и да го паля/спирам отдалечено, че вие ужасяващо)
Компилирах си osmocombb за openmoko gta02 телефона. Задачката беше забавна, понеже има няколко различни среди за компилация, а самия osmocombb е мислен да работи на pc-то (host-а) и да сипва един малък firmware на отсрещната машина, а вече на host-а няколко приложения да се закачат към osmocon-а и да правят каквото правят. Съответно имаше компилиране на osmocon за moko-то, което отне един следобед в проби и грешки, заедно с още няколко часа подкарване на правилната версия на cell_log. Сега обаче цялото нещо умира в първите няколко минути, трябва да се види дали е от хардуера.
Около работата има други забавления. Последното е компилация на libprotobuf за symbian, та в момента се точи SDK-то. Имаше преписване на чужди заявки, дебъгване на странни рядко-случващи се явления (хората стават много нещастни, като се пропусне да се отбележи плащане, а знаехте ли, че в php при FastCGI се ползва един формат на header(), в останалите случаи друг?), обработка на binary данни в java (какъв език е тва, че няма htonl()), търсене на ntfs partition в някакъв пратен от на майната си диск и разни други стандартни неща за правене.
Взех си два албума на deathmole (виртуалната група на автора на Questionable content), звучат приятно.
Подкарах си statusnet на s.ludost.net, чиято цел е да ми замести twitter-а (вече го има него в sidebar-а на блога). Остава ми да го вържа с jabber-а да ми праща какво се случва, да му вдигна https, вероятно да му напиша филтри и ще е съвсем използваемо. Който иска да ме чете/добавя – http://s.ludost.net/krokodilerian
(а си подкарах statusnet, понеже съм решил, че е крайно време да се мине от cloud бози на federated тип услуги, но това ще е тема на друг post (или по-скоро няколко). Още пиша бележки, да видим какво ще излезе.)
Вече има ipv6 адрес на marla.ludost.net (раздадоха ми /126 от evolink, май даже на тях самите им се вижда странно) и вече web-а и още няколко неща се виждат спокойно от там. Има няколко неща, които още не съм пипнал поради мързел и понеже очаквам странни трудни-за-виждане-и-още-по-трудни-за-дебъгване-проблеми (ejabberd + две машини + dialback + комуникация с gtalk и някои други хора), та ще си ги оставя за когато ми стане наистина скучно.
2012-02-01 драматизация
February 1st, 2012 by Vasil Kolev(приликата с реални лица, институции и случки не е съвсем случайна)
Приятен зимен ден (за стоене на топло), идва сесия. Форум (mailing list, facebook страница) на курса по работа със Solaris, воден от г-н Сериозников. Около обяд, когато повечето нормални студенти стават, се получава следното съобщение от студента Петров:
Здравейте, колеги! Искам да помоля някой от вас, който е бил на последната лекция да каже, какво сте взели тогава като материал. : ) И също искам да попитам дали са споменати някакви подробности за теста? Например колко време ще е, само затворени въпроси ли ще има и на кои теми даобърнем по-специално внимание? : ) Успешна сесия!
След малко се получава отговор от студента Етанолов:
Здрасти, На последната лекция обсъдихме, че поради проблеми с времето тестът ще се промени на физическо състезание, преминаване по последния етаж на недостроената сграда зад ФМИ за норматив. Падането значи късане на изпита (и безплатно посещение на Пирогов), а нормативът за 6 е 30 секунди, за 3 - 60. Бонус точки ще се дават, ако можете накрая да си спомните името на преподавателя и името на курса. Също така, хората, които не са присъствали на последната лекция ще трябва да се справят с препятствието, носейки в ръце 15" монитор, а тези, които са вдигали шум и пречели - 17" монитор. По избор мониторът може да бъде заменен с връзване на краката с UTP кабел. Аз обмислям да отпиша курса.
След десетина минути тишина студентката Мухоморкова отговаря на Етанолов:
Етанолов, вземи обмисли да запишеш медицина, с това твоето пиене. Не знам откъде са ти дошли в главата тия глупости, ама съквартиранта ти каза, че два пъти са изпразвали тая нощ кофата до леглото ти, сигурно и кошмари си имал. Понеже г-н Сериозников го блъсна един от почистващите камиони преди два дни и ще е зает с ремонта му в следващите две седмици, изпитът ще се проведе от катедра "Алгебра", в стая 205 на ФзФ. Понеже те също си нямат представа за предмета, изпитът ще се проведе по следната изпитана традиция - оценката ще бъде равна на броя литри водка, след които можете да кажете името си, днешната дата, името на предмета и на преподавателя ви (повръщането ви дисквалифицира). Долу на таблото с обяви пък видях, че лошото материално състояние на университета водката трябва си я я носим сами. За подправена/разредена водка ще бъдем дисквалифицирани, но по принцип има възможност да носим произволно пиене и да пием водковия му еквивалент (например, 2-3 пъти повече силно вино или около 5 пъти повече бира). Тука вече с няколко колежки започнахме преговори с един доставчик на алкохол, за "Бейлис" в туби.
Почти веднага се получава отговор от Сериозников:
Мухоморкова, да имате нещо общо с кражбата на гъбите от запасите на катедра "Спорт"? Това вашето писание е плод на болен мозък. А и всички знаят как цялата катедра "Алгебра" е в токсикологията на "Пирогов", щото един от химиците объркал дестилационния процес. Както казах, няма да има тест или нещо такова, директно ще имате оценки, просто ми се е счупила тото-машината и още я поправям. Като свърша с ремонта и тестовете, ще ви пратя какви оценки сте получили.
Почти веднага тримата студенти Майнов, Копелев и Пичов пращат съобщения
с горе-долу такова съдържание:
ЕЕЕЕ, копеле, тва е лайняно!11!! Пич, ти ебаваш ли се с нас? Майна, ама ти ни обеща тест!
Преподавателят им отговаря:
Дали аз ще играя на тото или вие, няма особена разлика, статистически погледнато. Така и така двата пъти, в които дойдохте на лекции, играхте solitare на машините (не особено кадърно).
А студентката Сладкова отговаря на същите трима:
Какво толкова против имате г-н Сериозников? Вижте го какъв е готин, даже като се ядосва е сладък...
Сериозников и отговаря:
Колежке, имате 6.
Подмазвачев веднага казва:
Да, много сладък преподавател!
На което получава отговор от преподавателя:
Подмазвачев, скъсан сте.
За малко настава леко уплашена тишина във форума. След двайсетина минути
студентът Глезанов пише като отговор до Сериозников:
Ама то може ли изобщо да го скъсате? В правилника на факултета не пише ли, че на изборни предмети никой не може да бъде скъсан и че ако сме се явили веднъж, автоматично оценката трябва да е поне 5? Не мога да цитирам точно, щото не знам кой беше сайта на факултета, а в youtube нищо не намирам, ама съм сигурен, че го имаше! Това на нищо не прилича, не стига, че трябва да ходим, ами сега и това.
Някъде тук дискусията затихва, до следващия ден, в който друг преподавател
от същия факултет пише:
Колеги и колежки, С прискърбие искам ви информирам, че колегата Сериозников снощи се е самоубил. В предсмъртната му бележка има само следния ред: "Всички са скъсани".
2012-01-29 нов лаптоп
January 29th, 2012 by Vasil Kolev(Почти) си подкарах новия лаптоп. Списък с неща, които ми се наложи да направя:
Инсталация на криптиран диск (което си е стандартно).
Подкарване на debian (понеже всичко останало е боза, ubuntu и mint адски ме подразниха).
Стандартни неща в X-а, като смяна на layout-а с caps lock и разни remap-вания, който не съм довършил. Ето това е скриптчето, което трябва някой ден да пренеса като config:
setxkbmap -model pc105 -layout 'us,bg(phonetic)' -variant phonetic -option grp:switch,grp:caps_toggle synclient TapButton1=1
(още го няма това за XF86Forward, и да изключва tap-а, когато пиша на клавиатурата)
XFCE с compiz – наложи се да си препиша старата тема, защото беше до gtk2, а всичко вече е на gtk3. Още не съм я дооправил, но като я докарам до вид, който ми харесва, ще я кача някъде. В настройките на compiz-а се наложи да пипам директно на ръка с текстов редактор, понеже ccsm вместо
Инсталация на важни неща като:
evolution – отделих няколко часа ровене в source, за да хвана защо единствено preview pane ми беше с бял фон, и накрая успях да го открия къде беше омазано в темата. Добрите хора даже ми бяха сложили коментар… Спрях и notification-ите (аз получавам толкова поща, че то няма начин да не свети постоянно).
pidgin – има един fix в .gtkrc-2.0, който го кара да не показва “person is typing”, което аз намирам за ужасно дразнещо:
# Disable the pidgin typing notification style "no-typing-notification" { GtkIMHtml::typing-notification-enable = 0 } widget_class "*" style "no-typing-notification"
Имаше нужда от малко допълнителни plugin-и, най-вече бозата pidgin-skype (ще поведа кампания за изкореняването на skype).
gvim – с който пиша това, копирах си spellchecker файловете директно от стария, както и основните неща от config-а:
syntax enable set encoding=utf8 set spelllang=bg,en colorscheme evening set gfn=Bitstream\ Vera\ Sans\ Mono\ 13
zsh – не ми се слага цялото zshrc в блога, за това ако някой иска, може да си го свали.
iceweasel прие цялата конфигурация на стария firefox, с малко пипване на цветовете в about:config изглежда добре.
Специфично за тоя лаптоп е thinkfan, да не вият толкова вентилаторите. Вероятно ще има още разни весели неща за настройване, но те ще в движение.
Иначе – казва се nymphadora, thinkpad T420s. Добър дисплей (1600×900) с хубаво качество, 8GB памет, core i7, батерията пише, че държи 5 часа (още не съм я тествал), останалото е стандартно.
Ще се опитам да си обърна повече внимание на старото openmoko gta02 – днес нещо заби след suspend, движи се бавно и като идея има какво да се бърника. Опитвам се да си намеря предплатена карта с data и voice едновременно, ама сайтът на mtel не е от най-приятните в това отношение, а хората в магазините им са идиоти (или поне в тоя, в който аз отидох).
2012-01-26 лъжи
January 26th, 2012 by Vasil KolevМразя да лъжа (вероятно защото не го умея). Мразя да слушам лъжи. Още повече мразя да се налага да ги казвам.
Едно от дразнещите неща на обществата, в които живеем е нуждата почти непрестанно да се лъже. Децата биват учени да не лъжат, докато не започнат сами да схващат, че определени лъжи са всъщност задължителни (или докато не открият, че при правилно лъгане нещата са по-добре).
Всеки може да се огледа наоколо и да види различни причини и проявления за/на лъжите. Например, когато хората смятат, че ще бъдат обвинени в нещо и не могат/искат да поемат отговорност, като в класическия случай – идва потребител с проблем, питаш “Какво се е променяло в последно време” и автоматичната реакция е “Нищо”.
После всички осъзнават, че да лъжеш води до по-лесен живот в доста ситуации, и докато се усетят така са се оплели, че няма спасение. Аз така от време на време осъзнавам, че да се лъже е по-добре, след като съм казвал директно какво мисля и толкова съм се уморил, че някакъв инстинкт захапва и почвам да говоря каквото е нужно, направо минавам на автопилот. Това води до пиене, понеже алкохолът ми помага да се понасям (и околните) в такова състояние.
Има момента със самозалъгването на някои хора и колко е трудно да се говори против него. Например въпросът от страна на жена “това добре ли ми стои”, или еквивалентът от мъжка страна (някоя девойка може да ме допълни какъв е). Свикнали сме, че другите ще обръщат внимание на нашите самозаблуди и желания в името на социалната традиция и “ненараняването на чувствата”, което води до интересни реакции, когато се каже нещо различно (помня как една девойка си беше боядисала косата на сиви кичури и след като и казах честното си мнение (“Изглеждаш като бабичка”) бях гледан лошо два-три дни).
Да не говорим колко дразнеща е неспособността на хората да се погледнат и да схванат някои базови неща за себе си, дори отказват да идат поне на психар да им ги обясни.
(не че голяма част от психарите могат да се справят със задачата или биха искали да се занимават с подобна помия)
Лъгането е уморително, животът в лъжа – още повече. Неефективно и тъпо е да се усложнява някаква базова система като социалните отношения – те са инструмент, не крайна цел. Изглежда все едно да добавяш елерони на чук…
От друга страна обаче да не лъжеш изобщо в текущото общество е тежка задача (може би и невъзможна, т.е. не би било живо). За това една прилична цел е да се лъже колкото се може по-малко и да се надяваме, че в един момент ще падне до 0.
Това по-горното да се приема като моето оправдание, че ще се старая да лъжа по-малко и като предупреждение за всички, на които им хрумне да си говорят с мен.
2012-01-22 Кинг и Мураками
January 22nd, 2012 by Vasil KolevПреди малко изчетох първия разказ от “Full Dark, No Stars” на Стивън Кинг, а преди това сдъвках “1Q84” на Харуки Мураками и контрастът ми направи такова впечатление, че ми дойде желание да напиша нещо.
На Мураками преди това съм чел две книги – “Кафка на плажа” и “Норвежка гора” (която май не успях да довърша), на Кинг – много (и много ми остават). Също така Кинг ми е от любимите автори, та писанието ми е от малко изкривена переспектива.
“1Q84” е книга, която всички (уж) много харесват, което е рядкост за толкова голяма тухла. Последното (размерът) беше една от причините да я започна, а основно злобата ме накара да я изчета докрая.
Всички герои на Мураками (като се замисля и за предишните му книги) могат да бъдат описани като “dead inside”, мъртви души. Човек докато чете описанието на чувствата при него, има чувството, че чете описанието на сляп човек на цветове – не че не знае за какво става въпрос, но определено не може да го разбере. Същото може да се каже за сексуалните му сцени (наскоро бях чел при Peter Watts, че авторите трябва да правят повече секс, за да могат да го опишат както трябва). Развитието на героите му също никакво го няма, а много от фантастичните (fictional, не мога да се сетя по-хубава дума) елементи изглеждат адски изсмукани от пръстите. Единствената причина да изчета книгата беше да видя дали накрая няма да има нещо, което да я оправдае (например, “между другото, всички герои са зомбита на халоперидол”).
От друга страна при Стивън Кинг героите не само, че почти можеш да ги пипнеш, но може да се асоциираш с тях, да ги разбереш, да почувстваш техните чувства (което прави спането след негова книга сложна задача). Той може да хване всякаква история, да вкара малко фантастичен елемент (или даже да не вкарва) и да създаде един свят, който да може да бъде почувстван като близък и истински, колкото и странен да е. Дори най-простото нещо, което му хрумва – например в тоя разказ се говори за семейство, мъж, жена и син, фермери, при което заради земя мъжът убива жена си и т.н. – може да бъде разказано толкова интересно и с такава изразност, че да ти стане интересно, колкото и тривиално да изглежда в началото.
(Разбира се, и той не е перфектен, например си личи как краят на “11/22/63” е претупан и не пасва, за сметка на това обаче цялата книга се чете наистина с удоволствие).
Друг момент, който ги различава, и който на мен при Мураками наистина ме подразни е как започва да прозира самия автор в книгата, неговото мислене, чувства, политически убеждения, предразсъдъци и т.н.. При Кинг това не се получава – има всякакви герои и техните предразсъдъци, но никога не вкарва себе си там. Чел съм над 30 негови книги и чак “On Writing” успя да ми каже нещо за него като човек, защото това беше писал (и дори и там не става толкова ясно). От друга страна, Мураками ми стана противен на третото описание на човек и второто оплакване на главната героиня, че не харесва колко са и големи гърдите (дори нормалния ми навик да прескачам глупостите не успя да се справи достатъчно добре, че да не се дразня). По някакъв начин дребната мижитурска душица на автора успява да опропасти половината книга (останалото е претрупания на моменти стил и криво измислените фантастични елементи и света му като цяло), ако не беше сюжетът (който е м/у среден и добър), нямаше да мога да издържа да я прочета цялата.
Единственото, което донякъде оправдава Мураками е културата и средата, в които е израснал – същите клишета могат да се видят в голяма част от anime-то и manga-та, и които ме карат от време на време да си задам въпроса “какво им има на японците?”.
2012-01-19 ефекти от лечението
January 19th, 2012 by Vasil KolevТака определено е по-добре.
Няколко дни, в които комуникацията беше основно по работа и максимално кратка (и включваше пускане на отделни jabber сървъри за отделни проекти, за проста вътрешна комуникация) имаха лечебен ефект. Имах малко повече телефонни разговори и си писах поща с хора, с които по принцип си говоря по messenger, както обажданията на навика да си пусна/погледна messenger-а, twitter-а, новините или нещо такова, но не бяха кой-знае колко силни.
Не е ясно какъв ще е ефектът от възстановяването на комуникацията с хората и дали пак ще е в същия вид. Може би ще ходя на едно ИББ на месец и ще пускам messenger веднъж на няколко дни.
Имаше няколко човека, които малко ми липсваха и много, които не.
И може би е крайно време да си кажа. Аз не харесвам хората. Не харесвам човечеството. Яд ме е, че изглежда съм твърде тъп, за да откривам достатъчно по-умни от мен хора, с които да си говоря (а аз че съм тъп, няма какво да се спори). “Мизантроп” звучи като прилична дефиниция.
Дебъгвам хора, защото са ми интересни проблемите. Много рядко самият човек ми става интересен, през останалото време просто ровичкам хора, защото ми е скучно.
Не помня имена, защото не ми трябват. Съвсем автоматична реакция си е.
Ако някой не е схванал, че не съм добър човек – пиша го в прав текст ето тук – аз съм лош, неприятен, гаден тип.
А глупостите, елементарните проблеми, липсата на каквато-и-да-е мисъл във всички просто ме побъркват. Вероятно има нещо много сбъркано в мен, че се опитвам да дебъгна света и да оправя всичко, но всичко, което намирам за грешно просто нещо ми бърка отвътре да го оправя.
(едвам се оправям със себе си и моите глупости, все пак)
А не мога да спра дебъгването, да не обръщам внимание на глупостите – в момента чета една книга и половината от мислите са ми по темата “какво му има на автора и дали е проблем на цялото им общество” (“1Q84” на Харуки Мураками).
Някой ден ще си поръчам тениска “Не ви понасям, виждате опита ми да се държа прилично”. Или “Напомняйте ми, че антипсихотиците ми са в десния джоб”.
(а преди малко се опитах да си отворя twitter-а и не можах да почна да го чета, стана ми гадно)
2012-01-15
January 15th, 2012 by Vasil KolevУморен съм. Мисля да си почина максимално от комуникацията с хора, понеже ме дразни до смърт, и не мога да си обясня дали всички сте наистина толкова тъпи или е крайно време аз пак да почна да пия антидепресанти. Стандартният ми метод – да пия, за да мога да понасям хората около мен – вече не върши особена добра работа, щото се напивам и почвам да ги тормозя.
Да видим па аз колко ще изтрая без messenger-и, новини и т.н.. Може да ми е полезно, да се заровя в книгите и работата и да не мисля за глупости.
Ако трябвам на някой за нещо, може да ми пише на mail-а, него поне ще го чета от време на време.
2012-01-08 Кръщене
January 8th, 2012 by Vasil KolevИмам да кръщавам една машина, която трябва да замени zver.fsa-bg.org (преди тотално да се е разпаднал). Машината е дребна, средно мощна (определено повече от предишната), тоя път rack-mountable.
Двата дефиниращи принципа са дребност и унверситет. Ето идеите:
Ескарина (от Eskarina Smith, “Equal Rites” (“Еманципирана магия”) на Тери Пратчет);
Neville на Neville Longbottom от сериите за Хари Потър;
Kvothe (от книгите на Патрик Ротфус);
Tiffany (Tiffany Aching пак от Тери Пратчет);
Ayaan (Ayaan Hirsi Ali, въпреки че може би няма да пасва толкова);
Miles (Майлс Воркосиган, от книгите на Л. М. Бюджолд);
Приемам и други. Cassie (от “Skins”) вече е е заето, да я кръстя на Николай Генчев не върви (за него си трябва нещо по-голямо), някой математик (като Галоа) също може, въпреки че аз не ги обичам кой-знае колко, “Ada” (Ada Lovelace) вероятно е твърде използвано в тия среди.
Ако някой измисли наистина добро име, обещавам да го отбележа на страницата на машината :)
(мислех и по темата да кръстя машината на някой жив човек, студент/студентка или преподавател(ка), но по принцип хората това никак не ги радва. Помня как кръстих едно време машина на приятелката на един приятел и той ме гледа на кръв поне две седмици)
Update: Кръстих я octavo, “preslaff” да каже как да го отбележа :)
2012-01-03 лекции от 28c3
January 3rd, 2012 by Vasil KolevКакво (още) гледах от 28c3:
(mirror-нал съм всичките английски записи на 28c3.ludost.net)
Keynote беше донякъде интересен, но имаше доста дупки в живото предаване. Ставаше въпрос за SpyFiles на wikileaks и изобщо индустрията, която се занимава с подслушване, мисля, че нямаше нещо много ново там.
От лекцията за Atari 2600 не можах да гледам много, но ме зарадва с това, че вече не ни се налага да работим с толкова ограничен и ужасяващ хардуер (частта за това как се избира банка от паметта с четене на определен байт и как писането се прави с четене бяха направо плашещи).
SCADA and PLC Vulnerabilities in Correctional Facilities беше интересно, въпреки че в основата си е просто хакване на хардуер, който никога не е мислен да е сигурен (и който за съжаление се използва твърде много). В общи линии полезна лекция за всеки, който реши да бяга от затвора.
Лекцията за еволюиране на алгоритми беше забавна, почти “как с random и малко техники да си създадем алгоритъм за каквото си искаме”. В тази лекция обясниха основните неща и показаха как са правили алгоритъм за един филтър за картинки, в другата показаха как са еволюирали протокол за комуникация (което беше наистина адски интересно и поне в началото трудно за вярване).
802.11 packets-in-packets беше една от най-забавните лекции на конгреса и като цяло интересна атака – да се вкара пакет на layer1 от layer7 (т.е. накратко можете да бълвате специфични пакети през tcp, udp или каквото ви падне, да ги предаде някое AP и клиентите да го прочетат по различен начин). Определено си струва гледането.
Не можах да гледам The coming war on general computation на Cory Doctorow, но някакви добри хора са написали transcript, мисля, че е важно да се прочете/гледа.
Kartsten Nohl и Luca Melette говориха за как да си предпазим мобилния телефон, последните им разработки по темата за GSM и компания. Например са направили firmware за телефон, който report-ва т.нар. “flash sms” и може да усеща дали някой прави man-in-the-middle атака.
Black OPs of 2011 на Дан Камински беше същата лекция като от CCC Camp-а, т.е. нищо ново.
Вторият ден започна с Food hacking лекция, която мога да използвам да плаша всичките “еколози” и противници на ГМО. Имаше всякакви забавни неща, от грейпфрути, отглеждани чрез облъчване с радиация до суши от светещи риби. Във въпросите след лекцията една девойка пита как точно да готви скакалци…
Data mining the Israeli census беше приятна лекция, но нищо особено – какви анализи са правили на изтеклата (5 пъти за 10 години) база данни с населението на Израел.
За лекцията за DoS-ването на web неща вече писах подробно.
The science of insecurity според мен беше най-важната лекция на конгреса. Meredith Patterson обясни много добре как сами си копаем гроба, като правим протоколи, за които няма дори теоритичен начин да проверим дали някакви данни са валиден вход, понеже представляват Turing-complete езици, а там проблемът с валидацията се свежда в общи линии до halting проблема. Аз не знаех, че някой вече е доказал, че HTML5 и CSS3 (без javascript) са turing-complete комбинация (и се зачудих колко е вероятно от web-а да се роди skynet).
Друг интересен момент беше колко по-сложно е да се напише прост parser за контекстно-зависими граматики (например, всичките протоколи, които имат length поле), и как би трябвало да се стремим към прости неща, които един елементарен краен автомат може да parse-не (т.е. които могат да се parse-нат еднозначно с регулярни изрази, например). Като пример за проблеми с length полето беше дадена атаката за 802.11 packet-in-packet.
И една от важните идеи, които със сигурност ще приложа (преди нямах толкова добро оправдание) ще е всичките parser-и и подобни неща да се генерират автоматично от ясна формална граматика, така че винаги да се работи с ясни данни и ясна валидност. Това така и така щеше да ми трябва, понеже ще гоним междуплатформеност…
(на който не му е ясно какво говоря, да почете малко за йерархия на граматиките на Чомски, машина на Тюринг и какво значи Turing-complete).
От третия ден трябва да спомена лекцията на Пейо за електронните пари (както и да му кажа, че той вече е celebrity :) ), която беше малко по-съкратен и подреден вариант на тази от Openfest. Иска ми се това да го направи на хартия и да му даде цялото нужно място (т.е. около 2-3 часа говорене), ама да видим кога ще успея да го изнудя.
Лекцията за атаките в/у принтери също беше от много веселите, а проблемите в сигурността, които се оказа, че има там бяха пак от смешния тип (например възможност да смениш firmware на устройството с печатане на файл). Ако имате HP принтер, вижте лекцията и дали трябва да се update-нете.
От четвъртия ден май си струва да спомена само лекцията на NOC-а за мрежите на CCC Camp-а и на текущия конгрес. Особено забавна беше реализацията на “таван/чадър” за wifi AP-тата от кофи и тръби.
Имаше и няколко доста неприятни лекции, или много объркващи (например една за квантовата криптография), или тотално неразбираеми (имаше един французин, който говореше за криптография и на 20тото казване на “Titanic” (с ударение на последната сричка) се отказахме да го траем), или bullshit (един, който говореше за влиянието на leak-овете в/у конспирации в контекста на целта на wikileaks и който накрая го питах не смята ли, че математическия модел, който ползва е почти толкова смислен, колкото сферичен кон във вакуум).
Има още няколко неща, които искам да гледам и едно, за което искам да напиша отделен post – depression panel-а, който се е случил почти против желанието на организаторите, понеже са счели темата за неподходяща. Надявам се да намеря време в следващите дни:)
2012-01-01
January 1st, 2012 by Vasil KolevОтпразнувахме нова година в ju.
Първата ми мисъл на другия ден беше “Ох.”.
Пихме, пяхме и се веселихме (аз си замъкнах баса и Voland не беше щастлив, щото беше успял досега през всичките години да не ме чуе как (не мога да) свиря). Има някъде много снимки, които може би не трябва да бъдат виждани от Internet-а. Толкова се напих, че чак останах да спя там и ме събудиха сутринта разни хора, дето бяха тръгнали да чистят (а котката изобщо не беше се опитала да ме притесни, което вероятно се дължи на спиртните пари, излъчвани от мен).
Прибрах се (с цялата техника), легнах си и сънувах комбинация от работа, 28c3 и doom2. Имаше моменти, в които бях на работа, говорех си с някой по някакъв технически въпрос и паузирах, защото в халюцинациите си застрелвах някакъв гад от doom. После помагах на някакво хлапе, което беше успяло да запали 5-6 машини с едно включване на мултицет…
Anyway, да видим какво ще ни донесе 2012. Моите късмети от баницата бяха “произволно число” и един, който не помня и който никой друг не може да си спомни… За сметка на това помня как на Жоро Русийчев му се паднаха “нова кола” и “нова работа” и предположихме, че ще става тираджия.
Update: Има някакви лилаво-червени точки по баса, май вино. Има и нещо разлято по стойката му…
Update 2: Протрил съм си пръстите и на двете ръце от дрънчене.
2011-12-29 28c3 – атака в/у hash таблици при web платформи
December 29th, 2011 by Vasil KolevМалко за гледаните лекции от 28c3 – ще бъдат в няколко post-а по ред причини.
Ще започна с една лекция, която описа в общи линии нов проблем в повечето web-facing езици/framework-ове в хеш реализациите, за който даже написах малко код.
Къде е проблемът – повечето такива езици (в случая – perl, php, python, java, ruby, asp.net) използват hash-ове (познати още като асоциативни масиви), за да подадат към програмиста параметрите, които са дошли от HTTP request-а (най-вече от POST-а). Почти всички го реализират, използвайки стандартни hash таблици с 32 или 64битов hash (не-криптографски, т.е. даже и CRC32 би свършил работа, повечето ползват нещо, писано от DJB, например DJBX33A).
По принцип insert-а на нов елемент в такава таблица е с ниска/константна сложност, но ако вмъкваме само елементи, които дават същия hash, сложността става максималната възможна, т.е. O(n) и съответно вмъкването на n елемента ще е от порядъка на O(n^2).
Накратко, ако подадем (например) през POST параметри, които се хешират към същата стойност, времето, което ще отнеме на езика/framwork-а да обработи заявката (преди да стигне до вашето приложение) ще е бая, като тестовете при мен показаха нещо от порядъка на 1 минута за заявка с 62000 параметъра и голяма около 400kb. В лекцията (има и запис, mirror-нат при мен) има повече подробности и тестове.
Реших да видя доколко мен ме лови тоя проблем. Като за начало трябваше да си напиша генератор на тия стрингове (ВНИМАНИЕ: грозен гаден код на C), което се оказа сравнително лесно – измъкнах от source на php от Zend/zend_hash.h тяхната функция, поразгледах кода и се оказа, че от hash функцията се взимат първите X бита, като X е в общи линии log2(N) (където N е броя елементи в стуктурата). Съответно ако ми трябват по-малко от 65536 collide-ващи стринга ми е достатъчно да търся колизии само в първите 16 бита. Моята некадърна програмка на машина със 192GB памет (трябваха и около 120GB) се справи за около 5 минути.
(пускам кода като пример, който може да го разбере би могъл да си го напише и сам сравнително лесно).
Имам да се поровя още малко, но в някои случаи debian-ската default-на конфигурация реже тия атаки (понеже не позволява повече от 1000 променливи в какъвто и да е request, което па от своя страна чупи малко (малоумен) софтуер), в някои не и повечето php-та, които човек може да намери по net-а ги лови тоя проблем. Реализирането на DoS-а за да направи реален проблем изисква прилично количество паралелни връзки и определено не е толкова опасно, колкото беше проблемът с Range request-ите от август, но пак не е приятно. Също така може да се атакува и през други места, например ако трябва да се сглоби json request или какъвто и да е hash, чиито ключове зависят от данни, подадени от потребителя.
Решението е да се random-изира hash-а на всяка заявка, за което си написах една тестова програмка, която да пробва в/у такива подбрани string-ове hash, който освен всичко XOR-ва всеки 8-байтов блок от входа с един random seed. Мисля ако скоро не изкарат някакво хубаво решение да си patch-на директно php-то, но още не съм имал време да намеря подходящия entry point, в който да вкарам инициализацията на seed-а, така че хем да е различен за всеки request, хем да не счупи нещо по много лош начин (ако някой е бърникал по кода на php и знае къде, много моля да пише).
Та, добри хора, прочетете оригиналното advisory и се patch-вайте, ако правите нещо свързано с web най-вероятно проблемът ви засяга.
2011-12-28 книжна равносметка
December 28th, 2011 by Vasil KolevИ една отделна книжна равносметка за годината, понеже вероятно ще излезе по-голяма от предишната.
(всички книги по-долу и моите rewiew-та за тях може да се намерят в goodreads)
Една интересна тази година беше психиатрията. От нещата, които наистина ми харесаха ще спомена “The Psychopath Test” на Jon Ronson (наистина забавно четиво и много добре написана), “The Mask of Sanity” на Robert M. Cleckley (също хубаво четиво, но доста разпънато и може да доведе до странни сънища, например как си говорите с психопати), “Destroying the World to Save it: Aum Shinrikyo, Apocalyptic Violence, and the New Global Terrorism” на Robert Jay Lifton (който все още ми е от любимите автори, въпреки че “The Protean Self” беше много разочароваща), и “Inside the Criminal Mind” на Stanton E. Samenow (пак от книгите, дето влияят на съня).
По икономическата тема имаше няколко други интересни книги – “Liar’s Poker”, “The Big Short: Inside the Doomsday Machine” и “Boomerang: Travels in the New Third World” на Michael Lewis, който се оказа един наистина четим автор, който да опише кризата, последствията и причините (“Liar’s Poker” е писана преди 6-7 години с идеята да разкаже какво всъщност се случва на Wall Street и помага доста за разбиране на ситуацията). Внимание заслужава и “Currency Wars” на James Rickard.
От любимите ми автори имаше по една нова книга – “Reamde” на Нийл Стивънсън (трилър, много добър, но не може да настигне Cryptonomicon-а и Бароковия цикъл и всички са нещастни), “Snuff” на Тери Пратчет (много добра, но всички се надяваме да пише още книги), “12/22/63” на Стивън Кинг (пак много хубаво, въпреки елемента на пътуване във времето), “Diary” на Чък Паланюк (очаквах нещо повече), “Лудост” на Калин Терзийски (“Хората стават психиатри, за да си изписват сами халоперидол”), “Rule 34” на Чарли Строс (една от книгите, която четох с голямо удоволствие), “The Wise Man’s Fear” на Патрик Ротфус (ако и трета книга е толкова добра, спокойно може да го пишем за най-велик фентъзи автор) и “The Crippled God” на Стивън Ериксън (последната от “Малазанска книга на мъртвите”, не мисля, че има нужда да казвам повече).
Надявам се поне част от тях да се завърнат догодина с още нещо интересно (с изключение на Стивънсън, на който е ясно, че ще му трябват още 2-3 години за нова книга).
Имаше и разни неща, на които попаднах по разни други причини (препоръки, забелязани някъде и т.н.). Струва се да се отбележат:
“The Geeks Shall Inherit the Earth: Popularity, Quirk Theory and Why Outsiders Thrive After High School” на Alexandra Robbins – много интересни изследвания в/у училищата и груповата психология.
“1491: New Revelations of the Americas Before Columbus” на Charles C. Mann – много подробно разказани последните теории и открития за двете Америки преди пристигането на Колумб, чух я от едно интервю с Нийл Стивънсън (както и следващата, “1493…”) и определено си струва да се прочете.
“Rats Saw God” на Rob Thomas – рядко добра young adult книга, мен ме зариби заглавието.
Две книги на Atul Gawande – “Complications” и “Better” – хирург, пише много интересни неща за медицината и за как може да се подобри като цяло с мерки, приложими и в други области.
“Kingpin: How One Hacker Took Over the Billion-Dollar Cybercrime Underground” на Kevin Poulsen – много добре research-ната книга за хора, занимаващи се с credit card fraud и свързаните неща, попадна ми след като изчетох “Ghost in the Wiers” на Kevin Mitnick.
“The Organization Man” на William H. Whyte – може би една от най-добрите книги по темата за психологията на хората в корпорациите и проблемите там (мисля да я дам да я прочетат всичките ми познати, дето работят в големи фирми).
Отделно трябва да спомена Амели Нотомб, която пише кратки и все пак много добри книги. Успях да издъвча каквото намерих на български, скоро може да почна да търся и преводи на английски.
Препрочетох също така “То” (на Стивън Кинг), целия “Хари Потър” (Джоан Роулинг) и целите Хроники на Амбър (Роджър Зелазни). Има книги, които определено си струва да се четат пак и пак, да видим кои ще са в тоя списък догодина (може би пак Бароковия цикъл).
Най-препоръчаната от мен книга обаче за тая година е “Shooting an Elephant” на Джордж Оруел – събрани негови есета по различни теми, включително това за писането (което всички хора цитират), като цяло “стуктуро-определяща” книга. От там идва цитатът “During times of universal deceit, telling the truth becomes a revolutionary act”.
Втората също така силно препоръчвана книга е “Дзен и изкуството да поддържаш мотоциклет” на Робърт Пърсиг. Трудно ми е я да опиша, само ще отбележа, че ми помогна много да изясня някои мои идеи за преподаването.
И като препоръка за нещо по-скорошно и интересно – “Barefoot into Cyberspace: Adventures in search of techno-Utopia” на Becky Hogge, книгата може да се намери online и е доста добро описание на събитията в последните няколко години, свързани с wikileaks, copyright-а, internet и други такива забавни неща.
(но най-вече препоръчвам да четете. По-интересно е от почти всички филми (ок, според мен от всички, но пък не съм ги гледал всичките възможни, за да преценя), може да се чете по-бързо или по-бавно (с темпо, което ви харесва) и определено има много повече информация, отколкото в разните смлени бози, които може да се гледат)
2011-12-26 равносметка
December 26th, 2011 by Vasil KolevИ малко равносметка, преди да седнем да гледаме 28c3.
Като за начало, в началото на тая година съм забравил да напиша някакви планове. Замислям се какво съм правил и голяма част ми се губи, та ще се ползват външни памети.
Като за начало, станах на 30 и ми се размина стандартното проклятие да се оженя, да имам деца и т.н.. Е, не се е разминало съвсем, има още два-три месеца, но съм близо.
Отказах се да се занимавам повече с водене на курсове във ФМИ (като мрежовата сигурност). Направихме един хубав курс, записахме го по възможно най-добрия начин (няма пропуснати лекции) и на мен тотално ми писна от студентите (най-вече тези, които идват само за оценката), бюрокрацията и изобщо идиотията във факултета.
Понеже нямам намерение да се отказвам от идеята с преподаването, мисля да правя един не-курс по системна администрация, за който още си чакам хардуера.
Отказах се да се занимавам с OpenFest. Още не съм събрал желание да напиша защо в подробности (понеже основно псувни ми идват в главата), а и не е толкова важно, в крайна сметка хората могат да се справят и без мен. Може и да успея догодина да направя лекция там, вероятно ще имам време (за разлика от тая година).
Прочел съм горе-долу същия обем книги като миналата година (според статистиката в goodreads миналата година са 138 книги и 44388 страници, тая са 124 книги и 44122 страници), въпреки една голяма дупка в последните няколко месеца. Май рядко пиша в блога за това, което чета, трябва да се стегна и да пусна малко такива постове.
Започнах да ходя в initLab и да се забавлявам с всякакви странни неща там (тагнати са ми в блога).
Със свиренето напредвам бавно, но не особено мъчително. Взех си и китара (за която не съм блогвал), най-вече около слушането на Kyuss и от време на време сменям инструментите, но определено басът ми е по-приятен.
Прекарах месец-два в изпитване на програмисти за един проект и открих как около 90% от тези, които идват от обяви за работа за нищо не стават. Усещането беше сравнимо с това да изпитвам студенти (малко като вица за приликата между студента и кучето).
Като цяло – не умрях, не се ожених, не се пропих. Мога да броя 2011 за прилична година :)
2011-12-23 прожектиране на 28c3
December 23rd, 2011 by Vasil KolevОрганизираме прожектиране на лекциите от 28c3 в initLab, от 27ми до 30ти декември. Имаме предварителен списък какво мислим да гледаме и поне две стаи, в които да прожектираме (може да ползваме и третата).
(почти са ни одобрили регистрацията за гарантиран bandwidth, така че не трябва да има проблеми)
2011-12-11 панаир на книгата
December 11th, 2011 by Vasil KolevНищо особено ново нямаше. Панаирът изглежда добре, имаше доста хора, може би малко по-малко издателства от миналата година.
Взех си 5 книги:
“Минало несвършващо”, съставител Евгения Иванова (исторически публикации);
“Лицето на водата”, Робърт Силвърбърг (фантастика);
“Министерство на болката”, Дубравка Угрешич (втора нейна книга, първата, която си взех нещо не ми хареса, да видим);
“Пространства на другостта”, издадена от БАН по темата за етносите и религиите в България;
“Окупаторът съюзник”, Бисер Петров (за колаборационизма в Албания, Сърбия и Гърция по време на втората световна).
В общи линии е добро място за откриване на странни книги, които трудно се намират по нормалните книжарници (като тези от БАН или от военното издателство).
Работи до неделя до 22:00, ако някой още не е успял да иде.
2011-12-09 fizzbuzz
December 9th, 2011 by Vasil KolevСтранен сезон е. Сутринта валя, два дни подред пия, едвам намирам време да си свърша работата (не щото е много, а щото нещата се припокриват и има чакане) и съм пил вечерта, че да блогна.
Всички вероятно са чували какво е fizzbuzz, но пак да го кажа, накратко – задачка да се отпечатат числата от 1 до 100, като ако числото се дели на 3, вместо него се печата “Fizz”, ако се дели на 5 вместо него се печата “Buzz”, а ако се дели на 15 вместо него се печата “FizzBuzz”.
(това се дава на интервюта да се види дали човека изобщо може да програмира)
Оригиналното решение, което всеки може да напише на листче (говорим само за C) изглежда така:
for (i=1;i< =100;i++) { if (i%3==0) printf("Fizz"); if (i%5==0) printf("Buzz"); if (i%3!=0 && i%5!=0) printf("%d",i); printf("\n"); }
(което е почти същото на повечето езици за програмиране)
Оптимизираният вариант, който ми хрумна изглеждаше по следния начин:
int i,p; char *s[4]= {"%d\n", "Fizz\n", "Buzz\n", "FizzBuzz\n"}; int s3[3]={1,0,0},s5[5]={2,0,0,0,0}; for (i=1;i<=100;i++) { p= s3[i%3] | s5[i%5]; printf(s[p],i); }
(накратко си избира максимално бързо format string-а, като се прави индекса му от два бита – единия за дали се дели на 3, другия на 5, след което се вика printf() с него и аргумента, а ако във format string-а няма “%”, то вторият аргумент изобщо не се гледа)
Методът с lookup таблиците е известен от зората на програмирането и е един от най-хубавите примери за time-memory trade-off.
Това решение няма branch-ове (т.е. if() и компания) в основния си код, но пък разчита на printf(), който не е особено бърз. На пиенето на Титов му хрумна, че може да се направи масив от функции, които да правят различните неща, но па на мен идеята за call и ret не ми хареса особено, за това се замислих и открих, че в C всъщност има масив от label-и. Съответно, ето извратено и максимално бързо решение:
int i,p; static void *pos[4]= {&&digit, &&fizz, &&buzz, &&fizzbuzz}; int s3[3]={1,0,0},s5[5]={2,0,0,0,0}; char buff[2048]; char dgts[16]={'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'}; int buffpos=0; for (i=1;i<=100;i++) { p= s3[i%3] | s5[i%5]; goto *pos[p]; fizz: memcpy(&buff[buffpos],"Fizz", 4); buffpos+=4; goto end; buzz: memcpy(&buff[buffpos],"Buzz", 4); buffpos+=4; goto end; fizzbuzz: memcpy(&buff[buffpos],"FizzBuzz", 8); buffpos+=8; goto end; digit: buff[buffpos++]=dgts[i/16]; buff[buffpos++]=dgts[i%16]; end: buff[buffpos++]='\n'; } write(1,buff, buffpos);
(т.е. както в предния пример имаме масив от format string-ове, тук имаме масив от позиции, на които директно можем да скочим. Също така не викаме никакви външни функции (memcpy се inline-ва и е от едни по-бързи инструкции) и единствения branch, който имаме е за for() (който също може да се избегне с една lookup таблица и едни goto-та, ама това вече ще е гадно)
Човек, способен да напише подобен код на интервю вероятно трябва да го пратят в Карлуково.
Ако на някой му хрумне нещо по-забавно, да пише :)
Update: Оптимизация – да се изместят p3, p5 и dgts като глобални променливи, понеже ако са във функцията, компилатора ги прави на много mov-ове.
2011-12-08 бас 2
December 8th, 2011 by Vasil KolevДнес на ИББ изскочи една интересна тема, за която май пак е време да пиша.
(темата беше провокирана от това клипче и най-вече от музикалните инструменти в него)
Преди около 3 години си взех бас. В началото бях адски зле, после много зле, сега може би стигнах до нивото на адски много зле (има кило записи някъде, мислех си да направя един текущ на нещата, които горе-долу докарвам, но звуковата ми карта за записи е в initLab в момента, а аз съм достатъчно пиян да пропускам струни и прагчета). Двете оправдания защо го направих са “криза на средната възраст” (не минава, щото май не съм стигнал дотам) или че съм си взел голям инструмент да компенсирам за други неща (това успява да мине пред незапознатите :) ).
Всъщност, основната причина да си го взема беше звукът. Китарата (въпреки, че имам и такава) си остава за мен някакъв лек, детски инструмент – близки, тънки струни, никакво задържане на тона (колкото и да е добра) и липса на усещането, което баса докарва – като го държиш, вибрацията на струните се усеща в тялото, като цяло обратната връзка е пряка и доста силна.
За това имам и колебания дали някой искам да си взема контрабас или upright bass, да видя какво е.
Също така музиката, писана да звучи добре на бас просто звучи по-добре и усещането от това най-накрая да успееш да я изсвириш е невероятно. Два страхотни примера са “Orion” и “Anesthesia” на Metallica (второто съм го слушал и като малък, но май чак сега успявам донякъде да разбера колко е красиво). Други примери могат да се намерят в Tool (“Schism”, който още не мога да свиря, “46&2”, от което докарвам части), или в много простите неща на Offspring, например “Gotta get away” или “Change the world”. А ако на някой му се прииска нещо по-злобно, може да пробва “Killing in the name of” на Rage against the machine.
Изобщо, правенето на нещо със собствените ти ръце, особено нещо толкова лесно усещаемо като музика е нещо, което всеки трябва да пробва поне веднъж. Не е задължително да кара хората да го слушат, може просто да му се радва.
2011-12-04 SpyFiles
December 4th, 2011 by Vasil KolevЧета “Spy Files”, последния release от WikiLeaks и се чудя как да се чувствам.
В началото си мислех да напиша нещо по темата за това каква отговорност трябва да се носи при правенето на тези неща, продаването им (особено като се погледне офертата на Amesys за Либия) и прилагането им. Никак не вървеше, та се зачетох в документите по-подробно и попаднах на набор каталози на Elaman (които mirror-нах при мен, че са 124MB).
Четенето им е почти като да четеш ужаси. От една страна те хваща параноята, че тия неща може да ти ги приложат на теб, от друга страна обаче има такива невероятни играчки, че чак ти потичат лигите. Комплекти за отваряне на ключалки и сейфове, детектори за радиоизлъчване, лазер и инфрачервени лъчи, заглушители за същите, дребни ръчки осцилоскопи и спектрални анализатори, системи за гледане през стени (да се проследят кабели и т.н.), подслушващи системи за сателити, разпознаване на глас, кой говори, на какъв език говори и т.н., и т.н.. Ако вярвах в Дядо Коледа, щях да му пратя тоя каталог…
Не съм фен на разните генерални подслушващи неща, анализирането на трафика и връзките между хората и ги намирам за гадни, но останалото всъщност е … готино.
Пиша това, за да отбележа, че всъщност съм ужасен човек и такива като мен ще унищожим света. Забавлявайки се.