Posts Tagged ‘събития’

2023-12-09 OpenFest 2023

Saturday, December 9th, 2023

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

OpenFest 2023 се случи без мен.

Правих някакви дребни неща, но не съм бил в организацията, нещата се случиха някакси, аз бях там само за да си тествам setup-а за FOSDEM. Да съм честен, най-трудното ми беше да не давам нареждания, щото навикът е страшна работа…

Та, по някое време догодина като направим събрание на фондацията да я предам, ще съм приключил с тая си част от живота. Екип се намира да движи нещата, та съм спокоен :)

п.с. по предишната тема за junior администраторите ще пиша отделно.

2023-02-28 video-streaming (“видео-наблюдение”) на изборите

Tuesday, February 28th, 2023

Тия дни от Дневник ме разпитваха някакви неща за видео streaming-а (“видеонаблюдението”) на изборите и решиш да доразкажа някакви подробности, ако на някой му е интересно.

Моят опит с тези неща идва от няколко места – генералното ми занимаване със сервиране на файлове и видеа, streaming-а на конференции (OpenFest и най-вече FOSDEM), и накрая – инфраструктурата и схемата, която сглобявах за tibroish.bg за излъчване на предишните избори.
(предишните видео-наблюдения бяха саботирани там, където вероятно ще бъдат и тези, на ниво секция, и на практика имаше твърде малко stream-ващи, може би около 1%. Съответно, цялостната схема не е минала пълен тест в production, но не успявам да намеря причина да не работи.)

(код на всичкото на tibroish)

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

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

Самото заснемане се прави с телефон.
– Хардуерът на модерните телефони е доста добър, и като качество на картината, и като звук;
– в тях има хардуерен encoder за видео, който може да го сдъвче доста добре на хубаво качество;
– два варианта за свързаност (мобилна мрежа и wifi, като в този случай само мобилната мрежа вероятно ще се ползва);
– място за събиране на записи – на повечето телефони 6-часовия, 2.7GiB запис на 1mbps ще се събере във вътрешната памет и няма да има нужда от SD карта;
– самия телефон си има поддържаща операционна система и готови библиотеки;
– вграден UPS;
– ако трябва да се осигурят 12000 устройства за нещо и да се изпрограмират, телефоните нямат равни, понеже като цяло имат подобно производство.

Конкретно в tibroish нямахме особен избор, и задачата беше допълнително затруднена от това, че трябваше да поддържаме random телефони, което ако някоя фирма прави цялостното решение, няма да е проблем.

Приложението на tibroish има в себе си и video streaming, и е open-source, съответно може да се използва тази му част като основа.

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

След като получи информацията, приложението започва да записва и ако може, да stream-ва. Ако може, понеже в някакво количество секции internet няма и няма достатъчно мобилно покритие, за да излъчи 1Mbps видео.

Стойността 1Mbps идва от някакъв опит и проби/грешки, за повечето нужди в 1Mbps на 1280×720 (720p) може да се смести картина с четим текст и като цяло всичко да е добре различимо, при подходящ H.264 профил. Не съм успявал да докарам поносимо видео на по-малка разделителна способност, а 2Mbps ще е доста сложно за мобилната мрежа. Като опция, вероятно може да се записва на различен bitrate, но това ще увеличи доста натоварването на телефона.

Stream-ването го бяхме реализирали по RTMP. В момента опциите за подобно нещо са:
– WebRTC базирано – генерира UDP/RTP трафик и като цяло губи пакети, понеже е ориентирано за комуникация с ниска латентност. Голямото му предимство е сериозната поддръжка в телефоните и като цяло, понеже се използва много, но е доста по-сложно и като цяло неподходящо.
– Нещо файлово-базирано – например да генерира на телефона HLS фрагменти и да ги качва директно един по един – това би било страхотно решение и изисква най-малко от инфраструктурата, но не съм виждал такова.
– RTMP(S) – стандартен протокол в/у TCP, от ерата на Flash-а. Все още стандартът за stream-ване (всичките платформи като twitch, youtube и facebook май само него поддържат) и има добра open-source поддръжка. Аз все още ползвам nginx-rtmp за повечето streaming и стига да не се подава странно видео, работи добре.

