2016-07-18 httpoxy

July 18th, 2016 by Vasil Kolev

Накратко, ново vulnerability, ако имате web сървър, дето проксира/праща до php, python, go (или вероятно и други неща, дето ги лови Proxy: header-а), минете и си пипнете конфигурацията на web сървърите.

OpenFest 2016 иде

July 9th, 2016 by Vasil Kolev

От хубавите новини – официално ще има OpenFest 2016, ето официалната новина.
(зала “България”, 5-6 ноември, вход свободен и т.н. и т.н.)

Съвсем скоро ще пуснем и CfP-то. Ако имате интересни идеи за лектори, които да поканим, пишете на program@openfest.org (най-вече ако имате и контакт с тях и са сравнително наблизо).

За който е изпуснал миналата година, записи има в нашия архив и youtube.

2016-07-06 Brexit

July 6th, 2016 by Vasil Kolev

Та, Brexit. Не мога да спя и пия немско уиски, но обещавам да няма политическо влияние от него.

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

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

Следях нещата първо през блога на Чарли Строс. Той ми стана интересен по темите първо като говори за шотландския референдум, последствията от него и разни обяснения по темата, но около brexit написа още няколко интересни неща, които си струва да се погледнат, и които директно могат да се видят из последните му post-ове.

Около това седнах да гледам twitter, и около това – live coverage-а в The Guardian. Да се види какво става отне минимално време (трусовете, неподготвеността, може би само “кой направи много пари от цялата работа” не е съвсем ясно все още, ама това се показва по-късно).

Та, британците яко са го закъсали. Даже не закъсали, ами са като кокошка без глава в торна яма, още се опитват да си намерят главата и да решат какво да правят, щото никой не искаше това да се случи, с някакви изключения, които па очакваха някой друг да знае какво да прави. В момента целия им civil service си е събрал усилията да измисли спасение, и вероятно даже report-а за войната в Ирак и тяхното участие, който трябва да излезе утре няма да докара кой-знае какви проблеми.
(но със сигурност ще е интересен за четене, особено по темата какво са успели да изрежат от него)

Далеч по-интересно е обаче да четем неща, свързани с нашата политика и да сравняваме. Може би не точно по-интересно, но МНОГО образователно…

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

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

От друга страна, тия дни гледах сайта на Нова Зеландия за емигриране и е доста добре направен.

2016-06-26 Лекцията ми от ПловдивConf, “ХУДЛ: една полезна дрога”

June 26th, 2016 by Vasil Kolev

(колебаех се дали да пиша за brexit или за лекцията ми, но някакси човешката глупост трябва да стои на по-заден план от полезните неща)

Докато четях “The view from the cheap seats” на Нийл Геймън, ми хрумна да направя тая лекция. Може да гледате слайдовете, докато я четете, но да знаете, че няма нито една картинка. Опитал съм се да следвам донякъде каквото говорих на самата презентация.
(добавих нещо интересно към генератора ми на презентациите, epub версия, която може да се гледа на някакъв reader вместо бележки)

ХУДЛ: една полезна дрога
———————–

Добрутро, добри хора.

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

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

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

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

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

Има неща, за които няма да говоря. Ще пропусна всичкият non-fiction (който в момента може би е половината от това, което чета) – техническа, историческа и всякаква научна литература – там има също шедьоври и полезни неща, но те изискват по-скоро цикъл лекции (например “на какво може да ни научи историческата литература”, “технически книги, написани добре” или “основен курс по политика и защо ни е”). Иска ми се да говоря и за комиксите, но те заслужават съвсем отделна лекция, и също така ще пропусна книгите-игри, понеже имам твърде малък досег с тях.

И нека да започна с това защо книгите и художествената литература по-специално имат са полезни за нас.

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

По-лек вариант на това е просто да се озовете в друг свят, който да ви помогне да си промените представите. Има различни начини:

Може да гледате филми. Те обаче са кратки, нямат достатъчно история, филмите над два часа не се получават, а в два часа никаква история не може да се събере.
Също така, няма достатъчно, няма достатъчно материал – единствено порно-индустрията произвежда достатъчно материал (май беше 4 часа за всеки час реално време), но там историите куцат и твърде бързо омръзва.
Филмите вдигат и шум – все някой говори и трябва да се слуша, а и дори да сте фенове на нямото кино, там пак има soundtrack, който си е част от историята. Това прави цялото нещо не-толкова-социално, щото не могат трима човека да гледат три филма в една стая, няма как да се получи. Някои хора, на които си изнасях преди това лекцията казаха, че това е само мой проблем, но не мога да го пропусна.
И най-вече, в наше време всички филми са ужасно клиширани.

Друг вариант са сериалите (всъщност аз даже гледам сериали). Те имат предимството, че са по-дълги и могат да съберат една книга както трябва, да изградят историята и героите както трябва, и даже могат в общи линии да предадат една книга – примерът е как Game of thrones се получава (на филм нямаше как да стане), и поне според мен Властелинът на пръстените щеше да е много по-добре на сериал, отколкото на 10 часа филми.
Проблем е пак, че няма достатъчно материал – освен, че няма порно сериали, по принцип производството им е бавно и тежко. Въобще, всичко кинематографично иска много по-голям ресурс.
Също така, и двете не оставят време за мислене. И филмите, и сериалите се движат със собствено темпо, което не ви дава възможност да спрете и да помислите, да предъвчете информацията. Също така трудно може да се избърза – например наскоро гледах сериал, на който първия сезон беше зле, втория ставаше и третия беше невероятен, но нямаше как да мина бързо през първия, понеже не е само пълнеж, но и setup на историята, който си е важен. Може би просто няма решение на тоя проблем…
Пак вдигат шум, и пак са ужасно клиширани. Всеки път, като гледаш нещо в общи линии е ясно какво ще се случи, просто защото пътеките са утъпкани и никой не смее да излезе извън тях (с много малко изключения, като например Black Mirror).

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

