2012-08-12 VarnaConf

August 12th, 2012 by Vasil Kolev

Вчера беше 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

August 5th, 2012 by Vasil Kolev

На 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).

Threaded tee

July 21st, 2012 by Vasil Kolev

Понеже не намерих нещо такова (след малко търсене) преправих един стар source да прави нещо като unix-кото tee, но thread-нато и без да пише на stdout. Трябваше ми, за да мога да записвам изхода на dvgrab и едновременно с това да го пращам към vlc, което да го stream-ва навън.

Може да се свали от /progs/ttee-0.1.tgz. Има някакви остатъци от старата задачка вътре (която беше нещо такова, само че с четене от unix domain datagram socket и само един output, в mysql), ако някой много много много държи, може да си го качи някъде в github, само да каже да сипя вътре в архива, че е public domain като лиценз.
(а по някое време мисля да напиша подробно за как stream-ваме и записваме в initLab)

Update: Оправена версия – /progs/ttee-0.2.tgz, с нормален ring buffer и с малко git history вътре.
Update 2: Работеща версия – /progs/ttee-0.3.tgz, оправени няколко бъга, които водеха до загуба на данни.
(решението ми хрумна в 4:30 сутринта и вместо да спя, patch-вах)

2012-07-18 лекция “Дребен пример от разпределеното програмиране”

July 18th, 2012 by Vasil Kolev

Мина лекцията във вторник, има запис и може да си свалите пълния архив с презентацията и парчетата псевдокод.

Отделно ето я и самата презентация.

Става въпрос за тип задача, която не намерих в design patterns, и за която има различни парчета софтуер, които правят нещо подобно (rabbitmq, gearman). Основната причина да се пише от нулата, вместо да се ползва нещо готово е, че се интегрира много по-добре в съществуващата система и така е доста по-просто, отколкото да се добавя още някакво парче код.
(и е интересна задача :) ).
Имам в практиката си три реализации, като това, което показвам прилича най-вече на една от тях, система за encode-ване в няколко формата на видео. Имаме много сървъри, които се занимават с encode-ването (cli.*) и които си взимат задачи от централен диспечер (srv.*), който има някакъв вариант да пази persistent state (в моя случай – база данни). Задачите са индемпотентни, т.е. могат да бъдат изпълнени повече от един път, ако се наложи.

Езикът, който съм ползвал в примерите е в общи линии псевдокод, който прилича на смесица от perl и php. Странните неща в него са, че има мнoжествено връщане (т.е. конструкция от типа $a, $b = f()) и че respond в srv.* връща отговор на клиента и излиза, т.е. прилича малко на return. man pages описват семантиката на fork и wait.

Начален вариант на решението би бил с този диспечер и този клиент.

Първият проблем, който се вижда е, че ако сървърът не успее да свърши задачата, няма как да го съобщи на диспечера. Това лесно се коригира с добавяне още на един тип заявка към диспечера:
Версия 1: диспечер и diff от предишната версия, клиент и diff от предишната версия.

Вторият проблем е какво става, ако заявим, че искаме задача, диспечера ни я задели, но не получим отговора? Ако нямаме обработка на този случай, в такива ситуации ще се натрупват задачи, които се водят, че се обработват и реално никой не ги е взел. Решението, до което аз стигнах е да добавя на всеки сървър transaction id и при заделяне на задача диспечерът да отбелязва сървъра и transaction id. Ако клиентската част подаде заявка за нова задача и не получи отговор, трябва специално да подаде обратно заявка за “cancel”, за да сме сигурни, че неполучената задача е върната в pool-а на свободните задачи.
Версия 2: диспечер и diff от предишната версия, клиент и diff от предишната версия.

Третият проблем е рестартирането на някой от сървърите, които обработват задачи – например поради спрял ток. Когато той се стартира отново, според диспечера ще има няколко задачи, които той обработва и за които той не знае. Решението е просто – добавя се тип заявка, която се подава при рестарт и почиства работещите задачи за даден сървър.
Версия 3: диспечер и diff от предишната версия, клиент и diff от предишната версия.

