Posts Tagged ‘събития’

2012-08-20 Ratio

Monday, August 20th, 2012

Киро (voland) (който има общо с организацията на събитието) ме зариби да ида на Ratio, което ще се проведе на 29.09 в София (подробности за къде и т.н. има на сайта).

Изглежда интересно, лекторите нямат вид на идиоти и като цяло не ми се вижда bullshit конференция като TED. Има някакъв минимален вход (може да се види на link-а за регистрация) и online продажбата на билети работи (трудно, мъчително и с бъгове, но върши работа).

(disclaimer: не са ми плащали, това не е реклама, на мен наистина ми изглежда интересно)

Записи от VarnaConf 2012

Thursday, August 16th, 2012

Записите могат да бъдат намерени в wiki-то на va.ludost.net или директно в http://va.ludost.net/files/varnaconf/2012/ (директорията с файловете).

Звукът е ремонтиран донякъде (почистване на шум и усилване) и би трябвало да е донякъде разбираем, за в бъдеще ще се вкарва директно от пулта в камерата, само да се снабдя с нужния хардуер. Също така няма отпечатъци от пръсти по обектива, размазаните неща, които се виждат на екрана на проектора са просто как някой по погрешка е драснал на него и се е опитал да го изтрие с гъбата.
Оставил съм всички представяния и announcement-и, понеже е важно да документираме първите стъпки на MC Стефан Кънев за поколенията. Препоръчвам на всички конференции в България да го канят да върши тоя тип работа, ще им се увеличи посещаемостта :)
(най-малкото той си има приличен фен клуб)

2012-08-13 Лекцията ми от VarnaConf (tldr)

Monday, August 13th, 2012

Това е лекцията ми от varnaconf – “Какво ми се иска да знаеха програмистите (а явно не го знаят)”.
(имаше няколко различни заглавия в тоя смисъл, не успях да подбера най-грубото)

Може би най-важното е да знаят, че имам лопата и си я държа под ръка…

Иначе, малко по-сериозно, да почна от там защо изобщо реших да водя лекцията. Пряко свързана е с работата ми и реално представлява мрънкане/оплакване от някаква част от проблемите, с които съм се срещал и не съм очаквал, че ще се срещна.
Моята работа по принцип е да карам неща, писани от други хора да работят. Това включва много debug-ване (което ми е едно от любимите занимания), много четене на код и малко писане. Държа да си кажа, аз не мога да пиша кой-знае колко добре, липсва ми времето и желанието за толкова съсредоточаване (ttee ми отне няколко дни, а не би трябвало).
Четенето на код е основно да разбера защо нещо не работи (или понякога как изобщо работи), съответно с мисъл за бъдещето обяснявам на хората къде е проблема, как може да се оправи, как аз съм го оправил, така че в бъдеще да не видя същото нещо. За съжаление ако историята ни учи на нещо, то е, че хората не се учат от историята, та моите опити са доста неуспешни. Приемете това като едно просто изливане на мъката.

Спрях се на два типа проблеми – теоретични и от неинформираност, понеже бях ограничен в 30 минути, но ще се опитам да засегна нещата в по-голяма дълбочина тук.

Ще започна с първия теоретичен проблем – copy-paste.
Copy-paste е метод за разпространение на грешката. Не мога да преброя колко пъти съм видял код, копиран няколко пъти и във всичките места със същата грешка. Човек би си помисли, че това е понеже няма как да се избегне (наистина има такива случаи), но най-често изглежда или като мързел от страна на програмиста, като липса на абстрактно мислене или като непознаване на езика и средствата на разработка. Голяма част от повторения код изглежда като писан от хора, които не са наясно че има неща като for цикли, функции, макроси и т.н..
Доколкото знам, започват да се появяват инструменти, които поне могат да откриват такива неща, но не съм забелязал сериозната им употреба. Тези неща много лесно се хващат с четене на кода (deja vu, “това някъде съм го виждал) и е едно от нещата, които code review може лесно да хване.

Умното писане ми е друг проблем. Много често се случва след-начинаещ програмист да открие нова възможност на езика, нов lib, нов метод на писане и да започне да го прилага навсякъде, където види, просто защото му се вижда много готин. Така се прилага безсмислено сложно средство за решаване на прости проблеми, което прави debug-ването много трудно, защото както е казал Браян Кърниган, “дебъгването е два пъти по-сложно от програмирането, така че ако програмирате с пълния си капацитет, не сте достатъчно умен да да го дебъгвате после”.
Някои езици много улесняват подобни неща, например Perl и C++. Мнението на Al Viro за C++ и защо не се ползва за kernel-а много добре показва проблема – накратко, езикът има твърде много възможности, всеки програмист свиква с някакво под-множество от тях, и когато в един проект се съберат да пишат няколко човека, се получава страшна смесица от стилове.
(на лекцията бях казал грешно, че идва от Линус, но мисля, че говорех за това, доста отдавна съм го чел)
По принцип често ме викат, когато трябва да се debug-не нещо такова супер сложно и омазано и най-честото нещо, което казвам е, че трябва да се пренапише.
(За пример за умен код давам примерните реализации на fizzbuzz, ако някой някога ми напише нещо като последната в production код, ще трябва да има преди нея поне толкова голям коментар, който обяснява защо е написано така и как точно работи)