А книгите…
Книгите са огромно количество. Да прочетете 1 GB чист текст ви трябват 20на години (сметката е, че 1 страница е около 4kb, което прави ~250000 страници, дори при моя темп на четене са 5 години). Само в проекта Гутенберг има 21GB книги (проектът, който събира книгите с изтекли авторски права), да не говорим за количеството други архиви, като например libgen (където има около 10 милиона книги). Според една сметка на google до 2010 е имало 129 милиона книги, които няма как да бъдат прочетени от един човек, дори един процент е непосилно число. Аз, с много желание, за целия си живот има шанс да прочета най-много 10000 книги, ако се старая много.
Книги може да четете навсякъде, без да пречите на хората (с изключение на случаите, в които четете докато някакви хора ви обръщат внимание).
Разнообразието на идеи в книги е най-голямото съществуващо – всички идеи тръгват от някакви книги или ги има в такива, и има нещо като правило 34 на internet-а (което гласи, че ако има нещо, то има порно с него) – ако нещо съществува, то има книга по темата. При 129 милиона книги не е трудно.
Има и формати, които работят без ток – има хартиени книги, работят без ток, само със светлина (даже не е задължително да е слънчева), не им трябва даже internet. Предполагам, все още сте виждали такива напред-назад, ако ще да е само да си подпирате монитора :)
И книгите са най-близкото нещо, което имаме до телепатия. Малко по-нататък ще ви го покажа :)

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

Развива важното за нас въображение. Ето един цитат:
‘Oh, you know for years we’ve been making wonderful things. We make your iPods. We make phones. We make them better than anybody else, but we don’t come up with any of these ideas. You bring us things and then we make them. So we went on a tour of America talking to people at Microsoft, at Google, at Apple, and we asked them a lot of questions about themselves, just the people working there. And we discovered that they all read science fiction when they were teenagers. So we think maybe it’s a good thing.’

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

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

Фантастика с вампири в космоса ме накара да седна и прочета много неща по темата за човешкото съзнание, мислене, свободната воля и свързаните теми. Беше доста странно, понеже попаднах на нея от thread в един блог, където се питаше за наистина важна книга от последните 10 години, и там много хора казваха – тази книга е страхотна, не се плашете от вампирите. Ще я спомена даже по-нататък пак.

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

“Дзен и изкуството да поддържаш мотоциклет” (странно заглавие, доста стара книга) е книгата, заради която спрях да пиша оценки, вътре има глава, която обяснява много добре защо.

“Fight club” и темата за консумеризма – книгата е прилично по-добра от филма (въпреки че филмът много се старае).

Dead air на Iain Banks и как се бори човек с идиоти е също доста забавна.

И да, наистина представата ми за армията и казармата отвътре все още се базират на “Приключенията на добрия войник Швейк” на Ярослав Хашек. На мен казармата ми се размина, но си мисля, че нямаше много да ми мръдне представата…

“Little brother” и “Homeland” на Кори Доктороу дадоха интересни идеи за следващите протести (каквато е и целта им, те са не толкова книги, колкото наръчници).

“Махалото на Фуко” и “Пражкото гробище” на Умберто Еко са може би най-закопаващите книги за конспиративните теории.

“Сатанински строфи” на Салман Рушди ме накара да се ровя повече в Исляма и да се опитам да разбера какъв точно им е проблема на тия хора с книгата.

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

Крайтън и Хейли са ме карали да се интересувам от инфраструктурата на всичко – заводи, летища, болници…

Като пример не за мен – Артър Кларк е измислил комуникационните спътници.

И всякакви други неща, които не ми е преписват от слайда :)

Разбира се, може да четем просто за удоволствие. Спомням си как първата книга, която наистина ми хареса (“Откраднатата баба” на Атанас Мочуров – не помнех автора, ама я издирих по заглавието) съм я чел 39 пъти, просто щото ми харесваше. Идея си нямам защо съм ги броил, но мисля, че в един момент я знаех почти на изуст (трябва да съм бил на 6-7-8 години).
Спомням си една такава случка, като беше излязла “Нощната стража” на Тери Пратчет, със съквартиранта си я бяхме взели и вечерта като се прибрахме, седнахме да четем, всеки в неговата стая. По едно време аз свърших книгата, погледнах навън и без да се усетя, казах на глас “Брех, то се е съмнало!”. От другата стая чух “А, вярно бе!”…

Дори самият език може да достави огромно удоволствие. Ето малко цитати:
(дължа бира на Андрей, щото се сети от къде са няколко от тях)

“И наистина, бай Ганьо разлюти супата си до такваз степен, щото един непривикнал човек би се отровил.”
Тоя цитат винаги си го спомням, като ям шкембе чорба.

“The house had four windows set in the front of a size and proportion which more or less exactly failed to please the eye.”
(“Пътеводител на галактическия стопаджия”)

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

“What is a flower? A giant sexual organ in its Sunday best. The truth has been known for a long time, yet, over-aged adolescents that we are, we persist in speaking sentimental drives about the delicacy of flowers. We construct idiotic phrases like “So-and-so is in the flower of his youth”, which is as absurd as saying “in the vagina of his youth””
(Амели Нотомб, “Любовен саботаж”)

“Икономиката е псевдонауката, която разглежда илюзорните отношения на субектите от първи и втори род във връзка с халюцинаторния процес на тяхното въображаемо забогатяване.”
(Виктор Пелевин, “Generation П”, любим цитат ми е да го казвам на икономисти. Доста близък до реалността, донякъде чак притеснителен как една измислица движи голяма част от обществото)

“Political language is designed to make lies sound truthful and murder respectable, and to give an appearance of solidity to pure wind.”
(Оруел, разбира се)

“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying ‘End-of-the-World Switch. PLEASE DO NOT TOUCH’, the paint wouldn’t even have time to dry.”
(Пратчет)

