Още 2 числа за броя на хората в IT-то

July 27th, 2021 by Vasil Kolev

Наскоро се сетих да питам пак НСИ за броя хора в IT-то (както бях питал преди 2 години), и числата за 2018та са:
Код 25 (всички в IT-то) – 44633;
Код 2522 (системни администратори) – 6850;

Растежът за 4 години е близо 50%…

OpenFest 2021 в парка

July 2nd, 2021 by Vasil Kolev

Ще се случва OpenFest 2021.

Ще е на открито, в “Маймунарника” в Борисовата градина, 14-15 август (стига да не се случи ОЩЕ нещо форсмажорно).

По случая – търсим лектори (особено за workshop-и) и както обикновено, набираме доброволци.

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

2021-06-06 разни

June 6th, 2021 by Vasil Kolev

(каня се от известно време да напиша нещо за наемането на хора, но все не ми остава време. За това – събирателен post с някакви случили се неща)

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

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

In other news, има колебание какво да се прави с OpenFest. Има една анкета на bit.ly/openairopenfest за дали да направим нещо на открито през лятото, има въпроса дали да се опитаме и нещо на закрито есента, но тотално го няма въпроса дали да направим чисто online събитие – по всичко, което чувам/усещам, на всички им е омръзнало. Най-хубавия цитат по темата ми е от преди няколко дни от един семинар на RIPE, в който някой каза “писнало ми е от zoom meeting-и, в които се оплакваме от zoom meeting-ите”.

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

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

2021-01-26 работна среда

January 26th, 2021 by Vasil Kolev

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

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

Хардуер

Ще започна с по-хардуерната част.

За стол ползвам от 10тина години един Markus от IKEA, и в последните две фирми убедих хората, че това е удобния стол. Издържа много, удобен е, и не е безумно скъп (не е и евтин, около 300 лв беше последно). Аз го ползвам без подлакътници (понеже така може да се пъхне повече под бюрото, като реша).

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

От StorPool открих идеята със стойките за монитори – ползвам две Arctic Z1 Basic. Дават ми възможност да си подредя мониторите точно както искам, и освобождават място на бюрото, в което може да се озоват други неща (напр. разклонители).

Сравнително скорошна снимка (с грешната клавиатура)

Много години си имах нормален настолен компютър, после минах на лаптоп, и в момента съм на “компромиса” да съм с лаптоп, който да ползвам на практика като работна станция (не съм го отварял от 3 месеца, само си стои и скърца). В момента е T70 дъно (което правят едни китайски ентусиасти от 51nb.com) в T60p лаптопска кутия, която отне един ден флексотерапия за монтажа. Взех си го заради 4:3 монитора и възможността да имам прилично бърз лаптоп (вече съм му сложил 32GB памет, щото 16 не стигаха), с поносима клавиатура – след Tx20 серията lenovo почнаха да слагат още по-гадни клавиатури, а да стоя на T420 почваше да става бавно и мъчително (и да свършват лаптопите).
Ако тръгна да си вземам нов, вероятно няма да обърна внимание на тия подробности и ще гледам основно да му държи батерията и да не твърде малък екрана (и да не се чупи лесно, все пак се мотаят деца наоколо).
Около това минах и основно на жична мрежа, понеже няма смисъл да си тормозя wifi-то за нещо, което не разнасям.

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

За самите разговори имам два audio device-а – една Jabra speak за през повечето време и една jabra wireless слушалка за като трябва да съм по-тих (или да съм в съседната стая, докато върви разговора :) ). Специално Jabra speak-а е наистина страхотно устройство, с много добро качество на звука и микрофона и почти невероятен echo cancellation, аз в крайна сметка съм купил поне 5-6 такива и съм давал на разни хора, на които им трябва. Силно препоръчвам – удобно е, чува се добре и не тормози ушите.

Мониторите са много интересна тема. Както казах по-горе, избирах си лаптоп специално с 4:3 екран, понеже 16:9 и 16:10 не ми стигат като вертикала, и най-накрая няколко приятели ми се ядосаха и ми купиха квадратен монитор (Eizo EV2730Q). Отне ми няколко дни да свикна с идеята, и от тогава насам не мога да си представя как живял без него – събира ми се всичко, имам място да си наслагам много прозорци, и като реша да пиша текст като този, мога да го отворя на цял екран на увеличен шрифт и да си пиша на воля. Като гледам, по-голям монитор от този вече ще ми е трудно да ползвам, но този мога да обхвана с поглед и половина и спокойно да гледам 2-3 лога как мърдат, докато работя по някаква система.
За лаптопа, който ползвам за видео конференции ползвам един 24″ монитор, който не е нещо особено (взех го евтино от ebay), целта му е да мога да виждам с кого говоря.