Проблемът с валидацията може би ще иска отделна публикация, лекция, учебник, курс или религия по темата. Факт е, че след толкова години security и всякакви подобни проблеми никой не проверява получените данни.
(след малко дискусии с Кънев и още няколко човека искам да обясня, че например трансформирането на данните до вид, който е валиден също е вид валидация, т.е. правилното escape-ване например)
Докато водих лекции на едни ученици около летния лагер на БАН преди година-две във Варна, присъствах на тяхно предаване на проект, който представляваше симулация на банкомат – в общи линии му се подаваше сума и програмата по някакъв начин казваше в какви банкноти и по колко ще я върне. Имаше всякакви красиви реализации и т.н., но повечето изгърмяваха по неприятен начин (или зацикляха, или програмата умираше) на всичко, което не беше съвсем валидно – отрицателни числа, дроби, такива, за които нямаха типове банкноти – само защото нямаха няколко прости проверки в началото и вярваха, че входът ще е верен.
(това с вярването сигурно работи в религиите, но не и в програмирането)
Елементарното нещо – да се направи проверка още на входа на данните, се пропуска от всички. Много често ако има валидация, е от типа “shotgun” (т.е. все едно сте лепнали кода на стената и от далече сте стреляли по него с пушка със сачми, и където е паднала сачма там сте сложили проверка за нещо) и повече пречи, отколкото помага.
Друга такава елементарна грешка е идеята “аз пиша клиента и сървъра за нещо, значи данните ще са ми верни и няма защо да ги проверявам”, което е така до момента, в който някой друг се добере до този интерфейс и започне да праща там. Резултатите от това варират между викове “кой го е писал това” и вопли “как са ни хакнали и са ни потрили всичко?”…
Вариация на предното е “само аз пиша в базата, знам какво е и няма нужда да го проверявам” – имаше няколко случая на cross-site scripting през такива проблеми.
И нещо, за което малко хора се сещат изобщо, а на малкото останали хора, които държат на performance (като например game developer-ите) им е противопоказно е defensive programming-а – да се прави допълнителна проверка на още няколко места, понеже в крайна сметка всички допускаме грешки, нормално явление е да ги допускаме и е добре да ги хващаме. Пряко следствие от това е, че assert-ите не се пускат само в debug код, а и в production.

Като допълнение към валидацията, което не можах да разпъна добре на лекцията е, че няма замисляне колко сложни да се правят протоколите, така че да са лесни за валидация. Писах за лекциите от 28c3 и по-точно за Packet-in-packet атаката и за the science of insecurity, така че няма да повтарям (много), но е важно да правим всичко така, че да ни е нужен максимално прост апарат за обработката и валидацията му – колкото повече от нещата ни могат да се разберат и обработят с краен автомат например, толкова по-добре. В противен случай можем да се озовем в ситуацията на антивирусния софтуер, който спрямо математическата теория не може да бъде направен да работи напълно правилно.
(Проблемът там е като следствие от теоремата на Гьодел, която казва, че вътре в една система не можем да проверим дали всяко твърдение в нея е вярно или невярно, т.е. няма как със средствата на машина на Тюринг да валидираме друга машина на Тюринг)

И за пример за невъзможна за валидиране и използва сериозно система ще дам комбинацията от HTML5 и CSS3 (без JavaScript), която се оказва, че е Turing-complete.

След чистата теория нека да хванем няколко по-преки проблема.

“I don’t believe in miracles, I rely on them” изглежда да е стандартна програмистка философия. Трудно се схваща, че почти всичко може да върне грешка и съответно трябва да се направи нещо, ако това се случи. Като за начало, имам две парчета код за пример. Първото е “наивната версия”:

#define BUFSZ 8192
int fd0, fd1;
size_t len;
char buff[BUFSZ];

fd0 = open(file1, O_RDONLY);
fd1 = open(file2, O_RDWR);

while ( (len = read(fd0, buff, BUFSZ) !=0 ) ) {
	write(fd1, buff, len);
}

close(fd0);
close(fd1);

Второто е ремонтираната (DIE трябва да печата име на файл, име на функция, ред, подадения string и strerror(errno)):

#define BUFSZ 8192
#define DIE()...

int fd0, fd1;
size_t len;
char buff[BUFSZ];

if ( ( fd0 = open(file1, O_RDONLY) ) <0 ) DIE("open fd0");
if ( ( fd1 = open(file1, O_RDONLY) ) <0 ) DIE("open fd1");

while ( (len = read(fd0, buff, BUFSZ) > 0 ) ) {
	if ( write(fd1, buff, len) < len) DIE("writing");
}
if (len<0) DIE("reading");
close(fd0);
close(fd1);

(Оставил съм втората версия както ми е в презентацията, с грешките от един copy-paste. И аз съм идиот, това го видях на самата лекция, когато ми го посочиха)

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

Втората версия не прави някаква магия и да решава проблема – тя просто ни дава едно важно свойство, наречено “failfast”, т.е. програмата да прекрати изпълнението си колкото се може по-скоро след като стане ясно, че не може да го завърши правилно. С код с подобно поведение и няколко други прекрасни неща, като идемпотентност на изпълнението (много дразнеща дума, значи в общо линии че ако кодът се изпълни 1 или N пъти, резултатът в крайното състояние ще е все същия, т.е. можем да повтаряме колкото си искаме) и ACID свойства можем да правим истински работещи системи, а не такива, които се чупят, като някой ги погледне накриво.

Fallacies of distributed computing са друго нещо, което много ми се искаше да е известно на повечето програмисти. Много често хората пропускат колко гнусно нещо като поведение е мрежата. Ще се спра накратко на няколко от проблемите:

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

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

Мрежата не е reliable – нормално е за мрежата да губи пакети, да изчезва, да има jitter, а ако е internet е нормално това да е още по-зле. Съответно не може да се пише какъвто и да е софтуер, който я използва без да се имат в предвид тези failure modes и да се взимат мерки за тях.

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

Накратко, мрежата ви мрази.

Накратко два доста конкретни проблема от ползването на version control-а – още не се преподава сериозно, хората започват да го учат в движение в първата си работа и това води до всякакви проблеми, например до ползване на CVS или до това ако двама човека работят заедно, да седят един до друг и да си разменят файлове по skype.