Четвъртият проблем (който би трябвало да е един от първите) е колко често и кога да се опитваме да повторим заявка към сървъра. Всяка заявка, която може да подадем може да стигне, но може и да не стигне до сървъра, или ако стигне, нямаме гаранция, че ще получим отговор. Съответно трябва да добавим към srv_request() в клиентската част логика колко пъти и как да опитва – само веднъж, много пъти или безкрайно. Заявяването на задача трябва да се изпълнява точно един път, останалите неща – докато се получи отговор.
(от “много пъти” смисъл в повечето случаи няма и би трябвало да го махна от кода)
Друг проблем, който се вижда доста бързо е, че ни трябва нещо от типа на exponential backoff, за да разредим честотата на опити от страна на сървърите към диспечера. Това се прави, за да се избегне ситуация от която след restart изведнъж се изсипват твърде много заявки в/у диспечера и има шанс да го претоварят. Същото нещо може да се види и в доста мрежови протоколи, например TCP.
Версия 4: клиент и diff от предишната версия.

Петият проблем е да ограничим колко товарим себе си (и донякъде сървъра), като ограничим броя задачи, които изпълняваме. Прави се сравнително просто, с брояч на вървящите в момента child процеси.
Версия 5: клиент и diff от предишната версия.

Шестата версия е основно дописване и доподреждане на кода, с оправяне на няколко проблема, които само ми хрумнаха и не съм виждал на живо. Едното нещо е валидация на state на определена задача, другото е един race condition м/у fetch и cancel (който по принцип не трябва да може да се случи).
Версия 6: диспечер и diff от предишната версия.

Има функционалност, която по различни причини не е дописана в този код:

– да връщаме на всеки сървър колко да изчака, преди пак да пита за задача, като метод за flow control.
– job timeout/job restart – да решаваме по някакъв начин кога да рестартираме определена задача (понеже е възможно сървърът и да е умрял и да не се е върнал повече). Това не пасва добре в текущия код, т.е. трябва да се напише отделен компонент, който се вика периодично или работи като демон при диспечера, който да изпълнява тази функционалност, а самата логика за това зависи твърде много от контекста.
– Log на всички събития – животоспасяващ при всякакво дебъгване.
– Monitoring и аларми при различни състояния, дефинирани като проблемни (твърде много чакащи задачи, твърде много обработвани и т.н.) – пак трябва да е в отделен от тези два компонента.

2012-07-13 комикси, които чета

July 13th, 2012 by Vasil Kolev

Пак стигнах до поредния момент, в който съм предрусал с четене и ми е трудно да хвана няколкото висящи книги, та ще взема да пиша. Понеже в общи линии съм си написал лекцията за вторник, ето опит за сглабяне на списък на всичките online комикси, които чета. Част от тях са ми в агрегатора, част са един голям bookmark folder, който отварям целия след 11 сутринта да видя какво ново е излязло.

Списъкът е tldr, може да го изнеса директно в отделен page вместо като post.

(По принцип списък с почти всички web комикси може да се намери в comixmix. Преди около година попаднах на една тяхна класация, след което се хванах да прегледам целия списък и да сихареса неща за четене. Наскоро свърших с преравянето на списъка и изчитането на написаното досега от тия, дето ми харесаха, чувствам се все едно съм прочел internet-а. Почти като след като прочетох целия bash.org за пръв път.)