Клавиатурата е почти религиозна тема. След всякакви клавиатури, известно време ползване на IBM Model M и после дълги години лаптопски на Lenovo T серия, като минах на квадратния монитор си взех пак Model M-то. В офиса обаче вдигнаха бунт срещу мен (“не можем да си чуваме мислите, докато пишеш”) и като компромис си взех една Das Keyboard с кафеви switch-ове, която не е лоша, но … не е същото нещо. С пандемията можах пак да се върна на Model M-то (щото не се чува през стената да буди децата) и даже за нова година си взех една от новото производство на Unicomp (pckeyboard.com им е сайта). На цена, с доставката от САЩ ми се върза на същите пари като DasKeyboard-а.
Като усещане, за мен няма по-добра клавиатура, и дори се усещам как copy-paste-вам по-малко, понеже правя по-малко грешки, докато пиша. Единствения проблем на клавиатурата е шумът, но новата версия е малко по-басова и по-поносима за околните като звук (но ако се върнем в офис някой ден и трябва да съм с някой друг в стая, трябва или да е глух, или пак да сменя клавиатурата).

Снимка на старата и новата клавиатури

Като pointing device ползвам един безжичен logitech trackball – не ми се налага да си местя много ръката по бюрото, и поне на мен ми е удобно да си го ползвам с палеца. Налага се да го чистя от време на време (което не се случва особено много с модерните оптични мишки), но аз съм свикнал от едно време, и децата много се радват на голямото топче…

Софтуер

От около 22-23 години съм на Debian, и не съм намерил причина да го сменям. Имал съм периоди на ползване на пакети от Ubuntu, но като цяло си ги харесвам като дистрибуция – ползвам го за работни станции, сървъри и каквото ми се наложи и все още много му се радвам.

Отгоре има стандартен X, и в/у него XFCE с Compiz за window manager. Причината да ползвам Compiz е, че е най-бързо работещия window manager, който съм виждал, най-вече за нещата, които аз правя (например switch на workspace не примигва по никакъв начин). Дава много начини за настройка (което аз обичам, понеже мога да си го напасна до моите нужди).
Основните неща, които настройвам са:
– focus follows mouse, т.е. не трябва да click-на на прозорец, че да ми е на фокус и да работя в него – това много забързва нещата, и дава възможност да се пише в прозорец, който не е най-отгоре;
– 11 workspace-а (достъпни с ctrl-alt-1..-). Първо бяха 10, но не стигаха (те и сега не стигат, но ctrl-alt-= май е заето и е много близо до ctrl-alt-backspace:) );
– ползвам Desktop cube plugin-а за много workspace-и, и съм сложил скоростите на максимум, та на практика превключвам мигновено м/у два workspace-а.

За повечето си комуникация ползвам pidgin с кофа plugin-и за различните messenger-и. Имам едно-две irc-та, два jabber-а, два slack-а, skype, telegram, и вероятно още някакви неща. Pidgin-а е от софтуерите, за които си компилирам и дебъгвам някакви неща (ползвам го от пакет, едно време и си го компилирах сам). Повечето комуникация да ми е на едно място е доста удобно, щото не трябва да превключвам м/у 10 неща.
Понеже за някои неща поддръжката му не е много добра, ползвам и web версиите им – например фирмения Slack, понеже така ми излизат както трябва notification-ите, и от време на време този на Telegram (например като ми пратят контакт).

Ползвам и claws-mail за mail client, понеже имам много поща и не мога да понасям web-интерфейсите за поща. Ползвал съм преди evolution и малко съм пробвал thunderbird, но са ми бавни и неудобни, а claws-а се оправя много добре с десетки/стотици хиляди писма, pgp и т.н..

Ползвам и два browser-а – един chrome и един firefox – google docs и подобни неща работят много по-добре в chrome, а електрическия ми подпис само във firefox, и съм разделил някак кое къде ползвам. Двата browser-а са причината за 32-та GB памет, ядат много (и често развъртат вентилаторите).

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