Честно казано, бих могъл да направя презентация само от цитати и пак да звучи добре, но ще е малко нечестно :)

Разбира се, чувал съм и доста оплаквания. Можем да започнем с “ама това не ли бягство от реалността”, и ще отговоря пак с цитат (който е цитат от някой друг): “C. S. Lewis wisely pointed out that the only people who inveigh against escape tend to be jailers.” (Нийл Геймън). Интересно, че като човек чете (non-fiction) книги за правилата по разни тоталитарни лагери и затвори (съветските са един много добър пример), там всякакви такива неща като личен живот и бягане от реалността са максимално забранени (има един особено добър пример в румънските “превъзпитателни” лагери), като успяват да потрошат психически сериозна част от хората. Да се чуди човек Оруел без да е бил там как толкова добре ги е описал…

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

Чувал съм хора да казват, че книгите са им скучни. Това значи, че четат грешните книги – при толкова много съществуващи не е особено възможно да няма нищо интересно. Има всякакви странни неща, включително преди няколко години някой написа “Гордост и предразсъдъци със зомбита”…

А защо това подзаглавие, къде е дрогата? Пробвайте :) Става ясно много бързо, нуждата да разберете какво става, да се нарадвате на езика, на идеите… Доколкото знам, хората се лекуват от желанието си за четене чрез умиране (за разлика от опиатите, където поне има програми и институции да помогнат). Винаги има желанието да се намери още нещо такова, толкова интересно и забавно (а защо не и повече?). В статистиката на goodreads (които са не-чак-толкова-голяма социална мрежа) за миналата година в reading challenge има 1,722,620 участника и 29,258,154 прочетени книги. Забавното е, че аз, дето чета по около 100 книги годишно, не влизам даже в топ 20-30%, щото има хора, дето четат по 900…

“Какво да четем” е доста често срещан въпрос. Правилният отговор (и най-лесният) е “каквото ви хареса”. Никой друг няма как да знае какво ще ви хареса, та каквото хванете и ви е забавно – четете го :) Дал съм по-долу малко идеи, но моят вкус може сериозно да се различава от вашия. Това не е проблем, щото, както казах по-горе – 129 милиона…
(започвам с цитат от книгата, с > отпред)

> “Истината е, че откакто ме назначиха в тоалетните на четирийсет и четвъртия етаж, ходенето по нужда се бе превърнало в политически акт.”
“Изумление и трепет” на Амели Нотомб е кратко, забавно, леко странно (както повечето ѝ книги) и се чете бързо и с удоволствие. Започвам с него, преди да продължа с тухлите.

> – How long do you want these messages to remain secret?[…]
> – I want them to remain secret for as long as men are capable of evil.
“Cryptonomicon”-а на Нийл Стивънсън мисля, че съм споменавал и преди – в книжните си лекции в initLab и в кило други post-ове. Криптография, валути, втората световна война, модерните крипто-пънкове, Алан Тюринг, и просто радост за душата. За всички, на които е харесала Стивънсън е написал Бароковия цикъл, който е три такива тухли в края си има спор между Нютон и Лайбниц на темата за свободната воля. От нея може да ви станат интересни много неща.

> ‘And what would humans be without love?’
> RARE, said Death.
Чудех се и не можах да избера една книга на Тери Пратчет, за това препоръчвам целия. Имаше проблем с част от преводите му, в оригинал е прекрасен, пробвайте го.

> “Bill could smell Its breath and it was a smell like exploded animals lying on the highway at midnight.”
Стивън Кинг е човекът с телепатията. В книгите му е пълно с такива изречения, които в един момент започвате да си представяте. Има хора, които твърдят, че не е сериозен писател, понеже пише там някакви си популярни ужаси, но истината е, че той е един от наистина големите майстори на езика и на това да бръкне някъде във вас. Може би и буквално :) От него препоръчвам като за начало “Мъртвата зона”, “То”, “Зеления път”, или каквото изобщо си харесате. Има много филми по него, и сполучливите са точно защото са успели да предадат телепатията достатъчно добре на екрана.

> “This is how you communicate with a fellow intelligence: You hurt it, you keep on hurting it, until you can distinguish the speech from the screams.”
Blindsight на Peter Watts (“Слепоглед” на български, не съм гледал как е превода) е книгата с вампирите в космоса и една от най-издържаните научно фантастики, на които съм попадал. Авторът е океански биолог, работил по специалността си 10на години, публикувал и т.н., и решил в един момент да мине към фантастиката. Това е първа книга от втората му поредица, и това беше много замисляща книга, в която намерих и много от неща по темата за изкуствения интелект, които преди това бях виждал в “Новият разум на царя” на Роджър Пенроуз (математик, книгата е научно-популярна на темата докъде може да стигне изкуствения интелект, с прилично количество математика).
А за вампирите обяснението е, че те са вътрешно-видов хищник, който се храни с хора, има много добро зрение, и е изчезнал когато хората са започнали да строят къщи, понеже ако вампир види прав ъгъл, му се задействат едновременно твърде много от зрителните рецептори, получава се претоварване и нещо близко до припадък. За останалото препоръчвам да хванете книгата :)

> “Governments always commit their entire populations when the demands grow heavy enough. By their passive acceptance, these populations become accessories to whatever is done in their name.”
“Експериментът Досейди” на Франк Хърбърт. Повечето хора знаят за “Дюн”, но това също си заслужава да се прочете, поне като идея за посоката, в която може да тръгне дадено общество под натиск (и която може да отговори защо хората от много потиснати общества успяват да “hack”-нат тези от по-свободните, на по-прост език защо престъпността в Европа след 1989 е осново от източно-европейски произход).