Първият проблем от неяснотата как се използват VCS (version control systems) е че когато кажеш на някой “branch-ни това, за да работим спокойно по trunk-а” изобщо не те разбират, а като обясниш “направи копие еди-къде-си”, хората просто взимат файловете и ги add-ват наново там, което води до загуба на history-то. След като им се посочи грешката, те продължават да не схващат защо това е такъв проблем, понеже за тях VCS-а е само backup и commit messages са някакъв бълвоч, който никой не гледа, а когато потрябва да се гледат, вече е късно.
(Много е забавно да се анализират всички commit messages на някоя фирма и да се види кои са най-често срещаните думи. Моята любима (беше на 10то място в една фирма) е “blahovina”)

Вторият проблем е как като се прави някакъв сайт, редовно се слага config файла в repository-то. Понеже този файл е различен за production-а, staging-а и за машините на developer-ите, редовно се случва някой да го commit-не от грешната машина и да го update-не в production-а, чупейки всичко. Двете решения, за които аз знам са или да се прави template на този файл и само той да стои в repo-то, а другото е да се detect-ва средата и да се load-ват подходящите настройки (както прави rails, доколкото схванах).

И един bonus за четящите тук – нещо, което не можах да спомена в лекцията, но обсъждахме доста подробно след това, външните dependencies на един проект, кой носи отговорност за тях и как се update-ват. Ще говоря основно за неща, които се deploy-ват по сървъри, но има доста паралели и с end-user-ския софтуер.

По принцип имаме два варианта. Единият е да използваме външните неща от дистрибуцията/операционната система, оставяйки на тях отговорността (и подбирайки ги правилно, например да ползваме debian stable или centos или rhel), другия е ние да си ги вкараме в проекта и да си носим отговорността за тях.

Много проекти се спират на втория вариант, след което обаче забравят какво са вкарали, или пък дават зависимости през външна пакетна система (например ruby gem-ове) и пак забравят да ги update-ват. Или не забравят да ги update-ват, но не смеят, понеже ще се счупи нещо. Или ще update-нат цялото нещо към най-новата версия заради някакъв супер готин нов feature и ще потрошат цялата система.

За това хората, които не разбират как се прави това, не трябва да го правят – ако човек не участва в оперативната работа (я като админ, я като част от devops екип), по-добре да остави на другите да му кажат версии и външни пакети, за да може да се работи стабилно и без downtime. Като малка реклама на debian stable (и донякъде ubuntu server lts), те правят дистрибуция много подходяща за сървъри, понеже въпреки, че са със стари пакети, те реално за живота на дистрибуцията винаги backport-ват важните patch-ове (основно за security проблеми), така че системата е едновременно и сигурна и не се променя поведението ѝ.

Специално за външните dependencies също мога да направя цяла отделна лекция, в която да си излея мъката.

За всички, преживели изчитането на това – снимка на обстановката, в която спах във Варна :)

(най-много ме зарадваха силно невярващите погледи на някои хора от залата, т.е. има надежда, че има програмисти, които знаят тия неща)

2012-08-12 VarnaConf

Sunday, August 12th, 2012

Вчера беше VarnaConf.

Като увод, защо се случи цялото нещо – Радослав Станков (Радо) и още някой разбрали, че ще се засекат във Варна, мислили какви лекции да направят в локалния hackerspace, след което решили, че няма лошо да направят една конференция, Радо пуснал няколко mail-а до университетите някой дали има свободна зала и от Варненския свободен отговорили. В началото бяха 4 лектора, после в един момент 11, питаха ме и мен дали искам да правя записа и streaming-а, и така за две седмици се случи цялото нещо.
(Радо може да му хрумне да напише нещо по-подробно по въпроса, ако реши да върне блога си от мъртвите)

Аз пристигнах в четвъртък във Варна с Жоро Митев, като преди това бях пратил кашона с техниката по куриери. Видяхме локалния hackerspace (Varnalab), където вечерта Кънев изнесе 3 часа лекция за vim, видяхме се с локалните хора и изобщо си изкарахме весело.

В петък отидохме до Варненския Свободен Университет, за да разположим техниката и да видим залата (за която преди това Радо ми беше пратил малко снимки), което направихме за час-два (за какво можеше да стане по-добре – след малко). Последва мотаене, ядене, пиене и пак лекция във VarnaLab за увод в Ruby (пак от Кънев – после аз съм обичал да говоря много :) ).

Самата конференция беше много добра. Започнахме с 20тина минути закъснение (Радо закъсня, трудно ми е да му го простя, щото е спал повече от мен), но всичко си работеше и с много усилия успяхме горе-долу да спазим половината график. Имаше 80-100 човека (очакванията на всички бяха за 2-3 пъти по-малко), съответно има сериозен шанс това да стане редовно ежегодно събитие.

От лекциите си спомням следното:

Радо направи много хубава лекция за как добре да пишем и ремонтираме код;
Стефан (Кънев) изнесе стандартния си вид представление/лекция (имаме голям късмет, че не е религиозен лидер), която по броя slide-ове и информация в тях трябваше да е около час и половина, а той имаше по програма половин час;
Митьо (Димитър Димитров) говори за Ruby on Rails, като за разлика от Кънев имаше slide-ове и информация за 3 часа;
Андрей Радев показа “Как да превземем света с vim” и надмина показаното от Стефан в четвъртък. Накрая обясняваше как човек може да си направи с vim не само собствен lightsaber, но и lightsaber chainsaw, или дори lightsaber chainsaw nunchaku (с което съм напълно съгласен). Демонстрацията му в рамките на 10 минути на няколкото модула/скрипта, които той сам си е писал мисля, че напълно шашна публиката;
Калин Чернев говори за hackerspace-ове;
Аз мрънках от програмисти (презентацията ми в pdf или odp), вероятно ще разпиша цялата си лекция като blog post в идните дни;
И Христо Дешев разказа за полифазното спане, или как да спим по-малко, като спим да речем по половин час на всеки 4 или различни други варианти.
(имаше още две лекции, но бях доста отнесен/зает, за да ги слушам)

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