И приложението, в което на практика живея – xfce4-terminal :) Пробвал съм различни, но този е достатъчно бърз, и поддържа правилния вид прозрачност. Пуснал съм му голям scrollback, и съм сложил Go Mono шрифт (който е серифен, но по някаква причина ми е по-удобен от останалите). Нещо, което много ползвам и не препоръчвам на никой е прозрачността да гледам терминала под него, основно дали нещо мръдва (и което подлудява повечето хора, които ми гледат екрана).

За текстов редактор ползвам vim, на който не съм правил нищо специално, само за някои директории имам да прави git commit всеки път, като запише файл, много е удобно за файлове с бележки и подобни.

Процес на работа

Всичко това е навързано в моя леко странен начин на работа…

Използвам workspace-ите, за да си организирам различните задачи:
– Първия е за messenger, gtimelog и един vim с бележки;
– Втория е за пощата – claws-mail и някакво количество отворени mail-ове, на които трябва да отговоря (ако не ги отворя, няма начин да ги запомня);
– трети до осми са за терминали. Горе-долу workspace за задача, понякога два;
– девети за chrome, десети за firefox;
– последния за неща, дето почти не гледам, например vpn-а или контрола на музиката вкъщи.

Основният принцип, който гледам да следвам е всяко нещо, което ми трябва в дадена задача да е на един клавиш/комбинация разстояние. Например два терминала на един workspace, и като трябва, превключвам м/у тях. Ако ми трябват още, слагам ги на съседния workspace. Ако са някакви по-странни неща, слагам tmux и го деля на две (при моя монитор и хоризонталното, и вертикалното разделяне работят много добре).

Да си погледна messenger-а, ако има нещо светнало, ми е лесна комбинация, да си видя пощата пак, да отида до по-важните задачи (които гледам да държа на началните workspace-и) – също, директно с лява ръка. Ако трябва да ходя до browser-ите ми е малко по-бавно, но за там най-често така и така си трябва context switch в главата.

Нещо, което също много ми помага, понеже през голяма част от времето си пиша с хора е, че сменям кирилица/латиница с caps lock – един клавиш, на лесно място. Идеята с shift+alt винаги ми се е виждала ужасна, и много често задейства контекстните менюта някъде. Като добавка, ползвам kbdd за да помни в кой прозорец на какъв език съм бил, та да не се налага да превключвам постоянно, като се местя м/у комуникация и терминалите.

Разни

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

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

2021-01-17 post-hireheroes

January 17th, 2021 by Vasil Kolev

(втори пост!)

Dev.bg имаха интересен проект, наречен “HireHeroes”. Идеята беше в общи линии някакво количество “герои” да могат да си говорят с потенциални кандидати, които искат да се ориентират по-добре какво да правят, и да могат да ги препоръчат в определени фирми.

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

Та, dev.bg прекратиха HireHeroes (и направиха job board, който най-вероятно ще им е повече на печалба), но не мисля, че всичко от тая идея трябва да умре. Та, ако някой има нужда от съвет, идеи, иска да си сменя типа работа и изобщо въпроси по темата, съм щастлив да отговарям/помагам доколкото мога. Mail-а ми е като сайта ми, може да оставяте коментари в блога и т.н., а за който иска, успявам да изкопча по някой друг час на седмица за video call.

2021-01-02 равносметъчно

January 2nd, 2021 by Vasil Kolev

За да докарам поне един post тая година (щото не е ясно дали ще намеря време за повече), ето една равносметка за миналата година:

– Оживяхме, и не карахме вируса;
– Малките зверове растат усилено и правят всякакви интересни и опасни открития;
– Жена ми още не ме е убила;
– Успяхме да случим FOSDEM преди големите заразявания и затваряния;
– За да успявам да работя и да съм около семейството, правихме всякакви странни неща – работа от вкъщи, от Бургас, пътувах си с цялата техника и т.н.. Много се разглезих с квадратния монитор и хубавата клавиатура, та пренасянията ми не са толкова прости :) ;
– На практика цялото лято го изкарах в Бургас, ДОРИ ме заведоха няколко пъти на плаж (и спокойно мога да кажа, че все още не ми харесва) (и ми напомниха да спомена, че не съм си свалил кубинките на плажа);
– Годината като цяло показа, че работата от вкъщи поне за мен се получава. Допълнителен плюс е, че мога да си ползвам шумната Model M клавиатура без целия офис да иска да ме удуши (освен когато забравя да си mute-на микрофона);
– “Кривото” на ъгъла на “Дондуков” и “Будапеща” го закриха още преди пандемията, но ние пренесохме ИББ online на b.1h.cx (една BBB инстанция на машина на Мариян). Малко се промениха посетителите, но пък така успяваме да се видим с доста хора от други времеви зони и други места, та май си е плюс;
– От време на време успявах да се наспя, повечето време – не;
– Случи се OpenFest, online, в общи линии без мое участие. Супер горд съм с екипа :)