Тук задачата в крайна сметка е да има видео и да изглежда добре, латентност от 5-10-30 секунди е поносима.

Този поток от данни с всички останали се праща до приемащ сървър. Сметките всеки може да си ги направи, при 1Mbps на поток и като цяло 12Gbps, ако се раздели на 50 виртуалки (както аз го бях направил), натоварването става поносимо и се издържа от и събира на почти всякаква машина в някаква cloud услуга. Единият път за tibroish използвах Hetzner, но има и други, които могат да свършат работа. За конкретния случай дори комбинация от няколко български доставчика ще свърши работа, и вероятно дори самите мобилни оператори могат да предоставят подобна мижава инфраструктура.
(по моя опит, нужната инфраструктура за това не стига размерите дори на среден cloud provider, може би е като един малък такъв. 12 Gbps и 30 TiB данни за записите би трябвало да не са нещо особено за когото и да било)

От гледна точка на сигурност, адресът на приемащия сървър се дава на приложението от централния, малко преди да е започнал streaming-а. Това се прави да се ограничи периодът, в който ще може да се подготви и засили DDoS атака, понеже такава ще има, както всяка година има спрямо сайта на ЦИК. Доколкото знам, ИО са отработили система за защита, и поне според мен може да се направи уговорка с мобилните оператори точно този трафик да не излиза никъде от мрежите им и да върви по трасета, които няма как да се DDoS-нат отвън.

След като трафикът стигне на приемните машини, от там те могат да генерират HLS потоци (за които няма нужда от reencode-ване, т.е. просто се препакетира трафика, което не яде почти никакъв процесор, от моите експерименти – бях пускал няколко-стотин потока към един сървър, докато сгъне) и може да се гледа. Като цяло гледането ще е по-малката част от трафика, и HLS се проксира доста лесно, та в tibroish просто ползвахме CloudFlare за proxy/филтър пред гледането. Мисля, че това е опция и за всеки друг, който го прави.

И на последно място, някъде трябва да има една красива страница, от която да се вижда къде има работещ stream и да може да се избере/гледа stream. Това се сглабя сравнително лесно (и пак го има в tibroish), като цяло начини да показваш видео – бол…

Няколко проблема, които не съм споменал горе:

– Цялото нещо има нужда минимум от DDoS защита. Може да се очаква да бъде блъскано усилено, ако се намери къде е, за това аз бих разчитал на елемента на изненадата (да не се вижда къде е докато не започне събитието), random имена на сървърите (и всичко в dns зоната, което не е тези сървъри, сочи към някакви blackhole-нати адреси, да затруднява допълнително), подходяща DDoS защита с подходящ капацитет и почистване на трафика, и различни, големи доставчици за проксиране, които да могат да издържат.

– Не сме правили запис, и не мога да кажа какви мотики може да се ударят там. Според мен и сметка на салфетка вътрешния storage на телефоните ще се справи, за удобство може да се пише И на SD карта, там е основно въпрос на логистика. Проблемът на SD картата е, че доста по-лесно изчезва…

– ЦИК има изискването да могат да се четат номерата на бюлетините. Това изисква най-вече добро осветление и поставяне на камерата, което не е от най-простите неща за обясняване (камерата има почти второстепенна роля). Според мен 1Mbps ще се справи със задачата.

– Не е ясно дали може да се записва звук или не. В tibroish го бяхме спрели директно, понеже юристите не можаха да се произнесат, според мен би бил страхотна идея да се записва и stream-ва, колкото и да е зле.

Та, технически може да стане. Практически – времето е малко и ще е сложно, и както обикновено, ще бъде саботирано в секциите. Ако няма конкретни глоби и наказания за липса на видео-наблюдение, може да се очаква поне 20% от него да не работи и да няма запис. Честно казано, ако видя да се случи от 50% от секциите, ще го броя за чудо.