xkcd би трябвало да е познат на всички, със stick фигурите си, математиката и другите весели неща.
Abstruse goose – другарчето на xkcd.
Romantically apocalyptic – странен, малко руски като усещане, с много добър art.
Всички обичат Дилбърт.
Megatokyo – много добре нарисуван, много хубава история, но си го наваксвам от време навреме, понеже се движи много бавно.
Candi comic – не знам защо още го чета, може би донякъде заради историята.
Sinfest – един от великите.
Questionable content – един от великите, авторът му прави и доста добра музика (групата се казва Deathmøle, писал съм по темата).
Gunnerkrigg court – много добра история и много добър вид, пак от категорията на великите.
Johnny Wander – проект на двама автори на комикси, основно one-shot неща, доста интересно и добре направено.
Poisoned Minds (или SSDD) – чета от много време, може би основно заради идеите и философията на автора.
Unshelved – библиотекарски комикс, от него си намирам понякога нещо за четене.
Between failures – комикс за работещите в един голям магазин, интересен за разлика от повечето такива.
Dead winter – зомби апокалипсис. Стилът на рисуване е доста различен от останалото и много добър.
Prequel adventure – леко странна, напомняща на стари quest-ове история, но с различна реализация (много хора пишат в един форум и са нещо като подсъзнанието на героите). Според мен – рядко добро.
Scary go round – попаднах на него от overcompensating, английски автор на комикси, пише интересни истории.
Menage a 3 – секс.
Sorcery 101 – fantasy комикс, доста добър.
Wolf wears wool – върколашка история, още в началото.
Sequential art – комикс с приятна история и много добър grayscale art.
Skull Kickers – fantasy, като качество надминава повечето неща, които могат да се намерят online.
Max Overacts – не мислех, че комикс за хлапе с актьорски наклонности ще ми е интересен, но сбърках.
PVP online – комикс за game списание, води се от класическите.
Pictures of you – весела и доста дълбока история.
Powernap – комикс за човек, който трябва да спи в свят, в който никой не спи.
A Redtail’s Dream – приказка.
String Theory – историята ми стана много интересна.
Bear nuts – комикс за мечетата в зоопарка. Пълен с груби, грозни и просташки моменти.
Spacetrawler – клони към твърда фантастика (не само защото е в космоса) и историята е интересна.
Lady Sabre and the Pirates of the Ineffable Aether – летящи морски кораби, още го чета за да видя колко интересен ще стане.
Flaky pastry – това го чета само за да видя какво ще стане.
Yellow peril – все още започва, но е обещаващ.
Left-over soup – историята съвсем малко ми напомня Questionable content, философията на автора е интересна.
Life and Death – комикс за Steve, който изпълнява длъжността “Смърт”. Весела история, съвсем леко изтъпява на моменти.
Next town over – steampunk история в дивия запад. Историята изглежда интересна.
Paranatural – пак добра история.
Legend of Bill – леко глупав fantasy.

Понеже са много и да не го казвам всеки път, one-shot весели комикси:
Saturday Morning Breakfast Cereal – велик, вероятно сте попадали на неща от него къде ли не.
Cyanide and happiness – груб, просташки, виждали сте го. Класически.

Systems – комикс, използваш стандартните знаци (например означението за мъжка тоалетна е главния герой), с добро чувство за хумор.
Scenes from a Multiverse – стандартни ситуации в странни светове.
Channelate
Poorly drawn lines – весел и груб.
Bug – доста забавен.
Wulff-Morgenthaler (или вече WuMo) – доста груб и NSFW. Радва.
Head trip – случки около авторката.
Three panel soul – случки около живота на автора (който преди това беше един от авторите на applegeeks).
Overcompensating – странно и ми е останало по навик да го чета.
AmazingSuperPowers

Pigs in Maputo – проект на една девойка, която рисува на лисчета.
Pigs in math – пак проект на същата девойка.
Pigs incorporated – пак проект на същата девойка.
Savage Chicken – комикси на post-it бележки. С кокошки.

2012-07-12 пак лекция

July 12th, 2012 by Vasil Kolev

Ще водя още една лекция в initLab във вторник (17.06) от 19:30. Пак ще се stream-ва на http://tyler.ludost.net:8787/lab.ts и пак през irc ще могат да се задават въпроси.

Sysadminday – 2012

July 12th, 2012 by Vasil Kolev

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

2012-07-07 книжната лекция в initLab

July 7th, 2012 by Vasil Kolev

Мина лекцията в initlab за книгите. Имаше десет книги в първоначалния план, но накрая говорих и за още две.

Първоначалният списък:
(link-овете са към goodreads, от там може да се ориентирате лесно)

За писането: Мемоари на занаята на Стивън Кинг, заедно с Правопис и пунктуация на българския език (издателство на БАН).

Хората трябва да могат да пишат и да ползват собственият си език.

Shooting an Elephant на Джордж Оруел.

Събрани есета. Показват колко добре умее да пише Оруел, съдържат класическото му (и цитирано от всички) есе за как се пише, както и много неща за истинския журнализъм, езика и истината. Няколко цитата:
“Political language is designed to make lies sound truthful and murder respectable, and to give an appearance of solidity to pure wind. ”
“The greatest enemy of clear language is insincerity.”
“Journalism is printing what someone else does not want printed: everything else is public relations.”