Селекция “офисни” снимки:
Вкъщи 1;
Бургас 1;
Бургас в полеви условия;
Вкъщи 2;
Бургас 2;

За новата година… Очаквам да не е по-зле от изминалата, или поне се надявам :) Определено чакам с нетърпение да видя колко карантинни бебета ще се появят.

И ето ни една обща снимка.

2020-11-15 обяд?

November 15th, 2020 by Vasil Kolev

Пак се очертават lockdown-тип мерки, и като цяло хората са си орязали социалните контакти, някои са под карантина, други са директно заразени…

По темата, за по-малко полудяване на хората освен ИББ, което случваме online всяка сряда (и което в последно време не се пълни много), мислим да направим ОО (openfest обяд), всеки ден след 12:30 пак както ИББ на b.1h.cx, което си е една наша BBB инстанция с 4 “стаи”, в които може и да видите кой е. Така хората могат да имат компания за обяд извън стандартния си кръг познати :)

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

(Иначе, моето мижаво irc работи, който иска може да дойде на irc.ludost.net:6697 (SSL/TLS), #marla, или през webirc.ludost.net)

Та, ако ви е скучно по обяд (или сряда вечер след 19:00-19:30), b.1h.cx :)

OpenFest 2020

September 14th, 2020 by Vasil Kolev

Съвсем накратко.

Ще има online OpenFest 2020. Търсят се доброволци и лектори.

Най-вероятно и така ще е забавно, та – включвайте се:)

2020-04-15 Второ/трето online ИББ

April 15th, 2020 by Vasil Kolev

Ще пробваме тоя път в b.1h.cx – това представлява една bigbluebutton инстанция. Изглежда да се справя по-добре с много камери (jitsi-то подпалваше лаптопите) и яде по-малко CPU на сървъра.

2020-04-04 пробно online ИББ

April 4th, 2020 by Vasil Kolev

Преди някакво време затвориха “Кривото”, което беше на ъгъла на “Дондуков” и “Будапеща”, и с него изчезна и ИББ. Аз не бях успявал да стигна до там от много време и точно седмицата, в която обявиха пандемията се канех да ходя…

Та, има разговори да го възобновим, и понеже няма как на живо, тая вечер си направихме едно събиране на jitsi.ludost.net/ibb, експериментално, да видим как е. Бяхме десетина човека, поговорихме си за час-два, пихме по едно, хапнахме си и си отидохме да спим :) Та вероятно тая сряда ще направим пак сбирка, за който му липсва. Не изглежда да е възможно да си пуснем всички камерите и да не ни се подпалят машините, но само с аудио пак е добре.

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

Update: Добре, че ми напомниха: firefox има проблеми с webrtc-то дотолкова, че прави проблем на цялата конференция (в първия коментар тук има малко повече подробности), пуснете си chrome/chromium в един контейнер и елате през него:)

2020-03-21 threat модели

March 21st, 2020 by Vasil Kolev

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

В момента всички усилено търсят начин да си пренесат работата от вкъщи. Аз съм от щастливците – при нас по принцип всичко може да се прави remote и сме си направили така нещата (което е следствие от голямото количество админи на глава от фирмата, май сме над 50%). Също така заради естеството на работата сме обмисляли сериозно как да направим нещата, че да са сигурни, и първата стъпка в това е да се реши какъв е threat модела (т.е. “от какво/кого се пазим?”), понеже това определя смислеността на мерките, които се взимат.

Най-лесният въпрос е “от кого се пазим”, да преценим какви са му възможностите, и какви мерки да вземем. Базовите опции са “script kiddies”, “опортюнисти”, “конкуренцията”, “държавата”, “NSA”.

“Script kiddies” са най-лесни, и са в общи линии стандартните мерки, които всички взимат – от това да няма тривиални пароли и да няма не-patch-нати service-и, до това хората да знаят да не отварят опасни документи (или ако работата им е да получават документи, да имат среда, в която да ги гледат безопасно, което е случая с журналистите например).

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

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