Приемам всякакви идеи и корекции, че това ми е brain dump от една ранна сутрин :)

2022-10-28 post-OpenFest 2022

Friday, October 28th, 2022

Мислех да пиша recap на OpenFest 2022, но ми е твърде уморено. Направихме един работещ фест след няколко години online и малки събития, получи се с нормалното количество проблеми, съвсем накратко :)

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

Така като си погледна архивите, като изключим 2003, 2012 и 2020, съм участвал във всички останали, като в последните 10 години – като един от основните координатори. Ако продължа да се занимавам, вероятно ще тръгна да правя побъркани неща като 10gbps wireless и т.н., а си мисля, че моите идеи за какво е хубаво да се прави/случва може вече да не са съвсем правилни :)

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

Все пак, крайно време е да ида един път на OpenFest като обикновен посетител, не ми се е случвало от 2003 :)

Записи от OpenFest 2021

Saturday, September 11th, 2021

Записите са готови (от известно време), в архива и в youtube.

OpenFest 2021 в парка

Friday, July 2nd, 2021

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

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

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

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

Sysadminday 2019

Monday, July 15th, 2019

26-ти юли, петък, 19:30, “Кривото” на ъгъла на “Дондуков” и “Будапеща”, в мазето – събираме се за деня на системния администратор.
update: коригирано юни на юли…

2019-04-26 две събития

Saturday, April 20th, 2019

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

Първо сутринта отидох до ТУЕС, където имаше ТУЕСФест – интересната част беше, че навсякъде по стаите и коридорите ученици бяха изложили проекти, които бяха направили. Имаше толкова забавни неща, че ме хвана детска радост:
– машина за организиране на drinking game;
– група осмокласници бяха изкормили и mod-нали кафе машина, така че да могат да я командват гласово;
– имаше няколко security-ориентирани дипломни работи – IDS, reverse VPN, нещо, дето атакува wireless мрежи;
– излъчвател на DCF77;
– софтуерно радио – човекът с един RTL2832U си беше направил вузиализация на ефира и възможност за слушане на FM радио;
– минималистичен компютър от breadboard-ове и интегрални схеми, който наближаваше turing-complete машина;
… и някакви други, дето не съм запомнил, ТУЕС ще направят едно добро дело като публикуват списъка.

Следобеда отидох на Uber Open Source Summit в CityStage, където ме бяха поканили да участвам в панел на тема “Contributing to Open Source”. Дискусията се надявам да е била полезна на присъстващите, ще видя като излезе записът какви глупости съм говорил. Самото събитие беше приятно и се намериха доста хора, с които да си поговорим, та с удоволствие бих отишъл пак на нещо подобно. Като цяло имах очакването, че като събитие, организирано от голяма компания няма да ми е особено интересно/приятно, но тук се бяха справили и нямаше разните дразнещи спамерски моменти, които съм виждал на други места.

Update: Списък с проектите от ТуесФест.

2019-02-09 FOSDEM 2019

Saturday, February 9th, 2019

Та, FOSDEM 2019. В bullet point-и, че не мога да събера нещо по-кохерентно:

– Занесохме си пак прилично количество хора от тук за видео екипа;
– Тази година бяхме с повече зали – 26 (+ една смяна в последния момент);
– … горното репи да яде в сравнение с идеята догодина да са над 30. Очаквам 2050-та FOSDEM да се случва в цял Брюксел;
– Понякога е притеснителен тонажа техника, който разнасяме напред-назад, с всичките стативи, камери, кутии и какво ли не;
– Сменяхме зала м/у събота и неделя, защото в първоначалната потече вода. ОТ СТЕНАТА (местната поддръжка на сградите дойте, видя, каза “това не е нормално” и си тръгна);
– Смяната към TCP реши старите проблеми (и добави нови);
– Audio monitoring-а се оказа много удобен;
– Имаме огромно количество бележки за post-mortem, догодина може да има някои много интересни промени във видеото;
– До сряда след конференцията бяха публикувани над 600 лекции.