Последва after-party в някаква пицария – хапнахме, пийнахме, говорихме, говорихме, говорихме на хиляди теми, след което аз се прибрах да спя, и след няколко часа трябва да се метна на автобуса и да се прибера в София.

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

(Имам примерен отрязък от звука, в който Кънев представя лектора и после лектора говори известно време, ако някой има идеи какво би помогнало като филтри и т.н., моля да каже)

А догодина може да е два дни, или с два потока, да има повече хора (не се засякохме с летния ученически лагер на БАН, където ходят учениците, класирали се по олимпиадите по информатика и информационни технологии, и на тях щеше да им е интересно) и да не почваме в ранната сутрин (т.е. 9:20) :) (разбира се, като запазим колко лесна беше организацията :) )

(а в моя pipeline вече са два post-а – как се прави streaming/запис/encoding/рязане, и онова мрънкане за програмистите, някой ден ще ги напиша)

2012-08-05 VarnaConf

Sunday, August 5th, 2012

На 11.08 (събота) във Варна, във Варненският Свободен Университет ще се проведе VarnaConf – еднодневна конференция за developer-и. Аз ще имам една кратка лекция там (основно мрънкане), но се очертава да има по-интересни неща, програмата и лекторите могат да се видят на сайта.

Ще се stream-ва (освен ако нещо тотално не се сбози) на http://stream.initlab.org:8787/vc.ts, където в момента върви на loop едно клипче с програмата и “Too Tight” на Falik за фон. Мисля, че с vlc най-добре ще може да се гледа, но до събота има много време всички да тестват и да кажат дали имат някакви проблеми (и да си ги решат). Ако има желаещи, в София в initLab може да се организира прожекция – има всичко нужно за целта, само някой трябва сутринта да отвори.
(може като Радо се събуди по някое време да предложи по-хубав клип и някаква друга creative commons музика)

Вероятно ще пътувам няколко дни преди конференцията за Варна, та ще имам време да вися във VarnaLab и да преча на хората (най-вече на Кънев, който иска да върши работа и да води полезни workshop-и на хората). Ако някой му се намира по-интересна идея за моето време там (невключваща плаж и други подобни гадости) да пише.
Също така, ако някой там може да откликне на някаква част от тоя ми призив, също да пише :)

Update: Оправих url-то на stream-а, бях пропуснал порта (8787).

Sysadminday – 2012

Thursday, July 12th, 2012

27 юли, от 19:00 в мазето на “Кривото” на ъгъла на “Дондуков” и “Будапеща” ще си празнуваме пак sysadminday. Всякакви админи и подобни са поканени :)

2012-06-09 Архив на va.ludost.net

Saturday, June 9th, 2012

