Posts Tagged ‘initLab’

2024-10-19 “Self-hosting workshop” в initLab

Sunday, October 20th, 2024

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

Вчера с Благо направихме self-hosting workshop, и има запис. Ще се постарая да намерим начин останалите неща, дето се случват там да се записват и да ходят във видео архива.

2024-08-11 initLab рожден ден

Sunday, August 11th, 2024

initLab стана на 14 години.

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

Хубаво е, че лабът съществува толкова години. Това е едно от малкото места, на които хора могат да се съберат и да свършат нещо интересно, в почти произволна посока, без някакви особени ограничения и задължения, просто за удоволствието и знанията. През годините са организирани толкова събития, че ми е трудно да ги изброя (във времената, когато бях в управителния съвет си спомням колко дълъг ставаше отчетът за дейността, просто защото целогодишно се случват някакви неща). Без initLab щеше да е доста по-трудна организацията на OpenFest, на доброволците, които ходим на FOSDEM, study групите за Rails Girls, както и на много знайни и незнайни други проекти.

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

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

2019-07-14 разни

Saturday, July 13th, 2019

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

За рождения ден (някакво време след като излязох от болницата) група хора ми подариха квадратен монитор, да работя на него (след като си смених лаптопа с нещо много странно с 4:3 екран, щото 16:10 ми беше писнало). С няколко фалстарта (видеокартата ми на текущия не обичаше конвертори, прекъсващ кабел и т.н.) в момента съм на него на работа, и тотално не мога да си обясня как може да се работи по друг начин. Виждам си всичкия код, мога паралелно с него да гледам някакви логове, схемите ми се събират на екрана и не трябва да ги сплесквам по вертикала, изобщо радост за душата. Препоръчвам на всеки, дето върши някаква работа.

По темата се зарових да видя какви са опциите, и явно единственият монитор в тоя размер е този – човек може да си купи панел с тоя размер и LVDS (или по-нормален) интерфейс от китайците, но ще трябва да си направи и стойка (или монитор като за авиодиспечер, или медицински цели). Предполагам, че повечето хора се справят с много широки монитори, за да си докарат нужния вертикален момент, или правят както Кънев едно време в initlab (два 16:9 монитора на 90 градуса и още един в нормална позиция, за тестване).

Явно индустрията се е ориентирала към гледането на филми, дано не дойде момента, в който неща като Cinerama (2.59:1) станат модерни, тогава всички, дето трябва да вършим работа, ще трябва да си купуваме медицински монитори.

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

(in other news, ако някой му хрумва клавиатура с подобен размер и усещане като model M, но по-тиха, да каже, че ще вземат да ме изгонят от офиса)

Посещение от НПМГ в лаба

Sunday, June 16th, 2019

(чак сега успявам да пиша)

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

Дойдоха в лаба, показахме им различните неща, които имаме и правим, обясних неформалния характер на мястото, и ги позабавлявахме с разните странни неща, които имаме – разказах им за системата за отваряне на вратата и контрол на лампите, показах им едно софтуерно радио, и един стар MFM-RLL харддиск (питаха ме колко е голям, казах – 10 или 20, и Теодор ми напомни да спомена, че това са мегабайти).

После отделихме едно прилично количество време да ни задават въпроси – в лаба бяха хората от camplight и те доста помогнаха. Имаше въпроси по темата работа, къде да учат след училище и всякакви такива неща (където обяснявах, че в България ФМИ на СУ е най-малко зле). Разказахме им за всякакви хакатони, за различни компании, които си търсят хора и всякакви такива неща, и се надявам че им бяхме полезни.

(и тия дни като обявим официално call for volunteers за openfest, ще им го пратим и на тях)

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

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

2018-03-17 малък видео setup

Saturday, March 17th, 2018

Събирам (засега основно в главата си) setup за видео streaming и запис в hackerspace-овете в България. Изискванията са:

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

Целта на setup-а е да се справи с най-простия тип събитие, което е един лектор с презентация.

Компонентите са следните:

– запис на звука – може да е от въздуха, но по-добре една брошка на лектора, + запис на залата по някакъв начин, за въпроси и т.н.;
– усилване на звука – дори в малка зала е добре да се усили звука от лектора и да се пусне на едни колони, най-малкото има feedback дали си е пуснал микрофона;
– видео запис – да се запише видеото от презентацията и може би самия лектор как говори. Това има варианта с камера, която снима лектора и екрана, или screen capture, директно от лаптопа му (или някой по-сложен setup, за който вероятно няма смисъл да пиша);
– streaming – да се извадят аудио/видео сигнала в/у някакъв протокол и да се stream-нат до някоя услуга;
– restreaming – услугата да го разпрати навсякъде и може би да го запише.