Едно от интересните неща беше, че Емануил беше организирал нещо като пилотна младежка програма – едно девойче, 4-5 клас, от Англия (заедно с майка си), да дойде и да види FOSDEM. Много се зарадва на целия video setup и да разбере как работят нещата, и ми припомни, че можем/трябва да направим нещо такова и при нас, най-малкото на OpenFest, на принципа на програмите за социална отговорност (няма само Rails Girls да са такива, в крайна сметка).

2018-11-21 Записи от OpenFest 2018

Wednesday, November 21st, 2018

Записите са готови, може да се свалят от видеоархива или да се гледат в тубата.

Sysadmin day 2018

Wednesday, July 18th, 2018

Стандартното празнуване на деня на системния администратор – следващия петък (27ми юли), в “Кривото” на ъгъла на “Дондуков” и “Будапеща”.

Update: бях отворил единична кавичка и затворил двойна, което беше строшило вида на целия блог…

“Филтри и предразсъдъци”

Wednesday, March 21st, 2018

Около чл. 13 в петък ще се организира дискусия по темата, на 23.03 (петък) от 15:00 в Сохо (и ще се излъчва на живо). Казва се “Филтри и предразсъдъци: Технически аспекти на предварителното филтриране на съдържание онлайн”.

2018-02-08 FOSDEM

Thursday, February 8th, 2018

Спимисе.

В понеделник сутрин се прибрахме от FOSDEM 2018, където правихме видео. Нямам много структурирани спомени, та разни бележки на едно място:

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

По време на setup-а се оказа, че имаме един juniper switch за видео laptop-ите. Докато седяхме в NOC-а и си говорехме, че трябва да се конфигурира, влезе един доброволец и каза “аз съм за видео екипа, казаха, че има нещо за кримпване” “можеш ли да конфигурираш juniper switch-ове?” “ами да, занимавал съм се”, след което го затворихме в сървърното и успя да излезе от там чак вечерта…

В първия половин час на конференцията някой се обади по irc – “абе, защо там пише 2017 в ъгъла?”. Оказа се, че фонът е приготвен и commit-нат, но не е бил налян на voctop-ите, та имаше едно много бързо pscp. Във финалната лекция това го споменаха, а преди това няколко човека обикаляха с няколко листа и предложения как да го коригираме (например да напишем 2017++ …).

За 20 минути успяхме в една от залите да сглобим setup, с който лектор да изнесе лекция remote, но па той не можа да се свърже. Жалко, щеше да е интересен експеримент.

Времето в Брюксел беше отвратително – вятър, дъжд, и точно следобяда слънце, че да ми пече в монитора.

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

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

Трябва да си намерим полет на връщане, за който да не трябва да ставаме в 6:30, не е човешко.

И понеже все ме питат дали съм гледал една или друга лекция – може би съм един от малкото хора, дето хем са били там, хем не са гледали абсолютно нищо :)

2017-12-27 34c3 ден 1

Thursday, December 28th, 2017

Успявам да гледам малко лекции от 34c3 (програма, streaming).

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

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

Харалд Велте разказа за internet-а и BBS-ите от едно време (само че в Германия), като цяло все неща, с които едно време сме си играли. Иво ме пита дали не можем да направим някаква такава лекция или да намерим история на случвалите се неща в България. Мислех си, че вече има такова нещо, ама не мога да го намеря, някой да се сеща за хубава история на ония времена?

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

Лекцията за “Low Cost Non-Invasive Biomedical Imaging” за момента ми е любима, и трябва да си вземем едно такова нещо за в лаба. Звучи като технология, с която си струва да си играем и която може много да подобри работата на всякакви лекари.

“Defeating (Not)Petya’s Cryptography” имаше полезни моменти.

Като успея да изгледам още някакви неща, ще пиша и за тях. Който иска, може директно да ходи в initLab да гледа, тъкмо ще има с кой да коментира :)

Update: “The Ultimate Apollo Guidance Computer Talk” се оказа страхотно, особено архитектурата на нещото, която има вид на скалъпена с тел и тиксо.