Дзен и изкуството да се поддържа мотоциклет на Робърт М. Пърсиг.

Философска книга. В нея всеки намира ралзични интересни неща – някой спомена как цялата книга според един негов приятел била за музика, според мен е за технологии, сигурно има и други мнения. Една от главите беше поредния тласък да спра да преподавам във ФМИ и да мисля друг вариант.

The Invisible Gorilla and Other Ways Our Intuition Deceives Us на Christopher Chabris и Daniel Simons

Книгата, която ме накара най-накрая да направя подобна лекция. Описва колко много грешим и се лъжем сами. Понеже ме мързи, подробности има в ревюто ми (или може някой път да напиша цял post).

The Psychopath Test на Jon Ronson

От нея се запалих да чета неща по тема психиатрия.

Liars and Outliers на Bruce Schneier

“Приложение на теория на игрите за обществото”

Промиване на мозъци – психологията на тоталитаризма на Робърт Лифтън

Вече съм писал за нея

Masters of Doom на David Kushner

Историята на хората, направили id Software. Който не знае кой е John Carmack определено трябва да я прочете.

Kingpin: How One Hacker Took Over the Billion-Dollar Cybercrime Undergroundна Kevin Poulsen

Историята на Iceman (една от големите фигури в credit card fraud средите).

Better: A Surgeon’s Notes on Performance на Atul Gawande

Хирург, който обяснява как приложението на прости статистически и технически методи може да подобри ефективността на работата. Много от нещата са приложими в нашата област (и много не са).

Две книги, които не бяха в списъка:

Sex at dawn: The Prehistoric Origins of Modern Sexuality на Christopher Ryan, Cacilda Jethá

Основно еволюционна биология. Да цитирам Voland, “не е задължително да сте съгласни, но трябва да я прочетете”.

Blindsight на Peter Watts

Заради тази книга прочетох “The invisible gorilla” и още няколко книги. Едно от най-най-добрите неща в твърдата фантастика в последните години, вече и съм писал за нея. Книгата е под creative commons лиценз и всеки лесно може да намери откъде да я свали за каквото устройство иска.

Самата лекция мина средно добре. Дрънках два часа, като можеше вероятно да се събера в един, но се получи доста интересна дискусия. Също така се получи хората да гледат отдалечено streaming-а и да задават въпроси през irc. Записът се encode-ва и ще пусна link като е готов.

Има още много книги, за които бих говорил (някои от тях споменах). Може и да се направи дискусия върху връзките между тях, например цялостна дискусия за social engineering-а и защитата от него в светлината на “The Invisible Gorilla”, “Ghost in the Wires” (автобиографията на Кевин Митник), “Liars and Outliers”, “Kingpin” и още каквото се сетим…

Какво мислите за лекция за книги по следната тематика:
“компютърно-историческа” (като “Kingpin” и “Masters of Doom”)
“твърда фантастика” (“Blindsight”)
“Neal Stephenson”
или просто пак такава мешаница от теми?

Update: на streaming-а е имало в пиковия момент 15 човека. Изглежда има достатъчно интерес да се прави пак :)

Update 2: Запис.

Update 3: Списък с всички книги, за които бих говорил по темата, по идея на Ники Бачийски.

2012-07-03 книжна лекция

July 3rd, 2012 by Vasil Kolev

От 14:30 в събота (7 юли) в initLab ще направя лекция по темата “10 не-техническо-компютърджийски книги, интересни за компютърджии” (още работя по заглавието).
(часът е избран така че всички да са станали, които го правят – обядвали и да е преди концертите)

Спрямо четенето има различни групи хора.

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

Лекцията ще се излъчва на http://tyler.ludost.net:8787/lab.ts , ще има запис на va.ludost.net. Вероятно ще блогна казаното на лекцията след това.
Ако някой иска да задава въпроси, но няма да присъства на място – в irc на marla.ludost.net ще има канал #initlab и се надявам да намеря кой да стои там и да ми предава въпросите.

2012-07-01 leap second