Вариантите за компоненти/setup-и в главата ми са следните:

– ffmpeg команда, която stream-ва екрана + звук от звуковата карта, в която има един свестен микрофон – това го имаме в няколко варианта, тествани и работещи (за windows и linux), трябва да ги качим някъде. Това е най-бързия начин, почти не иска допълнителен хардуер (освен един микрофон, щото тия на лаптопите за нищо не стават). Микрофонът може да е например някоя bluetooth/usb слушалка, или просто от слушалки с микрофон, да е близо до главата на лектора. Може да е от стандартните брошки, които се използват по различни събития, аз имам една китайска цифрова, дето в общи линии ме радва и е около 200-и-нещо лева от aliexpress;

– проста малка камера, която може да записва видео от екрана и звук, която може да бълва и по IP някакси. Това в общи линии са gopro-та (ако се намери как да им се пъхне звук) и още някакви подобни камери, които нямат особено добро качество (особено на звука, та задължително трябва външен микрофон), но на хората и се намират.

– проста камера, която обаче не може да бълва по IP, и има HDMI изход. Това е от нещата, които на хората им се намират по някакви причини, и в тая категория са половината DSLR-и и фотоапарати (които не прегряват след дълга (2-часова) употреба), gopro-та и нормален клас камери. Това се комбинира с устройство, което може да capture-ва HDMI и да го stream-ва, където засега опцията е един китайски device.

– streaming service – човек може да ползва youtube, моя streaming, или ако се мрази, facebook. Много места би трябвало да могат да си пуснат нещо просто при тях (например един nginx с модула за rtmp), да stream-ват до него, то да записва, и от него да restream-ват на други места и да дават някакъв лесен начин на хората ги гледат (с едно video.js/hls.js, както последно направихме за openfest).

Та, за момента основните неща, които издирвам са:

– евтини и работещи микрофони;
– евтини работещи камери с hdmi изход (или с ethernet порт, тва с wifi-то е боза), които да са switchable м/у 50hz и 60hz;
– hdmi capture вариант.

Приемам идеи, и ще гледам да сглобя едно такова за initLab.

2017-12-29 Първи лабов podcast

Friday, December 29th, 2017

Официална страница на podcast-а.

Който иска да го свали, ето преки връзки в три формата:

https://vasil.ludost.net/labpodcast-20171228.ogg
https://vasil.ludost.net/labpodcast-20171228.mp3
https://vasil.ludost.net/labpodcast-20171228.flac

2017-12-13 разни

Wednesday, December 13th, 2017

И много неща на едно място, че все няма време за блогване.

Лабът организира голямо коледно LAN party, на 21.12, с всякакъв хардуер и игри.

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

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

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

В работата е забавно, всеки ден откривам нови неща, които не работят и странни бъгове и дизайн решения в компоненти, които уж хората са тествали, ползват и са ок. От по-пресните примери е как continuous queries на influxdb при достатъчно бази и данни просто никога не могат да наваксат, защото са в един thread, който се вика дявол знае кога. Успях да ги заместя с 200 реда код на python (и разпитвайки google, не само аз съм така).

На книжния фронт една от основните новини е, че авторът на Worm е приключил последния си проект (Twig) и се е хванал пак да пише в света на Worm (казва се Ward), което е страхотно за всички, обичащи книгите по 5000 страници.

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

Върви подготовката за FOSDEM. След последните тестове (които правихме на един хакатон там на място) моя код, дето ползва openpgm не retransmit-ва, и за един ден дебъгване (и вкарване на print-ове на разни места и опити да разбера какво точно искат да кажат тия хора, които в разни функции с имена “провери-нещо-си” променят по генералния state и които доста намразих) не успях да намеря що не сработва. Обмислям да се скрия някъде по празниците и да го дебъгвам, или да измисля решение с TCP най-накрая.
(как може никой да не е написал multicast TCP. Трябва да го дадем за задача на някой, дето не знае, че не е възможно и да видим какво ще излезе…)

Спирам, преди това да е станало съвсем несвързано.

2016-05-15

Saturday, May 14th, 2016

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