2017-10-02 OpenFest-овски

Monday, October 2nd, 2017

И малко OpenFest-овски неща.

Имаме списък подадени лекции, от които да се направи програма. На програмния комитет му е полезно мнението на хората, та може да гласувате на vote.openfest.org какво би ви било интересно.

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

Ще имаме отделен call for hardware, за разни неща, дето не ни достигат (за момента май основно по-големи телевизори и трябва да видя какво стана с радиостанциите).

(най-важния call – да дойдете и да се забавлявате мисля, че няма нужда да се обявява)

2017-02-21 сънища

Tuesday, February 21st, 2017

От irc, или какво ни се случва след достатъчно правене на всякакви събития:

(11:07:44) neter: какъв сън… на някаква конференция сме в огромна зала на няколко етажа, аз съм на последния с няколко колеги от работата и сядам да гледам, на сцената излиза Яна с някакви хора и говори нещо, в този момент някаква
(11:07:45) neter: дървена кутия в дъното на етажа, на който съм, започва да дрънчи като стар будилник (явно алармата на телефона ми е звъняла), отивам да я оправям, ама не е ясно каква е тая кутия и какво да я правя, търся бутони, докато не
(11:07:47) neter: виждам, че е свързана към някаква газова бутилка и има вероятност всеки момент да гръмне, Яна се обажда отдолу, че нещо в залата дрънчи, отивам до другата зала да взема нещо, а навсякъде бъкано с народ, едвам се
(11:07:49) neter: разминавам и сякаш не им пука, че онова дрънчи, та мозъкът ти кънти, връщам се при кутията, разглобявам я, откачам газовата бутилка, за да не гръмне и откачам всичко друго, което виждам, но онова не спира да дрънчи, докато
(11:07:51) neter: не идва Мариян, вика дай да пробваме да откачим ей тези жици (които в този момент се чудя как не съм видял), откачам ги, онова най-сетне млъква и седим и се хилим как замалко да си умрем
(11:09:31) lz1irq: :D
(11:09:42) lz1irq: neter: май ти идва повече стреса по конференции :D
(11:10:57) neter: интересно ми е как въобще се стигна до спиране на звъненето в съня – явно е, че е било от алармата на телефона ми, а нея съм я настроил да не спира да звъни, докато аз не я спра, което ше рече, че явно пресягането към онези
(11:10:58) neter: жици в съня, за да ги откача, реално е било пресягане към телефона, за да му спра алармата
(11:11:27) neter: това ми мяза на сомнанбулизъм – едно е да изключа алармата в просъница, друго е докато сънувам да правя такива неща

2017-02-07 FOSDEM 2017

Tuesday, February 7th, 2017

И преживяхме FOSDEM 2017.

Бяхме там с Марио, Любо, Маги, neter и zeridon (а Мариян беше там да присъства на конференцията, но се включи към нас) да правим видео/аудио записите и streaming-а. Три дни се ставаше рано и цял ден се дебъгваше (и за доста от хората – тичаше напред-назад, Любо каза, че единия ден е направил 27000 крачки), имаше всякакви странни проблеми и като цяло беше голямо забавление, приключено със ставане в 6:30 в понеделник да си хванем самолета. Като се прибрах спах 12 часа. Справихме се със събитие от 24 зали, два дни, около 600 лекции и 8-9 хиляди посетители (и не знам колко точно дъжд).

Малко снимки има на /pics/201702fosdem/, като на една от тях може да се види колко съм щастлив (това е в петък още, после имах основно уморен вид).
(снимките са от Мариян и Любо, като ще се опитам да намеря и още)

Като статистики не съм събирал кой-знае колко, мога да кажа само че пиковият трафик на restreamer-ите беше 630mbps, далеч под очакванията (това, което бяхме подготвили можеше да издържи спокойно 4gbps и се разширяваше лесно). Някакъв status на видео записите може да се види в review системата, като мога да се похваля, че имахме готови видеа още в събота вечер, а като гледам днес вече са release-нати половината.