July 1st, 2012 by Vasil Kolev

Jul 1 02:59:59 marla kernel: [3317066.443888] Clock: inserting leap second 23:59:60 UTC

Полезна команда: /etc/init.d/ntp stop; date; date `date +”%m%d%H%M%C%y.%S”`; date; /etc/init.d/ntp start

(при някой може да е ntpd, видях го в outages листата)

Поради високосната секунда, която се появи снощи доста java приложения, firefox/iceweasel и някои версии на mysql, всичкото това под някои linux kernel-и и при още няколко условия зависват/започват да ядат много CPU. Горната команда помага, по принцип и с рестарт на приложението.

Моите наблюдения:
Стандартен debian-ски mysql със стандартен debian-ски kernel (stable) няма проблем на две машини (marla и tyler);
mysql 5.5.25-1~dotdeb.0 в/у debian stable имаше проблема;
tomcat6 на debian stable има проблема (tyler);
jenkins на debian stable има проблема;
virtualbox на ubuntu 10.10 (2.6.32-41-generic) и debian testing (3.2.0-2-amd64) virtualboxsvc-то има проблема (на phyllis);
gentoo с mysql 5.1 при ядро 3.3.6 (компилирано от мен) няма проблема;
debian testing с iceweasel има проблема;

Събирам още информация.

(12:47) Данни от Весо: RHEL6, kernel-2.6.32-220.23.1.el6.x86_64, mysql 5.1.61-1.el6_2.1 няма проблема.
(13:01) Данни от Пейо: fedora 15, kernel 2.6.43.2-6, mysql-5.5.22-1.fc15.x86_64 няма проблема.

Update: Хубаво обяснение на проблема.
Update 2: Още по-добро обяснение.

2012-06-19 какъв ни е проблемът с нещастието?

June 19th, 2012 by Vasil Kolev

Четейки си поредната книга (“Coming of age on Zoloft”) и говорейки си с разни хора и четейки различни публикации, започвам да се чудя – кога стана лошо и болестно човек да е нещастен?

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

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

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

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

Не се притеснявайте да сте нещастни, не се притеснявайте да искате да не сте и да правите нещо по въпроса. Полезно е:)

2012-06-18 избрани неща от прочетените в последно време книги

June 18th, 2012 by Vasil Kolev

Понеже почти не успях да спя днес (заспах в 8 сутринта) и ми е трудно да чета, ще взема да попиша.

Отдавна не съм писал за книгите, които чета (освен малко ревюта в goodreads), та ето малко избрани:

Изчетох цялата поредица “Тъмната кула” на Стивън Кинг (без “The wind through the keyhole”, която излезе наскоро и хронологично трябва да е някъде по средата между останалите). Може би не трябваше да го правя, защото след това не знам дали имам желание да чета каквото и да е дръго от него, няма как да се сравни и да е по-добро, та вероятно ще чакам да я позабравя.

Прочетох и Liars and Outliers на Брус Шнайер, книгата си струва да се изчете като нещо, което дава базова идея за поведението на различните човешки общества.

Преиздали са “Секретното дело за лагерите” на Христо Христов.

Почнал съм да раздавам копия на Правопис и пунктуация на българския език.

Заслужават да се споменат: The Death of Feminism на Phyllis Chesler (доста хубаво описание на проблемите на феминисткото движение), Cathedral, Forge & Waterwheel: Technology & Invention in the Middle Ages (харесах си я от Патрик Ротфус), Redshirts на John Scalzi (освен всичко, страхотна гавра със Star Trek), The Old New Thing: Practical Development Throughout the Evolution of Windows на Raymond Chen (книгата ме направи адски щастлив, че никога не съм писал за windows), Out of Mao’s Shadow на Phillip Pan (доста добра книга за Китай) и Wild thing на Josh Bazell (втора книга за Peter Brown, даже като гледам са я издали и на български, много приятно четиво и то ме насочи да прочета “Out of Mao’s Shadow” и “Methland”).

Специално внимание заслужава Sex at Dawn: The Prehistoric Origins of Modern Sexuality на Cristopher Ryan и Cacilda Jethá, заедно с “Blindsight”, “Woman’s Inhumanity to Woman” и “The Organization Man” влиза в категорията “книги, които сериозно отварят очите”. Вероятно трябва да я дават на учениците да я четат, заедно с литературата по полово обучение.