Крайно време беше да седна да органзирам архивите на различни записи, които имаме от всякакви конференции. Днес пуснах va.ludost.net – wiki и файлове, достъпни по http, ftp и rsync (rsync://va.ludost.net/va).

(Кодовото име на проекта е “Гогортолоз”, което според един sms от Кънев значело “крокодил” на арменски. Дори да не е вярно, думата радва.)

Изрових всичките неща, които имах на ludost.net, разните видеа от vasil.ludost.net/netsec от мрежовата сигурност, linux курса в ТУ, както и всякакви архиви на openfest (вкл. някакви raw записи от 2005, понеже ги нямам нарязани и ще се наложи едно бая сложно упражнение да ги подредя и синхронизирам, а тия, дето нарязах едно време са леко неоткриваеми, както и тия от 2006та).

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

2012-06-06 Лекция за hackerspace-овете в initLab

Wednesday, June 6th, 2012

В петък, 8ми юни от 19:00 в initLab ще има лекция на Larry Maloney, представител на HackerDojo по темата за hackerspace-овете, тяхното развитие и те какво са научили, докато са правили HackerDojo.

Лекцията ще е на английски, има някакъв шанс да я запишем и качим.

Update: Може да се гледа на http://tyler.ludost.net:8787/lab.ts
Update 2: Има и запис на лекцията. Би трябвало да има и още един, от един фотоапарат, ще кача и него като го обработя.

2012-04-17 Холандия – 2

Tuesday, April 17th, 2012

Събирането за подготовката на OHM2013 мина добре. Видяхме един голям и много хубав hackerspace, на Яна и пирографираха с лазер една бисквитка, пихме до никое време (бутилката Lagavulin свърши за нормално време, червото много помогна), избрахме някакъв начален дизайн (Bob T. Hacker беше особено интересен, не беше избран, но хората така и така са навити да направят една огромна надуваема кукла да се извисява над събитието). Показаха и избраното място (т.е. най-най-вероятното, все още може да се случи нещо странно) – намира се до езеро, по-голямо е от това за HAR2009, предполага се, че ще събере над 3000 човека (т.е. няма да има върнати) и е близо до цивилизация, има шанс да мога да спя нормално и в човешки условия.

Ходих в Амстердамския университет, да погледна как водят една магистратура по системна администрация (запознах се на един купон с човек, който учи там), и донякъде ми стана тъжно, донякъде умрях от завист. Не е само това, че си имат достатъчно хардуер, свързаност и т.н. да си правят всякакви експерименти, но и всички е организирано като да е удобно и подходящо за учене, а програмата им е настина добра (даже на едно от централните бюра стоеше “The Practice of System and Network Administration”) – например в момента бяха на Penetration testing. Не вярвам да видя подобна програма (и правилно преподадена) в който и да е български университет…

Успях и да посетя една книжарница и да се натоваря с книги (добре, че куфарът ми е само 10кг от позволените 20, та ще мога да ги пренеса), основно с неща, които не би ми хрумнало да си търся в online книжарниците – малко Hunter S. Thompson, сборници разкази, новата на Скалзи, както и едно хартиено копие на Watchmen. Поне ще имам какво да чета по обратния път, след като си издъвках двете книги на път за насам.

А, и ако не съм казал – в Холандия е студено.

2011-12-23 прожектиране на 28c3

Friday, December 23rd, 2011

Организираме прожектиране на лекциите от 28c3 в initLab, от 27ми до 30ти декември. Имаме предварителен списък какво мислим да гледаме и поне две стаи, в които да прожектираме (може да ползваме и третата).

(почти са ни одобрили регистрацията за гарантиран bandwidth, така че не трябва да има проблеми)

OpenFest 2011

Sunday, November 6th, 2011

Мина OpenFest 2011. Половин ден setup, два дни ставане в 8 (с много мъка, не го бях правил в последните поне 6 месеца). Това го пиша в силно скапано състояние и може би ще го довършвам на сутринта.

Мисля, че поставихме рекорд в сглабянето на целия setup (около 4 часа) и в разглабянето (около 30 минути). Този път на по-малката зала (реално галерията на Интерпред) си правехме сами почти цялото озвучаване. Благодарение на Олег имахме и хубави камери, така че трябва да имаме нещо-като-HD видео записи, като се сетим да ги encode-нем, нарежем и качим.
(тая година записите са безотговорност на Стефан Леков, ругайте него)
Оказа се, че един-два клипа на Вика Ермолева са добрия начин да се тества звука в голямата зала.

Ползвахме забавен хардуер. Щеряна в багажника си носеше един switch, който ползвахме за отвън, който освен дизайн като за армейски приложения и прилично количество портове имаше прекрасното свойство, че като го изключехме и ставаше приятно тихо. Мишо па беше направил един router с малко patch-ване на една кутия, в която освен дъно с atom процесор беше набил един малък switch заедно с кутията.
(има някъде снимка как ядем втория ден в/у тая кутия от баницата, която па Владо от ФМИ беше направил през нощта. Много хубава баница, спаси ни от гладна смърт)

Докато правехме мрежата, успях да строша едни клещи. Може да се види снимка на самите клещи и на останалото парче от ножа им, забито в кабела. Държа да отбележа, че аз ги стиснах съвсем нормално, те просто казаха “прас”.
(те не можеха и един жак да кримпнат както трябва, та поради липса на други клещи Владо от ФМИ трябваше да прави единия жак използвайки малка отвертка и тия клещи като чук)
Друг весел гаф беше как в неделя на баптистите, които имаха някаква служба точно под нас единия им микрофон се оказа точно на честотата на един от нашите и слушахме малко неща на английски за Господ, докато намерим какво точно да изключим от наша страна. Хората в залата бая се смяха, а аз се радвам, че се падна в почивката основно.

Владо също така получи титлата “Рицаря на поялника”, защото освен, че в петък прави единия кабел за озвучаването на място, в събота оправяше на Нейчо connector-а на захранването на лаптопа – бяха се скрили в единия джоб (малката стая до залата) и пояха в/у един стар хард диск.

Лекторите бяха… трудни за описване.

Червото беше насмукан прилично двата дни (за което бях обвинен напълно несправедливо аз и малиновата ракия, дето си носех за подкрепа – той пие само бира), като първия ден мисля, че успя да уплаши всички в залата, като зададе въпрос на английски с такава сила, че го чуха извън Интерпред.

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

В lightning talk-овете имаше весели моменти.
Сашо Шопов говори за преводите на gnome и започна по следния начин:
– Кой в залата мрази Gnome3?
(гора от ръце)
– Имаме останали малко балони от партито, ще ви дам после да духате.

Боян Кроснов разказа за тяхната проста хеш функция, базирана на AES инструкциите в новите процесори (подходящо кръстена aesaes). Полезна е за всички, които трябва бързо да пълнят хеш таблици.

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

Очакваше се империята да отвърне на удара, което и се случи в лекцията на Кънев. Първо се започна с един заговор (в който и аз участвах), той реши да си води лекцията в костюма, в който си беше на сватбата на iffi, с папионката и т.н.. Съответно подредихме нещата така, че да се пусне theme от James Bond, и той да влезе някъде по средата. Крайният ефект беше, че той беше единственият лектор, на който ръкопляскаха преди да си започне лекцията :)
Съответно той започна лекцията си с обяснение, че преди е слагал картинки с нарисувани мустаци на Мариян, ама тая година вместо това просто е решил да се облече по-добре. Също така показа една снимка от сватбата, включваща мен, него и приятелката му, обяснявайки със стрелки/балони как човек като види тази снимка си мисли за него “какъв добре облечен човек”, а за мен “кой е тоя просяк и какво прави там”…
(определено ще си струва да се види и този запис)

Владо Василев па направи много хубаво описание на initLab, и май доста хора научиха за мястото, да видим дали някой нов човек ще се вясне.

Мартин Райков направи лекция за RFID research-а и технологията като цяло, които беше правил с малко мое участие в initLab. За перипетите преди да направим лекцията май трябва да пиша отделно, но имаше всякакви хора, които се чудеха колко добра идея е да се говори за тия неща, колко нещастни хора и фирми ще има, как някой може да брои разказването на тая информация за престъпление и т.н..