И най-интересната част, проблемите, в които се набих (като преди това може да искате да прочетете архитектурата и да видите схема с една зала):

Явно съм забравил какво значи best effort в IP/Ethernet мрежите. При 72та multicast stream-а и при 300pps на всеки в един момент се оказа, че по switch-овете има microburst-ове, които ни ядат пакетите от време на време. Това водеше до примигване на някои stream-ове, до ошашкване на ingest-ващия ffmpeg и вадене на картина с 1fps (като па аудиото си беше добре), артефакти и други гадости.

– Първият опит за решение беше включване на flow control-а. Това доведе до спиране на всичко за 5-10 минути (и липса на stream и видеа в review системата от тоя период, добре, че има записи по кутиите) и желание за по-внимателни fix-ове.
– Последва ровене по switch-овете, забелязване на едни броячи за твърде големи пакети и след това форсиране на 1000 байта горна граница на пакетите във ffmpeg. Не помогна;
– Вдигнахме за всеки случай и MTU-то на switch-овете, пак не помогна;
– Като вариант за pacing на портовете преместихме някакви неща на 100mbps да вкараме изкуствено забавяне, тотално омаза ситуацията;
– В един момент единия от мрежарите откри, че няма контрол в/у буферите на повечето switch-ове и реално ползваме 1/4 от буферите (щото всичкия ни трафик се набива в една опашка от 4те) и че няма свестен начин да използваме и 4те. Само на единия switch бяха пипнати и помогна, но малко;
– Смъкнах и bandwidth-а на входящите stream-ове от 4mbps на 2mbps, не помогна особено.

Решението за догодина е или Reliable Datagram Socket (Мариян обеща да напише support-а за ffmpeg и го държа отговорен), някакъв forward error correction (някакви хора са написали pro-mpeg поддръжка за ffmpeg, но не е merge-ната), или lossless мрежа и по-добри буфери (което казаха, че може и да може да се осигури за догодина). Шегувахме се, че мога да мина на infiniband за видеото.

Интересно е, че всъщност съм се сетил за проблема, но не ни се е видяло достатъчно важно да мислим решение.

Другите проблеми бяха по-малко интересни – утрепахме тока на сървърното (докато включвахме неща в съвсем друго място), хората не знаеха как да ползват микрофони, гърмя хардуер, валя дъжд (но не в залите), хората тичаха, врати се заключваха (автоматично), за малко neter и Мариян заседнаха в един асансьор и куп други неща, дето вече не помня.

(и за разлика от openfest, тук сървърите не бяха в/у тръбите на парното, а в стаята до него…)

Update: Току-що открих, че push-ването на видео извън мрежата е генерирало ~600GB, а системата, която генерира картинките за преглеждане на контролния интерфейс – ~7.1TB (постоянни 300mbps). Май съм бил най-големия генератор на изходящ трафик на FOSDEM 2017. Чудя се да се радвам ли или да се ужасявам.

2016-12-30 33c3 – останалите лекции

Friday, December 30th, 2016

The Moon and European Space Exploration беше в общи линии рекламна (и бая забавна) лекция на European Space Agency, в която директорът и (на голяма скорост) разказа какви неща са правили и се канят да правят, най-вече база на луната като отправна точка за изследване на други неща из космоса.

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

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

An Elevator to the Moon (and back) (запис) е пак преглед на технологиите за космически асансьор и за какво можем да го ползваме (имаше огромна Q&A след това). Като цяло в момента имаме технологията да направим такъв на луната или Марс, но за земята още не сме докарали верния материал.

Community на Мич Алтман беше за hackerspace-овете, обществата и като цяло за хакерите, хубава мотивираща лекция.

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

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

(и още няма идея къде ще е 34C3)

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

2016-12-29 33c3 – малко лекции

Thursday, December 29th, 2016

Тази година гледам 33c3 от вкъщи, и май гледам по-малко лекции. Ето какво съм гледал до тук:
(обработените лекции са на media.ccc.de, ако ги няма тук може да се търсят на relive)