В последните две седмици се случиха куп неща, които в общи линии май трябва да си припомням по логове:
– Довършихме редакцията на видеата от 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-22

Friday, April 22nd, 2016

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

Както обикновено, ми върви на дебъгване. В последната седмица от по-странните неща се сещам за:
– 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-08 промени по закона за личните документи

Friday, April 8th, 2016

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

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

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

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

Втория BGP workshop

Monday, April 4th, 2016

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

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

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

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

Втори BGP workshop

Thursday, March 17th, 2016

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

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

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

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

Sunday, March 13th, 2016

И направихме първия 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

Friday, March 4th, 2016

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

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

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

2016-02-28 BGP workshop

Sunday, February 28th, 2016

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

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

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

2016-01-28 грозния hack, който контролира лампите на фасата

Thursday, January 28th, 2016

Кодът, който пиша е грозна работа и пълен с hack-ове. Явно така ми харесва :)

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

Редове 11-18 се занимават с това да сменят статуса на лампите. Това, което правят е просто да сменят статуса на релетата на netcontrol-а, id-тата са от 13 до 15 включително (което отговаря на релета от 5 до 7, втория set в устройството).

Редове 20-39 се занимават с взимането на текущия state на системата:
– ред 23 взима дали е ден или нощ, от една малко patch-ната версия на sunwait. Сметката е сравнително проста, има я описана на доста места и се оказа един от най-лесните начини. (очаквах да има директно инструмент в debian, дето да ми го каже, но не открих такъв)
– ред 24 взима дали лампите са светнати, като взима статуса на едно от релетата. Това е малко некадърно, понеже поглежда дали е светната само една от лампите, но ме мързи да измисля по-приличен начин, който да лови неконсистентно светнати лампи. Също така това може да се направи доста по-човешко, без cut и awk.
– редове 26-29 питат контрола на входната врата дали е заключена или не (системата е описана във wiki-то на лаба).
– и редове 31-37 проверяват дали trigger-ът за форсиране на светването на лампите е вдигнат (който е един файл в /tmp)

Редове 41-44 са функция за печат на текущия статус, в общи линии за debug-ване.

Редове 47-53 инициализират един пакетен unix domain socket, който е в общи линии нещо като UDP socket – лесен начин за получаване на отделни съобщения. Инициализираме го за получаване, връзваме го във файловата система и го правим nonblocking.

На ред 56 ни започва главния цикъл.

В началото на цикъла се възползваме от socket-а (редове 57-61), като изчакваме или да се появи нещо на socket-а, или 60 секунди, което се случи по-рано. В първоначалната версия socket-ът го нямаше и имаше просто sleep(60), но така се налагаше да се изчака всеки път sleep-а, преди да се промени нещо. Така е възможно когато fauna-та получи информация, че вратата е отключена, да форсира демона да препровери състоянията и да светне лампите.
Тук може четенето от socket-а да се прави, докато не остане нищо в него, за да можем да се предпазим от DoS-ване, заедно с някакъв минимален timeout.

Нататък (редове 63-66) взимаме текущото състояние и dump-ваме малко информация.

На редове 68-70 правим проверка дали спрямо предишното състояние се е променил статусът на ключалката, и ако се е случило, отбелязваме кога. Това ни помага малко по-нататък.

Редове 73-84 хващат моментите, в които лампите са включени:
– Ако е ден и не сме форсирани от trigger-а, гасим лампите;
– Ако е нощ, вратата е заключена, не е вдигнат trigger-а и са минали 15 минути от заключването, гасим лампите. Така човек може да си тръгне спокойно от лаба и да не се пребие в тъмницата, като му угаснат лампите веднага като заключи.

Редове 86-97 обработват ситуацията, когато лампите са изключени:
– Ако trigger-ът е вдигнат, палим лампите;
– Ако е нощ и вратата е отключена (т.е. има хора в лаба), палим лампите.

Системата е кратка, цялата е един hack и работи прекрасно. Интегрира се лесно със съществуващите друг системи в лаба и ни дава още една доста полезна функционалност, и ни спестява да се сещаме да включваме лампите, когато навън е тъмно и railsgirls имат да идват към лаба :)

2016-01-23 лампи по фасадата на initLab

Saturday, January 23rd, 2016

Днес свършихме още едно добро дело за initLab – доподкарахме системата за лампите по фасадата.