За лекцията на червото се носеха разкази и слухове, как щял да падне докато говорел и т.н., но аз поне не видях нищо такова няколкото пъти като минах от там. Определено си беше пийнал (2л бира преди да дойде още) и говореше на английски (пак признак за насмуканост при него), ама си беше разказал всичките технически неща, не беше паднал (въпреки очакванията) и не всички хора избягаха от залата, докато говореше. И това ще е запис, който трябва да се гледа.

Организацията дойде тежко на някои хора. Пазя си сметката от близкия магазин, щото се смяхме като излезе – беше точно за 10.24 (касиерката определено ни изгледа странно като обяснихме, че е хубаво кръгло число). Не мисля, че много други хора и на феста ни разбраха…

В антрето през двата дни reprap хората печатаха разни странни неща от пластмаса и разказваха на всички заинтересувани какво точно представлява цялото нещо. В неделя Радо седна и от логото на openfest направи един модел, който към края на вечерта вече бяха успели да отпечатат, беше се получил доста добре :)
(заради reprap хората също така оправях wireless мрежата на един windows-ки лаптоп, гадна работа)

И двата дни напълнихме Кривото, пихме веселихме се, а на втория ден аз включително си демонстрирах закуската на Мишо (който я намира за ужасно гнусна) – поръчах си едно сурово яйце, счупих го, изсипах жълтъка в една чаша, посолих го леко и си го изпих. Вкусно си беше (така и така последните две сутрини не бях успял да закуся).

Щандът с книги беше доста приятен, тая година си напазарувах две книги – Network Warrior, която е доста добра за начинаещи да си допълнят знанията по мрежи (въпреки че е доста cisco ориентирана) и една “hackers – heroes of the computer revolution”, леко историческа.

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

(също така – Сашо Станев, забравеният ти калъф за очила е в мен, измисли кога да ти го дам)

2011-10-31 сватба

Monday, October 31st, 2011

Омъжихме iffi за Канев. Кратки бележки, щото не ми се пише разказ (ще оставя на нея това забавление)…

Церемонията се проведе в траурния (или май беше обреден) дом в Хиподрума. Церемонията беше сравнително кратка (въпреки че в един момент се зачудих няма ли един scroll-bar да прескочим част от нещата). Имаше процедура по настъпване м/у булката и младоженеца, в която тя имаше сериозно предимство, понеже от роклята не и се виждаха обувките.

Стефан Кънев се беше облякъл в костюм с папионка, което доведе до новия му прякор (“Джеймс”, щото мязаше на Джеймс Бонд), и до това в един момент (без да искам) да го сбъркам със сервитьора и да му поръчам още уиски.

По стандартна българска традиция се изпи много. Аз може да съм го докарал до около половин литър уиски.
Имаше прилично количество танцуване и куфеене. Още ме болят врата и гърба.
Главата пък изобщо не ме боля.

Около стандартната традиция с разчупването на питката имаше десет големи трохи на пода, което в общи линии се тълкува като да имат десет деца. Аз нямам нищо против, ще подпомогне размножителната ми програма. На булката, от друга страна май не и хареса особено идеята…

Най-добре облечен па беше Илфа, с един килт. Щеше да е голяма картинка, ако се беше включил в хорото.
(всъщност, според мен по сватби се танцуват хора основно за да се показват женски крака. Късите поли/рокли определено помагат)

Поканата за сватбата (която получих на самата сватба :) ) беше доста интересна, и с един комикс от xkcd на гърба (преведен). Имаше също така неща от xkcd по тортата (на които в момента нямам снимки).
(бях отбелязан на поканата и в списъка с гостите като “крокодила”. На персонала им беше малко странно)

Аз издържах до около 12 (пиенето беше почнало в около 6:30), май по това време и младоженците се канеха да ходят да си легнат.

2011-08-16 CCC Camp лекции

Tuesday, August 16th, 2011

Мина Chaos computer club camp 2011. Няколко човека бяха там (и са се прибрали преди няколко часа), а други си висяхме тук в initLab и гледахме живите предавания (понеже ни домързя да отидем и т.н.). Ето малко впечатления от нещата, които гледахме:
(информация за записите)

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

Лекцията за OpenLeaks описа текущия прогрес и събираше хора да им помогнат да прегледат системата, как работи и т.н.. Не беше особено интересна, но имаше много забавно развитие след края на camp-а – CCC са изключили/изгонили Daniel Domscheit-Berg, има малко информация по въпроса в Spiegel online.

Introdution to satellite communications не успях да гледам както трябва, понеже лекторката никак не се чуваше, може да пробвам пак на записа, но не изглеждаше достатъчно интересно, поне в първите 20 минути.

Bicyclemark направи лекция за fairphone, проект за мобилен телефон, който не разчита на елементи, добити от “конфликтни зони” (т.е. от такива, в които хората се избиват и продават колтан и т.н. срещу оръжие).

Пропуснах Transition telecom на Rop Gonggrijp, а още няма излязъл запис. мъка.

GPRS Intercept беше поредната демонстрация от GSM-базираните неща – демонстрираха (евтино) подслушване и декриптиране на GPRS трафик. Демонстрацията проработи :)

Започнахме втория ден с What’s brewing in Brussels, едно описание на случващото се в Брюксел и влиянието му върху европейския съюз (особено в частта за data retention директивата). Имаше малко информация за действията на разни групи (като AK-Vorat) и че все пак може да имаме шанс да преборим тая директива.

Solid rocket engines беше много информативна и добра лекция за дизайна на ракетни двигатели. Описаха структурата, едно прилично количество много добре обяснени формули и различните твърди горива. Перфектен увод в темата:)

Steal everything, kill everything беше лекция по темата social engineering и физическа сигурност – как един човек, който се занимава с това е прониквал в различни места, какво е успявал да направи и т.н.. Като цяло доста забавна лекция, но и доста тъжна, понеже се оказва, че някакви ужасно стари и класически методи продължават да работят и да са толкова лесни за прилагане.