What could possibly go wrong with <insert x86 instruction here>? беше описание и демонстрационен код как може да чрез ползване на кеша (flush-ване, напълване и т.н.) да се комуникира между несвързани процеси или дори виртуални машини, които се schedule-ват на същия процесор (т.е. и между core-ове, които споделят кеш).

How Do I Crack Satellite and Cable Pay TV? беше за reverse-ване на чиповете, които декриптират сателитна телевизия, прилично интересно.

Building a high throughput low-latency PCIe based SDR са хора, които разработват software-defined radio на mini PCIe карта, което може да се използва за всякакви по-сериозни цели (има включително синхронизация на часовника от GPS), като за момента са до средата (не са си постигнали целта за скорост на устройството), и ако постигнат прилична цена, това може да се окаже идеалното устройство за правене на софтуерни GSM/LTE неща.

Shut Up and Take My Money! беше за как са счупили на някакви хора мобилното приложение, което се занимава с потребителски транзакции. Звучеше като да трябва да затворят тия, дето са го мислили/писали.

What’s It Doing Now? беше доста интересна лекция за автопилоти по самолети, как тоя тип автоматика трябва да се следи внимателно и като цяло, че нещата не са толкова автомагически, колкото ни се иска. Лекциите за самолетни проблеми винаги са интересни :)

Nintendo Hacking 2016 описа какво са счупили по разлините nintendo устройства, exploit-и по boot loader-и и всякакви такива неща. Това беше една от лекциите, в която се споменаваше техниката с glitching – да се подаде по-нисък волтаж за малко, така че дадена инструкция да се намаже и да има шанс да се JMP-не някъде в наш код в някакъв момент, така че да можем да dump-нем нещо.

Where in the World Is Carmen Sandiego? беше лекция за чупенето на системите за резервиране на самолетни билети и като цяло пътувания. Силно тъжно, казаха си в началото, че няма много хакване в лекцията, понеже нещата са твърде счупени и лесни за атака. Кратък съвет – не си публикувайте снимка на boarding pass-а.

You can -j REJECT but you can not hide: Global scanning of the IPv6 Internet е разработка с DNS за сравнително лесно сканиране на всички съществуващи IPv6 DNS PTR записи, та да се намерят повечето съществуващи сървъри. Доста идейно и вероятно ще го тествам някъде :)

Tapping into the core описва интересно устройство за дебъгване/слушане на intel-ски процесори през USB и вероятно и мрежа, т.е. дебъгер, който може директно да пипа процесора. Звучи многообещаващо (лекцията гледаше основно на това като начин за правене на rootkit-ове).

Recount 2016: An Uninvited Security Audit of the U.S. Presidential Election беше много празни приказки за изборите в щатите, за пре-преброяване, в което не са открили проблем, и като цяло за счупената им система.

The Untold Story of Edward Snowden’s Escape from Hong Kong разказваше за двете седмици на Edward Snowden в Хонг Конг и бежанците, при които са го крили, преди да отлети, заедно с призив за fundraiser за тях.

State of Internet Censorship 2016 беше нормалното описание, заедно с проектите, чрез които се изследва. В общи линии изводът беше, че вече цензурирането е узаконено почти навсякъде, където се случва и става все по-често явление някоя държава да си спре internet-а за малко, около разни събития.

Million Dollar Dissidents and the Rest of Us описа какви таргетирани методи се използват от различни правителства (и кой им ги продава и учи) за hack-ване и вадене на данни от всякакви устройства на неприятни за тях хора. Нещата са прилично напреднали и е все по-ясно как повечето ни софтуер не става за secure дейности.

On Smart Cities, Smart Energy, And Dumb Security беше за колко са счупени “smart” електромерите и как сигурността на тия неща никой не и обръща сериозно внимание.