Останалото може да се види в goodreads, ако не ме домързи, някой път ще напиша export, който да сипва post в блога от последните X прочетени книги.

2012-06-12 android vs ios

June 12th, 2012 by Vasil Kolev

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

Съществува фалшивата дилема дали човек трябва да си вземе Android или iOS базиран телефон. Моето мнение е като избора между две различни лайна и реално един от най-правилните избори е “нито един от двата”. Ето малко причини, които съм открил около занимаването с development, четенето на разни статии и гледането на лекции от CCC Kongress и подобни събития:

Практически погледнато, от хардуерна гледна точка и от гледната точка на ниското ниво всичките smartphone-и (донякъде с изключение на openmoko) са затворени и осакатени системи без нормална спецификация. Baseband процесора е неясен и не може да се пипа (съответно никой не може да вкара в тия телефони елементарната функционалност за проверка дали ви правят man-in-the-middle атака), свързан е директно към микрофона и говорителите (пробвайте се да намерите елементарното приложение “телефонен секретар”). Това има хиляди полезни приложения (и доколкото знам, под symbian е възможно, не че и тях ги хваля), най-малкото свестен запис на разговорите, което доста хора искат.
Реално обаче повечето хардуер по телефона е затворен и неясен, както и неща по операционната система (това, че google ползват linux ядро не помага особено), което води до това всякакви тривиални и елементарни неща да се водят нещо велико – защото да се постигне каквото и да е на тия телефони е магия. Дори за win3.11 нямаше нужда от толкова безсмислен приложен софтуер. Разбира се, apple не помагат с техните тотално побъркани правила кое може и кое не може да влезе в appstore (и третират всички jailbreak-нати телефони и потребителите им като престъпници)…
Андроидите специално заслужават допълнително споменаване, как има милиони производители и почти никаква консистентност и яснота кое как да работи и как да се казва. Човек би си помислил, че apple плащат LSD-то на HTC и компания да измислят нови и нови простотии. Хубав пример беше как се казваше камерата на няколко различни устройства.

Платформите за разработка и на двете платформи са трагични. От една страна имаме xcode и objective c на apple (не вярвах, че може вариант на C да стане по-грозен от C++, но objective C определено го настига), от друга java и всичкия ужас, свързан с нея. Честно казано, да бяха избрали erlang за платформа щеше да е по-добре и в двата случая. Или prolog. Или pascal/delphi.

Синдромът “not invented here” и в двата случая е довел до ужасяващи api-та, но тук наистина не знам откъде да почна. Елементарни неща се оказват почти невероятни за правене (“stream”-ване на данни от файл от телефона, т.е. четене на части и изпращане на части, например, трябваше да го направим с google protobuf-а и май така и не се получи и трябваше да сменим аpi-то).

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

За съжаление, мога още твърде много да разказвам, но не искам да си го причинявам, а да дам възможност на мозъка ми да потрие травмиращите спомени.

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

(един ден openmoko ще изкарат нов телефон, това вероятно бих го ползвал)

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

June 9th, 2012 by Vasil Kolev

Крайно време беше да седна да органзирам архивите на различни записи, които имаме от всякакви конференции. Днес пуснах 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

June 6th, 2012 by Vasil Kolev

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

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

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

2012-05-27 поредната курсова идея

May 27th, 2012 by Vasil Kolev

(вече в трезво състояние) Ето я поредната идея за курс – този път мисля да го правя с Кънев (който до тук изглежда навит за идеята).

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

Екипите ще имат програмисти, админи, може някой друг дизайнер и т.н..