“Държавата” е супер интересна, понеже тук си проличава утопичното мислене на хората. Криптирани файлове, секретни канали и т.н. – голяма част от това пази от предните точки, не от тази. От метода на гумения маркуч (т.е. да те бият докато си кажеш) не се пазим с технически средства, а много повече с оперативни, като например никой в засегнатата юрисдикция да няма достъп до нещата, които се пазят. Особено текущата ситуация с карантината и извънредното положение го показва много добре – ако приемем, че сме на територията на противника, който има няколко порядъка по-големи ресурси от нас, и като изключим хората, които обучават специално за целта (т.е. шпиони), които имат зад гърба си сериозна поддържаща система, и при които има над 10% заловяемост (защото оперативната сигурност е много трудно нещо), няма някой друг, за който да е смислено да мисли подобни мерки.
Или с по-прости думи, ако всичко ви е в държава в извънредно положение, колкото да са и некадърни в някакви отношения органите, със сигурност умеят търсенето и биенето и всякакви мерки трябва да взимат това предвид, например да се стараем да не ни е противник държавата…

“NSA” е по-скоро събирателно за това, което се нарича “APT” (Advanced Persistent Threat, т.е. хора с много акъл, желание и ресурси), и е пример за това кога трябва да имаме airgap firewall-и и други подобни крайни мерки, като фарадееви кафези, неща които изискват минимум двама човека и т.н.. Ако се занимавате с платежни системи и подобни неща, това в общи линии ви влиза в threat модела, иначе е много малко вероятно и много скъпо да се пазите от тях.

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

2020-03-20 първа седмица

March 20th, 2020 by Vasil Kolev

Интересна седмица.

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

В момента курсът по операционни системи ползва за част от нещата комбинация от live streaming (с около 10 секунди латентност, може да се опитаме да го смъкнем) и irc, и за някои други неща jitsi meet (подкарах едно при мен на jitsi.ludost.net, който иска може да го ползва). Като цяло гледаме да ползваме локални ресурси, и от гледна точка на латентност, и от гледна точка на това да не удавим външните тръби без да искаме.
(това с тръбите май малко се преувеличава де, в България има бая хубав интернет и това, че netflix ограничиха да stream-ват само SD по време на пандемията по-скоро говори за липса на капацитет при тях)
(но е доста важно да не зависиш от твърде много външни ресурси)

Jitsi-то и irc-то също са доста полезни, като гледам, а хората за да не полудяват си правят сутрешното кафе по видео конференции. Други хора се организират да сглобяват emergency вентилатори (има някъде fb група по темата, в която се намират и малко медицински лица), някои печатат на 3d принтери компонентите за предпазен шлем при интубиране и подобни (друг линк до файлове за такова нещо) (даже мисля, че принтера в initLab вече е впрегнат по темата).

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

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

Наздраве и лека нощ.

2020-03-13 streaming по време на чума

March 14th, 2020 by Vasil Kolev

Живеем в интересни времена. Даже идват от Китай.

Anyway. В последните няколко дни имам различни разговори по темата как може да се продължат различни преподавателски дейности online. Почти сме сглобили нещо за упражненията по “Операционни системи” във ФМИ, и си говоря с един приятел, който обмисля да сглоби нещо такова за училището си.

Ще напиша нещо по-подробно с как/какво може и т.н., но понеже не съм виждал преподаване в последните 10 години, и училищно такова от 20, много ще се радвам, ако някой каже от какво има нужда – доколко да има обратна връзка/да се виждат учещите, какви неща за показване (т.е. нещо да играе ролята на бялата дъска), дали трябва да се вижда самия преподаващ или дъската/екрана му стигат, и такива неща.

2020-02-20 “Лично досие”

February 20th, 2020 by Vasil Kolev

(имам да пиша и за FOSDEM, ама като стигна до там)

От миналата година от двете наистина важни излезли книги – биографията на Едуард Сноудън и Mindf*ck за историята около Cambridge analytica, първата тия дни излиза на български (издават я Егмонт, което мен много ме учуди). Ако не сте я чели в оригинал и/или имате познати, които не могат да я четат в оригинал, определено си струва.

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

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

2019-12-25

December 25th, 2019 by Vasil Kolev

Изминалата година най-добре може да се опише с текста от коледната ми картичка от фирмата: “Пожелаваме ти да се наспиш и да можеш да си работиш на спокойствие” :) Друго, доста очевидно нещо е как за пръв път чета по-малко от 30к страници за една година.

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

StorPool-ската игра на OpenFest 2019

November 5th, 2019 by Vasil Kolev