Dissecting modern (3G/4G) cellular modems беше интересно описание на съществуващ хардуер, който може да се използва за 3g/4g модем (който се използва в единия iPhone даже), и който накрая се оказа, че търкаля android/linux в себе си (т.е. може спокойно да се каже, че в iPhone 6 (ако не се лъжа) има един linux/adroid).

Тия дни ще догледам още някакви от записи и каквото остава утре и ще пиша пак. Много ми се иска да изгледам повечето неща за random генераторите и лекцията за HDMI.

2016-12-01 видео записи от OpenFest 2016

Thursday, December 1st, 2016

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

Видео архив:
Първи ден, втори ден, пиано почивките.

youtube:

Общ playlist:
Общ playlist, technical track, advanced technical track, civic hacking, OpenBiz, social, education, music pauses, lightning talks.

2016-11-23 Интерком и телефони на OpenFest 2016

Wednesday, November 23rd, 2016

Интерком

Видео екипът има нужда от начин, по който да си комуникира между операторския пулт и камерите, в общи линии еднопосочно (т.е. режисьора да може да каже "камера 1, мръдни малко в ляво"). Предишни години за целта се употребяваха различни неща, най-често някаква част от комплектите безжични микрофони (един предавател и няколко приемника). Тази година микрофоните ни бяха кът, за това сглобих едно просто решение от ffmpeg и raspberry pi-та:

На контролния лаптоп закачахме какъвто-и-да-е-микрофон (в случая – едни jabra headset-и, които бяха под ръка) и с ffmpeg ги бълвахме по multicast по мрежата:

ffmpeg  \
    -fflags nobuffer \
    -f alsa -i hw:0,0 \
    -acodec aac -tune zerolatency -ac 1 -b:a 128k \
    -f mpegts 'udp://227.0.9.1:9000?pkt_size=128'

Скриптът взима звукът от alsa-та от микрофона (в случая hw:0,0) и ги пуска на 227.0.9.1 с малък размер на пакета, за по-ниска латентност. Ако трябва да се пусне под windows, ‘-f alsa -i hw:0,0’ се сменя с нещо като ‘-f dshow -i audio="Microphone"’ (като "Microphone" трябва да се погледне как точно се казва, понеже windows-а странно кръщава нещата, Любо беше намерил как точно).

На няколкото raspberry pi-та до камерите се пускаше следния скрипт:

while /bin/true; do
ffmpeg  \
    -fflags nobuffer -probesize 32 -i \
'udp://227.0.9.1:9000?timeout=1000000&fifo_size=100&overrun_nonfatal=0' \
    -f alsa hw:0,0
done

Това слуша на multicast-а и play-ва каквото му дойде, като има timeout от 1 секунда без никакви данни, за да гръмне и да се рестартира. Така може да издържи на всякакви мрежови проблеми и в общи линии гарантира възстановяване до 1 секунда, след като се оправи мрежата.

Това като цяло е доста хакаво и сглобено в последния момент. При мрежата, която имахме, за догодина спокойно ffmpeg-а може да бъде заменен с един asterisk с конференция и телефони, които се закачат в нея, така включително ще можем да смъкнем още латентността (на този беше около 300-400ms) и да направим двупосочен интеркома (въпреки че хората не звучаха много въодушевени). Другото, което сравнително лесно трябва да може да се добави е noise reduction, понеже доколкото знам имаше някакъв, или от микрофона и усилването му, или от самите pi-та (като за второто няма да се оправим само софтуерно).

Телефони

Кодът е качен в github, и е съвсем съвсем тривиален:

  • С един php модул (phirehose) се дърпат tweet-ове по признак и се пишат във файлове;
  • Друг скрипт проверява на какъв език са, с espeak ги обръща в говор и ги дава на asterisk-а чрез call file да ги изговори на някого.

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

На самия OpenFest реализацията беше, че имаше наслагани 3 стари черни телефона на различни места, които бяха вързани през grandstream ATA устройства (понеже бяха единствените, които поддържаха импулсно набиране) и когато дойдеше tweet с #openfest2016telefon, asterisk-а звънеше на трите едновременно и който пръв вдигнеше го чуваше.

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