Цялата работа тръгна от това, че на ул. Рила (на която е лаба) в голяма част няма осветление, което притесняваше хората, които трябваше да идват/да си тръгват по нощите. Преди година-две писахме на общината, отговориха ни, че някой хубав ден ще сложат, прехвърлиха топката към някаква фирма за общински поръчки и нещата така си останаха. В един момент Пешо каза, че те 10-20-30W LED лампите не харчат много ток и светят достатъчно силно, не пречи да сложим ние малко лампи и да осветяваме улицата.

През лятото си взехме стълба, лампи и в рамките на седмица-две монтирахме лампите, заедно с ключове, с които да се светват. Понеже сме мързеливо племе (и в автоматизацията е истината), сложихме на всяка лампа по едно реле, и с един neomontana netcontrol си навързахме управление да си палим автоматично лампите. Днес подкарахме целия проект, който си има страничка във wiki-то, и някой ден може да се навия да кача source на контролиращото нещо (от което за сега има само screenshot, понеже е някаква адска гняс от shell script и php).

(от забавните неща, patch-нах си малко sunwait да ми казва дали е ден или нощ)

2015-06-23 тунелираме бавно

Monday, June 22nd, 2015

(картинки на цялата мрежа и само на BGP-то)

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

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

Хората могат да се връзват за момента до два node-а – marla.ludost.net и tyler.ludost.net (като мисля да намеря и още един).

Иначе, TODO-то е голямо, от миграция до BIRD (тва quagga-та е ламята Спаска), до документация, примерни config файлове и по-хубав/красив/видим monitoring (в момента част от нещата ги има в pnag.ludost.net, но не всички).

(а се оказа, че няма функция в pgsql, която да дели някакъв prefix на такива някакъв зададен по-малък размер (например да се разбие /62 на /64-ки) и си я писах сам)

2015-06-14 жив съм

Sunday, June 14th, 2015

Качих един progress report за ISP курса, в който вероятно съм пропуснал някакви неща, но участниците ще си кажат и ще се допълва.

Тия дни около курса се чудех с какви IPv6 адреси да го правя, и накрая се реших, навих един LIR (благодарности на Драго от delta) да ми request-нат адреси и ASN. По случая вече си имам AS200533 и 2001:67c:21bc::/48, които ще използвам и за курса, и да направя един малък тунелен брокер за IPv6 тунели за желаещи (с дублиране на тунелните, BGP и такива забавни неща), очаквайте подробности по някое време, като успея да се заема сериозно.

Иначе, жив съм – имам си кило занимания около разни проекти, openfest (очаквайте новини), ходих да консултирам студенти във ФМИ по мрежи (трагедия), изпитахме си хората за мрежова сигурност 2 (по-малка трагедия), ходих днес на театър на “Контрабасът” (беше страхотно). Определено трябва да пиша повече, почва да ми се губи какво съм вършил…

2015-04-24 първи upgrade на сървър до jessie

Friday, April 24th, 2015

Новия Debian stable (Jessie) се кани да излезе след ден-два, та по случая реших да upgrade-на cassie (router/сървър-a в initLab). Причина за upgrade беше и продължаващия проблем с drop-ване на определени пакети, най-вероятно от интеракция на route cache и двата отделни пътя навън.

Като цяло нещата минаха съвсем спокойно (mysql-а се upgrade-на сам, за postgres-а трябваше да се направи една кратка процедура по upgrade, пак сравнително автоматична), и за няколко неизползвани неща (като varnish) ми каза, че трябва да си пренапиша конфигурацията. Имаше обаче два мрежови проблема (за справка, описанието на мрежовия setup там):

– в последната quagga, която е в jessie, ospf6d е счупен, съответно външната IPv6 свързаност изобщо не захапа. След някакво ровене в changelog-ове намерих следното на сайта на quagga:
“[ospf6d] A large amount of changes has been merged for ospf6d. Careful evaluation prior to deployment is recommended.”
Реших да не го дебъгвам повече и минах нещата на BGP, с което така и така се чувствам по-комфортно (при v6 и quagga изборът не е много голям).

– след 3.6 са махнали routing cache, което води до любопитното поведение, че един tcp connection не може да просъществува дълго, понеже пакетите му почват да се мятат между двете връзки и доста бързо идва един reset. Оказа се, че има хубаво решение с CONNMARK, като връзката в началото се маркира откъде е излязла, след което с policy routing правила се праща през вече определения ѝ път.

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