Системата представлява следното – имаме задачата да следим за глобалното затопляне (или глобалната климатична промяна и т.н.), като за целта имаме 150 места, на които имаме по два сензора, всеки от които е на различен отбор. Сензорите представляват малки PC-та (реално малки виртуални машини), на които отборът трябва да си подкара някаква OS и някакъв софтуер, който да чете данните и да ги праща веднъж на минута. Имаме по една агрегираща машина на отбор, която трябва да събира тия данни (някаква база).
Между агрегиращата машина и сензорите има мрежа, която трябва да се настрои и подкара, за да докара максимална отказоустойчивост. Отделни части от мрежата са на различни отбори.
Също така трите отбора имат по един front-end, който трябва да използват за визуализация и обработка на данните, например да намират корелация между данните от различни източници. Front-end-овете трябва да могат да работят по някакъв начин с всички агрегатори, ако основният им е отпаднал.
Има и различни весели неща, като например да се следи за загуба на данни и агрегаторите да си синхронизират базите по някакъв начин, така че да се добие пълна картина.

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

Целта на целия курс е да се научат хората на няколко неща:
1) работа в екип
2) работа с други екипи
3) работа над чужд код
4) дизайн на система с всичките протоколи и компоненти
5) да видят накрая нещо наистина работещо (т.е. да подобрим заданието до толкова, че да е използваемо от други хора)

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

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

Остава въпросът дали ще се намерят желаещи да участват.

2012-05-24 Кънев/ИББ

May 24th, 2012 by Vasil Kolev

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

Около разговорите Кънев се притесни, че не може да говори с нас разни неща, понеже разни хора ще ги блогнем. Колкото и да ми се иска да не е прав, в крайна сметка не мога да си замълча…

Стефане, знам, че е срамно, но вече е публична тайна, че пишеш на Ruby, не е срамно и ние всички те обичаме въпреки това. Спри да се криеш и приеми факта.

In other news, доста добре се напихме. Имаше шанс утре да помагам в сглабянето на мебели в initLab, но явно няма да стане, освен ако не го правя насън.

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

2012-05-13 post-mortem на не-курса, в initLab

May 13th, 2012 by Vasil Kolev

Стана време да направя една лекция в initLab за не-курса по системна администрация и дискусия, за какво би трябвало да има в следващия такъв. Ще се проведе от 16:00 в неделя (20 май).

2012-05-06 Лошото влияние на Стивън Кинг

May 6th, 2012 by Vasil Kolev

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

Днес изчетох последната книга от Тъмната кула на Стивън Кинг (без да борим прясно излязлата “The wind through the keyhole”, за която ще си помисля първо) след като започнах с първата преди около седмица-две, и усещам как неговият стил се просмуква в мен и в нормалните ми разговори. Говорех си с една девойка за това възможно ли е мъже да продължават да си говорят с дадени жени, без да имат нещо повече от “приятелските” чувства, та се започна следния разговор:

(22,35,32) krok: мда. стоят хората на опашка и чакат да зарежеш приятеля си
(22,35,39) krok: може да си представиш една такава опашка изпаднали типове
(22,35,45) krok: до вратата ти
(22,35,49) krok: с потекли лиги
(22,36,02) krok: (и да накараш лъчко да го нарисува, може да му хареса идеята :) )
(22,36,35) krok: всъщност, и са надървени и гладни хората по редицата
(22,36,48) krok: не знам как се рисува гладен човек, ама той ще измисли нещо
(22,37,27) krok: (това звучи точно като сцена от нещо на стивън книг… добре ми е влязъл в главата :) )

Помислихме малко дали имаме някой общ познат, който би искал да напише история, базирана на това (понеже мен ме мързи за чак толкова сложно упражнение). На нея идеята за подобна опашка чак ѝ хареса, вероятно защото картината в нейната глава не съвпадаше с моята, и след като единствената що-годе прилична картинка със разлигавени зомбита беше тази, а по някаква начин google не намери (лесно) картинка с надървени зомбита с потекли лиги, се опитах да и препоръчам да гледа “То” и да си представи същото нещо.
(учудващо, тя отказа)

Тръгвайки по идеята какво би могъл да напише Кинг по въпроса, последва следното нещо:

(22,56,47) krok: жалко
(22,56,53) krok: а той би могъл да опише всяка част от тях
(22,57,13) krok: как еди-кой-си си е ядял вечерята, когато усетил новината
(22,57,29) krok: която се е разпространила, да речем, по феромонен път, с огромна скорост
(22,57,37) krok: и как виси трети в редицата
(22,57,41) krok: оцапан с квото е ял
(22,57,53) krok: и леко прегърбен, щото първо се надървил, после станал, и се ударил лошо
(22,58,24) krok: и например леко му е скъсан панталона, а в оная му работа се е забила треска от масата
(22,58,28) krok: и тече кръв от там
(22,58,35) krok: и се смесва със лигите, дето му текат от устата
(нека да го кръстим Гошо)