От Hacking DNA хванах горе-долу половината, но беше доста интересна (и на края може даже да се чуе въпрос от червото). Накратко става въпрос как в един hackerspace хората могат да си правят различни ДНК експерименти.

Imagine the future of money ми беше силно неразбираема лекция, може би тия дни ще седна и ще прочета теорията им, понеже определено нищо не успях да разбера от презентацията им, освен че имат някакъв странен банков инструмент.

Не успях да гледам Who’s snitching my milk, но препоръчвам на всички да си свалят презентацията и да я прегледат :)

Третият ден изглеждаше да е най-силен. Аз пропуснах Runtime reconfigurable processors (нещо по темата FPGA).

Продължихме с Decentralized clustering, което се оказа лекция на хората от Telecomix за постигнатото около отрязването на internet-а в Египет и подпомагането на комуникацията на хората в подобни ситуации, както и за бъдещите им планове (да се угасят за известно време, преди да продължат нататъка, и да решат какво точно ще правят).

Open-source 4G radio беше описание основно на WiMaX технологията, как работи и показване на малко записан от ефира трафик. Още няма разработки по темата за чупене на криптирането, но основните неща, като сваляне от ефира и пакетния формат са ясни.

Reviving smart-card analysis беше страхотна лекция по темата как точно се вади информация от смарт карти, как се reverse-engineer-ват чрез различни средства и малко съвети как производителите биха могли да ги направят по-добре.

Лекцията на деня (и може би на целия camp) обаче беше Black OPs of TCP/IP на Дан Камински. Комбинира няколко забавни неща, като bitcoin (как може да се пробие анонимността), един вариант за генериране на двойка ключове от парола и накрая – n00ter, софтуер, чрез който може да се разпознае дали ISP-то ви ви забавя трафика към определени сайтове (т.е. дали прави някакви мизерии по темата net neutrality), като използва няколко много забавни hack-а, например пакети с грешни tcp checksum-и и spoof-ване на трафик по забавни начини.

Завършихме деня с Applied research on security of TETRA radio – поредният проект на Харалд Велте. Този път беше се хванал да заслуша различните TETRA мрежи, да опише стандарта и многото проблеми – например как по-голяма част от мрежите не ползват никакво криптиране, въпреки много добрите възможности, които има в стандарта (например end-to-end).

Четвъртия ден започнахме с Poker bots – опитът на няколко човека да направят bot-ове, които играят покер – като се тръгне от мрежовата част и се стигне до теория на игрите и стратегиите за игра.

Open-source photovoltaics беше лекция как в общи линии да си навържем слънчеви панели, батерии, лампи и малко електроника.

A short history of IPv4 беше лекция на Alex от RIPE за историята на IPv4 от гледна точка на RIR-овете – от създаването на протокола, през различните методи за alloc-ване на ресурси до днешни дни и идеята, че май трябва да ползваме IPv6. Имаше и един интересен отговор (поне за мен) – като питах какво мислят по темата за продаването на блокове от адреси, Alex каза, че RIPE няма нищо против цялото нещо, понеже така или иначе не биха могли да го спрат.

Последния ден започнахме с Introduction to multicast security – накратко как стандартните методи като SSL/TLS не работят, трябва да се ползват RTSP и като цяло различни методи за дистрибутиране на ключа и т.н..

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

Data mining your city беше също интересна лекция, но ние вече сме слушали подобно нещо на workshop-а на OKFN, който се случи в initLab преди няколко месеца.

Та – събитието като цяло беше с добро излъчване (като изключим проблемите от първия ден) и на всички лекции можеше да се задават въпроси през irc каналите за различните зали (като поне от мен са задали десетина въпроса). Не беше същото като да отида там и в добрия, и в лошия смисъл – от една страна го нямаше контакта с интересните хора и възможността да обиколя workshop-ите, от друга – не спах на палатка в дъжд и не слушах червото как ми хърка…

2011-08-08 гледане на лекциите от CCC Camp – 2011

Monday, August 8th, 2011

От сряда до неделя (10-14ти август) организирам гледане на живите предавания от CCC Camp 2011 в initLab. Програмата е доста интересна, в страницата на самия lab има страничка с какво ще гледаме първия ден, за следващите ще се публикува на сайта какво ще гледаме (и се приемат предложения).

2011-07-30 sysadminday

Saturday, July 30th, 2011

Отпразнувахме деня на системния администратор.

Напълнихме (“изправихме”) Кривото, пийнахме добре (даже имало един заспал пак), и изговорихме огромно количество глупости.
Измерихме колко е дълъг един бит във въздуха около нас (при 12.5cm дължина на вълната на 802.11 и QAM модулация, около 37.5cm, т.е. 3 пика), което па тръгна въпроса – ако погледнем колко wifi, wimax и HSDPA трафик тече около нас, и като сметнем, че половината от него (горе-долу) е порно, дали не трябва да се притесняват всякаквите там вярващи хора, че през църквите и джамиите им текат ужасяващи неща почти постоянно (и вероятно ги замърсяват)?
(друг момент беше, че ако админите знаеха точно какво тече през switch-овете, щяха да ходят всяка сутрин да ги мият, да не лепнат пакетите…)

А аз май ще си поиграя с glusterfs, че това може да реши въпроса с дистрибутираната поща. Повече по темата – тия дни.

Sysadmin day 2011

Wednesday, July 20th, 2011

Стандартно като всяка година, ще празнуваме деня на системния администратор (29 юли) в “Кривото” на ъгъла на Дондуков и Будапеща, долу в мазето, след 19:00 – запазили сме две-три маси.
(желаещите да дойдат може да пуснат някой коментар, ако трябва да запазим още)