> “We are a wretched, petty species, and we have been given power to destroy ourselves with.”
“Worm” на Wildbow е интересен случай. Ако не беше толкова добро, и толкова трудно за оставяне, не знам дали нямаше да застрелям човека, който ми я препоръча – книгата е около 5000 страници, и не дава възможност да я оставиш. И докато с други книги това е в общи линии да не се спи една нощ, тук това беше две седмици непрестанно четене до ранните часове. Може да се намери online на url-то, и я препоръчвам на всички, не само защото искам и други хора да преживеят същото нещо :) Може просто да я започнете, то не е нужно много…

Имаше няколко въпроса след лекцията:
Функциониращ адрес на libgen – не се намира трудно, има един, завършващ на .rus.ec….
Техники за бързо четене дали използвам – мисля, че само една, че не субвокализирам (т.е. не си произнасям на ум думите), но не помня как съм го научил, случи се във ваканцията ми между първи и втори клас, просто започнах да чета по-бързо. Има някакви начини и доста информация по темата, може да е полезно да се пробва. Скоростта на четене много зависи и от количеството информация, има неща (като фентъзита), които могат да се четат много по-бързо, понеже просто информацията вътре не е толкова много.
Ако до края на живота си съм принуден да избера една книга, която да препрочитам, коя ще е – никаква идея. Мислих, мислих, но ще трябва да е нещо много по-дебело от Worm …
Минавало ли ми е през ума да пиша някаква книга – аз не пиша особено добре, а и това иска доста време и спокойствие, които нямам. Доколкото знам, е нужно да напишеш около милион думи текстове, за да свикнеш да пишеш добре, не знам дали съм стигнал до там. Иначе, многото четене е изискване за доброто писане, но не е достатъчно.

2016-06-24 радио-link

June 24th, 2016 by Vasil Kolev

(blog post за разсейване)

Пешо (който организира uzana.io) си взе няколко ubiquiti airmax-а, с които да си пусне net (като разстоянието, което има да покрие е около 12км). За да им направим истински тест, решихме да ги вържем от у нас (Лозенец, близо до водната кула) до у тях (Костинброд), което е около 18км.

Лъчът се оказа достатъчно широк, че да не трябва ултра-точно насочване, и резултатът може да се види в един smokeping, който пуснах да дебне. Има едно прекъсване при донастройване първия ден на вертикалата от Костинбродската страна. Като цяло нощно време загубите са малко, през деня обаче има бая зашумяване по пътя – например НДК е точно по правата линия и техния wifi се чува бая добре с тия антени…
(тия антени чуват наистина много добре, май мога да слушам wifi-та на няколко километра с тях)

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

След упражнението се оказа, че аз имам root на router-а на Пешо, та първо най-накрая си подкарах bgp за моя ipv6 вкъщи, после подкарах при него, и накрая ги interconnect-нах през радиовръзката. Сега ако ми спре net-a вкъщи, ще имам поне ipv6 през Костинброд. Наливам пълна таблица и на двете места, сложил съм local preference на пътищата от него да е по-малък (и по същия начин на двата router-а от другата страна моя prefix през неговия link е с по-малък localpref), като цяло съвсем стандартен setup :)

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

2016-06-21 PlovdivConf

June 21st, 2016 by Vasil Kolev

И мина PlovdivConf.

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

Пак бяхме в залата в палата “Киров” (надявам се за последен път). Уцелихме рекордни горещини (36 градуса, “feels like 43”), а вентилацията никаква я нямаше, та в крайна сметка имахме няколко човека пред колабиране. Част от техниката имаше проблеми с температурата, та в последния момент звъняхме на разни хора да ни донесат още някакви неща от София (и може би трябва да помислим най-накрая за дирижабъл с цялата техника вътре и да не се притесняваме, че сме забравили нещо). Купувахме спешно вентилатори на сутринта и по някакъв начин оцеляхме, но някакви количество хора ни гледаха на хладно от вкъщи, какво се вижда на графиките на трафика на restreamer-а.

Като цяло, Пловдив е адски град.

Около това тръгнах да мисля за странно устройство, комбиниращо радиатор, вентилатор зад него, а по самия радиатор, подходящо затворен да насипем сух лед, за да имаме малък self-contained охлаждащо устройство. Има да се сметне колко сух лед е нужен за колко време и колко може да смъкне температурата на някаква зала, може да се окаже подходящо за техниката по конференции.

“Закон за противодействие на тероризма”

June 6th, 2016 by Vasil Kolev

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

Ще обърна внимание само на една част (засега) – чл. 16-17, при “обосновано предположение” може да се наложат следните “превантивни мерки”:
1. забрана за промяна на местоживеенето без разрешение;
2. забрана за напускане на страната без разрешение;
3. забрана за посещаване на определени места, райони и обекти;
4. забрана за напускане на определено населено място без разрешение;
5. забрана за достъп до интернет;
6. забрана за притежаване и използване на повече от един телефонен номер;
7. забрана за осъществяване на контакт с определени лица;
8. периодично явяване в районно управление на МВР и подписване пред полицейски служител;
9. отнемане на паспорти или заместващи ги документи и забрана за издаване на нови.

Има и други забавни неща, ама кой би се хванал на бас, че това няма да се използва срещу политически неудобни хора?:)

На strategy.bg (горния link) могат да се оставят коментари какво мислите по въпроса.

Log-ове, дървета, бази данни

May 29th, 2016 by Vasil Kolev

Около разни разговори за една нова система при нас и какви бази данни трябва да ползваме (и викове от някакви хора “ама то трябва да е задължително nosql” с идеята, че nosql == магически бързо) и обяснения, подкрепени с малко тухли, реших да драсна това – какви основни неща ползват базите данни, защо (и какво можем да очакваме с промените по хардуера), заедно с разни други наблюдения.

На всички, които това им е интересно препоръчвам “Transaction Processing” на Jim Gray като едно много добро начало.
(за хората, които предпочитат да четат код, двете малки и съвсем истински бази са BDB и SQLite (който е и пример за истински добре написан софтуер))