Разбира се, не трябва да спираме тук. Първа в редичката ще трябва да е друга жена – Джулия, която е била в тоалетната на близкото заведение и тъкмо си е сменяла тампона. Едното и токче е счупено, косата разрошена и има ожулвания по краката, понеже очилата ѝ са паднали в бързането. По левия ѝ крак се стича малка струйка кръв и се вижда връвчицата на тампона, а прашките ѝ висят на другия крак. От потеклите от устата ѝ лиги даже червилото ѝ се е размазало.
Джулия познава нашата героиня (Геновева) от времето, когато двете са били студентки и постоянно е ревнувала приятелите си от нея. Една вечер се е опитала да ѝ се обясни, но двете са били толкова пияни в един парк, че всичко е свършило с оповръщани коси и тотално изключване, та са посрещнали сутринта в близкия арест. От тогава Джулия мрази червеното вино, но продължава да си пие всяка сутрин кафето в едно заведение близо до квартирата на Геновева и гледа тъжно към прозореца ѝ.

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

В опитът да се подредят пак и да чакат, настават усложнения и следва сбиване. Гошо успява да откъсне тестисите на Миро (който познава Геновева от училище и е ходил две седмици с нея, преди на нея да ѝ писне от нежеланието му да се къпе), той изгубва сили да се бори и пада назад по стълбите. Мъжка космата ръка с много пръстени и татуировка на кон отхвръква, удря се в тавана и строшава лампата, оставяйки собственика си Сашо (видял героинята ни веднъж на концерт и после разпитвал няколко седмици, докато разбере коя е, но така и не събрал смелост да я заговори) да продължава да се бори само с една ръка и два крака. Един закъснял желаещ (Митко, живеещ в съседен град, който е работил с нея една година и я е сънувал всяка нощ) тича нагоре по стълбите, но се подхлъзва на потеклата кръв и си разбива главата, а Сашо от биещите се горе бива изтласкан, други се спъват в него и той си строшава врата.

….

След около половин час Геновева се е поуспокоила. Открива, че няма нищо за пиене вкъщи и решава да отиде до близката кръчма да удари едно голямо. Отваря вратата, прекрачва прага, вижда остатъците от разигралата се сцена и си казва: “Трябва да сменим чистачката”. И излиза.

По стълбите обаче нещо я хваща за крака. Цялата кръв е помогнала да се отвори проход към Тъмните измерения, където К’тулу отдавна стои и се опитва да стигне до нея (можем да кажем, че е влюбен, но е малко сложно да се обясняват чувствата на огромно лигаво зелено създание, съставено основно от пипала и злоба). Тя се опитва да се задържи, но се подхлъзва на парче откъснат скалп и изчезва в другото измерение, а дупката се затваря с тих мляскащ звук.

——————

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

2012-05-05 почистване в initLab

May 5th, 2012 by Vasil Kolev

Пак съм забравил да пиша.

Поне днешния ден става за описване – почиствахме и оправяхме новата част на initLab, един апартамент в същата сграда, който ще се ползва за тих co-working space. Мястото е малко по-широко от самия lab, с три стаи и изглежда съвсем прилично след чистенето.

Аз не бях там от самото начало (което беше в 11, а аз още отспивах след запиването от предната вечер, празнувахме на Мариян рождения ден), пристигнах към два и се занимавахме до около 6-7, когато вече беше боядисано каквото трябва (трябва да се мине още един път само) и се опитвахме да почистим малко боя от паркета на едната стая, която някакви хора преди нас бяха намазали. Комбинацията от умората, изпаренията от латекса, ацетона и разредителя най-накрая ни дойде много и се качихме в лаба да си поемем въздух.

Единственото лошо е, че на приятната мрачна стая таванът го боядисаха бял, но поне стените си останаха тъмни. Тия дни трябва да се появят бюра, да се пусне водата навсякъде (има няколко бъга) и ще стане съвсем годно за употреба :)

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