2011-04-07 Kultur Shock

Thursday, April 7th, 2011

Мина поредния концерт на Kultur Shock.

Беше в малко тясна зала, която имаше 4 колони по средата (крепежните елементи, не озвучителните) и беше малко странно къде трябва да стои човек, за да чува добре звукът (оказа се – отстрани, до озвучението). Малко неприятно беше и че имаше доста стъклени бутилки и съответно доста счупени.

Беше размазващо, както обикновено. Свириха с кеф, новият им състав изобщо не отстъпва на стария, даже са още по-голяма картина, и изобщо имаше невероятна връзка с публиката. Погото почти не спря, Gino накрая почна да говори директно на сръбски, че да го разбираме по-добре, излязоха няколко пъти на бис (май изобщо не ги броих), изобщо купонът беше невероятен. Не знам друга група да може да направи подобно нещо (и нарочно си прегледах блога, преди да го кажа), дори и огромното шоу на Rammstein или смазващия концерт на Apocalyptica не докараха такава връзка и такова усещане за отдаване и размазване.

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

2011-03-27 “Донеси ми главата на принца 2”

Sunday, March 27th, 2011

Представлението “Донеси ми главата на принца 2” беше… странно.

Не е театър в точния смисъл на думата, по-скоро е комбинация от пиеса и концерт (на група, която се казва “Natural Born Wizzards”). Историята е продължение на тази от книгите на Зелазни и Шекли, като основно използва героите от там и са си измислили собствена история. Направили са го много добре – дотолкова, че в един момент се превивах от смях и май още малко ме боли стомаха – а музиката беше страхотна. С голям кеф слушах пак след 10на години “Донеси ми главата на принца” и може би най-доброто им парче, “I crave you”.

Актьорската игра също беше на ниво (което при малката сцена в Angel heart си е постижение). Като цяло, цялото нещо беше толкова добро, че май ще се ходи да се гледа пак на 1ви април.

Очаква се и да издадат целия soundtrack.

Update: Пропуснал съм да напиша, но е хубаво човек да е чел книгата преди представлението, някои неща става малко по-ясни.

2011-03-21 “Донеси ми главата на принца”

Monday, March 21st, 2011

За който не е разбрал и няма да ходи на концерта на Epica – на 26.03, в Angel heart ще се играе пак “Донеси ми главата на принца” (или по-скоро продължение). Последния път, когато това се игра беше през 2001 и ми е оставило достатъчно дълбоки спомени, за да искам да ида пак :)
(правено е по книгата на Роджър Зелазни и Робърт Шекли)

(пускам новината с малко закъснение, щото исках първо да си взема билети…)

2011-02-26 крокодиловден

Saturday, February 26th, 2011

Снощи беше отпразнуван крокодиловден.

Идея си нямам колко изпихме, но бележките са в мен, ще взема да ги сметна накрая. Изкарах до около 2 и ги оставих да допиват.

Пак имаше танца на пияния и изпаднал крокодил, и май ще да е последното изпълнение. Крайно време е да се измисли някаква нова дивотия. Има огромно количество записи, вероятно няколко ще бъдат качени.
(трябва да има и снимки, ама не е ясно колко ще бъдат качени – има бая компромати из тях)

Както обикновено, в списъка подаръци има невероятни дивотии (не мога да си спомня кое от кого беше):
Лопата (от digger)
Плуваща играчка – хуй – за вана (навива се и размахва крака) и дъвка с хлебарка (от Весо).
Магнитни топчета (според физика и надписа на кутийката – 216 на брой) и 4×4 кубче на Рубик (което остана там, понеже почти го разглобиха оставих там да го сглобят наново)
Лула и тютюн (от Ици, после как да обясня, че не пуша…)
Часовник-бомба (за събуждане)
Една тениска с крокодил и надпис “bio debugger”, от Алекс.
Два афиша с Hannah Murray и две чаши, в които като налееш гореща вода отстрани им се появява тая картинка (на едната е малко по-различна версия) (от Линда).
Една табела със много ценен надпис, в общи линии отмъкната от някъде.
Три торби дрехи от Галя и Ирина (с надписи, че са чисти).
Разтегаема вилица и завеса за баня с кръв по нея.
Една кутийка черен хайвер.
Едно музикално устройство (в което се духа и е с клавиши като пиано) от Петьо, Катина и Виктор.
Устройство за правене на перца за китара от произволни неща (нещо като перфоратор) от Мариела.
Drinking игра от Мишо.
Някакво количество пиене (един Jack Daniels с чаши, един Dimple, един 12-годишен Tullamore dew и един sample с 3 single-malt уискита (Lagavulin, Talisker, Ragganmore))
Билет за Kultur Shock, увит в билет за Lepa Brena (Mastika i Boza tour), за 31ви февруари в Sin city, сектор 6 без 10, маса 3 (правостоящи отгоре и), от iffi и Канев.
USB лампа и вентилатор с допълнителни батерии (от Тинчев и Чорбаджийски).
Странен device за раздухване на барбекю, комбиниран с отварачка (от maxbam).
Двата тома на “Задочни репортажи за България” на Георги Марков (от immortal).
Новите задочни репортажи и “Машина за легитимност” (от Пейо).
“Жълтите очи на крокодила” (от Бобсън).
“Половите инфекции” и “Синдром на раздразненото дебело черво” (от Каравелов и д-р Михов)
“501 must-read books” (от Крис, както каза – meta-подарък)
Един голям плюшен задник (т.е. сърце, ама всички знаем оня виц за кардиолога).
Скицник, тетрадка и моливчета, като да ходя в първи клас.
Една статуетка с надпис “питието определя битието” (от blade runner).

Ако има още нещо, припомнете.