В последните няколко годинии (2017, 2018) сглабям по някаква online игра за щанда на StorPool на OpenFest. Тази година пак сглобих нещо такова, и понеже изисква някаква сървърна част, просто ще му напиша описание, а който иска, може да го setup-не някъде, всичките му неща могат да се свалят от quiz.storpool.com/of2019.tgz.

Играта изглеждаше по следния начин: в началото човек се логва на един сървър, и в motd-то го посреща описание от “предишния човек”, който е hack-вал машината:


yo

i kept working on this, but what i've seen that there's
a strange firewall, and we need to get to port 3xxx. there's
some readme in a weird encoding, no idea how to read that.

the guys that wrote this system are the worst, it's a patch
over duct tape over bad stitching.

looking at the way i got this password, they know nothing
about crypto, anyway, so it should be easy.

gl

Информацията в този текст в общи линии е “нещо слуша на порт 3xxx, има странен firewall, има документация във формат, който не мога да прочета, и тия хора от криптография не разбират”.

В директорията освен този файл (“y00dud3”) има още два – kdctl.dump и manual.EBCDIC-INT. kdctl.dump е strace на /opt/kd/linux-x86_64/devel/bin/kdctl, който може да се види как прави connect() до localhost на порт 3xxx (където “xxx” е номерчето на user-а, имаше отделен порт за всеки участник). Ако човек се опиташе да пусне kdctl, му даваше permission denied (и такова нещо няма, сложих просто permission-и 000 на една от директориите по пътя), така че човек трябва сам да се прави на клиента.

manual.EBCDIC-INT представлява малко документация, обърната в EBCDIC, която човек може да си конвертира обратно с iconv (или както се оказа, с dd). Вътре има описание на системата, с която трябва да се говори, и малко development информация за протокола, като част от информацията е криптирана:


KroberDyne access terminal v2.1.18-fcdb1fa
==========================================

!!! This document is property of KroberDyne corporation. A license is
!!! granted to the purchaser of this system for 1 (one) copy. All
!!! unauthorized copies must be destroyed.

Audience
========

This document is for use of the commander of the operation in which
the KroberDyne terminal is used. A simplified version is avaiable
for the operation personnel.

Introduction
============

The KroberDyne(tm) access terminal provides accesss credentials to
authorized users to be able to interact with KroberDyne(tm) Semi-
Autonomous Unmanned Aerial Vehicles. Its goal is to provide the
sufficient authentication of a pilot to provide it back with the
proper codes to authorize the activation of different sensors
and activators.

The terminal authentication is certified to be used with UAVs
that carry nuclear and biological weapons. Please refer to document
KD-25.8069 for more details.

Usage
=====

The terminal is to be used mostly via the main client, kdauth.

Usage: kdauth

The tool will prompt with the relevant codebook names and will
request a password that matches. On success, it'll provide back the
allowed credentials.

Development
===========

The protocol to communicate with the device is line-based and
follows the basic notations of IETF protocols, for convenience.
Return codes in the 2xx mean no problem, 4xx are authentication-
related, and 5xx non-transient errors.

Commands:
AUTH - requests authentication data
PASS - sends password
LANG - sets protocol language for some messages. Currently only
English ("en") is supported.
HELP - short list of commands.

The following extra commands are available for support purposes.
As their usage is dangerous, the following information is encrypted.
Please contact KroberDyne for key access.

JNVG - gur npprff grezvany vf ol qrsnhyg qrynl-yvzvgrq gb abg
biresybj fybj frevny yvaxf. Guvf cnenzrgre pbagebyf qrynl
va zf. Hfntr erfgevpgrq gb grpuavpvnaf.

QOHT - qhzcf n fcrpvsvp gnoyr va fbsgjner.
HFNTR ERFGEVGRQ GB XEBOREQLAR FRPHEVGL FGNSS BAYL.

All rights reserved, KroberDyne corporation(tm)

(“Kroberdyne” е някаква комбинация от cyberdyne (корпорацията във филмите за Terminator) и крокодил)

“Криптирането” е ROT13 (което мисля, че дори се вижда) и вътре има следното:


WAIT - the access terminal is by default delay-limited to not
overflow slow serial links. This parameter controls delay
in ms. Usage restricted to technicians.


DBUG - dumps a specific table in software.
USAGE RESTRITED TO KROBERDYNE SECURITY STAFF ONLY.

И така, имаме протокол, с който да си говорим с един демон локално, и да се опитаме да вземем някакъв auth code. Като направим telnet localhost 3xxx, получаваме:


$ telnet localhost 3001
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
200-KroberDyne terminal VT18. Unathorized access prohibited.
200 Welcome 001
>

Тук има няколко неща, не всички са задължителни:
– LANG en, и след това HELP ще ви даде един списък от команди (иначе казва, че няма такъв файл);
– WAIT 0 ще махне забавянето при печатане (което е random wait м/у всеки 2 букви и изглежда бая странно);
– AUTH ще ви каже 3 codebook-а, от които да извадите парола;
– DBUG codebook ще ви извади всичките пароли от определения codebook, и
– PASS парола (която се среща и в 3-те codebook-а) ще ви даде код да си получите тениската.

(това с DBUG може да ви се струва невероятно, но е по съвсем истински случай, използван от първия worm в Internet)

Няколко неща може би не бяха ясни – например имаше 30-минутен time limit за всички пробващи се и после им lock-ваше account-а (което май не сработи точно както трябваше), и може би не беше ясно до какво точно трябва да се стигне. Хората, решили задачата са малко, доколкото знам, та явно догодина ще трябва повече подсказки. Портовете бяха филтрирани така, че всеки да може да се връзва само на собствения си, и всъщност имах и идеята да изисквам определен range за source port, но не намерих за краткото време, което имах лесен начин човек да си намества source port-а от telnet, и реших да го прескоча.

Иначе, интерактивен сървър с команди се оказа тривиален за правене, с малко python и един rlinetd да се занимава с TCP-то отпред, може да видите колко е тривиален кода вътре.

Четири числа на тема броя хора в IT-то

October 11th, 2019 by Vasil Kolev

Днес ми изпълниха заявка от НСИ по темата “колко системни администратора има в България”.

Искам преди това да кажа, че това са едни прекрасни хора – след като си подадох online заявка в свободен текст (“колко човека е имало на трудов договор през годините с код на длъжноста 2522* и 25*)”, те ми се обадиха да ми кажат какво имат (че данни за нещо такова се събират на 4 години, и още не са обработени тези за 2018, тях ще ги има догодина), и след като ми взеха невероятната сума от 1.86лв (платими през epay, тривиално online) ми пратиха данните.

Самите данни са 4 числа: през 2010та на код 2522* е имало 3478 човека, на код 25* – 20360 човека. През 2014та на код 2522 е имало 4847 човека, на 25* – 29413 човека.

Гласуване за лекции за OpenFest 2019

October 7th, 2019 by Vasil Kolev

TLDR – Гласуване за лекциите за OpenFest 2019.

Както всяка от последните години, имаме едно консултативно гласуване за лекциите за OpenFest 2019, резултатите от което ни помагат да подредим лекциите по зали и да избегнем колкото можем конфликтите.

2019-09-08 нов мрежов setup в 3dc

September 8th, 2019 by Vasil Kolev

Преди някакво време с Мариян си взехме половин rack в 3dc, за да си слиожим там разни машини (и подслоняваме други проекти, последно linux-bg.org). Свършихме малко интересни неща с мрежата и ми се ще да ги разкажа, заедно с разни бъдещи планове.

В началото бяхме на един гигабитов switch (Quanta LB4m, стои ми в момента в краката). От там тръгна setup-а с няколко vlan-а – един за публични цели (/27), едни за ipmi, и разни за външните връзки. От самото начало две машини бяха router-и и за всяка връзка навън или навътре се правят сесии и до двата.

Последва разширяване, първо с един, после с втори 10gbe switch – Arista DCS-7050S-64 и DCS-7050S-52 (имаше и някакъв междинен, който не мога да си спомня). Самите switch-ове имат много приятен начин за настройка, понеже на практика са откраднали Cisco CLI-то и са го направили приятно за ползване. В началото използвахме основно единия, после закачихме всичко на двата, взехме една кофа медни SFP-та и махнахме гигабитовата Quanta.

За redundancy (понеже веднъж се случи да crash-не единия switch), първоначално направихме setup-а с active-passive bond-ове с miimon (arp_monitor щеше да е трудно заради неяснотата какво точно да се пингва, вероятно трябваше да са самите switch-ове). Не сме мислили за идеята за MLAG и клъстериране на switch-овете, понеже поне моя опит показва, че няма никой производител, който да може да си направи правилно клъстерирането и отпадането на единия switch да не повлияе на другия (и вероятно мога да напиша един blog post по темата).