По принцип под “база данни” се разбира ACID база данни, вероятно с някакъв SQL интерфейс. В по-модерни времена се разбира някакъв вариант на това, без SQL, понякога просто бърз начин човек да съхранява (и губи) данни.

ACID значи следното:
Atomicity (атомарност) – всяко действие или се изпълнява изцяло, или не се изпълнява изобщо (т.е. ако кажем “искам да увелича с единица на тия две места”, или ще се увеличат и двете, или ще получите грешка, но никога няма да се промени само едното).
Consistency (консистентност) – има вътрешни правила, които винаги са в сила, (например ако сме казали, че стойностите в дадена колона са уникални, базата не трябва да ни позволи да вкараме две еднакви такива).
Isolation (изолираност) – никой няма да ни подмени данните, докато работим с тях.
Durability (издръжливост) – ако сме записали нещо в базата и тя е казала, че е записано – то няма да изчезне, т.е. записано е на физическия носител, който не се влияе от спиране на тока.

Като цяло това са свойства, произлезли от нуждите на счетоводството/банкирането. Една ACID база данни е перфектна за всякакви такива нужди, понеже позволява да се опишат всякакви сложни структури от данни и тя да се грижи за това да не се омазват и да може да се работи с тях.

Всички тези свойства имат негативно влияние в/у performance. Най-зле се отразява D-то, понеже в повечето случаи това значи по поне един fsync() на транзакция, което от своя страна води до поне една физическа дискова операция, а поне преди SSD-тата те бяха най-голямото ограничение. I (и донякъде зависещото от него A) пък започва да се проявява при достатъчно бързи дискови масиви и големи паралелни натоварвания, когато се налага да се взимат и изчакват много (и сложни) lock-ове.

Изобщо, ако искате да запомните нещо съвсем просто от цялото ми писание, TL;DR-то е: писането в базата ви е ограничено от това колко транзакции може да ви направи дискът, четенето (ако базата ви не се събира в паметта) – също. Ако не са ограничени от това, ще загубите данни.

Други бавещи неща в стандартните бази данни са огромните възможности на SQL-а – всякакви join-ове и други сложни заявки, които в един момент няма как да се оптимизират – и неща като trigger-и, foreign key-ове, views, които усложняват и вкарват навсякъде нови lock-ове, сметки и забавяния. Например може да е възможно една база да пише в transaction log-а си по 2000 транзакции в секунда, но голяма част от времето ѝ да отива да проверява дали данните отговарят на консистентността, да чака read lock-ове или просто да parse-ва сложния SQL, който ѝ се подава.

Структурите, които базите данни използват са ориентирани към това да може да се работи ефективно и сравнително бързо с бавни, но сигурно-записващи устройства (дискове), т.е. основното предположение на повечето бази данни е, че имаме процесор с много бързи регистри/кеш, 10тина пъти по-бавна памет, и около милион пъти по-бавен диск, от който може да се чете само на блокове (т.е. парчета с размер от 512 или 4096 байта, align-нати на такава граница), като линейните действия (с няколко предни блока) са по-бързи от random действията.

Основната структура, която базите използват се нарича B+ дърво. В “Transaction Processing” има страхотно описание и си личи колко гениална структура е, аз тук ще се спра само на основните неща от нея:
– представлява нормално дърво, с корен и листа на няколко нива;
– всеки node от дървото съдържа ключ, данни и масив от указатели, който казва за кой range от данни към кой друг node да се ходи;
– размерът на всеки един node се гледа да е колкото една страница, константен за дървото, кратен на block size на устройството, на което се записва. Варира от 512B (за много много отдавна), 4KiB (сравнително отдавна) до всякакви други стойности (веднъж като гледах кода на postgresql беше 64KiB);
– в B+ дървото (и каквото по принцип се използва) всеки node има указатели към левия и десния си такъв, за да направи лесно търсенията по интервал (range).

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

(почти) всяка таблица в съществуващите бази данни е B+ дърво, подредено по primary key-а си. Допълнителните индекси са често B+ дърво или подобна структура по колоната, която индексират и със стойност primary key на търсения ред. Това води до следните няколко неща:

– Търсенето по primary key винаги е по-бързо от търсенето по вторичен индекс (освен в един специфичен случай по-долу);
– Индексирането не е магия. Виждал съм хора да слагат в заявка търсене по функция от дадено поле, и ако индексът не е построен по същата функция, базата няма как да го използва;
– Като цяло за блокови устройства няма по-ефективна структура – прави малко четения (които са бавни) за сметка на сравненията (които са сравнително бързи).
– Някои бази имат допълнителни типове индекси, които вършат работа в по-странни случаи. Примери са full-text индексите (GIN на някои места), R-дървета (за многомерни данни) и hash-овете.

Тук има един интересен hack, който се поддържа от повечето по-нови версии на базите данни. Ако имаме следната таблица:

create table pesho (
pesho_sid serial not null PRIMARY KEY,
field_a int not null,
field_b int not null,
field_t varchar(16) not null
);

и имаме да търсим по field_a и field_b, за да прочетем field_t (SELECT field_t FROM pesho WHERE field_a=1 AND field_b=2), по принцип бихме създали индекс по field_a и field_b. Тогава заявката ще прави първо търсене в индекса, ще намери pesho_sid за нужния ред, и ще потърси после в самото B+ дърво. По-хитро (ако базата го поддържа) е да направим индекса по field_a, field_b и field_t, като тогава базата ще намери стойността в индекса и ще има и нужните данни, за да върне директно отговор на заявката само с първото търсене.
(още по-подобрен вариант за конкретния случай е да се махне pesho_sid и да се направи primary key по field_a и field_b, доста хора се притесняват по принцип от композитните primary key-ове, а не трябва)

Другият компонент, който би трябвало да има във всяка база е т.нар. transaction log (или write-ahead log, binary log, journal или всякакви други имена). Идеята му е, че всяка транзакция/действие за писане се записва в него, след което той се sync-ва до диска (така се гарантира онова Durability), и чак като се напълни се насипва в/у реалните данни по диска. Всяко действие се записва така, че да е идемпотентно, т.е. да може логът да се приложи няколко пъти, без да повреди данните (което е нужно за спасяване от момента, в който ни спре тока докато flush-ваме log-а).Това помага за доста неща:

– Писането по диска е през повечето време линейно, което доста забързва действията по базата;
– Заявките естествено се сериализират и при спиране на тока или нещо такова после могат да се replay-нат от лога;
– Същия log може да се използва за репликиране на базата, или за възстановяване от backup заедно с dump от дадена дата, или дори за връщане назад.

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

Този вид log се използва във всички бази данни и в почти всичко, което съхранява данни (изключение са in-memory storage-ите като memcache, на които не им трябва да се синхронизират с някои и не им пука за спирането на тока).

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

Apache Cassandra в общи линии използва in-memory transaction log-ове, които синхронизира с другите сървъри в клъстера (т.е. губят се данни, ако на всички им спре тока). Решава си проблемите със скоростта, като не поддържа нищо сложно (като join-ове) и като пише по диска само на големи burst-ове, когато напълни някоя таблица.

Apache CouchDB комбинира по хитър начин B+ дървото и transaction log-а, като винаги само добавя във файла. За да си помогне още малко, прави fsync() не на съвсем всеки документ, а гледа да batch-ва по някакви писания и да sync-ва веднъж в секунда, което пак може да доведе до загуба на данни.

MongoDB ползва transaction log, ползва B дървета за индекси, и се справя с многото писане като просто mmap-ва файловете от базата в паметта. Единственото, което fsync()-ва, е transaction log-а, на 100ms (pdf с презентация за mongodb internals).

Както и много други знайни и незнайни нещица. Голяма част от тях не биха се справили със стандартния ми тест за сериозна база данни ( да се пуснат транзакции спрямо нея и да и се рита тока, и да не загуби нито една от потвърдените), но пък имат приложение в много области, където или данните не са чак толкова важни, или има начин да се заобиколи загубването им. Един хубав пример има в Beautiful data, гл. 5, където facebook описват как, за да си съхраняват clickstream-а, са минали през Oracle, MySQL и са стигнали до cassandra, която просто може да се scale-ва ужасно много (и на тях изобщо не им пука за няколко изгубени click-а).

Ако събера сили, ще напиша приложение за дистрибутирането на базите данни, CAP теоремата (или защо господ ни мрази) и какво правят разни хора по въпроса.

2016-05-24 панаир на книгата

May 24th, 2016 by Vasil Kolev

Има панаир на книгата в НДК (до 29ти). Аз си харесах/взех следните неща:

“Избрани техники за производство на ракия”, на Симеон Дочев (което вече прочетох, много приятно);
“Жените в ‘Ислямска държава'”, на Татяна Дрозина и Явор Райчев (чета в момента, изглежда доста интересно);
“Стогодишният старец, който скочи през прозореца и изчезна”, на Юнас Юнасон (стои ми в списъка за четене отдавна);
“Тежък маршрут” на Евгения Гинзбург;
“Системата за европейска сигурност и Балканите в годините на студената война” на Йордан Баев;
“Как се променят нещата – от инциденти до голямото събитие” на Ивайло Знеполски (два тома).

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

2016-05-15

May 14th, 2016 by Vasil Kolev

Една от лъжите, които казвам е “от утре почвам да пиша редовно”.

В последните две седмици се случиха куп неща, които в общи линии май трябва да си припомням по логове:
– Довършихме редакцията на видеата от OpenFest 2015, всички са качени в архива и youtube. Най-накрая може да се каже, че имаме събран екип да се занимава с редакцията (което не успя да стане около самия фест);
– Видеата от ТърновоConf 2016 са в pipeline, просто около празниците и наваксването с работа след тях никой няма време;
– В лаба вече има първата co-locate-ната машина (кръстена по някакви извратени причини “pinkiepie”);
– Към автоматизациите в лаба беше добавена поредната тривиална такава, ако някой остави външната врата отворена над 5 минути, Стивън Хокинг звъни на всички телефони да каже да бъде затворена (наложи се поради някои лоши навици на пушачите);
– Пак около това, има приличен шанс да опънем хубава оптика до лаба в следващия месец и да намерим приложение на част от оптичната техника;
– Мина лекцията/workshop за ICS security в лаба, очаквайте записи;
– Силно си изоставам с четенето на книги;
– Взех си rack за вкъщи, за да успея да набутам в него малко техника и да си освободя бюрата. Обмислям да взема и за лаба още един-два с подобна цел (понеже имаме много техника, натрупана на купища);
– Успях да си сменя (почти) навсякъде сертификатите с такива от letsencrypt. Имаше доста гафове, и си мисля, че можех просто да издавам по един сертификат на сървър с всичките имена в него, вместо за всеки vhost неговите си, ще видим дали ще променя метода за в бъдеще. За заинтересуваните – ползвам acme-tiny;
– Човек и добре да живее, debug-ва erlang. Продължавам да не го понасям тоя език.

В плановете за петилетката има да напиша нещо за всичките дребни интересни хакове и неща около лаба и като цяло проектите, с които си играем (какво може да се прави със SDR, странностите с релета и телефонни централи, routing и тунели), да намеря време да си почина, да ида на концерта на Tuber (21.05, в mixtape), да подаря още някакво количество книги (дарих малко на една библиотека, та сега сравнително малко книги стоят по бюрото и масите наоколо). Мисля, че ми трябва и план да не си правя много планове, ама там ще видим:)

2016-04-26 смърт

April 26th, 2016 by Vasil Kolev

(това го пиша, щото темата ми е интересна, нямам планове да умирам скоро)