Текущата стъпка е active-passive bond-а да се замести от отделни BGP сесии през двата switch-а до двата router-а, т.е. общо 4 сесии. Създадох по един vlan на switch (за да не пипам съществуващия трафик), peer-нах там машините с двата router-а и те си анонсират на /32ки адресите, които имат. Така се постига по-добро redundancy, понеже всяка машина има 4 пътя и при отпадане на каквото и да е може да знае кои други пътища и работят.
(има пуснато и BFD в схемата, на което Мариян ме открехна, и сесия се усеща, че е умряла за около секунда, вместо стандартните BGP timeout-и)

С този setup също така може да се пусне ECMP (equal-cost multipath) и да се ползват и двата интерфейса едновременно (не че някой пълни и един 10gbps интерфейс, но принципът е интересен).

Обмислях да направя директно следващата стъпка вместо тази, която е вместо с двата router-а машините да говорят BGP директно със switch-овете, като така се намалява броя сесии. Това обаче изисква малко tooling, за да мога да синхронизирам конфигурацията на двата switch-а по темата и доста внимание да не изтърва пълна таблица натам, защото ще клекнат (така като гледам, на пръв поглед поддържат до 16к пътя). В този случай обаче все пак ще трябва да оставя L2 нещата по switch-овете за външните връзки, т.е. не мога да мина изцяло на route-нат setup (защото не мога и да терминирам сесиите директно в switch-овете, въпреки че обмислям хакове да прекарвам многото трафик директно през switch-овете, с VRF-и).

Също един от следващите планове е cloud-тип нещо – три железа (с най-вероятно StorPool за storage), около 1 TB памет, 100-ти на core-а и изцяло route-ната мрежа, до самите виртуалки. Също така обмислям и router-ите да са 2 и да са пак виртуалки, с PCI pass-through на мрежови интерфейси, но това трябва да си го досглобя в главата – има разни подробности за най-подходящия point-to-point интерфейс за вътре във виртуалките, и за начина на реализация на вътрешни мрежи.

(
Дълго време гледам как чисто layer2 мрежите имат купчина неудобни проблеми от гледна точка на redundancy и използване на целия си ресурс. Редовно виждам как в datacenter мрежи STP-то, клъстерирането и подобните неща убиват някакви услуги, и пробутвам на разни хора идеята да минат на layer3 мрежи – от много време няма някаква разлика в performance на двете. Явно е по-правилно да дам пример :) )

2019-08-04 единичен апокриф

August 4th, 2019 by Vasil Kolev

От серията апокрифи, с добавка.

Преди година-две се возех с един приятел, и той ми разказа следната история: българска фирма, която едно време продаваше много мрежов хардуер на isp-та, си поръчала много оптични конвертори от Китай.Пазарили се здраво с китайците за отстъпки, и накрая китайците казали – добре, за тия пари ще ви направим конвертори, и им ги пратили…

Пуснали те първите конвертори за разни потребители, и дошъл въпроса “защо през тая връзка мога да сваля zip файл, ама doc не мога?”… И тук човека ме пита – сещаш ли се какво е станало?

И аз си спомних как преди много години, около 1998, почти всичкия internet беше серийни връзки, и бяхме намерили начин да качваме серийния асинхронен сигнал в/у радио и да го носим на някакви сериозни разстояния, но имаше малък проблем – като пуснеш само нули или само единици, и те потрошаваха сигнала, понеже нямаше какво да му поддържа нормално нивото. Нещо като manchester encoding щеше да реши проблема (и да ни смъкне двойно bandwidth-а), но тогава такива неща не ни бяха във възможностите, за това написах малко демонче, наречено lfld (“line-fill daemon”), което в моментите, в които няма сигнал от серийния порт, да бълва “U” (01010101 в binary, 0x55), та да държи линията в нормално състояние, и на pppd-то беше обяснено да escape-ва 0x00, 0xff и 0x55. Тия дни дори си видях кода някъде, и е средно зле, ако има интерес към подобно нещо, мога да го кача някъде (може да се наложи допипване, че да работи на kernel > 2.0)
(синхронен сериен порт също би трябвало да ни реши проблема, ако си носеше clock-а със себе си, но тогава тия неща бяха ужасно скъпи)

Та, какво се оказало – китайците спестили от едни регулатори на волтажа, та нещо с голяма ентропия е ок (като zip-а), нещо с много повтарящи се битове – не толкова. Та фирмата организирала работилница, и половин София им помагала да patch-ват с поялниците всичките тия хиляди конвертори…

Учудващо как някакви проблеми не изчезват :)