Около един post на Meredith Patterson (който също си заслужава да се прочете) попаднах на “A Protocol for Dying на Pieter Hintjens (за чието име съм сигурен, че не мога да произнеса правилно). Това ми припомни малко моите преживявания около невралгията и болницата и най-вече завещанието, и учудването на разни хора, че изобщо съм обмислял ситуацията и всичките варианти.

Смъртта е донякъде интересна тема, най-вече понеже е едно от нещата, за които се говори най-трудно – по най-различни причини хората сме направени така, че темата да ни блокира по най-различни начини, от простото споменаване, през държанието около болни и умиращи, до трудностите при убиването на хора. Това от своя страна води до това да ни свари тотално неподготвени. Протоколът, описан от Hintjens и идеите на Meredith са в общи линии една стъпка в правилната посока, още един факт от живота, с който трябва да свикнем. Интересно ми е дали следващата голяма кампания из медиите ще бъде на подобна тема (както сега се забелязва с най-накрая сериозното включване на хомосексуалността в повечето сериали/филми/книги, което не може да се забележи в тези от преди 30-40 години).

Може би ни трябва годишен Think/talk about death day?:)

2016-04-22

April 22nd, 2016 by Vasil Kolev

Трябва да пиша по-редовно, да не се получава миш-маш като тоя по-долу.

Както обикновено, ми върви на дебъгване. В последната седмица от по-странните неща се сещам за:
– build на android image (за нещо, правено и писано от (некадърни) китайци);
– Java/groovy;
– Python;
– И нормалното количество VoIP бози.
За да завърша картинката, обмислям да седна да подкарам VAX-а, който виси в initLab.

Тая вечер ходих на концерт на “band H.”, хора, които свирят Tool. Прилично се справиха, въпреки че им куцаше ритъма на моменти (което не е учудващо, Tool са учудващо гадни за свирене).
(по някаква причина в същия ден имаше 3 концерта – band H., Smallman и Irfan, не беше лесен избора)
(random човек ме разпозна на концерта и каза колко се радва на разните проекти като initLab, дето правим)

Седнах да подкарвам най-накрая сертификати от letsencrypt за нещата по marla, и успях да наслагам на половината, преди да ме удари resource limit-а при тях. Следващата седмица ще ги довърша. Разписах нещата с acme-tiny, базирано на нещо, което Петко беше драснал за лаба, оказва се сравнително просто (ако config-а е подреден както трябва) да се parse-ва apache config-а и да се смята какви точно сертификати да се генерират за кого.
(открих кофа неща, които вече не се host-ват при мен и ги почистих)

Събрал съм резултатите от теста на FOSDEM-ската техника (сравнение на запис на stream-а и encode-нат резултат, от нашия и от FOSDEM-ския setup), и като цяло с още малко пипване това може да се окаже достатъчно лесно за по-малки конференции (на които не си влачим 6-7-8 човека от екипа).

На opendata.government.bg тия дни пак качиха нещо интересно (тоя път – целия търговски регистър от 2008ма досега) и пак претовариха нещастната виртуалка (която е един debian в/у microsoft hyper-v). Обмислям някаква магия да може да преживява такива неща по-лесно, щото не се очаква да намалеят интересните данни.

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

И не си спомням нещо друго да ми се е случвало.

2016-04-17 ТърновоConf 2016

April 16th, 2016 by Vasil Kolev

И случихме ТърновоConf 2016.

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

Интересните работи (по техническата част) бяха следните:

Оказа се, че в хотела има някакъв “internet” през кабелната телевизия, с 20mbps download и 1mbps upload. Последваха малко телефонни обаждания, намерихме си резервен вариант през 3g и 4g, а един ден преди събитието се открихме с един приятел и evo.bg ни докараха 1gbps връзка на място, с която тотално ни решиха проблемите. Малко изненадаха хотела с бързото пристигане и окабеляване, но нещата минаха съвсем лесно.

За това събитие паралелно бяхме вързали fosdem-ските videobox-ове, с които вървеше отделен stream, представляващ picture-in-picture (ще кача примерни записи от него и малко encode-нати видеа отделно, за сравнение). Работеха доста добре, бяха полезни за switch-ове и не създадоха никакви допълнителни проблеми, така че вероятно някоя конференция можем да я направим само с такива, ако решим. За изходящия stream от тях трябваше да заделим един лаптоп с i7, но той се справи съвсем добре и май без никакви особени проблеми (трябва да видя streamdump-овете как са).

Успя да ни умре за малко единия контролен лаптоп (един thinkpad t410), понеже при default-ната работа на вентилатора му и виртуалката с контролния софтуер беше успял да прегрее ужасяващо. Решението беше да се накове ръчно вентилатора на максималната възможна скорост.

Имахме сериозен проблем със смущения в микрофоните, при които опрях до там да извадя малкия SDR dongle и да слушам ефира, да видя какво точно се случва. В общи линии имаше зашумяване в целия ефир около нашите честоти (520, 530 и 750MHz), като единствено headset-а ни на 2.4ghz работеше добре, и с останалите май доста изтормозихме публиката. Текущата хипотеза е, че най-вероятно смущенията са идвали от доста мощния поточен бойлер, който беше наблизо, та издирвам някой с такъв, за да идем близо до него и да тестваме дали има тоя ефект. След това вероятно ще си мислим и екраниране…

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

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

2016-04-08 промени по закона за личните документи

April 8th, 2016 by Vasil Kolev

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

От фондация “Отворени проекти” пуснахме становище по въпроса, което initLab подкрепи, и се надяваме още хора да се зачетат и коментират.

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

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

Втория BGP workshop

April 4th, 2016 by Vasil Kolev

Направихме и втория BGP workshop, на който още хора откриха колко лесно се подкарва IPv6 :) При достатъчно желаещи ще направим и трети след около месец. Също така може да помислим по въпроса хората да имат отделно устройство за подкарване и да са си сами потребители, понеже една от най-гадните задачки се оказва да убедиш всичките ти приложения на операционната система да се bind-ват на определен ip адрес, когато излизат навън.
(а аз тотално се изложих, понеже мислех да се включа вместо един от участниците, който не дойде, ползвайки pine64, което ми пристигна наскоро, и някъде на средата открих, че kernel-а му няма 802.1q и че трябва да компилирам отнякъде нов… което ще свърша, като си подкарам някаква среда скоро).

От интересните неща, които (пре)открихме беше, че ICMP echo reply от 8.8.8.8 винаги е орязан до 64 байта payload, колкото и голям пакет да се прати. Това води до въпроса “абе, защо нещо някъде ми реже пакетите?”…

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

(а вечерта бяхме на Jimmy Carr, от който лицето още ме боли от смях)

2016-03-31 въпроси за админско интервю

March 30th, 2016 by Vasil Kolev

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

Как бихте реализирали система за backup, на която сървъра не може да прочете данните на клиента (т.е. са криптирани подходящо) и compromise на клиента не води до възможност за декриптиране на backup-ите му?

Ако имате 12 диска, кое е по-reliable – 2 raid масива в raid5 от 6 диска или 1 масив от 12те диска в raid6? Кое е по-производително?
(изобщо, какво е raid6?)

Имате дърво с директории и (много) файлове в тях, как ще намерите кои файлове се повтарят?
(задължително трябва да се знае какво е -print0)

Какви са трите типа ssh тунели? Какво е socat?
(ssh трябва да го знаят всички, socat-а почти на всички някога е трябвал)

Пак към ssh-а, защо не трябва да се логваме на чужда машина с agent forwarding и как точно се exploit-ва?
(това е забавна задача за практическо упражнение)

Защо не трябва да се сверява часовникът на машина с ntpdate, който се пуска от cron-а веднъж на ден/час?

При смяна на DNS запис с TTL от 3600 секунди, колко време отнема да се научи от 90% от internet? 95% ? 99% ? 100% ?
(същия въпрос за 60-секунден TTL. Bonus points, ако споменат на БТК/vivacom малоумните resolver-и)

Защо на натоварен linux сървър не трябва да има swap?
(не мисля, че е само за linux, но трябват малко тестове още за останалите)

Какво е rollback plan и кога трябва да имаме такъв?
(bonus points за “винаги”)

Защо не трябва да се смесват различни модели/производители на дискове в един и същи raid масив?

Каква е разликата м/у strace и ltrace?

Какъв е основният протокол за контрол/комуникация с мрежови устройства?

Защо не трябва да се филтрира цялото ICMP?

Как можем да сменим root паролата на linux-ка машина, като имаме достъп до конзолата?
Как можем да направим това трудно/невъзможно?

Защо не се ходи с къси гащи в datacenter?

Предимства и недостатъци на hardware и software raid?

Инструменти за анализ на натоварването на машина, кои в кои случаи се ползват?

Втори BGP workshop

March 17th, 2016 by Vasil Kolev

Ще правим втори BGP workshop, пишете ми да ви запиша (вече има 11 човека в списъка).

(трябва да ви има тук, за да ви броим за записани)

Update: Workshop-ът се премести на 3.04, понеже преди това има ArduinoDay.

2016-03-13 мина първия bgp workshop

March 13th, 2016 by Vasil Kolev

И направихме първия BGP workshop. Бяхме бая на гъсто, но като цяло се събрахме.

Бяха се записали 18 човека, 2-3 не дойдоха (Мариян замести единия), всички успяха да пуснат повечето си сесии, като една част от хората подкараха и IPv6. Беше малко разбъркано от организационна гледна точка (хората идваха по различни време, някои си тръгнаха по-рано и им изпаднаха сесиите), но мисля, че всички се забавляваха :)

Целта на занятието беше хората да подкарат BGP в трите стандартни сценария – transit (т.е. връзка към internet доставчик, който дава пълна routing таблица), втори transit, два peer-а (т.е. хора, с които си търкаляте трафик само за вашите мрежи), и internet exchange (един vlan, два route server-а и свободна обмяна на prefix-и). Имаше свързаност през AS200533 (initlab) и с една врътка отделно през AS57344 (telehouse), ето и схема на setup-а.

Имаше всякакви забавни проблеми, например основния, че хората по подразбиране не се сещат да сложат филтри и няколко пъти беше пускана пълна таблица през exchange-а. Друг интересен момент беше, че понеже exchange си announce-ваше и собствената мрежа, OpenBGPD по някаква причина слагаше път към нея през самия route server и се губеше възможността да се говори с другия. Имаше и забавни сблъсъци м/у опитите за настройка на мрежата и network manager, който решаваше да изтрие разни неща.

Имахме различни интересни устройства, като повечето бяха linux-и с quagga или bird (доста от тях на flash-ка с ubuntu от Мариян), няколко бяха на raspberry pi или подобни мижави устройства, имаше един малък juniper-ски router и един JunOS във виртуалка.

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

2016-03-04 Първи BGP workshop

March 4th, 2016 by Vasil Kolev

Ще направим първия BGP workshop на 13.03 в лаба, от 13:00 в лекционната. Желаещите да се запишат да ми пишат (или на Мариян) и да кажат с какво устройство ще са или дали ние ще им осигурим някакво (за да участвате, трябва да ви има записани в wiki-то за тая дата.

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

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

2016-02-28 BGP workshop

February 28th, 2016 by Vasil Kolev

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

In other news, с Мариян мислим да правим BGP workshop. Ще се случи в initlab, като датата не е ясна, има един doodle по въпроса, а някакво описание може да се намери в лабовото wiki.

Накратко идеята е хората да дойдат, да си пуснат някакво устройство (което или те си носят, или ние им даваме в някакъв вид, или си boot-ват една flash-ка на лаптопа) и да си подкат bgp и routing в три стандартни сценария – upstream-и, peer-и и internet exchange. Ще раздаваме съвсем инстински адреси за анонсиране, та някаква част от упражнението ще е видима от internet :)