media data, new blog posts until 2021

This commit is contained in:
Daniel Tsvetkov 2021-02-22 09:29:54 +01:00
parent bb24a5172c
commit 71e5613e61
37 changed files with 10683 additions and 1 deletions

View File

@ -1,4 +1,305 @@
created_dt,filename,title,body
20200806,"20200806_асфалтови_палатки.md","Асфалтови палатки","Престъпниците рано или късно осъзнават, че с престъплението си предават протекцията на закона.
Хората на палатките са престъпници. Ако утре някой дойде да ви изгори палатките (не го промотирам) или ви прегази трактор (или ховъркрафт - малко го промотирам) вие сте си виновни, че сте там. Дали няма да сте нагли да викнете полиция, ако някой ви разкара незаконната палатка?
Съжалявам, но не се прави така. Блокирате 1М+ град и искате да блокирате държавата с още палатки и там други хипи-неща. Имате щастието, че повечето софиянци са по морето и все още другите, които могат, работят от вкъщи.
Имате щастието, че и явно по някакъв начин сте удобни на властта, иначе имате ли си представата колко бързо се разрива една подобна незаконна сбирщина? 5 минути и няма да се усетите кога вече сте в арестите, а палатките (и диваните?!) в неизвестност.
Не сте избрани от народа да представлявате мнението. Откъде знаете, че 6M+ българи са съгласни с ~3 организатори и ~10к протестиращи (в порядък)? Проведохте ли референдум или някаква статистика? Какъв е начина, по който сте по-добри от другите престъпници в каменните сгради?
Искате анархия? Окей - гологлавите фенове на червени, сини и зелени екипи много бързо ще ви анархират, само се покажете с грешния цвят извън палатката. Ама докъде ще доведе това?
Всеки има право на мирни протести, но това не е мирен протест. Ескалацията на подобно нещо е вредно за вас и за другите около вас (по този повод - среден пръст за всички пушачи, просто по между другото).
Не съм против протестите по мирен, дипломатичен начин, с ясни искания, конкретни предложения и НОСЕНЕ НА МАСКИ.
Но това, което правите много ме изнервя сутрин докато си пия кафето на 2000 километра от държавата. Трябва да слагам повече мляко и ще се наложи сигурно скоро да мина на лактозно-фрий, а това само ще подуе виметата на кравите.
Гадно ми е за кравите."
20200718,"20200718_две_българии.md","Две Българии","На 37ия ден на протестите, правителството подаде оставка. Това беше на цената на стотици жертви на вируса, но ""това е цената на революцията"" - така говореха Младите и Умните. На ръба на гражданската война, хората бяха неуморими, викаха по площадите и постигнаха своето.
На следващия ден президента Радев сформира временно правителство с цел да насрочи дата за предсрочни избори. Хората се прибраха по домовете си, подготвяха децата за новата несигурна учебна година и гледаха БТВ и Нова, за да се информират за последното от деня. Социологическите агенции даваха малка преднина на БСП, но ГЕРБ я следваше на едва няколко процента разлика. Хората не вярваха вече на социологическите агенции, защото смятаха, че след почти 40 дена протест истинският българин ще се събуди и ще гласува по съвест. Редовните Кънчовци обикаляха студията и си говореха техните неща и хората гледаха - нямаше какво друго да правят, освен да се доверят, че нещата ще са различни. И все пак си шушнеха и дразнеха вечерно време с ракийката и салатката, шушнеха, че може би протеста пак нямаше значение и ще се върнем обратно към старото. Страхът беше тих, надеждата - голяма.
Денят на изборите. Избирателна активност - 24%.
БСП - 33%
ГЕРБ - 28%
ДПС - 12%
ОП - 10%
Нова Партия - 4.2%
Зелените - 3.6%
Знамената смениха цветовете си. Познатите лица застанаха на трибуните. Някои се обявиха независими. 2 месеца по-късно управляващата коалиция придоби форма. Но хората имаха вече други проблеми. Новините спряха да говорят за политическия живот, но анархията и бунтовете по цял свят бяха на преден план, плашейки народа, че и в България може да стане така - изпочупени магазини, пожари и смърт навсякъде. Народа предпочете да си замълчи.
Застояла икономика и препълнените здравни заведения изнемогваха. Тази Коледа нямаше да е щастлива за много безработни и самотни семейства, изгубили родители, дядовци и баби. Някои изгубиха и половинките си, а тези които оцеляха имаха на преден план как да препитават следващите месеци и години. Нямаше вече сили за нов протест.
До след 7 години...
* * *
На 37ия ден на протестите, правителството подаде оставка. Въпреки върлуващия вирус, броят на случаите не се увеличи драстично, както правителството се опитваше да изплаши народа. Хората носеха маски, спазваха дистанция и не позволяваха на агитките, платени от Вие-знаете-кого да нарушат исканията на болшинството. Протестите останаха мирни и постоянния натиск върху държавата наложи реформата, която всички чакаха.
На следващия ден президента Радев сформира временно правителство с цел да насрочи дата за предсрочни избори. Хората обаче останаха на улицата и продължиха да настояват за реформа. Протеста не отслабна, а напротив - възроди се с нова сила. Временното правителство беше първата стъпка от дългия поход, който българското общество бе поело. ""Този филм вече сме го гледали"" и народа си беше научил урока. Кратките залагалки нямаше да ги бъде този път. България щеше да е истински пълноправен член на Европа, не черната овца.
Изградиха се неправителствени организации, които предлагаха експертни оценки на програмите на новите политически партии. Това беше, разбира се, с целта на широка разяснителна кампания насочена към неспособните да присъстват на протестите лично поради болест или други обстоятелства, но и към отдалечените села, където доброволци денонощно скитаха да обясняват какво трябва да се направи. Всеки българин беше Левски. Революционният комитет се простираеше във всяка долина и планина, във всяко село и град. Хората на улицата четяха и дискутираха микро- и макро-икономическите мерки, различните философски и политически течения, които всяка партия предлагаше. Пътят на парите на тези организации беше ясен - хората от протеста даряваха, за да останат те независими - всички имаха един и същи интерес.
Никой не гледаше вече подкупните телевизии и новинарски емисии. Всъщност те минаха на 4-часови програми, тъй като никой вече не стоеше пред телевизорите. В дъжд и сняг, във виелици и пек, хората продължиха да настояват за революция. Нямаше вече семеен живот след работата - хората бяха на улицата, работеха не отвкъщи, а от протеста и всеки се интересуваше живо от това какво ще се случи. Не се слушаха анализатори и агенции, не се слушаха лозунги, а се търсеше конкретика. Какви финанси, откъде и как това ще промени живота конкретно се искаше от всяка партия. Хората щяха да гласуват по съвест, не тактически. Не за партиите, които познават и виждат всеки ден, а за партията, която най-близко отговаряше на техните нагласи.
Денят на изборите. Избирателна активност - 95%.
Протестърите - 15%
Зелените - 12%
Пиратска партия - 11%
Глас народен - 7%
Нова партия - 6%
Силата на гласа - 5%
Бъдещето е в нас - 4.8%
Партията на Слави - 4.2%
Революция - 4.1%
БСП - 3.9%
ГЕРБ - 3.3%
Но тези резултати нямаха много значение. Всяка от партиите, която влизаше в парламента беше подписала в програмата си, че всяко важно за държавата решение щеше да се взима от референдум. Обществото можеше да иницира референдум само с 50,000 подписа. Но не само правителството - цялата държавна администрация беше сменена от естествено избраните лидери на отделните протестни звена. Партиите също бяха се съгласили да следват моделите на най-успешните държави в Европа - тези Швеции и Норвегии, които някак си винаги са първи по всичко добро и последни по всичко лошо. Народа щеше да е много по-близко до властта. Нямаше повече да обвиняваме политиците за нашето лично нещастие, защото политиците - това сме ние. Те бяха истинските избранници.
Това беше началото на новата държавност. Тя нямаше да свърши с тези избори, но обществото щеше да участва много по-дейно във взимането на решенията. Следваха години изпълнени с търпение, но и решителност от българския народ да изкорени веднъж завинаги мафията от властта. Целите бяха да постигне истинско, доверено управление, което нямаше да краде, лъже и мами, но ще е истинската част от народа.
Това беше смисъла на протеста. Когато го погледнеха историците, щяха да отбележат нова страница в Българската история. Не две седмици на мощно викане, неясни цели и яд към някаква химера. Това бяха първите седмици от поколения животи, посветени на търпеливия, но истински прогрес."
20200624,20200624_curious_bunch.md,"Curious Bunch","Пост 1/N: Защо го правя?
Скъпи любопитковци,
Мненията в тия постове са си мои, но CuriousBunch е >> мен.
Защо го правя?
Обичам да си говоря с любознателни хора.
Имам доста любознателни познати и приятели и това ми е добър начин да се чуя с тях за неща, които са ни взаимно интересни.
Обичам да се занимавам с техничните неща около продуцирането.
Следете тия постове за още #ИскреноИЛично
=====
Пост 2/N: Защо съквам?
Скъпи любопитковци,
Правя ютуб канал от > година и някои хора [citation needed] ще кажат, че тая работа не си заслужава.
Защо съквам?
Не умея да промотирам, да поствам социални неща и да съм инфлуенсър.
Не мога да правя кратки клипчета или да говоря с хората на кратко (smalltalk). Обичам да навлизам в детайли, да задавам въпроси, докато не разбера нещата от първи принципи.
Не умея да казвам на хората какво да правят. CuriousBunch е изградено от доброволци, на които не се плаща и всеки го прави с леко различна цел. Вижте моите в пост 1.
Аз мисля, че си заслужава. Следете това пространство - следете ми RSS фийда (хаха, болката…), лайквайте и събскрайбвайте за още рационализации.
=====
Пост 3/N: Защо продължавам?
Вярвам, че има много повече любознателни хора в България, които биха се интересували от нещата, които правим. Само последните подкасти сме си говорили как ще се отрази пандемията на икономиката (и обратното - с Даниел Господинов - еп. 33 и 35), как да четем и разбираме новините (с Калин Кръстев - еп. 34), други светове и поочти #извънземни (с Янина Методиева). А тази седмица с Никола Каравасилев ще си говорим и за черни дупки, Стивън Хокинг и още нещо.
Говорили сме за квантови компютри (еп. 6 и 17), как работи Гугъл (еп.7), астрономически обсерватории (еп. 5 с Александър Куртенков), климатични промени (еп. 12 с Боряна Щиркова), суперкомпютри (еп. 3 с Иво Илиев), блокчейн (еп. 13) и други неща като квантова гравитация (еп. 4) и астрофотография (еп.2).
Заглавието на поредицата е ""Любопитно ми е за…"" и може да я видите тук: https://www.youtube.com/playlist?list=PLJKo_VlSBBvAsO4GRcsbMU12kHtL3OfYj
====
Пост 4/N: За какво си говорим?
Нещо като продължение на ""Защо го правя"" - Вярвам, че има много повече любознателни хора в България, които биха се интересували от нещата, които правим.
Но да - дълги сме и навлизаме надълбоко... за проблемите - в следващ пост.
Само последните подкасти сме си говорили как ще се отрази пандемията на икономиката (и обратното - с Daniel Gospodinov - еп. 33 и 35), как да четем и разбираме новините (с Калин Кръстев - еп. 34), други светове и поочти #извънземни (с Yanina Todorova Metodieva - еп.33), как да разбираме статистика и как математиката може да е забавна (с Цветелина Иванова еп 31) космическо време (с Momchil Molnar еп. 30). А тази седмица с Nikola Karavasilev ще си говорим и за черни дупки, Стивън Хокинг и още нещо.
Говорили сме за електронни микроскопи (Dilyan Hristov еп. 29) квантови компютри (еп. 6 и 17), как работи Гугъл (еп.7), астрономически обсерватории (еп. 5 с Alexander Kurtenkov), климатични промени (еп. 12 с Боряна Щиркова), суперкомпютри (еп. 3 с Иво Илиев), блокчейн (еп. 13 с Ivaylo Polihronov) и други неща като квантова гравитация (еп. 4) и астрофотография (еп.2).
Заглавието на поредицата е ""Любопитно ми е за…"" и може да я видите тук:
https://www.youtube.com/playlist?list=PLJKo_VlSBBvAsO4GRcsbMU12kHtL3OfYj
Бъдете любопитни!
===
Пост 5/N: #BlackHolesMatter
Миналата година направихме снимка на черна дупка. Беше в новините седмица, сподели се милиони пъти от хора, които не задължително знаят какво е това, но да речем - това бяха добри моменти за науката.
Тия дни рано сутрин заедно с Криси слушаме дженерик новини и честичко си откачам и влизам в плеяда (не знам дали това е думата, ама е астро-тематично, тъй че going with it) за новините, колко бързо сменят фокуса от ден за ден и кои неща имат значение. Аз обичам науката, не задължително тая от училище, но ежедневното любопитно чудене Защо света е такъв какъвто е? И ще се радвам да чуя протести за това, че трябва да слушаме повече учените за ред неща, включително какво може да ни убие и направи живота ни труден, но и как човечеството напредва с разбирането ни за Вселената.
И аз искам да слушам такива неща по-често, но не от новинари, които трябва да запълнят емисията си с нещо скандално, а с хора, които работят това. Имам късмета да познавам такива хора и искам да се запозная с още.
И за това правя седмичен видео-каст с любознателни хора.
Следете тия постове за още спам или ме ънфренднете или там каквото.
Бъдете любопитни!
===
Пост 6/N: Проблемите ни
Постоянно чуваме:
1. Ох, ставате, ама много сте дълги
2. Нарежете клипчетата на по-кратки и ще ги гледам
3. Трябва малко по-научно популярно.
Отново, отговарям за себе си, не от името на другите бънчове:
1. Знам, и аз трудно гледам дълги видеа. Обикновено ги свалям и слушам. https://youtube-dl.org/ is your friend. Или пък може да си платите събскрибшън към ютуб (obligatory corp msg).
2. Мисля че живите предавания си има точно тоя чар, че можете да се включите с въпроси на живо и да участвате с въпросите си в дискусията в чатовете. Ако искам да разбера нещо в истинския живот не прекарвам 2 минути McDonalds-like fast-knowledge. Макар че естествено, честичко гледам junk-food видеа, обикновено късно вечер като нямам никаква енергия да удържа на кликбейт тъмбнейли. А и също - рязали сме и режем, но отнема много повече време, отколкото изглежда. Следващ пост за повече.
3. Опитах се. Ако аз съм водещ, не мога да задавам въпроси като ""Обясни ми защо Земята е кръгла"". По икономика, психология и следващите, които ще правим (например химия с Наско Стаменов другата седмица) са доста по-научно популярни, според мен. Просто защото като водещ разбирам много по-малко. Мислим варианти естествено други хора да са водещи и експериментираме в момента с това. Но дългата форма на подкаста пък позволява да се поразширим и да поговорим малко по-дълбоко за някои неща.
Приложеното е забавни моменти откъс от епизод 33. Първоначално го бях направил 5 минути. Във вътрешната ни група, където си комуникираме и пращаме понякога неща, Иво Илиев каза, че е дълго. Съкратих го на 3:40 - Teodor Aleksiev каза, че пак е дълго. Може би просто не сме забавни... Но исках да пробвам и това - кратко клипче с откъси от забавни моменти. Явно attention span-a ни е под 3:40 вече...
Този пост стана адски дълъг, никой няма да го прочете, но така пиша, какво да направя.
Бъдете любопитни!
=====
Пост 7/N: Защо въобще и изобщо?
Още в НПМГ заедно с Александър Лалев правих подобен проект - Физици Филми. Искахме да покажем ""науката извън класната стая"". Тогава хората все още можехме да гледат филми, та правехме документални филми по физика.
След това заминах на дъждовно и ветровито място, но винаги ми е липсваше и исках да продължа по някакъв начин. Живота стана малко по-практичен, трябваше да се изкарват пари и други скучни неща, та въпроси като ""кога ще го правим"" / ""за кого"" и ""как ще печелим"" почнаха да излизат повече на преден план. И логично. Дори и сега тия въпроси продължават, но се опитвам да не мисля много за тях, защото ме ""удря живота"".
Правя го в свободното ми време, щото ми е кеф (и нерви понякога, както Криси ми напомня).
========
Пост 8/N: Защо въобще и изобщо (2)?
После докато се бях прибрал за малко, с Васил пробвахме и Физици Звукове. Издържахме 3 епизода, но в архива намерихме само 2, които качваме в канала на CuriousBunch. Липсваха ми времената на Физици Филми, но слушах много повече подкасти и реших, че със звук може би ще стане по-добре. После все пак снимахме и клипче. Спряхме, защото аз пак трябваше да замина и въобще живота беше доста динамичен.
Но пък адски много ме кефеше да си говоря с него на интересни теми, а освен продуцирането на клипчета ми липсваше и физика. След 2 години стартъп бизнес-шит, исках нещо реално. (Реално = черни дупки и квантова механика, какво по-истинско в живота).
И така, след още една-две години, след като най-накрая се поустанових и имах нещо, което можех да нарека дом за малко повече от няколко месеца, и имах достатъчно време… решихме да пробваме отново.
Резултата са седмични лайв шоута в четвъртък от 8 - ако не са ви пробити вече ушите от тоя слоган.
Бъдете любопитни (или от този)!
=====
Пост 9/N: Чакай, ти не мразиш ли фейсбук? Защо се изливаш тук?
Мразя фейсбук. Мразя излишно внимание върху личности, или да се хваля, да карам други да завиждат, или аз да завиждам (не значи, че не го правя, но не мисля, че е страна от мен, която искам).
Искам да направя CuriousBunch повече като общество, отколкото нещо, което аз контролирам. Но хората са във фейсбук и ютуб.
Ще ми се да беше в мой уебсайт, с отворени технологии, да си хоствам видеата, постовете, аудиото и всичко. Но хората успяхме да направим възможно най-свободно измислената платформа (Интернет) в централизирани хъбове (фейсбук, ютуб и други). Как стана това и защо е дълъг рант, който ще приключа сега.
А с тези си постове искам да изясня мотивите ми за проекта доколкото е възможно и да застана с лицето си, защото може би това е начина.
Не знам. Не разбирам социалните неща, но обичам да експериментирам и да пробвам различни неща.
======
Пост 10/N: 5-годишния аз
Знам, че ако имаше начин 5-годишния аз да ме види с всички камери, микрофони и технологии, които са достъпни и не (опитвах поне) да правя нещо - щеше да ме нарита много здраво.
Като 90s-kid прекарвах много време пред телевизията, но и също ми беше адски интересно как работи цялата работа. Понякога гледах надписите на филмите и шоутата и се опитвах да разбера кой какво прави и защо е необходима тази роля.
И сега имам шанса да правя нещо такова. Понякога с подръчни материали. Още от времето на физици филми правихме ауто-кю (четеш текста все едно гледаш камерата, а всъщност е просто стъкло, зад която е затъмнено и там стои камерата, отразявайки монитор - който трябва да е огледално настроен очевидно).
Сега за CuriousBunch заедно с Криси отново направихме ауто-кю - нямахме чисто стъкло, но намерихме кантар, който точно пасва, връзки, които да го държат, тъмен чувал и таблет.
Обожавам тия неща!
=====
Пост 11/N: Балончета и вируси
От година много трудно си излизаме от балончето - повечето познати и приятели знаят за CuriousBunch, но трудно достига по-далеч. До днес 1248 човека са лайкнали страницата ни във фейсбук и имаме 377 събскрайбъра в ютуб. А седмично ни гледат около 10-20 човека.
Всеки в момента е епидемиолог - виждате как се разпространяват вирусите и знаете, че на вирусите им трябват определени неща в средата, за да се разпространят повече или по-малко. Социалната дистанция и миенето на ръце например им пречи. Носенето на шапка и да не стоиш на течение - не чак толкова много.
""Виралните"" клипчета също искат определени неща. CGP Grey има страхотно видео по въпроса [1], Veritasium - също [2]. Опитваме се да правим къстъм тъмнейли, кечи заглавия, кратки клипчета и да пускаме постове във фейсбук - всичко с лимитиран успех.
Не сме намерили рецептата все още, но търсим и не се страхуваме да експериментираме. Ако вие имате опит и искате да помогнете на каузата - пишете ми на лично.
И отново - останете любопитни!
[1] https://www.youtube.com/watch?v=rE3j_RHkqJc
[2] https://www.youtube.com/watch?v=fHsa9DqmId8
===
Пост 12/N: Къде сте?
Отказвам да повярвам, че сме 20-30 човека в България, които биха харесали нещата, за които говорим. Някои от проблемите ни са очевидни, други - не чак толкова:
Често си правим си вътрешни базици - не можем да избягаме от факта, че се познаваме. От олимпиади, състезания, университети или по друг начин - повечето любопитковци до момента се познаваме от преди. Опитваме се да запознаем публиката с нас си - направихме цял подкаст [1] + кратки клипчета [2], в които говорим за нас си… но може би не е достатъчно или на никого не му пука?
Пренасищаме познатите си с постове - обикновено едни и същи хора споделят, пресподелят и харесват страници, постове и гледат канала ни. Но тези хора получават огромен сигнал от няколко общи познати, което дори може да ги отчужди. Опитваме сега с гости, които може би имат по-малко сечение на общи познати, но гостуването си е задължение, което не на всеки е по-силите - има си подготовка, ангажимент, пък и не всеки е окей да застане пред камера и да говори за това, което прави час+, или пък аз да затапвам с въпроси… Може би някакъв математичен модел как да се разпространи най-ефективно би помогнал тук?
Просто не сме достатъчно интересни / прекалено скучни / прекалено дълбоки или по друг начин съдържанието ни не си заслужава - абсолютно възможно е. Отворен съм за експерименти. Пред вътрешната група съм казал, че ще кача почти всичко свързано с наука - както казах и преди CuriousBun.ch предпочитам да е платформа / общество вместо 2-3 човека, които стоят на soapbox и си промотират идеите.
Всеки има идеи - бънчовете са изключително интелигентни и креативни хора (потуп-потуп). Но разбира се, когато стане въпрос да се направи нещо като ""просто 2-минутно клипче"" в реалност отиват часове работа - подготовка, нарязване, правене на тъмбнейл, заглавие, промотиране…
Тъй че - помощ от публиката? Какво можем да направим и заслужава ли си?
[1] https://www.youtube.com/watch?v=saonX72juqY
[2] https://www.youtube.com/watch?v=1hQKsNwpPD8&list=PLJKo_VlSBBvDNuwevGjNuR1uptLOWq0i-
===
Пост 13/13: Дай нещо позитивно за финал
Не сме сами. Цани от QuantumAstronavt също се бори за знания, а също е и наш приятел от олимпийските години. Наско… също има научен подкаст ""Случайни знания"". Другата малко по-борбена цел, е че се ядосвам, когато видя канали като на няма-да-казвам-кого, които са безумно популярни, пълни с измислици.
Ще копирам отговора ми на въпрос за интервю [1] което Рада Бонева беше така добра да сподели в Олимпийско сдружение, но в малко по-дългата си версия:
Въпрос: Дай и нещо положително за финал :)
Аз: Искам да уверя хората четящи това, които не се чувстват добре в гимназията или на работа, защото ги наричат зубъри или работохолици, или смятат, че науката е само за хора в бели престилки - любопитството е най-естественото и доста основно нещо, което хората имаме. Едно бебе пълзи, намира предмет, съставя хипотеза (това се яде), експериментира (яде) и резултата от експеримента или потвърждава хипотезата и става теория (този тип неща се ядат) или (по-често) отхвърля хипотезата.
Децата са любопитни и задават хиляди въпроси за света около тях - защо небето е синьо? Къде е дъгата? Как работят компютрите? И ако обществото около тях - родители, учители - са благосклонни и търпеливи детето може да запази това любопитство. Често обаче хората не сме търпеливи или ни е страх, че не знаем отговорите на такива въпроси, изнервяме се и казваме на детето да ходи да си играе и че ще разбере като порасне. Когато това го чуеш всеки ден, всяка седмица, спираш да си любопитен, отиваш да си играеш и да правиш други неща и се опитваш да забравиш, че си задал подобен въпрос, защото вече са те отрязали и си получил това гадно чувство. Хората избягваме гадни чувства.
Положителното е, че всеки от нас има това любопитство вътре в себе си, зарито под пластове на защитни механизми, за да успяваме да живеем и да не чуваме постоянно рязане. Надявам се чрез подкаста да помогнем на хората, които се колебаят дали е ОК да си любопитен и да им дадем примери за хора, които са професионално любопитни!
[1] http://olympicbg.org/blog/curious-bunch-sastezateli-po-fizika-i-astronomiya-s-nauchen-podkast7"
20200902,20200902_facebook_vs_.md,"Фейсбук срещу другите","Фейсбук не се кефи като им ограничават свободите:
- [Facebook vs Apple](https://www.facebook.com/business/news/preparing-our-partners-for-ios-14-launch/) - TLDR - Apple ще ограничи достъпа до тракване на юзъри по телефонID - ограничаването се състои в просто питане на юзъра дали иска... Нали основния аргумент е, че ""хората харесват таргетирани реклами"" - тогава какъв е проблема? 😀 Ама фб знаят, че никой не си променя дифолт настройките и никой не иска реклами
- [Facebook vs Australia](https://about.fb.com/news/2020/08/changes-to-facebooks-services-in-australia/) - новинарските сайтове са под пълния контрол на Google + Facebook и получават контент само ако Големите благоволят да ти препратят трафик - и когато правителството реши, че медията трябва да е свободна да решава колко струва информацията, която предоставят - Фейсбук атакува"
20200904,"20200904_относноестниците.md","Относно вестниците (1807)","Тази сутрин ми попадна пост от [Hacker News](https://news.ycombinator.com/item?id=24361744) озаглавен ""Не може да се вярва на нищо, което се вижда във вестниците"" с дата 1807, написано от Томас Джеферсън.
Ето няколко цитата от [Относно вестниците (1807)](https://press-pubs.uchicago.edu/founders/documents/amendI_speechs29.html):
* *""Човек, който никога не поглежда във вестника е по-добре информиран от човека, който ги чете; поради това че не знае нищо е по-близо до истината, отколкото ако ума му е пълен с лъжи и грешки""*
* *""Да се раздели вестника на 4 части със заглавия: 1во Истини, 2ро Вероятности, 3то Възможности и 4то Лъжи. Първата глава ще е много кратка, съдържаща нищо повече от достоверни статии и информация от такива източници, за които редактора би си жертвал репутацията в името на тяхната истина""*
На първо четене идеята много ми харесва - всички новини започват със статус Възможности. Така може да се пуска всичко в мрежата с най-бързата скорост, което така или иначе се прави в днешно време. Един от проблемите днес е, че всеки поства и споделя неща в Интернет. Но това дали нещо ще се постне или сподели не задължително е вярно. Често споделянията са ръководени от емоция, а не от чувство за информиране на обществото.
Журналистиката все още съществува и почти всички редакции твърдят, че правят всичко възможно да пускат новини от 1ва категория. Но състезателната природа на новинарството кара агенциите да се надпреварват кой първи ще каже новината, защото това носи зрители, читатели, тролове, реклами и пари.
От друга страна изглежда, че това само ще премести проблема едно ниво по-дълбоко - кога една новина ще премине от Възможности към Вероятности или към Истини. Според Джеферсън ""Втората ще съдържа само това, което от зрялото разглеждане на всички обстоятелства, неговата преценка трябва да заключи, че вероятно е вярна"". Това би било новини, които днес се водят за Истинни, според редакционната политика и опита на репортера и вестника, т.е. два независими проверени източника и прочие.
Категорията Истини, или дори бих я нарекъл ""Вероятни Истини"" би била много кратка и вероятно скучна за повечето читатели, но от важно значение за обществото в дългосрочен план. Това би било много трудна категория да влезнеш и лесна да излезнеш. Еквивалент на научния подход - теория, която се поддържа от много независими статии (т.е. различни подходи, проверени от експерти, изследвани взаимовръзки, проверен ""път на парите"" и т.н.), но дори само един опит да покаже, че нещо не е вярно би изпаднала обратно в категория 2 или дори 4 - Лъжи. Това в днешно време биха били ""новини"" около климатичните промени например. Тези новини може да преминат във Вероятни Истини дни, седмици или дори месеци след обширна проверка за истинност.
В ерата на Deep Fake много малко снимкови, видео или аудио доказателства биха издържали. Проверка на автентичност би била изключително трудна, ако не и невъзможна. Днешните fact-check сайтове и опити на социални мрежи биха били само първа крачка към определянето на новина за истина или не. Кой проверява проверяващите за истина? Ако този проверяващ стане авторитет, то след време може да се твърди, че този авторитет винаги говори истина, дори вече да се е ""продал"".
В науката обикновено се искат години от доказателства за една теория, погледната от много страни и дори когато една теория е създадена от един човек (например Общата относителност на Айнщайн) доказателствата за тази теория продължават години, или дори може да се каже, че никога не спират. Ако утре някой направи експеримент, който показва че нещо може да се движи със скоростта на светлината например, тази теория няма да стане неистина веднага, но нейния обхват ще бъде ограничен. (Гравитацията на Нютон все още работи, когато определени приближения бъдат направени).
В днешно време авторите на научните статии често се състезават за количество, а не за качество. Което поражда и голям брой ""новини"", които твърдят, че ""учени откриха..."" без да се взима предвид какво значение има за обществото, колко проверки са направени и колко е истинно съждението.
Четейки новини за науката или технологиите се сещам за [един уклон](https://en.wikipedia.org/wiki/Michael_Crichton#Speeches) понякога наричан ""Ефект на амнезията на Гел-Ман"", който твърди, че хората вярват на статии извън тяхната експертиза, дори когато статии в същия вестни в тяхната експертиза са очевидно грешни. Като виждам какви статии се произвеждат, за които знам неща от първа ръка понякога и видя как минават през разваления телефон - виждам как се изопачават малко по малко и това ме подсеща, че новините, за които не знам от първа ръка би трябвало да са почти също толкова грешни.
Може би никога няма да разберем истината за всичко, или дори нещо. Но научния подход за сега е най-доброто, което имаме. Той отнема време - ако искаш да знаеш нещо, по-добре изчакай няколко десетилетия.
Може би е така и с новините днес (или дори през 1807, или винаги).
"
20161107,20161107_коя_мафия_си_избирате.md,"Коя мафия си избирате?
","
Изборите са идиотско нещо. Моят свят е свят на избор в момента - дали защото съм в такава възраст или пък светът полудява, или съм в “мехурчето“ от новини и социални коментари - не знам. Брекзит, Тръмп, Радев. Но ето, че гласувам за шести път извън страната - шест от шест пъти навън.

1 created_dt filename title body
2 20200806 20200806_асфалтови_палатки.md Асфалтови палатки Престъпниците рано или късно осъзнават, че с престъплението си предават протекцията на закона. Хората на палатките са престъпници. Ако утре някой дойде да ви изгори палатките (не го промотирам) или ви прегази трактор (или ховъркрафт - малко го промотирам) вие сте си виновни, че сте там. Дали няма да сте нагли да викнете полиция, ако някой ви разкара незаконната палатка? Съжалявам, но не се прави така. Блокирате 1М+ град и искате да блокирате държавата с още палатки и там други хипи-неща. Имате щастието, че повечето софиянци са по морето и все още другите, които могат, работят от вкъщи. Имате щастието, че и явно по някакъв начин сте удобни на властта, иначе имате ли си представата колко бързо се разрива една подобна незаконна сбирщина? 5 минути и няма да се усетите кога вече сте в арестите, а палатките (и диваните?!) в неизвестност. Не сте избрани от народа да представлявате мнението. Откъде знаете, че 6M+ българи са съгласни с ~3 организатори и ~10к протестиращи (в порядък)? Проведохте ли референдум или някаква статистика? Какъв е начина, по който сте по-добри от другите престъпници в каменните сгради? Искате анархия? Окей - гологлавите фенове на червени, сини и зелени екипи много бързо ще ви анархират, само се покажете с грешния цвят извън палатката. Ама докъде ще доведе това? Всеки има право на мирни протести, но това не е мирен протест. Ескалацията на подобно нещо е вредно за вас и за другите около вас (по този повод - среден пръст за всички пушачи, просто по между другото). Не съм против протестите по мирен, дипломатичен начин, с ясни искания, конкретни предложения и НОСЕНЕ НА МАСКИ. Но това, което правите много ме изнервя сутрин докато си пия кафето на 2000 километра от държавата. Трябва да слагам повече мляко и ще се наложи сигурно скоро да мина на лактозно-фрий, а това само ще подуе виметата на кравите. Гадно ми е за кравите.
3 20200718 20200718_две_българии.md Две Българии На 37ия ден на протестите, правителството подаде оставка. Това беше на цената на стотици жертви на вируса, но "това е цената на революцията" - така говореха Младите и Умните. На ръба на гражданската война, хората бяха неуморими, викаха по площадите и постигнаха своето. На следващия ден президента Радев сформира временно правителство с цел да насрочи дата за предсрочни избори. Хората се прибраха по домовете си, подготвяха децата за новата несигурна учебна година и гледаха БТВ и Нова, за да се информират за последното от деня. Социологическите агенции даваха малка преднина на БСП, но ГЕРБ я следваше на едва няколко процента разлика. Хората не вярваха вече на социологическите агенции, защото смятаха, че след почти 40 дена протест истинският българин ще се събуди и ще гласува по съвест. Редовните Кънчовци обикаляха студията и си говореха техните неща и хората гледаха - нямаше какво друго да правят, освен да се доверят, че нещата ще са различни. И все пак си шушнеха и дразнеха вечерно време с ракийката и салатката, шушнеха, че може би протеста пак нямаше значение и ще се върнем обратно към старото. Страхът беше тих, надеждата - голяма. Денят на изборите. Избирателна активност - 24%. БСП - 33% ГЕРБ - 28% ДПС - 12% ОП - 10% Нова Партия - 4.2% Зелените - 3.6% Знамената смениха цветовете си. Познатите лица застанаха на трибуните. Някои се обявиха независими. 2 месеца по-късно управляващата коалиция придоби форма. Но хората имаха вече други проблеми. Новините спряха да говорят за политическия живот, но анархията и бунтовете по цял свят бяха на преден план, плашейки народа, че и в България може да стане така - изпочупени магазини, пожари и смърт навсякъде. Народа предпочете да си замълчи. Застояла икономика и препълнените здравни заведения изнемогваха. Тази Коледа нямаше да е щастлива за много безработни и самотни семейства, изгубили родители, дядовци и баби. Някои изгубиха и половинките си, а тези които оцеляха имаха на преден план как да препитават следващите месеци и години. Нямаше вече сили за нов протест. До след 7 години... * * * На 37ия ден на протестите, правителството подаде оставка. Въпреки върлуващия вирус, броят на случаите не се увеличи драстично, както правителството се опитваше да изплаши народа. Хората носеха маски, спазваха дистанция и не позволяваха на агитките, платени от Вие-знаете-кого да нарушат исканията на болшинството. Протестите останаха мирни и постоянния натиск върху държавата наложи реформата, която всички чакаха. На следващия ден президента Радев сформира временно правителство с цел да насрочи дата за предсрочни избори. Хората обаче останаха на улицата и продължиха да настояват за реформа. Протеста не отслабна, а напротив - възроди се с нова сила. Временното правителство беше първата стъпка от дългия поход, който българското общество бе поело. "Този филм вече сме го гледали" и народа си беше научил урока. Кратките залагалки нямаше да ги бъде този път. България щеше да е истински пълноправен член на Европа, не черната овца. Изградиха се неправителствени организации, които предлагаха експертни оценки на програмите на новите политически партии. Това беше, разбира се, с целта на широка разяснителна кампания насочена към неспособните да присъстват на протестите лично поради болест или други обстоятелства, но и към отдалечените села, където доброволци денонощно скитаха да обясняват какво трябва да се направи. Всеки българин беше Левски. Революционният комитет се простираеше във всяка долина и планина, във всяко село и град. Хората на улицата четяха и дискутираха микро- и макро-икономическите мерки, различните философски и политически течения, които всяка партия предлагаше. Пътят на парите на тези организации беше ясен - хората от протеста даряваха, за да останат те независими - всички имаха един и същи интерес. Никой не гледаше вече подкупните телевизии и новинарски емисии. Всъщност те минаха на 4-часови програми, тъй като никой вече не стоеше пред телевизорите. В дъжд и сняг, във виелици и пек, хората продължиха да настояват за революция. Нямаше вече семеен живот след работата - хората бяха на улицата, работеха не отвкъщи, а от протеста и всеки се интересуваше живо от това какво ще се случи. Не се слушаха анализатори и агенции, не се слушаха лозунги, а се търсеше конкретика. Какви финанси, откъде и как това ще промени живота конкретно се искаше от всяка партия. Хората щяха да гласуват по съвест, не тактически. Не за партиите, които познават и виждат всеки ден, а за партията, която най-близко отговаряше на техните нагласи. Денят на изборите. Избирателна активност - 95%. Протестърите - 15% Зелените - 12% Пиратска партия - 11% Глас народен - 7% Нова партия - 6% Силата на гласа - 5% Бъдещето е в нас - 4.8% Партията на Слави - 4.2% Революция - 4.1% БСП - 3.9% ГЕРБ - 3.3% Но тези резултати нямаха много значение. Всяка от партиите, която влизаше в парламента беше подписала в програмата си, че всяко важно за държавата решение щеше да се взима от референдум. Обществото можеше да иницира референдум само с 50,000 подписа. Но не само правителството - цялата държавна администрация беше сменена от естествено избраните лидери на отделните протестни звена. Партиите също бяха се съгласили да следват моделите на най-успешните държави в Европа - тези Швеции и Норвегии, които някак си винаги са първи по всичко добро и последни по всичко лошо. Народа щеше да е много по-близко до властта. Нямаше повече да обвиняваме политиците за нашето лично нещастие, защото политиците - това сме ние. Те бяха истинските избранници. Това беше началото на новата държавност. Тя нямаше да свърши с тези избори, но обществото щеше да участва много по-дейно във взимането на решенията. Следваха години изпълнени с търпение, но и решителност от българския народ да изкорени веднъж завинаги мафията от властта. Целите бяха да постигне истинско, доверено управление, което нямаше да краде, лъже и мами, но ще е истинската част от народа. Това беше смисъла на протеста. Когато го погледнеха историците, щяха да отбележат нова страница в Българската история. Не две седмици на мощно викане, неясни цели и яд към някаква химера. Това бяха първите седмици от поколения животи, посветени на търпеливия, но истински прогрес.
4 20200624 20200624_curious_bunch.md Curious Bunch Пост 1/N: Защо го правя? Скъпи любопитковци, Мненията в тия постове са си мои, но CuriousBunch е >> мен. Защо го правя? Обичам да си говоря с любознателни хора. Имам доста любознателни познати и приятели и това ми е добър начин да се чуя с тях за неща, които са ни взаимно интересни. Обичам да се занимавам с техничните неща около продуцирането. Следете тия постове за още #ИскреноИЛично ===== Пост 2/N: Защо съквам? Скъпи любопитковци, Правя ютуб канал от > година и някои хора [citation needed] ще кажат, че тая работа не си заслужава. Защо съквам? Не умея да промотирам, да поствам социални неща и да съм инфлуенсър. Не мога да правя кратки клипчета или да говоря с хората на кратко (smalltalk). Обичам да навлизам в детайли, да задавам въпроси, докато не разбера нещата от първи принципи. Не умея да казвам на хората какво да правят. CuriousBunch е изградено от доброволци, на които не се плаща и всеки го прави с леко различна цел. Вижте моите в пост 1. Аз мисля, че си заслужава. Следете това пространство - следете ми RSS фийда (хаха, болката…), лайквайте и събскрайбвайте за още рационализации. ===== Пост 3/N: Защо продължавам? Вярвам, че има много повече любознателни хора в България, които биха се интересували от нещата, които правим. Само последните подкасти сме си говорили как ще се отрази пандемията на икономиката (и обратното - с Даниел Господинов - еп. 33 и 35), как да четем и разбираме новините (с Калин Кръстев - еп. 34), други светове и поочти #извънземни (с Янина Методиева). А тази седмица с Никола Каравасилев ще си говорим и за черни дупки, Стивън Хокинг и още нещо. Говорили сме за квантови компютри (еп. 6 и 17), как работи Гугъл (еп.7), астрономически обсерватории (еп. 5 с Александър Куртенков), климатични промени (еп. 12 с Боряна Щиркова), суперкомпютри (еп. 3 с Иво Илиев), блокчейн (еп. 13) и други неща като квантова гравитация (еп. 4) и астрофотография (еп.2). Заглавието на поредицата е "Любопитно ми е за…" и може да я видите тук: https://www.youtube.com/playlist?list=PLJKo_VlSBBvAsO4GRcsbMU12kHtL3OfYj ==== Пост 4/N: За какво си говорим? Нещо като продължение на "Защо го правя" - Вярвам, че има много повече любознателни хора в България, които биха се интересували от нещата, които правим. Но да - дълги сме и навлизаме надълбоко... за проблемите - в следващ пост. Само последните подкасти сме си говорили как ще се отрази пандемията на икономиката (и обратното - с Daniel Gospodinov - еп. 33 и 35), как да четем и разбираме новините (с Калин Кръстев - еп. 34), други светове и поочти #извънземни (с Yanina Todorova Metodieva - еп.33), как да разбираме статистика и как математиката може да е забавна (с Цветелина Иванова еп 31) космическо време (с Momchil Molnar еп. 30). А тази седмица с Nikola Karavasilev ще си говорим и за черни дупки, Стивън Хокинг и още нещо. Говорили сме за електронни микроскопи (Dilyan Hristov еп. 29) квантови компютри (еп. 6 и 17), как работи Гугъл (еп.7), астрономически обсерватории (еп. 5 с Alexander Kurtenkov), климатични промени (еп. 12 с Боряна Щиркова), суперкомпютри (еп. 3 с Иво Илиев), блокчейн (еп. 13 с Ivaylo Polihronov) и други неща като квантова гравитация (еп. 4) и астрофотография (еп.2). Заглавието на поредицата е "Любопитно ми е за…" и може да я видите тук: https://www.youtube.com/playlist?list=PLJKo_VlSBBvAsO4GRcsbMU12kHtL3OfYj Бъдете любопитни! === Пост 5/N: #BlackHolesMatter Миналата година направихме снимка на черна дупка. Беше в новините седмица, сподели се милиони пъти от хора, които не задължително знаят какво е това, но да речем - това бяха добри моменти за науката. Тия дни рано сутрин заедно с Криси слушаме дженерик новини и честичко си откачам и влизам в плеяда (не знам дали това е думата, ама е астро-тематично, тъй че going with it) за новините, колко бързо сменят фокуса от ден за ден и кои неща имат значение. Аз обичам науката, не задължително тая от училище, но ежедневното любопитно чудене Защо света е такъв какъвто е? И ще се радвам да чуя протести за това, че трябва да слушаме повече учените за ред неща, включително какво може да ни убие и направи живота ни труден, но и как човечеството напредва с разбирането ни за Вселената. И аз искам да слушам такива неща по-често, но не от новинари, които трябва да запълнят емисията си с нещо скандално, а с хора, които работят това. Имам късмета да познавам такива хора и искам да се запозная с още. И за това правя седмичен видео-каст с любознателни хора. Следете тия постове за още спам или ме ънфренднете или там каквото. Бъдете любопитни! === Пост 6/N: Проблемите ни Постоянно чуваме: 1. Ох, ставате, ама много сте дълги 2. Нарежете клипчетата на по-кратки и ще ги гледам 3. Трябва малко по-научно популярно. Отново, отговарям за себе си, не от името на другите бънчове: 1. Знам, и аз трудно гледам дълги видеа. Обикновено ги свалям и слушам. https://youtube-dl.org/ is your friend. Или пък може да си платите събскрибшън към ютуб (obligatory corp msg). 2. Мисля че живите предавания си има точно тоя чар, че можете да се включите с въпроси на живо и да участвате с въпросите си в дискусията в чатовете. Ако искам да разбера нещо в истинския живот не прекарвам 2 минути McDonalds-like fast-knowledge. Макар че естествено, честичко гледам junk-food видеа, обикновено късно вечер като нямам никаква енергия да удържа на кликбейт тъмбнейли. А и също - рязали сме и режем, но отнема много повече време, отколкото изглежда. Следващ пост за повече. 3. Опитах се. Ако аз съм водещ, не мога да задавам въпроси като "Обясни ми защо Земята е кръгла". По икономика, психология и следващите, които ще правим (например химия с Наско Стаменов другата седмица) са доста по-научно популярни, според мен. Просто защото като водещ разбирам много по-малко. Мислим варианти естествено други хора да са водещи и експериментираме в момента с това. Но дългата форма на подкаста пък позволява да се поразширим и да поговорим малко по-дълбоко за някои неща. Приложеното е забавни моменти откъс от епизод 33. Първоначално го бях направил 5 минути. Във вътрешната ни група, където си комуникираме и пращаме понякога неща, Иво Илиев каза, че е дълго. Съкратих го на 3:40 - Teodor Aleksiev каза, че пак е дълго. Може би просто не сме забавни... Но исках да пробвам и това - кратко клипче с откъси от забавни моменти. Явно attention span-a ни е под 3:40 вече... Този пост стана адски дълъг, никой няма да го прочете, но така пиша, какво да направя. Бъдете любопитни! ===== Пост 7/N: Защо въобще и изобщо? Още в НПМГ заедно с Александър Лалев правих подобен проект - Физици Филми. Искахме да покажем "науката извън класната стая". Тогава хората все още можехме да гледат филми, та правехме документални филми по физика. След това заминах на дъждовно и ветровито място, но винаги ми е липсваше и исках да продължа по някакъв начин. Живота стана малко по-практичен, трябваше да се изкарват пари и други скучни неща, та въпроси като "кога ще го правим" / "за кого" и "как ще печелим" почнаха да излизат повече на преден план. И логично. Дори и сега тия въпроси продължават, но се опитвам да не мисля много за тях, защото ме "удря живота". Правя го в свободното ми време, щото ми е кеф (и нерви понякога, както Криси ми напомня). ======== Пост 8/N: Защо въобще и изобщо (2)? После докато се бях прибрал за малко, с Васил пробвахме и Физици Звукове. Издържахме 3 епизода, но в архива намерихме само 2, които качваме в канала на CuriousBunch. Липсваха ми времената на Физици Филми, но слушах много повече подкасти и реших, че със звук може би ще стане по-добре. После все пак снимахме и клипче. Спряхме, защото аз пак трябваше да замина и въобще живота беше доста динамичен. Но пък адски много ме кефеше да си говоря с него на интересни теми, а освен продуцирането на клипчета ми липсваше и физика. След 2 години стартъп бизнес-шит, исках нещо реално. (Реално = черни дупки и квантова механика, какво по-истинско в живота). И така, след още една-две години, след като най-накрая се поустанових и имах нещо, което можех да нарека дом за малко повече от няколко месеца, и имах достатъчно време… решихме да пробваме отново. Резултата са седмични лайв шоута в четвъртък от 8 - ако не са ви пробити вече ушите от тоя слоган. Бъдете любопитни (или от този)! ===== Пост 9/N: Чакай, ти не мразиш ли фейсбук? Защо се изливаш тук? Мразя фейсбук. Мразя излишно внимание върху личности, или да се хваля, да карам други да завиждат, или аз да завиждам (не значи, че не го правя, но не мисля, че е страна от мен, която искам). Искам да направя CuriousBunch повече като общество, отколкото нещо, което аз контролирам. Но хората са във фейсбук и ютуб. Ще ми се да беше в мой уебсайт, с отворени технологии, да си хоствам видеата, постовете, аудиото и всичко. Но хората успяхме да направим възможно най-свободно измислената платформа (Интернет) в централизирани хъбове (фейсбук, ютуб и други). Как стана това и защо е дълъг рант, който ще приключа сега. А с тези си постове искам да изясня мотивите ми за проекта доколкото е възможно и да застана с лицето си, защото може би това е начина. Не знам. Не разбирам социалните неща, но обичам да експериментирам и да пробвам различни неща. ====== Пост 10/N: 5-годишния аз Знам, че ако имаше начин 5-годишния аз да ме види с всички камери, микрофони и технологии, които са достъпни и не (опитвах поне) да правя нещо - щеше да ме нарита много здраво. Като 90s-kid прекарвах много време пред телевизията, но и също ми беше адски интересно как работи цялата работа. Понякога гледах надписите на филмите и шоутата и се опитвах да разбера кой какво прави и защо е необходима тази роля. И сега имам шанса да правя нещо такова. Понякога с подръчни материали. Още от времето на физици филми правихме ауто-кю (четеш текста все едно гледаш камерата, а всъщност е просто стъкло, зад която е затъмнено и там стои камерата, отразявайки монитор - който трябва да е огледално настроен очевидно). Сега за CuriousBunch заедно с Криси отново направихме ауто-кю - нямахме чисто стъкло, но намерихме кантар, който точно пасва, връзки, които да го държат, тъмен чувал и таблет. Обожавам тия неща! ===== Пост 11/N: Балончета и вируси От година много трудно си излизаме от балончето - повечето познати и приятели знаят за CuriousBunch, но трудно достига по-далеч. До днес 1248 човека са лайкнали страницата ни във фейсбук и имаме 377 събскрайбъра в ютуб. А седмично ни гледат около 10-20 човека. Всеки в момента е епидемиолог - виждате как се разпространяват вирусите и знаете, че на вирусите им трябват определени неща в средата, за да се разпространят повече или по-малко. Социалната дистанция и миенето на ръце например им пречи. Носенето на шапка и да не стоиш на течение - не чак толкова много. "Виралните" клипчета също искат определени неща. CGP Grey има страхотно видео по въпроса [1], Veritasium - също [2]. Опитваме се да правим къстъм тъмнейли, кечи заглавия, кратки клипчета и да пускаме постове във фейсбук - всичко с лимитиран успех. Не сме намерили рецептата все още, но търсим и не се страхуваме да експериментираме. Ако вие имате опит и искате да помогнете на каузата - пишете ми на лично. И отново - останете любопитни! [1] https://www.youtube.com/watch?v=rE3j_RHkqJc [2] https://www.youtube.com/watch?v=fHsa9DqmId8 === Пост 12/N: Къде сте? Отказвам да повярвам, че сме 20-30 човека в България, които биха харесали нещата, за които говорим. Някои от проблемите ни са очевидни, други - не чак толкова: Често си правим си вътрешни базици - не можем да избягаме от факта, че се познаваме. От олимпиади, състезания, университети или по друг начин - повечето любопитковци до момента се познаваме от преди. Опитваме се да запознаем публиката с нас си - направихме цял подкаст [1] + кратки клипчета [2], в които говорим за нас си… но може би не е достатъчно или на никого не му пука? Пренасищаме познатите си с постове - обикновено едни и същи хора споделят, пресподелят и харесват страници, постове и гледат канала ни. Но тези хора получават огромен сигнал от няколко общи познати, което дори може да ги отчужди. Опитваме сега с гости, които може би имат по-малко сечение на общи познати, но гостуването си е задължение, което не на всеки е по-силите - има си подготовка, ангажимент, пък и не всеки е окей да застане пред камера и да говори за това, което прави час+, или пък аз да затапвам с въпроси… Може би някакъв математичен модел как да се разпространи най-ефективно би помогнал тук? Просто не сме достатъчно интересни / прекалено скучни / прекалено дълбоки или по друг начин съдържанието ни не си заслужава - абсолютно възможно е. Отворен съм за експерименти. Пред вътрешната група съм казал, че ще кача почти всичко свързано с наука - както казах и преди CuriousBun.ch предпочитам да е платформа / общество вместо 2-3 човека, които стоят на soapbox и си промотират идеите. Всеки има идеи - бънчовете са изключително интелигентни и креативни хора (потуп-потуп). Но разбира се, когато стане въпрос да се направи нещо като "просто 2-минутно клипче" в реалност отиват часове работа - подготовка, нарязване, правене на тъмбнейл, заглавие, промотиране… Тъй че - помощ от публиката? Какво можем да направим и заслужава ли си? [1] https://www.youtube.com/watch?v=saonX72juqY [2] https://www.youtube.com/watch?v=1hQKsNwpPD8&list=PLJKo_VlSBBvDNuwevGjNuR1uptLOWq0i- === Пост 13/13: Дай нещо позитивно за финал Не сме сами. Цани от QuantumAstronavt също се бори за знания, а също е и наш приятел от олимпийските години. Наско… също има научен подкаст "Случайни знания". Другата малко по-борбена цел, е че се ядосвам, когато видя канали като на няма-да-казвам-кого, които са безумно популярни, пълни с измислици. Ще копирам отговора ми на въпрос за интервю [1] което Рада Бонева беше така добра да сподели в Олимпийско сдружение, но в малко по-дългата си версия: Въпрос: Дай и нещо положително за финал :) Аз: Искам да уверя хората четящи това, които не се чувстват добре в гимназията или на работа, защото ги наричат зубъри или работохолици, или смятат, че науката е само за хора в бели престилки - любопитството е най-естественото и доста основно нещо, което хората имаме. Едно бебе пълзи, намира предмет, съставя хипотеза (това се яде), експериментира (яде) и резултата от експеримента или потвърждава хипотезата и става теория (този тип неща се ядат) или (по-често) отхвърля хипотезата. Децата са любопитни и задават хиляди въпроси за света около тях - защо небето е синьо? Къде е дъгата? Как работят компютрите? И ако обществото около тях - родители, учители - са благосклонни и търпеливи детето може да запази това любопитство. Често обаче хората не сме търпеливи или ни е страх, че не знаем отговорите на такива въпроси, изнервяме се и казваме на детето да ходи да си играе и че ще разбере като порасне. Когато това го чуеш всеки ден, всяка седмица, спираш да си любопитен, отиваш да си играеш и да правиш други неща и се опитваш да забравиш, че си задал подобен въпрос, защото вече са те отрязали и си получил това гадно чувство. Хората избягваме гадни чувства. Положителното е, че всеки от нас има това любопитство вътре в себе си, зарито под пластове на защитни механизми, за да успяваме да живеем и да не чуваме постоянно рязане. Надявам се чрез подкаста да помогнем на хората, които се колебаят дали е ОК да си любопитен и да им дадем примери за хора, които са професионално любопитни! [1] http://olympicbg.org/blog/curious-bunch-sastezateli-po-fizika-i-astronomiya-s-nauchen-podkast7
5 20200902 20200902_facebook_vs_.md Фейсбук срещу другите Фейсбук не се кефи като им ограничават свободите: - [Facebook vs Apple](https://www.facebook.com/business/news/preparing-our-partners-for-ios-14-launch/) - TLDR - Apple ще ограничи достъпа до тракване на юзъри по телефонID - ограничаването се състои в просто питане на юзъра дали иска... Нали основния аргумент е, че "хората харесват таргетирани реклами" - тогава какъв е проблема? 😀 Ама фб знаят, че никой не си променя дифолт настройките и никой не иска реклами - [Facebook vs Australia](https://about.fb.com/news/2020/08/changes-to-facebooks-services-in-australia/) - новинарските сайтове са под пълния контрол на Google + Facebook и получават контент само ако Големите благоволят да ти препратят трафик - и когато правителството реши, че медията трябва да е свободна да решава колко струва информацията, която предоставят - Фейсбук атакува
6 20200904 20200904_относно_вестниците.md Относно вестниците (1807) Тази сутрин ми попадна пост от [Hacker News](https://news.ycombinator.com/item?id=24361744) озаглавен "Не може да се вярва на нищо, което се вижда във вестниците" с дата 1807, написано от Томас Джеферсън. Ето няколко цитата от [Относно вестниците (1807)](https://press-pubs.uchicago.edu/founders/documents/amendI_speechs29.html): * *"Човек, който никога не поглежда във вестника е по-добре информиран от човека, който ги чете; поради това че не знае нищо е по-близо до истината, отколкото ако ума му е пълен с лъжи и грешки"* * *"Да се раздели вестника на 4 части със заглавия: 1во Истини, 2ро Вероятности, 3то Възможности и 4то Лъжи. Първата глава ще е много кратка, съдържаща нищо повече от достоверни статии и информация от такива източници, за които редактора би си жертвал репутацията в името на тяхната истина"* На първо четене идеята много ми харесва - всички новини започват със статус Възможности. Така може да се пуска всичко в мрежата с най-бързата скорост, което така или иначе се прави в днешно време. Един от проблемите днес е, че всеки поства и споделя неща в Интернет. Но това дали нещо ще се постне или сподели не задължително е вярно. Често споделянията са ръководени от емоция, а не от чувство за информиране на обществото. Журналистиката все още съществува и почти всички редакции твърдят, че правят всичко възможно да пускат новини от 1ва категория. Но състезателната природа на новинарството кара агенциите да се надпреварват кой първи ще каже новината, защото това носи зрители, читатели, тролове, реклами и пари. От друга страна изглежда, че това само ще премести проблема едно ниво по-дълбоко - кога една новина ще премине от Възможности към Вероятности или към Истини. Според Джеферсън "Втората ще съдържа само това, което от зрялото разглеждане на всички обстоятелства, неговата преценка трябва да заключи, че вероятно е вярна". Това би било новини, които днес се водят за Истинни, според редакционната политика и опита на репортера и вестника, т.е. два независими проверени източника и прочие. Категорията Истини, или дори бих я нарекъл "Вероятни Истини" би била много кратка и вероятно скучна за повечето читатели, но от важно значение за обществото в дългосрочен план. Това би било много трудна категория да влезнеш и лесна да излезнеш. Еквивалент на научния подход - теория, която се поддържа от много независими статии (т.е. различни подходи, проверени от експерти, изследвани взаимовръзки, проверен "път на парите" и т.н.), но дори само един опит да покаже, че нещо не е вярно би изпаднала обратно в категория 2 или дори 4 - Лъжи. Това в днешно време биха били "новини" около климатичните промени например. Тези новини може да преминат във Вероятни Истини дни, седмици или дори месеци след обширна проверка за истинност. В ерата на Deep Fake много малко снимкови, видео или аудио доказателства биха издържали. Проверка на автентичност би била изключително трудна, ако не и невъзможна. Днешните fact-check сайтове и опити на социални мрежи биха били само първа крачка към определянето на новина за истина или не. Кой проверява проверяващите за истина? Ако този проверяващ стане авторитет, то след време може да се твърди, че този авторитет винаги говори истина, дори вече да се е "продал". В науката обикновено се искат години от доказателства за една теория, погледната от много страни и дори когато една теория е създадена от един човек (например Общата относителност на Айнщайн) доказателствата за тази теория продължават години, или дори може да се каже, че никога не спират. Ако утре някой направи експеримент, който показва че нещо може да се движи със скоростта на светлината например, тази теория няма да стане неистина веднага, но нейния обхват ще бъде ограничен. (Гравитацията на Нютон все още работи, когато определени приближения бъдат направени). В днешно време авторите на научните статии често се състезават за количество, а не за качество. Което поражда и голям брой "новини", които твърдят, че "учени откриха..." без да се взима предвид какво значение има за обществото, колко проверки са направени и колко е истинно съждението. Четейки новини за науката или технологиите се сещам за [един уклон](https://en.wikipedia.org/wiki/Michael_Crichton#Speeches) понякога наричан "Ефект на амнезията на Гел-Ман", който твърди, че хората вярват на статии извън тяхната експертиза, дори когато статии в същия вестни в тяхната експертиза са очевидно грешни. Като виждам какви статии се произвеждат, за които знам неща от първа ръка понякога и видя как минават през разваления телефон - виждам как се изопачават малко по малко и това ме подсеща, че новините, за които не знам от първа ръка би трябвало да са почти също толкова грешни. Може би никога няма да разберем истината за всичко, или дори нещо. Но научния подход за сега е най-доброто, което имаме. Той отнема време - ако искаш да знаеш нещо, по-добре изчакай няколко десетилетия. Може би е така и с новините днес (или дори през 1807, или винаги).
7 20161107 20161107_коя_мафия_си_избирате.md Коя мафия си избирате? Изборите са идиотско нещо. Моят свят е свят на избор в момента - дали защото съм в такава възраст или пък светът полудява, или съм в “мехурчето“ от новини и социални коментари - не знам. Брекзит, Тръмп, Радев. Но ето, че гласувам за шести път извън страната - шест от шест пъти навън. Този път, както и първият ми път, е за президент. Но картинката е различна. В САЩ имаме Тръмп срещу Хилари, в България - Цачева срещу Радев. И в двете държави се гласува за президент, и в двете са мъж срещу жена, и в двете хората се опитват да изберат между по-малкото зло. Уважаеми сънародници: Коя мафия си избирате? Изборът винаги е между по-малкото зло. Искаме мафията на човека, който еднолично държи държавата под шах, ако загуби на които и да е избори. Или искаме мафията, която от опит знаем, че ще разграби държавата. Това е изборът пред който стоим. След като сегашният ни мафиот обяви, че ако загуби на “Не се сърди човече“, ще подаде оставка, тъй като неговите лични късметлийски качества очевидно не са в състояние да управляват държавата, сега сме в ситуация на страх. Искам ли държавата, в която не живея, да няма бюджет 2017, да изпадне в едно половин годишно безвремие, следвано от управление на едни иначе толкова симпатични хора? Не искам. А искам ли всеки път, когато искам да избера нещо различно от статуквото да ми се казва, че държавата ми ще се срине, ако не избера статуквото? В смисъл, каква е разликата между това да си имаме реален диктатор и символичен диктатор, който ако изчезне ще последва крах и пагуба? Ще последва ли? Не знам - едва ли. България няма ядрени оръжия да погуби целия свят ако избере грешния човек. Но родителите и приятелите ми са достатъчни, за да ме е грижа какво се случва. Баща ми обича да казва, че ако изборите решавали нещо са щели да ги забранят. Започвам да минавам възрастта, в която от идеалист ставам малко циничен и тези думи започват да звучат съблазняващи. Не от гледна точка на вяра, че някои тайно ни манипулира, сигурно ще стигна и до там някой ден, но по-скоро, че избора като че е някаква илюзия. Като гласувах вчера не почувствах, че имам избор. Усетих, че съм от стадото, което отива да гласува по инерция, защото просто логически не виждам какъв избор имам. Избрах „по-малкото“ зло. Тази фраза е просто навсякъде тези дни, но дали не е просто част от живота? Прочетох една книга наскоро “The subtle art of not giving a fuck“ (“Изящното изкуство да не ви ... ъм... пука“ - майка ми е от малкото редовни читатели на блога ;). Съвета, който взех от нея е, че понякога е важно да се съсредоточиш върху лошата част от избора и кой предпочиташ. Лесно е да избираш между две щастливи ситуации - все тая. Въпроса е, коя от ситуациите има проблеми, които предпочиташ. С други думи - да си във връзка и да не си във връзка си има своите негативи - кои предпочиташ? Проблемите с комуникацията и отделенето време, липсата на други сексуални контакти или предпочиташ самотата и несигурността? Предпочиташ да учиш и да се тормозиш с изпити и безумни упражнения или да умираш от скука от 9 до 5 в безумна работа? Не съм песимист, и точно заради това урокът от книгата ми отвори очите към нова идея. Сега при нас, както и при американците, както и при британците стои избор на по-малкото зло. Ми да си го изберем. Ние си решаваме мафиотски диктатори срещу мафиотска дружина. И в давата случая не е яко на върха, но то пък кога ли е било яко? А пък в крайна сметка, както казва един друг мой приятел - 'се едно, лятото ще си дойде и аз ще съм си на Кара дере-то :) Айде с мир.
8 20160728 20160728_the_third_world_war_is_coming_what_to_do_about_it.md The Third World War is coming. What to do about it? The Third World War is coming. Everything is set in place for the war to unlock at any moment now. ISIS are the most powerful and cunning terrorist organisation the world has ever seen. There is nothing that can stop it. The Islam religion is so powerful, they want to kill people and they will do it over and over, more and more often. Because they are promised salvation. It is always the Islam. It is the wrong religion. 9/11. And we now let them in our own lands because they want asylum? Ontario, France, Belgium and Germany. But they are different. They are not like us. We let them kill our children. How long? Who do you fight with? There are the lone wolves that are impossible to track. Or so they tell us. Maybe they know. The more powerful, the people at the top, they know. Putin has been the worst dictator humanity has known yet his country is not attacked by ISIS. Why? Because he is part of the plan. He will be more manipulative and hungry for more power until the war breaks out. Then he will hide in a bunker. Together with all the top people that we know and that we don’t know. The people who are pulling the ropes from behind the scenes. The war is coming. And it will be terrifying. Everything is set in place. Trump will soon win the election. He has already said it will withdraw support for NATO countries. Every man for himself. There will be no support of small nations. It will be the two big powers now. They went through a cold war but the world needs a war, the Empire needs wars to survive. The war is coming. Is it a coincidence that the Brexit just happened. Just now? The European Union is in a state of collapse and the effect of the domino will soon follow. The Netherlands and France will soon be out, Germany will not want to forever support countries like Greece. Europe has always been too different to be united. The war is inevitable. The world economic debt is monstrous! There will be a scarier economic crisis, worse than what we have seen. And the Bible predicted it - the doomsday is coming. Nostradamus said that this pope, pope Francis, will be the last pope before the Second coming. The war is coming. And it will be more destructive than ever. Einstein said that he doesn’t know what WW3 will be fought with but the fourth will be fought with stones and bricks. And it’s these scientists who are saying that gays and lesbians are normal. It is these scientists who make women equal. And because of that, women will actively participate in the war. Oh, no, it will not be only men this time. They will have to carry the gun and shoot people and be shot. And there will be no place to hide. There will be atomic bombs all around the world. Total destruction, oblivion of all the nations.. And only the selected secret officials will be saved. Because they have planned this all along. They have the bunkers in which they will survive and let humanity kill itself. They want that because we are overpopulating! It will be a new world. A new order. With new species. We have proven to be impossible to live with. All we want is sex and war and drugs. We do not deserve to live but all of the secret societies, the new people, the new era. They will be the ones. The war is here. There is nothing to do now but to participate and probably die. Or you would wish to die. You will be injured so badly that you would wish to die. Every night there are bombs. Every day there are drones above your head killing your friends, family. Destroying all you know. The war is inevitable. The destruction of all of that beautiful life is inevitable. It will be the greatest suffering and dying the Earth has ever seen. And it has already began. Are you afraid? Are you terrified? You should be. But There is a way out. I know the secret. I know the soft spot and I know how we can make our country great again. We will tighten our borders. We let no one in. We kick all the Jews out of the country. We kick all Mexicans out of the country. We will not allow some bureaucrats in another country deciding what is right for us. For our community. For our freedoms. For our democracy. I will build a great wall to stop everyone coming from abroad passing through it. I will have guards 24/7/365 around the border. It will be a great, powerful, independent country. We will be a safe heaven. But just for us. For the people in this room. For your families and your friends. Vote for me in November and let’s make our country a safe great powerful country. Let's do it! But I know... death is frightening... I want to provide you with a different view... There is one thing they can’t take from you. It is your belief in the Almighty. God knows who is rightful in his heart of hearts. He knows and he promises eternal lives for everyone who accepts Him. He protects you here on Earth and it will not let anything happen to the ones who are true to Him. It is said in Mark “Truly, I say to you, there are some standing here who will not taste death until they see the kingdom of God after it has come with power.”. And God will welcome you. He will welcome his children because he is all knowing and all good and all powerful. And he is forgiving. Your belief in the Lord is the one that will save you. Belief it is said in the scriptures, and belief we shall. Doesn’t it provide solace and peace? But actually... does it all matter? Fear not. Because this evening I will tell you the solution. And it will shock you. It is the simplest truth there is. You will be thinking How didn’t I think of that before? My Gosh, I wish I knew it all along. It is money of course. If you have enough money, you can buy anything. You can buy a position in the government. You can buy a safe heaven for your family. It doesn’t matter the world will be at war, but to be honest - I don’t think it will be at all. Why? Because the world is driven by money, no one is interested in wars, wars make businesses go broke, what is the point. But on the off chance something happen, wouldn’t it be nice to have enough money to buy yourself any position that you want? And I know how to make money, this is the only thing I know how to do in this world. And I can teach you, it is so simple. My company, Straiten Oakland is known for making normal everyday people rich overnight. We have thousands of people around the world who turned millionaires in a month because of the simple system we teach here. And you know what the best part is - you can quit any time. No questions asked. But if you stick to it, believe me, you will wish you found about me earlier. You will not be sorry. --- Do you get it? Or do you feel confused. What am I proposing? Now. What I’ve done, is the most generic fear message that anyone can say and anyone can believe. From the politician, to the priest, from your slightly weird Uncle Bob to your close friends after a bottle or two, the TV news and the print media, the social networks, the videos on YouTube and the blog articles on Medium. The message is so powerful it is almost impossible to dismiss. It is so powerful because it touches the single thing that all biological species share - fear. Fear makes you do things more than ANYTHING ELSE in the world. It is unavoidable, everyone is guided by different fears. And in this talk, I have touched on a particular kind of fear. The fear of not having control. And then, your mind is tuned to getting back control. To a solution. To a salvation. To a resolution. About what to do. What can you do now? Fight or flight or freeze? What’s next step that can help you survive. You want to hear that nevertheless, you will be saved. Your family will somehow beat the odds and it will survive. Somehow you can get into the bunkers of these politicians. Somehow, you will be this general or warrior who win the war. It doesn’t matter, because religion will save me. Or you will just dismiss me. And say I am a lunatic. A psycho. That life will just go on and nothing will happen. There are doomsday predictions all the time and they never come true. Right? So, the three roles - the politician, the priest and the salesman - provide a simple thing. A solution to a problem. What is the problem? It is the inevitable war, remember? The three roles appeal to different people. Any of them could have said the generic thing that I started the evening with. Any of them could have said the things I have said in the beginning. But. These solutions are not real. They are still outside of your control. They try to project that you are going to be back in control but what really happens is, they take control away from you even more. The politician searches for power. Once it is there, the world goes according to his life. The salesman gets the money from you, gives you a system but doesn’t really care. You will say, yes, but religion gives me the Bible, the book to solve all my problems. And that is almost right. Religions actually always start with good intentions. They want to help humanity to find meaning, to answer all of the fears. But the most powerful way to convey their message for search for meaning is through fear. And fear corrupts. They want to make you scared. And they can make you more scared the more powerful they become. And you are back to square one. You hear the media talk about the fears, you search solutions, you vote, protest, pray, buy books, go to seminars, try to provide for the family, for yourself and try to find meaning. And all you have from school is how to solve quadratic equations. Not really helpful. So you buy into these solutions. Not realising that the only thing you need to do is... STOP! And think. Recognise the fear. Is it real? Fear is powerful but is-it-real? Does Brexit really wakes you up at night? If so, why? What are you so afraid of? Fear is the most powerful thing in the world that makes you take action. It is a biological truth no less true than gravity. And fear makes us move unpredictably. It makes us take quick decisions which are good for the jungle - fight or fly - but society is more complex. Fear is good in the context of the jungle and politicians, religious people and salesman have learnt ways to capture that fear and make it work for their own needs. Rarely situations in modern life are jungle quick. Most can be taught out calmly, rationally. If you only understand that it is fear that is moving so much of your life choices. But if you recognize the fear, if you capture it, if you stop and think what you are so afraid of you will realize you have so much more control than you thought. So much of your pain is caused by you listening to pseudo solutions that don’t give you real power and control over the situation. So what is my solution? We Need Education Global Re-Education. No, not maths and science of the Big Bang or evolution. Not biased history lessons where you have to remember the dates or which countries have the highest GDP per capita. Let’s be honest - unless you are in a small minority of so called scientists, you don’t care about science. I want to redefine education. How? Let me ask you - What are you really interested in? I will give you two lists of questions. List number 1: * What is the structure of the DNA? * How did the Universe begin? * How to solve 5x+6x^2=87 * How to analyse dogmatic pieces of text? * Which year was the battle of Waterloo? List number 2: * How should I make a lot of money? * How to find true love? * How to be less anxious? * How to be successful? * How to find meaningful work or life? * How to be a valuable member of the society? Which one is more appealing to you? I guess list number 2. Sure, list number 1 provides all the technological advancements which help society. But there are things more basic than advancements. Compassion, caring and understanding. Yet, we all teach list number 1 in all the schools, in all the countries around the world. And only a small minority cares about education. If you ask yourself, what is the point of education, it is obvious - to prepare you for life. Yet, we all know, education systems don’t prepare us for life. It teaches us things that everyone has asked “When will I need that?”. This is the problem. It is not your fault. You are not stupid. You are not dumb whatever the education system has tried to tell you for so long. You are normal human being just the same way I am and everyone is. Education does not speak the language of the people. It speaks a weird language that just a few understand and want to speak. So you get frustrated. You don’t feel in control of our own destiny, we are not prepared for life no matter how much we try to hide it from the people around us and even ourselves. No one helps us find out what should we do with the single life we are given. So we lose control. And we try to get it back through politicians, religions and salesman - the ones who are “educated”. But giving up control, gives up our ability to think and decide for ourselves. We can’t do it, because we are not educated to decide for ourselves. I am not educated. I do not feel an educated person. Not in the sense that I have redefined it. Education didn’t matter. It was fake, it was meaningless, it was useless. I want a worldwide reform in education. Real education. About the things that I and you care about. And the way I see it, there are four paths. **Number one - individual level.** Learn all the stuff that you need to know by yourself. Chances are you are either educated enough to try to find ways to do it yourself, or you have already given up control. If you don’t have a clue, you are the second group. **Number two - business level.** Open up private institutions for education. Businesses need money, some people can pay money for additional education but not everyone can find the energy to do that. **Number three - volunteering** Organise people who can help you get a direction in life for free. **Number four - government level** Massive request from your governments to provide us with free education, but the one you care about, the second type. Change the system for the young and re-educate the older ones. I can’t take it much further. I am a single man with a single voice. Do you think it matters? If you do, share this talk. Not only to the people in your circle. Break the bubble. The talk starts with the fear message for a reason. It has the click-bait title for a reason. If you don’t talk in people’s language, they won’t listen to you. You have to win them over before you present a new idea. Use the hashtag #WeNeedEducation to start the talk in social media. I am open for debates. Thank you. ## Frequently Asked Questions **Q:** You can’t really believe we can have all the people to be educated. Who will then dig the land, make crops etc? **A:** We are talking about a completely different kind of education. Emotional education, spiritual, a school of life if you wish. Understand one’s own emotions and needs rather than just acquiring more skills. In this education it will be taught how to think about the questions that we are really interested in such as how to find meaningful work, how to find love, what is happiness and success and how to deal with anxiety. **Q:** Why education? **A:** In short, I believe that education in a sense about one’s self and the other people around you could be the root problem of many social ills. Understanding how your emotional decisions could compromise living in a society for which our biology is not used to. If we want to get all the benefits from a society, we need a way to understand society and how it functions not just let someone take decisions up top. **Q:** Do you think I am stupid? **A:** I don’t know you, but probably not. And it doesn’t really matter to be honest, however you define stupidness. I go from the basic idea that every person on the planet deserves happiness. I want to maximize the number of people who can be happy. But in our day and age we have lost the ideas of what makes us happy, the media gives the wrong impression with super stars, richness and we think money, power or popularity makes us happy. Understanding one’s emotional self could help understand what makes us happy and go for it. **Q:** Whatever you try to do, “They” will stop you **A:** Well then what is the alternative? Not even trying? I understand that if we do it alone, it is useless. If the idea does not hit enough people, a so called critical mass - it is going to be a drop in the sea. Even so, if the idea is associated with a person and organization, They will stop us. BUT if we find a way to distribute the idea of re-education to enough people and disassociate it with a person or a party or anything, if it is an idea as simple as the fact that the sky is blue, when everybody knows that we need re-education as a fact, not remembering who first said it, then things may happen. **Q:** The NSA/Illuminati/Secret societies will not allow you **A:** As far as we know, they are still only people. If such conspiracy theories turn out to be true, then indeed maybe nothing we do will ever be of any use. But - what if they are not true? Are you willing to consider that the NSA is not really all that all-powerful? Are you willing to consider that Illuminati are still just people with no extra-sense abilities? I am willing to doubt that this is all true. If we all believe the king is wearing clothes, then the king is wearing clothes whether he is or not. But if he isn’t and nobody says he isn’t, is he still wearing clothes or not? What is fact and what is speculation? I do not possess hard proof that Illuminati rule the world. So I am willing to point out that the king is indeed naked. How about you? Willing to take a closer look and just maybe try? **Q:** How exactly will the re-education happen? **A:** I don't think it is not the time to talk about that. It will just muddle the picture. That's why I just put a small sections of ideas of how it may happen to bring the spark but it's not the main point. First we need to get convinced that this is indeed what is needed. I may be wrong but if it rings a bell in a lot of people and we manage to permeate the message to enough people in the right way - then maybe it's a thing that is needed for the better of humans. **Q:** You are crazy young person wanting to change the world. You will never do it. **A:** Not a question but a good notice. I am idealist. But tell me - does the argument not convince or I don't convince you as a person? I am trying to do what is of no power to any single individual. We are talking about a global initiative. I am a young person, only one and besides - if the idea gets associated with me personally or with an organisation, then there is no point. It will get destroyed, killed, faked, mocked etc. See above question about "They" will stop you. If we make it a fact. An undeniable fact that the education system is mostly useless in the form it is now (this is almost a fact now) and people get to know that they have other needs than merely acquiring skills for work and everybody believes in it... Then maybe we stand a chance. **Q:** I don't like you mocking my religion / my political party / my business **A:** I am sorry if it sounded like that. All I wanted is to convey a message and I know that this message will be dismissed outside of my bubble if I didn't speak the language of many people. I know religion, politics and businesses play their roles in society, I don't want to dismiss them. Not for a second! Read the message again. But none of them currently provide this education that I am talking about. They are about fighting ideas for most people. How should we call our God? Jesus? Allah? Muhamed? Budha? We are not talking about the real issues. Of course, religion works for some people and it could be a great part of the solution. But people killing each other because of the name of the God some of us believe in? Or the allegiance to a political party? The color of the skin, sexual orientation, nationality? This is the wrong part. **Q:** Why don't you make your money and live your happy life with the skills you have, why change the world? **A:** I honestly don't want to wait until a friend of mine is killed for useless reasons. I don't want to be dragged to the war that I've described at the top. We humans are so small part of the vastness of the Universe, it is so useless to argue about things when we can find peace and harmony and work together. I am not talking about communism, please. It has nothing to do with it. I am talking about understanding each other and solving problems that we really need to face off together - Global warming, the energy crisis, hunger, poverty - these are things that can be faced and solved together only if we change the way we understand ourselves first. I am motivated because the work that I do I feel it is meaningless in the global picture. I belief I have one life and if I just make myself satisfied - I won't be when I see so many problems we can work together to solve but instead we work on the completely wrong ones most of the times. **Q:** What is paying you for this? Who are you? Why should I trust you? What authority do you have to tell me these things? Why should I listen to you? **A:** This does not matter. I cannot possibly convince you I am not Illuminati, a reptile, paid by The Witnesses of Jehova, ISIS or that I will not make a business out of this in few years time. Ideally, I don't want to be the author of the idea. Because it doesn't matter. (See They will stop you). I know in this day and age it is hard to talk to people and telling them I have nothing on the back of my mind. I can't possibly make you believe no matter what I do. So I want this to be spread out in different channels, in different medias, in different ways, languages, in different emotional languages. I am one person with one way of saying these things. The Idea for #WeNeedEducation needs to be global, anonymous in order to succeed. Read the idea. If you like it, if you like the idea that you and your children will be more prepared for the Real Life rather than solving useless equations, then share the idea the way you like it. The idea, not the person. I am Mr. Nobody. **Q:** Humanity is actually not that bad - see we make telescopes and skyscrapers, people mostly have got to eat, we are actually in the best place in history ever **A:** I agree with all that but that does not diminish the fact that we have so many other problems right now. A so called "Third world" problems. These are problems that are beyond just eating and having convenience. We are more anxious than ever, we have new-age diseases of the mind and body which are things that we need to understand together and fight it off to increase the happiness in the world. We are in the best times but there still is pretty bad places on Earth where people don't have Third world problems yet, but they will in few decades. And we better face them now and not dismiss them. Education itself is actually a third world problem. So I propose to start from there as I see it as the root cause of a lot of other things. **Q:** I still don’t understand why education? Why not poverty? Hunger? Why not the economy? Energy crisis? Global warming? World peace? Why not cancer or ASL? Why not suicide, loneliness, drug abuse? **A:** I believe a lot of these problems are really good to tackle. The problems are very valid. But they are not the root cause of why we will always have trouble tackling these problems unless we are educated as a society. It is a bottleneck problem - any optimisation before or after the bottleneck is useless. Take Global warming. There is no evidence that there is no Global warming, that is, everybody who can look at the data, understand the numbers and listen to the people that do the science - knows that there is global warming. Yet, we get tricked by politicians with the old tricks that I described in the beginning of the talk. The problem is we so don’t know ourselves, we don’t understand when fear is being used as a trick. It looks normal talk but it is not. Any conversation that we start before we all have common ground will be useless because we will all be speaking different languages. People who are scientists will tell you yes, there is global warming logically. But people are not logical creatures, they are emotional first and then logical. There is fear installed by politicians in some people that using money for fighting an non-existing global warming instead of giving the money for health is stupid. So scientists cannot convince by logic until people understand what lies people say and why they say it.
9 20180509 20180509_if_you_like_being_a_pirate.md If you like being a pirate... Keep on reading, I am not going to judge you - I (may) do this all the time. I just want to pose you an interesting question to think about… Take a look (if you can and at your own risk) at the most seeded audiobooks on one of these sites where Johnny Depp might find himself if he was so inclined as to make an Internet movie 😉 At the time of writing (May 2018) titles include: * "12 Rules for life" [#1 with 396], * "Influence: The Psychology of Persuasion by Rober Cialdini" [#3 with 226] * "Be Obsessed or Be Average" [#4 with 175] * "Anthony Tony Robbins - Awaken The Giant Within" [#8 with 126] * "The Subtle Art of Not Giving a Fuck" [#9 with 125] * "The Millionaire Booklet" [#10 with 121] * "The Five Elements of Effective Thinking" [#14 with 103] * "No Excuses - The Power of Self-Discipline" [#15 with 93] * "You are a Badass" [#17 with 93] * "Maps of Meaning" (#1's author's previous book) [#19 with 91] The unmentioned books include "Harry Potter book series 1-7", "The Art of War", "Sapiens - A brief History of Humankind" and other overall popular books and just popular novels at the time. Take a look at Audible as well - the legal way to do these things - similar (4 of top 20 - the #1 12 Rules of life is 4th, the #9 - Subtle art… is 6th and there are two books by Mel Robbins - "5 second rule" and "kick ass" that are 11 and 17th) but not as much in the top 20s. Now here is my question: Why so many self-help books? And why more in semi-legal sites? This is far from scientific of course but here's my hypothesis. If you try to cheat life, now life cheats you. I am not saying this is karma or there is an all-judging being that makes you suffer because you pirated things. But let us explore it further. Imagine you are the type of person that is likely to go on to the semi-legal sites to get their content. Audiobooks, movies, music, software. I can relate - I have gotten my free entertainment content over the years. On the software front I have switched to Linux as a free operating system about 10 years ago now but I used to have tons of CDs and DVDs with different versions of the glass operating system for years. I started feeling bad for it at some point that yes - it's not open source and privacy and all of that - but I couldn't and maybe can't exactly yet pinpoint the feeling why. Linux was harder to set up, many things didn't work out of the box and of course office software and games wouldn't work even close to what I was used to. But things got much better over the years and when I touch Windows now, I feel like a newbie. In the span of 10 years when I had to move permanently out of home I left my parents with Linux because I didn't want to deal with viruses every time I come home or not be able to call them some weekend. And they don't even know - they have a browser, it works. I feel much better now using free software but again - I can't exactly pinpoint the main reason. Also, I became a programmer and understand more the value of the work but it's not just that. And it's not privacy (I think). It's a feeling of being free. Now, I am not there yet with my entertainment although I try by getting a Netflix subscription and buying some of the songs I really enjoy. Back to the original question: why so many self-help books in these provide-for-free sites? Well, if there is a person who is likely to cheat on society and tries to hack life by acquiring things for free when one should pay - well, I would bet this is a person who is likely to cheat in other ways as well. Did I jump to conclusions about cheating on society? You know you are - you can rationalize that it's a copy, you are not stealing because you are leaving the original - but c'mon, you know this is not the way the author wanted you to listen or watch their creation. Some do - there are artists who upload their creations for free to get exposure. But not everyone needs more exposure or are getting it by getting content from Captain Jack Sparrow's sites. So how are you likely to cheat in life and why this is bad? Sure, it feels good in the short term - maybe you get delicious food like hamburgers and pizza that you know are nutritiously bad for you in the same way movies are - you are not even cheating, you are paying for your food! But you are paying for food that will not satiate you in the long run and you know from experience that these stuffed carbs and sat fat will turn to your belly. But it's quick and relatively cheap and boy - it's delicious! Who has the time to cook or eat boring greens… Or maybe instead of going the hard way to find authentic human connections you go to porn sites. Or facebook. Or instagram. They are in the same category really in this case. Why? None of them are real for your primal brain. You scroll, or you fap, you like, or heart, you send yellow pictures of crying laughter but really - your face is static. Sometimes when I chat with people I find there is an enormous inflation of yellow faces - as if they are trying to compensate the real feelings that are just a blip in our souls but rarely really experienced. But it's hard to get real people especially in real life! In school or Uni maybe it's easier - at least you have your subject group of people and societies that people hang out at. But real life, boy - colleagues are in so different age groups that as a 20-something boy or girl you barely have anything in common. And going to meetups after work and maintaining relationships in real life takes way too much time. Meeting with one person can take hours! At the same time you could be chatting with 10 different people, "catching up" or sending cat photos (or these weird dog-photos embedded within a human face with enlarged eyes… what the fuck is that?!?!... I know, I'm getting old) and pretending that these are real conversations. Instead of building up a relationship for months or years, you open the black channel, jack off in 5 minutes and you are good to go with the rest of your day. No need to invest time in people, they take too much time and they can hurt. And this way you cheat life. And you cheat yourself. In the short term it's good. But in the long run you feel lonely, empty, fat, tired and angry at yourself for procrastinating on everything. You know technology is not always the right answer, you've heard it, you've heard that it violates your privacy but c'mon - you are not a terrorist, you don't talk about bombs in your chats - who could be that stupid?! You are fine being tracked by tons of huge corporations - who cares, everybody is tracked. And guess what - advertisements are more relevant this way so it gives me better recommendations. (Note: I don't know if people actually say or rationalize that way, I am not convinced anybody finds ads useful, but let's say some might like them if they are more relevant for the sake of argument). So okay, you don't care about being tracked if you are getting free services for that - free search, free chat, free email, free music, free videos, free operating systems, free file sharing… But guess what - somebody, somewhere pays for literal physical machines - and LOADS of them - in huge data centers that take the electricity of small or sometimes large town that serves millions and even billions of people like you. Also, artists need to pay their rent and food - but they are on YouTube and getting billions of views. And they do it for free? Because of the good of their hearts? Or wait - you pay for the Internet, right? These 20-30 something money pays for this, right? This pays mostly just for the cables from your local town Internet Service Provider to your house. You pay for the above mentioned services with your time and attention to advertisers who sell you things or try to lead you subconsciously to their sites, to get a few more clicks, a few more time spent. You know that already? Am I boring you? Am I wasting your time? So why are you looking for self-help books? What is so wrong in your life that even though you know you need help, you turn to self-help? I am not talking to you anymore, dear reader, in fact I am talking more to myself now, but if you feel it's relevant to you, join me in my questionings. You are conditioned to cheat life. Like the broken window theory, once you start cheating and grabbing things for free that you know shouldn't be and can't be really free - at least in our economy - you start cheating yourself. And you don't necessarily understand that in all the nuances and layers of complexity that your conscious and subconscious brain presents. What you feel as loneliness, angriness at society, meaninglessness of life - I argue here - is partly as a result of your hacks. You try so much to be self-sufficient and independent at life, maybe because you got hurt by real people, or maybe because the media presents you with the image of successful independent people - that you now crave help because you know you need it badly. But you ain't gonna reach to a friend for a deep, real, emotional conversation which will open your mind and soul with all the power of all emotions you have - you haven't done that in years. Instead, you are going to get a self-help book which as yet another cheat, you are going to try to talk to yourself the meaning of life. To try to self-motivate, self-inspire. Not spend time in silence and inner exploration - that is just such a waste of time! And on top of that you are going to get it for FREE! Because who wants to pay for generic advice of "Just be happy! Just do it! Life is hard! Here is the ONE trick, the ONE method, the ONE cheat that will move you forward and make you happy again". And you will consume that and love it for a few days and then, like the cheeseburger, you will crave another one. And then another one, searching for this nirvana that with the right mood, the right incantations of self-talk that will rewire your brain while you sleep, listening to self-aspirations and saying them over and over that "you are beautiful", "you have everything and you can do anything", "you are confident, outgoing and a force to be reckoned with". But somehow, few nights later, you will be lonely again. Few days later, you will question the meaning of it all. Few scrolls later, you will envy all the friends that travel to all the beautiful destinations and you are stuck in your stupid apartment with shitty, meaningless job that probably contributes to the end of humanity in some way. Because you are conditioned to this, to the fakery, to cheating instead of investing real time in things that matter, you cheat life, and you cheat yourself. So sure. Get this post for free - I can't possibly stop it. In fact, I have in fact for free on services that I don't pay for with real money - Blogger and Medium. It's the struggle that I still have and yes, I want to eventually pay for my server and host it by myself. I am not there yet. I am not preaching, and trying not to judge - I am as "corrupted" in the above manner as the next person. And even if I manage to one day sell this post for real money and embed it in a book or something - I will have no moral way of even judging you as I have done the same countless times and in times of weakness, I know that I will do it again. But please, think about the above and try to disagree with me. Try to rationalize it or find the holes in my arguments. I could be wrong, but I feel there must be some truth in it.
10 20131201 20131201_week_девет.md Week девет The second sprint didn't go so well as the first one. Maybe because of the many assigments that are due really soon and (naturally) everyone does everything in the last possible or beyond last possible moment. Another reason may be because we had to learn a framework for a week in between all of that. Spring is not hard, in fact, it looks extremely nice framework (maybe except the fact that it relies a lot on Java annotations which IMHO make the already hard to follow nature of the Java code even more unreadable). But otherwise the tutorials on the webpage are easy enough the follow and I also attempted doing one of the long tutorials - really nice, easy as a song (as we like to say in my home country). Anyway, we were able to finish the prototype and we didn't spend too much time on goldplating the code and making it look pretty. It was mentioned in the specifications that this is not an HCI so we didn't want to wrap it in bootstrap or whatever css library we stumbled upon. I personally usually have the tendency to make the code look pretty on the back and in the front, most of the time in useless scale, but I think this semester taught me out of it, which was something that I wanted to change in me anyway. I think we were able to quickly skim through the specifications of the Spring framework, make our way around it, quicly distribute tasks among people which I wouldn't have been able to do in the beginning of the year now that I look back at it.
11 20180419 20180419_ode_to_professionals.md Ode to professionals A professional doesn't dress well to impress and fake his professionalism. He dresses well to feel professional. A professional is not hack-y, quick or dirty. He is a thorough and precise. A professional is not arrogant or know-it-all. He works together with his colleagues, learns from them and helps them. A professional understands planned work, unplanned work and plans for the unplanned work. A professional takes responsibility but never blames. A professional always learns. A professional uses the right tool for the job. Not the one that is most hyped at the moment, nor the one he is just most familiar with but too complex or too simple for this job. A professional understands his human limitations. Thus he never overworks to show off or mistreats the rest of his life for his craft. A professional always tells the truth, voices his opinions where they are relevant to the work and protects his craft and his colleagues. A professional understands or tries to understand to the best of his abilities the risks and tradeoffs of choosing one solution over another in the broader context of the work being done.
12 20140311 20140311_week_90n.md Week 90n Formal Methods in Software Engineering. From what I got from the lecture, this is a mathematical way to describe requirements and the process of developing software. Here are some links that completely taught me about formal methods: * [http://homepage.cs.uiowa.edu/~fleck/181.html](http://homepage.cs.uiowa.edu/~fleck/181.html) * [http://web.mit.edu/16.35/www/lecturenotes/FormalMethods.pdf](http://web.mit.edu/16.35/www/lecturenotes/FormalMethods.pdf) Of course, that's next to the brilliant lecture slides and note materials. [TODO: Pile of bricks] This can be useful in safety critical systems and security systems. We were introduced to the idea of the Object Constraint Language. I was left with the impression that the proves can be so hard and tricky, generated from a computer, that it's hard to understand it as a human. However software tools are really not mature enough to work with. Therefore it's a good idea, but without much practical applications. Other good ideas without much practical applications: * [Windows 2000](http://www.computerhope.com/jargon/w/win2000.htm) * Eating a cactus * [Building a death star](https://petitions.whitehouse.gov/response/isnt-petition-response-youre-looking) * [Building a death star-building](http://www.independent.co.uk/news/uk/home-news/walkie-talkie-building-in-london-to-have-death-ray-problem-fixed-9127265.html) * clippy ![clippit](/media/20140311_week_90n/clippit) Did we pass the phase where we were learning useless stuff for some practical application (like learning how to be semi-interested in a manager meeting) and went into the learning useless stuff for no practical reason? How I would do things differently is spend some energy into teaching us how to become our own bosses. The idea goes like this: if banks (for example) wants us to know these stuff but everyone is complaining, then get rid of the banks and you'll get rid of complaining students. Just saying.
13 20180510 20180510_google_duplex_and_the_struggle_of_the_moth.md Google Duplex and the Struggle of the Moth There is this one [episode](https://www.youtube.com/watch?v=oo7yIEAh65M) of the TV-Series LOST that I can’t seem to shake off my mind. It’s episode 7 of season 1 titled “The Moth”. I believe it’s one of the best hours of TV I have watched and the metaphor certainly comes to my mind quite often. One of the main characters (Locke) teaches another one (Charlie — who is struggling with withdrawal symptoms of heroin) that nature’s way of finding the best is through struggles. Locke demonstrates that by showing him a moth in its cocoon shortly before emerging from it. He says that he could help the moth — he has a knife and he can rip open the cocoon, helping the moth and letting him out. But the moth is not ready if it can’t break his own cocoon. The episode is worth watching as the two larger stories represented in the episode are also an expansion of the metaphor. {% rawhtml %}<iframe width="560" height="315" src="https://www.youtube.com/embed/oo7yIEAh65M" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>{% endrawhtml %} ## Google Duplex I watched yesterday parts of the annual Google IO event where the tech giant presents what has it been doing for the past year and where it’s heading for the next one. This year they have revealed a lot of things around Machine Learning and lots of ways that it is going to interact with us. One of the most talked about ones is called [Google Duplex](https://www.youtube.com/watch?v=D5VN56jQMWM). The idea of Google Duplex is to tell your Google Assistant “OK Google, make a reservation for that restaurant” and Google will call the restaurant on the background and make the reservation for you. And it won’t be a person but a simulated voice. The technology shown in the demo is incredible — they went even so far as to incorporate “uhmms” and “aha-s” in the voice simulation at the right places as to sound more natural. If you haven’t heard it yet, have a listen on their recent [blog post](https://ai.googleblog.com/2018/05/duplex-ai-system-for-natural-conversation.html). I think for the first time I would give a pass on the Turing test — I heard the voice samples before reading the post, I assumed it’s some natural voice thing but I could not tell who is the robot and who is the person. {% rawhtml %}<iframe width="560" height="315" src="https://www.youtube.com/embed/D5VN56jQMWM" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>{% endrawhtml %} While I am absolutely amazed at the technological advances, the voice synthesis, the natural responses, the real-time answers, the handling of complex situations demonstrated — I have also been thinking a lot about technology from the ethical standpoint. There is no point probably of asking “Do we want that” as technology will move forward no matter our preferences — if it wasn’t Google this year, it would be Microsoft next or a green startup 3 years from now. In the large picture it wouldn’t really matter who came up with the technology, obviously it would happen. But can we really start talking about regulating it somehow? I am shaky on my opinions of whether AI will become smarter than us and not allow us to regulate it — good arguments on both sides, we will have to wait and see I guess. But for now, we can regulate it. Why this one though? We have had natural sounding Siri-s, Alexa-s and Cortana-s for almost a decade now with vast improvements in the last 5 years. What is different about Google Duplex? Again, if you haven’t heard it, you must. It does not sound like the voices of your assistant. The feeling that at least I got is… well, let’s say there are some people I know that talk way more mechanically than the AI on the phone. The little nuances of “mhm”s go a long way. Many questions popped into my mind and while reading news articles, comments on HN and reddit. Here are a few in a listicle way: * **Wouldn’t agents mind receiving calls from bots?** — As far as I understand many will actually prefer calls from bots — at least it will be a straightforward conversation and to the point without dealing with weird creepy people. * **Will they know it’s bots?** — They might learn some patterns. But now the other side learns too, it’s not a preset algorithm as good-old-programming. The bots are learning responses so a call this month might be different than a call last month. And the voice cover this up. But maybe people are still smarter and they figure it out, then… * **Would I be bothered that the other side is a robot?** — As in, if I understand the other side is something I can’t hurt the feelings of, because it doesn’t have feelings, I may be much more harsh and avoid social politenesses that we have built in our society. If at the same time I manage to guess bots from people but I have a failure false positives or false negatives, would that deteriorate our human conversations? * **The bot now has a personality?** — It’s not anymore straight out factual answers. Embedding uhms and politeness cues like Thank you and Goodbye gives that bot a personality. It could be overly polite or underly polite. Is the bot going to learn the English way of over excusing itself all the time or the harsher American way of straight to the point? What are the cultural implications — because Google is an American company, are all the cultures going to become slowly just one? * **What if the agent is also a bot?** — Google didn’t say or confirm if they provide the same service on the other side — a bot being the agent. It hinted it though and there is no reason it won’t provide the service next year. Then two bots will be talking in this highly inefficient human way? Will they send silent cues that they are bots and negotiate a more efficient protocol midway? All these questions and pondering came to my mind just from this slight improvement in the voice output. But the one that I am mostly thinking about these days is the problem of the increasing social isolation due to technology. Bear with me. ## Social isolation (?) Google creates this Duplex service. How much time does it actually save? It won’t take more than 2–3 minutes to make a call or make an online reservation. Sure, it also lifts up some of the decision fatigue from the day and helps social anxiety types. But does it help them really? Get back to the cocoon. We are getting more and more help from technology. At the same time the real-life interactions with people are becoming less and less. We IM and email more, we meet less. We swipe, like and look passively at photos, sending little yellow faces of emotions and we smile genuinely less. A phone call is in the middle of what I would call a real-life interaction and a fake interaction like chat. It does have real voice and it’s very instantaneous — unlike chat or email, you can’t spend much time re-thinking your response — it has to be almost immediate, thinking on the spot. You don’t see the person face to face so you also have to guess some of the social cues from the voice alone. This kind of interactions maybe helps us a little bit in keeping the humanity. Why is this important — keeping the humanity? Well, because we see what happens when we avoid or deny our human nature thinking that technology solves it all. We isolate in our own bubbles, we go back to our cocoons and we stop fighting, stop having the struggle with real life. This makes us passive, goal-less, makes life meaningless, lonely and empty. It’s not just Google Duplex that does this — far from it. But it’s one more step towards the fake interactions. Because the thing on the other side doesn’t feel offended, it is not hurt by my words, there is no risk of making a human being feel happy or sad and when I talk to bots and they don’t feel anything… I lose empathy. I lose the training of understanding social cues and feeling what the other person is feeling. I lose the struggle of figuring out what went wrong and trying to fix it. I stop evolving. Of course this is an exaggeration. Yes, I am jumping to conclusions. Maybe I am wrong and this actually helps us get better with other people — use bots to train us out of human suffering. But the more I learn about technology and people, the more I experience the effects of how technology makes me lazy and complacent, the more cynical I become about the future. And I believe it’s healthy to have these sorts of conversations and queries because I think many people in technology are sometimes so driven to achieve the goal of progress that forget about the ethical implications. I am one of them.
14 20180711 20180711_mem_graph.md Build a memory graph in linux terminal I was searching for a terminal based graph of usage of memory but I couldn't find one, so I built it using simple bash and python. First create a directory called `mem` and enter it with `cd mem` Then run the daemon part of the monitor: ``` while true; do free -m | head -2 | tail -1 | awk '{print $3}' > `date +'%Y-%m-%dT%H:%M:%S%z'`; sleep 1; done ``` To actually build the graph, use this: ``` watch -n1 'for f in `ls -r | head -30`; do num=`cat $f`; python -c "print(\"{} {}\".format(\"$f: $num\", \".\" * ($num/10)))"; done' ``` And the result is something like this: ``` 2018-07-11T11:26:36+0000: 330 ................................. 2018-07-11T11:26:35+0000: 316 ............................... 2018-07-11T11:26:34+0000: 285 ............................ 2018-07-11T11:26:33+0000: 236 ....................... 2018-07-11T11:26:32+0000: 235 ....................... 2018-07-11T11:26:31+0000: 236 ....................... 2018-07-11T11:26:30+0000: 236 ....................... 2018-07-11T11:26:29+0000: 238 ....................... 2018-07-11T11:26:28+0000: 236 ....................... 2018-07-11T11:26:27+0000: 236 ....................... 2018-07-11T11:26:26+0000: 240 ........................ 2018-07-11T11:26:25+0000: 236 ....................... 2018-07-11T11:26:24+0000: 236 ....................... 2018-07-11T11:26:23+0000: 236 ....................... 2018-07-11T11:26:22+0000: 239 ....................... 2018-07-11T11:26:21+0000: 236 ....................... 2018-07-11T11:26:20+0000: 343 .................................. 2018-07-11T11:26:19+0000: 330 ................................. 2018-07-11T11:26:18+0000: 327 ................................ 2018-07-11T11:26:17+0000: 313 ............................... 2018-07-11T11:26:16+0000: 287 ............................ 2018-07-11T11:26:15+0000: 238 ....................... 2018-07-11T11:26:14+0000: 236 ....................... 2018-07-11T11:26:13+0000: 236 ....................... 2018-07-11T11:26:12+0000: 237 ....................... 2018-07-11T11:26:11+0000: 236 ....................... 2018-07-11T11:26:10+0000: 236 ....................... 2018-07-11T11:26:09+0000: 236 ....................... 2018-07-11T11:26:08+0000: 240 ........................ 2018-07-11T11:26:07+0000: 237 ....................... ```
15 20140216 20140216_week_1^2+1^2+2^2+3^2.md Week 1^2 + 1^2 + 2^2 + 3^2 Behavior driven development is a new thing for me. It looks like an improved, revised and more human-oriented refinement of Test driven development. It describes the process as a human would like to see, not in terms of some artificial tests that while might be uselful, are sometimes hard to grasp. The workshop on JBehave is easy to follow and useful. HOWEVER... I start feeling that PSD tries to introduce as many software frameworks as possible in it's given timeframe without actually giving us the time to explore it and really understand it. Starting with the Spring fiasco in the first semester, where we were already overloaded with work from other courses, this brought nothing new to my mind and as a team we strugled to understand exactly what is that and why we would need it to do our second sprint. We continue with Jenkins, OSGi (Apache Felix) and now JBehave. While it may be interesting to get a taste of the technology, I don't think it's too productive as it mostly wastes our time not doing our team project which for most teams is in it's final stages. I know that because I worked with Ant and Maven during the summer and I am convinced that the time PSD gave us for ant and ivy was not nearly enough to get what is happening. I am hearing the voices of my fellow students that say they have no idea what these are doing at all. And I feel like them for the rest of the frameworks. Wouldn't it be better to merge PSD and the Team Project? Remove the artificial excercises that PSD gives and rather use them in practice in the real Project. Still keep the lectures and optional tutorials, but don't force us to use frameworks which we can't possibly grasp in less than a week. Rather give us the option to use whatever we want covering the principles of PSD in our team project. Wouldn't that make more sense?
16 20140121 20140121_week_mg.md Week Mg It took me the better part of the week to make my mind understand the difference between an object and component (of course, next to reading and writing about all my other courses) but I think I finally got it. A component is a group of objects that can live by itself and can connect via middleware to other components, providing ins and outs of the component. It does resembe a lot an object, but an object while it's describing an entity, it usually cannot work by itself. The closest to a component in fact is actually a merge by a package and an object. The workshop was interesting, having a glimpse of Apache Felix although I think it will take me some more time to really grasp the concept (maybe work proffesionally on it?). I also rebooted the team project this week, after a very lazy winter vacation. We are having some minor troubles with python but otherwise the front end is almost done but the backend does need some more work especially on the algorithms and scoring part. That's the week wrap. Now party!
17 20140219 20140219_the_shape_of_the_universe.md The Shape of the Universe (Originally posted in useless Univerisity blog) *The shape of the universe is the local and global geometry of the universe, in terms of both curvature and topology (though, strictly speaking, it goes beyond both). ([Wikipedia](http://en.wikipedia.org/wiki/Shape_of_the_universe))* Astrophysicists have been trying for decades to identify the shape of the Universe through various observation techniques and tons of useless calculations. Most of them think now that it's flat. However yesterday, I have discovered the real shape - a revolutionary, never before thought of, groundbreaking and yet not so much surprising result that will change the way we are thinking about everyday stuff like butter. Bear with me for the revelation of this unusual story. I will go with a step by step proof, with a methodology of the scientific method applied at every step. It is an interesting read that I believe will enlighten the 0.26 people that are reading this blog. Here we go! * During the weekend I participated in a [Future Cities hackathon](http://open.glasgow.gov.uk/hackathon/). The topic was public safety. * We were a team of 11 people. We were one of the best ones in the CS course. And [Robert](https://www.facebook.com/rrobi) * [Robert](https://www.facebook.com/rrobi) is a parasite. According to [dictionary.com](http://dictionary.reference.com/browse/parasite): *a parasite is an organism which lives in or on another organism (its host) and benefits by deriving nutrients at the other's expense.* * As a scientist investigating the results of the work of Robert](https://www.facebook.com/rrobi) for half a year, I proposed the most natural cure - delete. Because of democracy and tree huggers, we decided to include the parasite in our team. Which proves that democracy would not let us live for very long (1). To make it clearer for the rest of the 0.01 people who are still reading - if democracy continues to keep parasites and not destroy them, there would be no food left on the planet. * The efficiency of the team was on average about 40%. (2) * We conformed to the average gender distribution in the industry. We had one girl who most frequently than not was on the 60% side of stuff. Again, conforming to the idustry standart. * Now for PSD. We did Katana board. Colourful pieces of papers no one looked at. * Again for PSD - we wrote documentation and comments. In a HACKATHON! Yes, we are that brainwashed by now. * Continuing the PSD strike - we drew diagrams and had a plan. And also requirements list. A github repo. Actually 2 github repos (why?). And testing. * Maybe continuing on the bussiness and management instructions - we worked a whole day on a presentation. * By the end of the hackathon, when we had to present, we didn't have a working demo. Something about `HTTP 400/401`. * The overtrained presentation was cut short in the middle of a sentence. (3) * No demo. 1 screenshot on the intro page of the documentation. (4) * Because of (1) (2) (3) and (4) - 10 people and [Robert](https://www.facebook.com/rrobi) won £20,000 - [proof](http://open.glasgow.gov.uk/the-final-day/) Conclusion: we did everything wrong and we won. What does that have to do with the shape of the Universe, a Plank constant amount of people would ask. We continue our observations. * I have been writing my blog post sincerely, spending half an hour to an hour per blog post per week, awlays on time, coming up with songs and lyrics, pasting pictures, resources, expressing my feelings about the course and the material, the tutorials, the assesed excercises and the team work. * I have B1. * Another blog with 5 blog posts in the first semester and nothing else also has a B1. * Another blog which most articles have been written in a night has A5. All right? * One of the bests in our CS course has been declined a job in a bank. The guy has been working in Amazon, participating in competitions, knows algorithms and data structures better than anyone else in the course, C, C++, Ruby, PHP and JS are just part of the languages he is profficient in. He has been declined a job, the interview for which is a complete joke. Robert got it. Right, OK? (173 times per hour...) ## The shape of the Universe is хуй. {% rawhtml %}<small>Small font for Mr Singer and Mr Storer: I have included external references which may confirm or contradict what Mr Storer or Mr Singer say respectfully. I have included how I might tackle problems differently to avoid the problem. See self.this blog post for example. I am very critical of the material in the lectures - they are useless, completely wasting mine and 100+ people's time on Mondays and other days of the week, completely missing the point. You CANNOT separate work in a team because part of the team will never do what is supposed to do and CANNOT hope to resolve issues the night before if the team includes Robert and the University is completely unable to deal with him or provide us with a guidance. Although the mention of the Robert is linked to a particular facebook profile, I will say in this small font that this is completely not intentional and any similarity between a name and particular person is completely coincidential. Democracy say I can do that. This is clearly a methaphor of a person who does no work and which exist in about 100% of the teams in University. One of the reasons that parasites can pass freely from one year to another because the University is not able to filter people who cannot do work and allows everyone. Why is that - money. After this note, I have covered all the suggestions sent in an email and therefore demand to have the highest grade for this blog. Thank you!</small>{% endrawhtml %}
18 20140207 20140207_week_ngc_6402.md Week NGC 6402 The consortium was a very interesting experience. 14 people who have hardly ever talked to each other, gathered in a room to discuss something we hadn’t had time to read or understand what exactly is required from us. 13 people kept silent some minutes. I started to speak. “So... any ideas what to do? Anyone?” Laugh from 12 people. “Yeah, well, we were given this piece of paper. And I guess we need to do it.” Good - I thought to myself. No one takes this seriously. “Okay, so I see some user stories here. And there is cost and priority. Shall we start reading them one by one?” 11 people blushed and tried to hide as if I was going to pick them. But the others showed a bit of excitement - I guess they thought of me as someone who can lead them and they wanted to just follow. Pure old education - a person (with very, VERY questionable authority) stands in front and speaks and 10 other listen to him. So we started reading them. And we started voting in the MoSCoW system. That took about half an hour. “And now what?” - I said. 9 of the fellows never even voiced their opinions. Silence. Then laugh. We didn’t have the slightest idea. I saw cost. Made a stupid joke about assigning bitcoins. Laugh. Silence. Then one of the supervisors entered the room. She asked us if we have a plan. Hah! A plan. Yeah, we had a plan. To lose another day doing PSD. Rather than doing an interesting team project, or read the Operating systems book and playing with Linux. Rather than writing code for creating a web server, making a website, rather than optimising SQL queries and actually doing computing science, we were planning. Oh my Random, I so hate planning! Another 8 minutes we did mostly nothing while we suggested playing poker or something to assign cost. Someone was running for paper, then we decided to use the board and voice our opinions. I started to understand what we needed to do. Another MyCampus. AGAIN! In the first semester we did it twice, then threw it away. Now we are going to do it for 7 weeks. And throw it away. “Shall we move number 6 to the Could section?” someone proposed. Oh, the heat of the debate! Everyone took part, we started discussing it as if it was our life. Just kidding. We moved it. Period. Later in the afternoon, after I was pondering and writing code for my team project (which I’m super psyched about!) we had to return to the room and create components diagram. 5 minutes no one had any idea what is that. I stood up and started drawing. People thought I had an idea. Oh boy! Anyway, after they got it that I’m just a drawer, not a professor, they started taking part. ![I have no idea what I'm doing dog meme](/media/20140207_week_ngc_6402/i_have_no_idea_what_im_doing.jpg) It was painful, boring and useless. I thought that we have to separate the components and each team work on a component for the next few weeks, then we gather again and we combine or whatever. Nope. Turns out each team will do it’s job, this meeting was just educational. Got it. Okay. I am educated now, can I not do any more PSD? Oh, oh! 4 minutes left! We need to draw officially, send the picture and present. Me and my team mate who actually does work besides me met our supervisor on the way out. The 3 of us spoke briefly about our project. Turns out we are in a pretty good position of publishing a paper! Yey! Enough fun, back to reality... All righty, presentation. The room was full (unusual). We were the 2nd to go. Each and every one of us were making jokes. No one took it seriously. It was actually good one hour, full of laugh! What a way to lose a very precious day of 100+ bright young minds! Bravo, University of Glasgow! Bravo! I care about the accreditation from IET, BCS, GTFOFHfKLSHJ78 and all the rest. I would like to please waste another 1 year doing PSI, another countless hours writing blogs and essays.
19 20131103 20131103_week_sqrt_25_we_had_the_guts.md Week sqrt(25) - We had the GUTS What a week! I organized my first Hackathon, a dream I had for so many years. Our Tech Society board had the right motivation and the guts to do it. This post is to thank everybody who contributed and made it a reality. We had an amazing array of sponsors such as SIE, InformaticsVentures, MetaSwitch, Barclays and JP Morgan some of which provided our awards at the end of the competition. Challenges were provided by Skyscanner, SAS, Dynamically Loaded, Future Cities and SUMGroup. Special thanks to Dr. Matthew Chalmers - generous contributor both financially and in terms of challenges.We partnered with Dominos and Naked soup who provided the main meals for the event. Amazon and GitHub provided help with AWS instances and private repositories during the event which helped people collaborate and put the programs in production environment, using the power of the cloud. Of course, many thanks to The University of Glasgow and the School of Computing Science that helped us get the venue and supervise the whole event - thanks to Joe Sventek, Jeremy Singer and Tim Storer. I can't count the people we need to thank that to happen. Big applauds to the team - Tomasz Sadowski, Josh McGhee, Adam Kurkiewicz, Iva Babukova from the GUTS board who were running all the time to get the things right. Thanks to our apprentices Milorad Felix, Iulia Popescu who will take over next year and have already contributed a lot this year; our communicator and social media - Magda Kowalska; our drivers Keir Smith and Stefan Balling which got our food supply; our photographer Ralitsa Kostova. Thanks to John, the janitor from Sir Awlyn Williams building who helped us in uncountable ways providing support at any moment. Last but not least, thanks to all our participants. 11 teams, 50+ people, 5 challenges, 48 hours. 20 large pizzas, 50 sausage and bacon rolls, chips, sweets and fruits; unmeasurable amounts of liquids, cola, coffee, energy drinks. Many tweets, facebook pictures and status updates. I think we showed our students had the guts to go through this amazing weekend producing ideas and solutions for the short time. And we are just getting started... Now to my opinion about user stories - the weekly topic in PSD. I think they provide the final layer before actually coding, examples (not a 100% coverage) which are exactly specified. I am trying to summarize this in my head. So far: we have requirements - the endgame, the what needs to be done. We also have a plan of how we are going to do this - our tactics. Now we have the examples, the concrete final user experience that needs to be implemented but also the importance and thus now we can set when we should start implementing the stories. I particularly liked the MoSCoW (Must, Should, Could, Won’t have) method of prioritizing the importance to the stakeholders of each requirement. In my mind, I see a bit of overlap between the requirements (the theory) and user stories (the examples) in a good way - I always learned things this way.
20 20180331 20180331_heres_how_i_go…usic_from_google_music.md Here's how I got my music from Google Music (as of March 2018) At some point I uploaded all my music on [Google Music](https://play.google.com/music) - they provided 20,000 songs upload for free. Then of course, they started pushing their paid service - fair enought. I tried the trial several times, I paid subscriptions several times over the years, but I never enjoyed the suggestions it was giving me and somehow the music I wanted, wasn't there. So eventually I always just went to YouTube to listen to music. But now that I am trying to detach a little bit from the cloud and [get my data back](http://pi2squared.blogspot.be/2018/03/getting-back-control-of-my-digital-life.html) I wanted to try to download my music from Google Music. ## Google Checkout My first attempt was the assumption that I can get my music as a part of the standard Google Get Back My Data or whatever. It was fairly easy to get there - [MyAccount](https://myaccount.google.com/) from my profile image, then [Takeout](https://myaccount.google.com/privacy#takeout) then click on Create Archive. ![google checkout](/media/20180331_heres_how_i_go…usic_from_google_music/google_checkout.png) All seems good, right? Do you notice the small print? ![google checkout small print - you can't download your music](/media/20180331_heres_how_i_go…usic_from_google_music/checkout_small_print.png) Ah, I need to use Google Play Music Manager to actually get my music. Otherwise, I just get a metadata. Fine. Following the link doesn't really lead me to downloading the Music manager, just a help page. But I am Smart (or stubborn), I navigated around, found the link to actually [download](https://play.google.com/music/listen?u=0#/manager) it. ## Google Music Manager ![google music manager](/media/20180331_heres_how_i_go…usic_from_google_music/google_music_manager.png) I install my music manager, sign in and select to Download all my music, specify a folder... and nothing happens. I am slightly annoyed but very stubborn so I push it. So let's see what's hapenning. The .config folder in my home directory contains google-musicmanager and a log. Let's tail it: ```bash pi2@pi2-home-laptop ~/.config/google-musicmanager $ tail -F google-musicmanager.log [../Shared/HttpClients/CurlHttpClientImpl.cpp:57 ::CurlSslVerifyCertificate()] 2018-03-31 11:10:08,371 +0200 ERROR TId 0x7f5756183700 curl_easy_perform failed with 60 [../Shared/HttpClients/CurlHttpClientImpl.cpp:402 CurlHttpClientImpl::performPrivate()] 2018-03-31 11:10:08,372 +0200 ERROR TId 0x7f5756183700 Certificate error [../Shared/HttpClients/CurlHttpClientImpl.cpp:406 CurlHttpClientImpl::performPrivate()] 2018-03-31 11:10:08,372 +0200 ERROR TId 0x7f5756183700 Call to https://sj.googleusercontent.com/download?id=[REDACTED]&itag=25&source=skyjam_user_upload&o=[REDACTED]3&uits=1&tid=[REDACTED]&ip=0.0.0.0&ipbits=0&expire=1522487498&sparams=id,itag,source,o,uits,tid,ip,ipbits,expire&signature=[REDACTED]&key=sj3&targetkbps=768 failed with result 3 [../Shared/HttpClients/CommonHttpClientImpl.cpp:50 CommonHttpClientImpl::perform()] 2018-03-31 11:10:08,393 +0200 ERROR TId 0x7f5756183700 Failed to Send Request Result - 3 [../Shared/HttpClients/DownloadFileClient.cpp:220 DownloadFileClient::Execute()] 2018-03-31 11:10:08,397 +0200 ERROR TId 0x7f5756183700 Failed to download song id=[REDACTED] [Core/DownloadProcessor.cpp:128 DownloadProcessor::processDownloadRequest()] 2018-03-31 11:10:08,825 +0200 INFO TId 0x7f5756183700 errno 2 calling stat /home/pi2/.config/google-musicmanager/00 Brett Domino Trio- Ultimate Ch.mp3 [../../Shared/TpnBase/TpnPortC.c:150 ::_Port_GetFileInfo()] 2018-03-31 11:10:08,883 +0200 ERROR TId 0x7f5756183700 Failed to Verify Certificate: /C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.googleusercontent.com (unable to get local issuer certificate:0x00000000) [../Shared/HttpClients/CurlHttpClientImpl.cpp:44 ::CurlSslVerifyCertificate()] 2018-03-31 11:10:08,883 +0200 ERROR TId 0x7f5756183700 Certificate /C=US/ST=California/L=Mountain View/O=Google Inc/CN=*.googleusercontent.com: -----BEGIN CERTIFICATE----- ... ``` (I redacted some parts of the output, not sure if any of them are sensitive but better safe than sorry). So it's an expired certificate from what I gather. I guess there might be some vulnerability with this level of unsupported tool but I don't want to do this now. I want my MUSIIIIC. I am getting a bit more annoyed and a bit more stubborn. Time to fire the hard guns. ## Windows Music manager client Google must be supporting Windows client better. Obtained a completely legitimate copy of Windows 10, spin up a virtual machine on Virtualbox, download the manager, try to log in and... ![google music manager - 2 step verification](/media/20180331_heres_how_i_go…usic_from_google_music/music_manager_two_step.png) Huh? Nothing happened. Okay, let's try the Google Authenticator... ![google music manager - authenticator](/media/20180331_heres_how_i_go…usic_from_google_music/music_manager_auth.png) Okay, I am quite angry now. ## Manual to the rescue My only left option seems to be to either try to dual boot and hope Google Music manager detects that it's on a virtual machine and for some /security?/ reason decides not to authenticate me. Or manually download the songs from the web interface. I decide manual is going to be quicker - I've got about 2000 songs. ![google music web - 100 limit](/media/20180331_heres_how_i_go…usic_from_google_music/music_hundred_limit.png) Arghhhh!!! So in a batch of 100 I will need around 20 selections... Should I automate? Let's go to [xkcd](https://xkcd.com/1205/): ![xkcd - is it worth the time](/media/20180331_heres_how_i_go…usic_from_google_music/is_it_worth_the_time.png) I think I will be better off manually. Besides, inspecting the code seems that for optimization reasons, the song list is not loaded in its completeness but it keeps around 20 songs in the DOM and the rest it dynamically fetches on scroll events. The good news is, the table keeps a data-index field with consequitive numbers so that I can at least find where I am and download in batch of 100 ![dev tools - inspect elements of the table](/media/20180331_heres_how_i_go…usic_from_google_music/dev_tools.png) Oh, just one more thing - you can download a certain song just 2 times from web and apparently I have already downloaded some before... ![maximum two downloads](/media/20180331_heres_how_i_go…usic_from_google_music/max_two_downloads.png) I am not too happy with this. But I got my Music back. C'mon, Google... Just to put oil in the fire, today Google announced that it's discontinuing [yet another service](https://developers.googleblog.com/2018/03/transitioning-google-url-shortener.html) - goo.gl.
21 20131209 20131209_week_x.md Week X This week was very intensive for me. I worked on my TP every day for 8+ hours since I wanted to complete most of the implementation before I leave for my Christmas holidays. I learnt a lot, practiced a lot and played with design, Javascript, Django, Python, Postgres and the varios additional JS libraries out there that we need in order to visualiza the tweets. It is not my first encounter with any of these technologies but I definitely broadened by experience with them, feeling more secure when applying for jobs. Tomorrow is the team presentation. I feel we made very good progres in the last 5-6 days and now feel much more secure in what is going on with the architecture, final design and technologies that we will be using. Of course, we still haven't had any user evaluations but we are busy building the system which we will fine tune with A/B testing and direct user observation. We have tons of features waiting on the MoSCoW queue and also reflected in the github issue tracker. We have cleared some already but there are many more to come.
22 20140327 20140327_summary_entry_ii.md Summary entry II If the first semester was balanced and happy with occasional hiccups, the second semester was quite a different story. Courses like Operating Systems, Network Systems and Databases were much more demanding both in theoretical knowledge and assignments. I enjoyed them and now I can say I get these areas much deeper thanks to both the material in the lectures and the assignments which also helped me solidify my knowledge in C. It was interesting (from an academic practice point) to build a web server, chat program and disk driver even though not many of us will have to do this in the future. However, it definitely made me get a better understanding of some of the inner processes. On the other hand, optimising database queries can actually be applied to the real world and I am happy we did that. In addition to that, the team project had reached a phase beyond just mocks and requirements capture and implementation work needed to be done. Another semester long project was the Distributed Information Management assignment which required building a website from scratch using Django web development framework. This was not interesting or valuable for me as I already knew how to do all of that and therefore tried to encourage the other people from my team to spend a bit more time on it and I would help filling in whatever parts were unclear. In the end, we had a working application but it was a result of mainly my work and one of the team members didn’t participate at all whatsoever. ## Contribution and Achievements On the PSD front, unfortunately, I can’t say what stayed in my head except constant frustration with the setting up of frameworks. As I said several times in this blog, a framework cannot be taught in a week. Getting the “taste” of it clearly didn’t work for me as I couldn’t see the practical application. If PSD was the only subject that I had to concentrate on, surely, I would be able to practice AspectJ, JBehave, Jenkins, OSGi, Apache Felix, Ant and Ivy. However, next to the other subjects, I had maximum of one day in the week to actually try to do that. It didn’t work. The assignments (bi-weekly sprints) were implemented with the limited understanding that we got from the frameworks. As it was mentioned the more important part had to be team work. So I decided that I shouldn’t concentrate that much on the technicalities but try to separate the workload between the people. And here we get to the second part of this summary. ## Problems Encountered I suppose I had constant negative criticism of the PSD course, which I hope is obvious in my previous posts, student-staff meeting (in which I tried to summarize the general feeling, not only mine, but the whole class) and in the feedback for the third year. Basically it boils down to 1) Too many frameworks 2) Artificial assignments and 3) Too much assuming that everyone will work for a company, rather than venturing something of our own. Even with all these complaints, that would be mostly irrelevant had the teams been better balanced. If I could genuinely separate the workload of the course to the other team members in roughly equal parts, the assignments would be much more doable and enjoyable. However what I noticed not only in my team, but in many others is the fact that one or two of the people were doing the majority of the work with the other two doing nothing to very little amount of work. My working hypothesis is that the pseudo-random algorithm of separating people in teams was “two with above average marks + two with below average marks” in order to equalize it. Let’s assume that this was indeed the case. What this easily leads to is demoralizing the people with lower grades (as they quickly can see that they can’t keep up) while at the same time annoying the people with the higher grades and effectively making them do all the work. This leads to a positive feedback loop in which the described effects are amplified during the year. Additionally people with the higher grades have (usually) always been above the average and thus want to have the good grades at the end of this year as well. Same for the people with the lower grades - they are used to not showing the maximum and thus don’t care about it so much. Of course the deltas are supposed to solve the problem with the grades. However this doesn’t help much with the total less acquisition of knowledge and practice in the average case as the feeling of doing all the work feels unfair through the year. If this way of combining people in the team is in fact true, then this needs to be rethought for next years. I would vote for stricter exams at the end of 2nd year and combining people based on roughly equal ability rather than trying to compensate for the slow learners. Slow learners will always be that way, smart learners can’t teach them what they couldn’t acquire in 20 years of their lives! Lastly, I would like to seriously criticize the argument that “This is how teams work in the real world”. First, people who don’t do work will be fired. I have seen and heard about people who have done absolutely 0 work (no group meetings participations, 0 lines of code for any of the team projects, constant deferring and not taking responsibility for work etc.). These people would be fired in the “real world”. Second, in many tech companies you can get some choice of the people in the team (this is not 1980s!) and if something doesn’t work, there are mechanisms to raise this issue. In the University, there is no such mechanism. ## Learning The things that I actually found useful in this second part of the course is the components idea and continuous integration idea. The components does provide a good separation if implemented correctly and people can (in theory) work on different parts of the system and then combine it to result in a big, cohesive system. The continuous integration is another thing that I enjoyed - fully automate everything. One of the teammates actually is part-time working and helped me understand and showed me some useful tricks. Unfortunately I didn’t have time to practice these correctly, but rather hack working solutions for the assignments. Lastly, talking about hacking, I also got to know that nothing of this matters as long as you can talk convincingly and give your ideas to the right people. This can win you a £20,000 hackathon while doing all the other things wrong. It's a great story and if you would like to read more about it, I would recommend reading my real blog. And finally, out of all models that we learnt this year, I found this one the most useful: ## [http://programming-!@#$%^&*.com/](http://programming-motherfucker.com/)
23 20140219 20140219_week_ans^wer.md Week Ans^wer As far as refractoring goes, here are some links that I find really useful: * [http://refactoring.com/](http://refactoring.com/) * [http://msdn.microsoft.com/en-us/library/719exd8s.aspx](http://msdn.microsoft.com/en-us/library/719exd8s.aspx) * [http://www.c2.com/cgi/wiki?WhatIsRefactoring](http://www.c2.com/cgi/wiki?WhatIsRefactoring) Of course, I have used the refractoring facilities of Eclipse, I learnt that during the Google's Android camp in 2012 which was structured in a hackatonish way. I find it really useful as it saves time and helps me write better code. ![Dogge meme - Such code, very IT. Much Edit](/media/20140219_week_answer/dogge.png) As far as software comprehension goes, I have had some experience during the summer reading other's people code. I used profilers as well. It helps to understand RAM and CPU in much deeper level. I actually asked them once to go to dinner. They refused. They said things are moving too quickly. Here are some links that I find useful: * [http://grok2.tripod.com/code_comprehension.html](http://grok2.tripod.com/code_comprehension.html) * [http://www.developerdotstar.com/mag/articles/read_codecomp.html](http://www.developerdotstar.com/mag/articles/read_codecomp.html) * [http://www.c2.com/cgi/wiki?TipsForReadingCode](http://www.c2.com/cgi/wiki?TipsForReadingCode) I would *praise* the material in the lectures. I think it was useful for people who don't know these things. However, I would *critisize* that we are learning that in third year - if people didn't know that already, they've been doing things very wrong with eclipse (basically using it as a text editor, not IDE). If they did know it like me, well, then it was useless. *How I would tackle it differently* is explained in the second year when we are doing Java. As my previous post here was censored(+), I provide a nice little story which summarizes my experience with PSD so far. It is relevant to this blog because it actually taught me something - your oppinion doesn't matter. You cannot change a system in which banks are involved (unless you are richer than a bank) and you cannot tag people. (+) - Well, actually you can find it here: [The shape of the Universe](/blog_post/20140219_the_shape_of_the_universe.md) ## The Dynamics of Ovis Aries Let me tell you a nice little story that doesn't begin with “once upon a time...” since the spacetime curvature actually bends a bit differently these days and as a result the time is now. Apparently, in our Universe, there is a big bad wolf who screams at the sheep when they use bad words or in any other way try to talk directly. So now, I am going to talk indirectly. I am going to call the things with their fake names. Anyway, having a protector is good – big bad wolfs are a good thing, otherwise who would the sheep be scared of? So he can scream and take you to even bigger, badder wolves who can talk to you calmly and disciplinary action you. But the big bad wolf is busy. He is running a whole northern part of the Universe. So instead, he makes the little good wolf to talk to one of the black sheep. This particular black sheep had made an earth shattering discovery several days earlier and natuarally, the Universe needs to protect itself from such discoveries, otherwise it will not be interesting for the generations to come. In the mean time, some of the pure white sheep have also decided to become greyish, testing the ground, trying to support the black one. The black one is very thankful and loves the sheep that became even a tiny bit grey over the days! The small good wolf tells the black sheep that the grass is good, there is nothing to complain about. Even though the grass is full of sh..ampoo which makes it soapy, slippery and inadequate to process, the small good wolf says that that's how the grass is in the real world. And when one day we go to the real fields, we will see grass with shampoo everywhere and everyone will require us to eat it. And if the black sheep wants to become at least a small wolf, he needs to trust the ones who are already wolves. “But” - the black sheep thought to himself - “do I want to become a wolf at all? Maybe I want to become a tiger. Or a lion.”. Well, no. This Universe teaches you how to become a wolf. Wolves work at banks and they are really rich and they eat the finest, the Head&Shoulders of soapy grass! And then they advise that the Universe should promote soapy grass. And so we are all connected in the Great Circle of Life... So the black sheep listens and nods and decides that he doesn't want any sized wolf talking or shouting at him anymore. He has tons of grass to eat, more than he ever even hoped for. Some of the grass is actually really pointy (which simply put, just points to another grass) and hard to process. In addition, the black sheep promises to work constructivly with sheep who just want to starve and not eat any grass. The black sheep will therefore construct a hut, because he had tried to construct everything else in the past and he ain't no architect to think of anything else. So in conclusion, the black sheep is really sorry, he will try not to discover anything else and eat the soapy grass in a timely manner. The end. {% rawhtml %}<iframe width="560" height="315" src="https://www.youtube.com/embed/ky-U15Hkw4g" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>{% endrawhtml %}
24 20131019 20131019_week_floor_pi.md Week floor(pi) I can't be more confused about git. I'm using it for about two years, pretty regularly, I get the point, I know it's good. But somehow I always manage to screw things up. Every time I discover something new about git, I love it and I think "NOW I got it!". And after few minutes, git slaps me like a lemon tied on a brick (H2G2 ref). I wish I could work better with it. I went through so many tutorials, I worked with it, I asked for help from more proffesional users. And I still manually copy the directory just in case. Version control is good, the idea is great, I love it to be able to undo things, to see how a project evolved with history, to branch and play on a new feature. But does it have to be so complicated? Can't it be ala Google Docs solution? Future will show. In the meantime - I decided to write a poem about git. It's rephrased very epic poem we have in Bulgaria called "The Rebels on Shipka" and it describes one of the last battles we had with the Ottoman empire back in the end of XIX century. I love it so much, I decided to take a spinoff of it. There it is: ## Ode to Version Control ![battle of shipka](/media/20131019_week_floor_pi/shipka.jpg) *Oh, Version control!* *Three weeks already the young and the brave* *the code they manage - and not misbehave!* *Github valleys eagerly repeat the roar of the battle.* *Horrible pushes! For the dozen time the old merges rattle,* *and fastforwards automatic clear some mess.* *Commits after commits! Pushes after pulls!* *The scrum master is pointing to the specs* *and shouts "Branch it first! Perform all checks!"* *And developers rebase, they talk and then agree.* *But github answers with another shout: Permission denied (publickey)!* *And with new rain of checkouts, statuses and logs,* *everyone blames, and clones, and forks.* *They code like lions, they compile like sheeps.* *The last commit had broken the release.* *And again git wins. The geeks disapointed, frustrated* *just do in the bash:* *rm -rf /* -------------------------------- *But the day will come,* *trust me, I know,* *where we will understand* *how to use version control.*
25 20131108 20131108_week_------rw-.md Week ------rw- The reason I love coding so much is that it's the immediate gratification of seeing something done so quickly after you learn it. Make the pixels move the way you want, when you want. Sometimes you are so excited of what you just learnt that you don't even read the whole documentation - just go and experiment... Sometimes? Well, usually. And that brings us to prototyping. It involves experimenting with the technologies, trying to find the limits of the chosen framework, programming language or library and not caring how terribly things may break. It's like being an architect with infinite supply of free bricks and manpower. How good is that? Of course, from serious SE point of view, it's lowering the risks as you go and try to experiment first before building the system. As Fred Brooks says in the Mythical Man Month, the first system never works. So here is the chance to throw away safely the first system and do the real work afterwards. Prototyping is cool, it brings you to those childhood days where you were not afraid of doing things, go as broad as your mind wishes and then see where the limits of the Universe are. It's fun. I also rewrote another famous song. There is my weekly entry. ## Let's Prototype *Hi - Hi! We're Glasgow CS students (Ah-huh)* *And we've got neews for you (you better listen)!* *Get ready, all you lonely coders, *and get those pens and papers from home!* {% rawhtml %}<br>{% endrawhtml %} *Meriment is rising - risks are getting low (oh-oh)* *According to all the slides, the sandbox's the place to go* *Cause tonight for the first time* *We're gonna grab a black pen (grab a pen)* *For the first time in PSD* *We're gonna start prototype! (and rise the hype)* {% rawhtml %}<br>{% endrawhtml %} *Let's Prototype! Hallelujah! - Let's prototype! A hype!* *I'm gonna code now, I'm gonna make myself get* *Straight into ideas' net!* *Let's prototype! Hallelujah!* *Let's prototype! Again and again!* *Draw, spike, code - I like* *Incremental prototype!* {% rawhtml %}<br>{% endrawhtml %} *This is an evaluation, to which I'll say adieu* *I took it to Boyd Orr seven... and I did what I had to do* *I learnt every language and made myself apply* *Because each and every program could be typed in vi!* *Let's prototype! Hallelujah! - Let's prototype! A hype!* *Let's prototype!! Hallelujah!* *Let's prototype!! Hyyy----pe!* {% rawhtml %}<iframe width="560" height="315" src="https://www.youtube.com/embed/INUzIi_pe9U" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>{% endrawhtml %}
26 20131115 20131115_week_g.md Week ^G The first sprint week looks really good now that it's its last day. We did manage to comunicate everyday with the team and hold standups - either through Google+ or live. We identified problems, assigned tasks to people and implemented our original idea with slight modifications which resolved issues found in the process. The course work seems good enough to be tested with the new (in our minds) agile scrum method of doing things. In theory agile sounds good, in practice it's even better. There is no more weeks of wondering if anyone did something and the frustration when someone didn't - everyday you have the chance to see what happened and help if there are any associated problems. We decided to implement the course work in Python with data stored in a MySQL database so that we can brush up that good language that we learnt in first year and revise our database knowledge. We'll definitely need it in the second semester. In the first year we didn't do object orientation but now that I know the principles I saw its real power. I immediatly run to an object oriented approach to solve the problem and now I must say it looks really good - not just a bunch of lines, trying to do the prototype and get over with it. It's modular, extensible, with appropriate comments. We were also able to separate our tasks working on different files as to avoid merge conflicts. Using git as a version control system, we didn't run into any problems with it (which is always a big success, see [Week floor(pi)](/blog_post/20131019_week_floor_pi.md) post for example). As of writing of this post we still haven't finished it completely as we need to populate our database and test it, but I feel positive about it. Back to work now!
27 20180630 20180630_blog.md This blog is now written in Markdown and synced with OwnCloud This has been an idea that has been brewing in my mind for a while - create a simple blog that I can write from anywhere, using standard Markdown syntax. Here's the [repo](https://gitlab.com/pisquared/pisquared) of the project. The blog itself is a Flask webapp with sqlite database that has a `BlogPost` table. The trick is that the table is acutally synced with flat files in a folder. Each file is a blog post entry. The folder itself is synced by owncloud client which is running as a daemon (currently behind a `tmux` but will do it as a systemd service soon). The key of the syncer is in the [flatfile_syncer.py file](https://gitlab.com/pisquared/pisquared/blob/master/flatfile_syncer.py). The sync is currently one-directional - when a file is created/updated/deleted, a blog post is created/updated/deleted. As an admin, you can CUD blog posts from the web interface but these are currently not synced to the file system. So whenever I start writing a (non-hidden) file in that folder, the contents are created as a blog post. There is still work to be done to make this blog fully functional like perma-links for the blog entries, index, tags and uploading images (probably also synced) but for now it will do. **to be continued...**
28 20180702 20180702_the_difficult_path.md On the difficulty of trying again ## Chess I don't even know how I ended up here. Something - was it an article, or a video - but something prompted me to watch some comentary on the chess matches between AlphaZero vs Stockfish. AlphaZero is Google's/Alphabet's AI machine - both the software of deep learning and through their proprietary TPUs hardware. Stockfish is (was) the best chess computer program in the world. Now, ever since 1997 match between the then world champion Garry Kasparov and Deep Blue, playing chess against computers has been useless in terms of actually beating them. It's of course because computers are not like people - once you create great software, you can copy it, distribute it and improve it - even if it's illegal or whatever, you can do it if you want to. Humans not so much - once a human dies the best way he can (so far) transfer the knowledge of his lifetime experience is through the slow, inneficient and incomplete multi-level interface of brain-words-mouth-air-ear-words-brain. Or similar path in writing. And errors occur on each interface - your thoughts and emotions are transcribed imperfectly with words, the brains on the two sides understand words in a different way and then transcribing them back into similar feelings is difficult. We call this empathy. Something like `json.dumps(yaml.loads('{}'))` - it may work perfectly sometimes but most of the time it's impossible to get the same message. Through thousands of generations of painful trial and error we were able to invent science, engineering and machines that are now beating us in some areas. And as argued above, once computers are able to beat us, they will always be able to beat us - because they can copy their collective knowledge. If I have a child, there is no way to transfer all the human knowledge that has been acquired. A tiny fraction takes a lifetime. A tiny, tiny, tiny fraction. How tiny? Play a game - go and click on [wikipedia's random article](https://en.wikipedia.org/wiki/Special:Random) page. Do this a hundred times. Give yourself a point if you have even heard *anything* about the title. Give yourself two points if you know what the title means. Three if you can say anything other than the description. Five if you consider yourself knowing quite a bit about it. You may score 10-15 points if you are lucky. Generally, you would score around 5. And the amount of articles on wikipedia are still imaginable - in the English wikipedia it's around 5.5 million. Okay, back on point - chess and AI. Even though it's now meaningless to play chess against computers, people still enjoy analyzing the games between people and machines and between machines themselves. It's an unsolved game - as in it's unknown whether there is a perfect strategy to always win as in much smaller games like Tic-Tac-Toe. And most probably we will never actually solve it in the mathematical way. The only thing which we can do is optimize solutions by trial and error. So far, the trial and error has been inspired by the human grandmasters and the experience that they have gathered through hundreds of years of playing chess, recording and analyzing the games. Through fine tuning parameters of the pieces values, converting chess positions into numbers of advantage for one side versus another, analyzing the possible moves on each move and iterating deeply through a almost brute force (but pruned brute force) search trees of min-max algorithm and doing that quickly on a fast hardware - we were able to beat humans. Computers don't feel emotions, don't get caught in the moment yada-yada. AlphaZero is a new category. Why? Well, for one, according to [the paper](https://arxiv.org/abs/1712.01815) AlphaZero had not had the advantages of these hundreds of years and collective - hundreds of thousands of years - of playing chess vs the grandmasters and fine tuned parameters and optimized search trees. But it had the advantage of playing versus different versions of itself for the equivalent of hundreds of thousands of human years. Yup. It had only **tabula rasa** of the chess rules as you would teach a beginner. No "develop a strong center in the beginning", "castle early" not even "keep material advantage up". It was up to itself to figure that out. Basically the idea as I undrestand it now is this (I am still to enter the "Machine learning" thing, so I'm simplifying because I don't know more yet) - develop a basic understanding of the rules and a neural network that assigns weights - initially random - to decisions based on outcome of win/draw/lose in old fashioned code. Then copy yourself with a few slightly tweaked weights. And then play the two versions against each other a hundred times. The one that wins survives and saves these weights. A new copy is developed with slightly tweaked parameters and played against the winner. And so on for millions and millions of games until there is this one version which you actually want to present as a competition. Brute forced trial and error. As I watched some of the interviews commenting on AlphaZero with the grandmasters of old - Gary Kasparov, Anatoly Karpov, Viswanathan Anand - they were quite amazed at the games the machine played, citing "alien" play. Of course it's alien, we haven't seen intelligence greater than human (so far). By definition, it's alien. And again remember - it played against not a mere mortal human, but the best computer program as of before. Sometimes it would completely sacrifice "common rules" like material advantage for positional, or play lines that the Stockfish would see as errors but later, Stockfish would reconciliate in it's analysis and see it as winning indeed. As a child, I remember being fascinated by chess and the chessmasters, I considered them with unhuman brains, able to think so much better than average Joe, that they see things which we can't see. Now I feel they are pretty much average Joe or me, looking at the machines in the same way. ## The bigger picture I feel curiosity and complete awe but more interestingly - resistance - when learning about these advancements. What I gather from this is that the best way for something to be the best in whatever it's doing is by continuous trial and error. Humans are not the best subjects at that. We feel pain when we lose. Sometimes the pain is too big to move on. Do computers feel that when you give them -1 point when they lose a game? "Don't be silly, computers don't feel!". And probably that's why they can learn so quickly and not "fall into depression". Or maybe, computer depressions are when a neural network goes so bad that instead of improving itself, it enters somehow a negative feedback cycle - is that even possible? I don't know, but I am curious to learn. I went on a run after these videos and started thinking about the implications of this. Here it is - a machine trained for about 4 hours from scratch learned to beat the best of the best in a small domain like chess. It learned by continuous trial, tweak, play, lose, adapt, try again. It beat the "learn from history". It was able to "live" thousands of generations of human lives completely dedicated to chess. In four hours. Or ten - doesn't matter, in a very small amount of time compared to human lives. This is what exponential means. When you look at the great history of the Universe, life and human development (recently read [Sapiens](https://www.goodreads.com/book/show/23692271-sapiens)) - it's all an exponent. It took a very long time to develop single-celled life, then a very long-time to devleop multicellular life but then compared to that everything else is an explosion. Watch [this video](https://www.youtube.com/watch?v=TBikbn5XJhg) which is the development of the Universe squashed into 10 minutes. It takes until 1 minute until the end for multicellular life to appear, and then everything happens in the last minute - marine life, plants, trees, lizards, dinosaurs. Primates are in the last 2 seconds, humans - in a blip of the last second. Scale the whole human history into that 10 minute video, computers will be on the last bleep in the same way. And then chess is the same way. Hundreds or thousands of years of play. Versus 4 hours of training of a machine. ## The philosophy It's difficult for humans to fail. It feels painful and if it happens too many times, you avoid failure. But failure is the best way to learn. Think of it this way... What if it wasn't millions of neural networks failures to discover chess. What if the neural networks could live **your** life a million times. Each time trying something a little different, not caring if it loses or dies sometimes. What would be your checkmate? What would be the best version of yourself if failing wasn't painful? What if you anticipated pain but didn't care? Humans avoid pain and seek pleasure. But what if you anticipated the pain, accept it as an iteration and knew that this is the best way to learn proven by millions of generations of a computer program. Food for thought...
29 20140121 20140121_week_v_5FFRoYhTJQQ.md Week ?v=5FFRoYhTJQQ I have been using Apache Ant and Ivy during my last summer internship and I must say it has a very nice easy learning curve. After about 10 minutes of simple tutorials and a bit of tweaking, you understand the basics of it and it solves hours of problems. You are ready to go in no time - automate lots of tasks when you want to recompile or deploy things quickly when the boss asks you that he wants a demo in 10 minutes. [This is a website](https://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html) that helped me getting it. I haven't used Jenkins though but I did have some experience with open source development. [Launchpad](https://launchpad.net/) does something similiar once you update your code and push it with `bzr push`. Now I understand what it does in the background and in my eyes, this is a step further from ant and ivy - even more efforts saved on mundane tasks, leaving the programmer worry about the more human problem aspects like algorithms, data structure, abstraction and code writing. I think there are many advantages in the continuous integration - like immediate feedback on non-functioning software, automated tests and metrics produced by them albeit some drawbacks like setting up time and necessary development of a test suite. As I am looking into the schedule, this semester starts from the last thing - the dellivery and evolution of software and then digs deeper into testing, architectures and modeling. The warm up material was useful to get into the tone of the continuous integration and also understand a little real world examples as the lecture concentrated more on abstract implications.
30 20140128 20140128_week_fatal.md Week Fatal Architectural design patterns brought back memories from last year’s software design patterns in OOSE2. Even though most of them were known to me, it was good refresher and an easy topic to read about. I remember that last year I finally got to know the model-view-controller (MVC) after practicing it in one of the other courses assessed exercises. Seems that these patterns are almost everywhere (duh) as we are discussing some of them (client-server, peer-to-peer) also this year in DIM3 and even OS3 (pipe and filter, message oriented). While I was studying for the finals last year, I remember I found this guy on youtube who turns out is making very, very useful videos about many topics in computing science. Here is the playlist with his design patterns (code is also provided and thoughtfully commented): {% rawhtml %}<iframe width="560" height="315" src="https://www.youtube.com/embed/vNHpsC5ng_E?list=PLF206E906175C7E07" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>{% endrawhtml %}
31 20140102 20140102_semester_1_summary.md Semester 1 Summary ## Contribution and Achievements This is not the first time that I worked in a team but it was the first time that the team wasn’t chosen by me but selected on random. So here is to what we’ve done during semester 1: * **Create a team organization document.** This was our first task as a team but we didn’t have much of an idea what organization should we describe - organization for the Team Project or the PSD assignments? I don’t think this was clearly understood. However we liked the agile methods so we tried to brainstorm about that. * **Assign risks.** Again, not clear in the beginning. We had no idea about the group assignments and what will this involve. And on the Team Project we were just getting started to understand the scope of the problem - too early to assign risks. So we tried to generalize them and later edit them and narrow them down as things became more clear (and after we got feedback) which was good. * **Setup trac server and git repository.** I think that was clearly described and we were able to set it up with no trouble. * **Group work.** We created the two prototypes of programs, trying to keep up with the principles of good software engineering (modularity, abstraction, incremental development) and of the Agile manifesto. * **Team project.** Our team won the award for the best team project progress. We worked hard, went through several design and architecture iterations, always working close to our manager, receiving constant feedback. Moreover, I believe that we truly want our project to succeed as we see it as something more than just a University task - we actually see the potential in the real world and I think that motivates us. Despite the difference in experience of the team, we were able to balance the workload and give non-technical tasks to less technically experienced members of the team. I think my greatest personal achievement is patiently understanding the needs of the individuals and yet push them when the deadlines are soon and otherwise the tasks would be doomed. I believe this is a personal achievement since my character is usually much more temperament and I always try to take as many tasks as possible, hardly trusting other people. I think this semester taught me that given chance to people, they will do their best and providing constant feedback would stimulate them to work harder and thus gaining better results. ## Problems Encountered I wanted to give equal chance of tasting the leadership position to each of the individuals, however in the current form of the team there needs to be an experienced leader like myself in order for work to be done in time. I will try to take this lesson to the second semester. In other words, the team experience outside of the classroom is various - some had summer internships, worked for companies part time, others didn’t have that option. In such a team if there is no hierarchy, as my experience during the first semester shows, work is done primarily by the more experienced members, widening the gap between the individuals and thus creating a typical Catch-22 scenario. What my plan for the second semester is that rather than concentrating on perfect tasks, we can concentrate on improving team stability and narrowing the gap between the knowledge and experience between the individuals. We can practice agile techniques like pair programming and code review. By producing slightly inferior code in the beginning and investing some time in initial bootup, I believe we can produce an overall better product at the end rather than huge deltas between the individuals of the team. ## Learning During the semester our regular PSD courses and homework assignments have thought me a great deal of how small and medium companies go through the process of defining the needs, capturing the requirements, making a plan and creating throw-away prototypes. We learned about different design models, some historical like the waterfall, V and spiral and the more recent ones like agile development. I particularly like the agile techniques - they feel less “business and management” and more “computer science”. I have participated in three hackathons only this semester and created one myself to see that there is a specific culture among the IT guys. We like to do things quickly, play with it, throw it away and start from scratch if it doesn’t work. We are much more like children exploring the ways toys work than grownups who need exact plans and requirements. We can make things quickly and show it to our customer in a week rather than closing ourselves in months or years doing something and in the end failing to deliver whatever the initial requirements were. That is what agile is all about. Of course, the rest of the world doesn’t always work like that. Therefore we find a balance between what we love and what our customers need. Hackathons and hackathon-like-coding is surely fun but rarely produces code ready for production, since there is no time to write comments, documentation and many times even the code itself is “hacky”. Relatively longer hakcathon-like coding in a week or two is a good compromise between fast coding and good coding. Thus comes the scrum method, identified by its daily standups and status reports and a fictitious leader who is also a developer like the rest of the team but just puts the hat of a leader in the meeting in order to facilitate the meeting. Of course, we can’t start coding without knowing what we need to do. Here comes capturing of requirements. We had mock interviews with our professors in the University, a short, interview like tuning of the initial requirements. Additionally for our team project, we were having constant monitoring from PhD students and weekly meetings with our manager. The PhD students helped us define what is possible, viable and feasible to do given very high level specifications, iterating through different architectures while the manager started “lowering” the helicopter view he first gave us thus exposing us to more and more details. We are keeping documents in Google docs in order to always be up to date with the requirements as well as specific issues on github as to what precisely needs to be done. Personally, I am satisfied with the course so far. We had a good amount of practical work, great 25/25/50 division between individual, group work and theoretical knowledge which I would love to see in other courses as well. Learning about theory and applying it in the same week is invaluable learning technique which lasts to years and not just for the exam. Looking forward to the second semester!
32 20131123 20131123_week_math_pow_this_week_10_this_week_floor_pi.md Week Math.pow((this.Week\ 10), $(this.Week\ floor(pi))) Quality assurance. Good. Now that we’ve done implementing in our first sprint, it’s good for fresh eyes to have a look at the code. We were pleased to hear the other group liked the code and the design decisions we had while implementing. We also received a great feedback as to what can be improved. For example - we will shorten the commands so that the user doesn’t need to type the whole long string but just one letter. We got several ideas in places where we got stuck. We didn’t discover any bugs that we didn’t already know about but we did mark them clearly in our trac system so that we can squash the ones we know about. As to the lecture - standardization is a great idea. So great that not one but many organizations exist that do standardizations in different areas in our life. Sometimes however I am afraid this thing happens as noted by Mr. Randal Munroe (xkcd 927 Standards): ![xkcd competing standards](/media/20131123_week_math_pow_this_week_10_this_week_floor_pi/01_standards.png) Why does this happen? Why can’t we choose just a single way to do something? Actually, I notice lately that if there is even the possibility of doing something in more than one way, no matter how logical and ubiquitous the first one is - someone, somewhere will be the stubborn child of the world that will do the things differently. And will standardize it, and will preach it and teach it and will use it no matter what. Examples? Dates... ![xkcd iso 8601](/media/20131123_week_math_pow_this_week_10_this_week_floor_pi/02_iso_8601.png) ... Daylight Saving Time (look at 5:08) ... {% rawhtml %}<iframe width="560" height="315" src="https://www.youtube.com/embed/84aWtseb2-4" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>{% endrawhtml %} ... Driving on the left/right (2 possibilities, yet no agreement)... ![map of the world - driving on the left vs driving on the right](/media/20131123_week_math_pow_this_week_10_this_week_floor_pi/03_Countries_driving_on_the_left_or_right.svg) ... the Universal Serial Bus... **UNIVERSAL!!!** ![usb connectors types](/media/20131123_week_math_pow_this_week_10_this_week_floor_pi/04_Usb_connectors.JPG) ... Measurements... ![map of the world - different measurements](/media/20131123_week_math_pow_this_week_10_this_week_floor_pi/05_measurements) Let me not even start on languages...
33 20131024 20131024_week_ceil_pi.md Week ceil(pi) Requirements are better than planning. I know that probably I should embrace both as good strategy for work, but I just can't. I am more the strategy guy than tactics guy. I like to know that in chess the goal is to checkmate the opposite king. This is the requirement. Now how I'm going to do that - using pawns, bishops and knights - I want to have the flexibility to do that. I don't want to make my first move and define my whole game. I like the dynamics, dealing with unforeseen positions. There is this big difference I see which makes me want to have good requirements but not necessary a strict plan to execute them (see rant about planning, pre-previous blog post). But the specifications are whole different world - I would like to know what is the final deliverable, what needs to be done. Describing this with the help of the UML is best. One language to rule them all - standartization is good practice and it's of the rare case that UML was created. Drawing the diagrams, writing the use cases shows you a good picture of what the final thing will look like. It's so good that you can draw java class hierarchies and tiny actors and use the same universal approach. Good things. To keep it rolling from the last week, I rewrote a famous song about the requirements. ## We Will Require *At first, we were afraid, this was not defined.* *Kept thinking, we could never write the specs we were assigned.* *But then we read so many slides thinking how we did it wrong.* *And we did what we shouldn't have prolonged.* {% rawhtml %}<br>{% endrawhtml %} *And now we write, and ask and chase* *proffessor Singer down the corridor, refining our case.* *We should writte that good old doc.* *We should made a guarantee.* *that this will not impact, oh no, the mark on our degree!* {% rawhtml %}<br>{% endrawhtml %} *Could, would, should, won't - the keywords are.* *What do we need - we won't ponder anymore.* *Who though of that? It just didn't ring a bell.* *Who could know? ... We had to use the UML!* {% rawhtml %}<br>{% endrawhtml %} *Oh, no, not we, we will require!* *Oh, as long as we know how to trac, we'll keep a good attire.* *We've got all specs to give, we've all got to get relief* *And we'll require! We will require, hey, hey!*
34 20170123 20170123_задача_как_да_вдигнем_заплатите_на_българите.md Задача: Как да вдигнем заплатите на българите? или *"Системата ще си върви и ние ще си се оплакваме"* Уважаеми читатели, Ако въобще мога да правя нещо в тоя живот, то може би, смея да твърдя, малко нескромно, че горе-долу съм се научил да мога да решавам технически проблеми. Колко още имам да уча, само аз си знам. Но ако трябва да избера нещо, в което съм окей, то може би е това - решаване, оптимизиране на задачи. Не винаги успявам и понякога много се затруднявам, но си има принципи и системи, които всеки като мен ползва. През годините се запознах със страхотни хора, които правят тези неща много по-добре от мен, превръщат това нещо в професия - решаване на проблеми, на задачи по физика, астрономия, химия, биология, медицина, на най-дълбоките проблеми, които човечеството е познавало. Много специфични проблеми, много учене трябва, за да се опиташ да ги решиш. И разбира се, политиката, икономиката, обществото са не по-малко сложни науки с не по-малко интересни проблеми и трябва голяма специализация, за да решиш основните проблеми. А България има много интересни на пръв поглед проблеми. Бих искал да се пробвам, но... аз дори не знам Дадено и Търси се, не съм учил формули за решаване на подобни проблеми. Но споделете за малко с мен една хипотеза. Ако повишаването на заплатите беше задача по физика или програмиране, ето как бих я започнал: **Какво се Търси?** - (примерно) Мога ли да повиша заплатите? **Какво е Даденото?** - Кои неща са обвързани със заплатите? Производителност, БВП, нещо друго…? Какви са икономическите показатели? Как се разпределя бюджета? **Как ще се реши?** - Какви формули мога да използвам, какви политики? Как другите държави решават подобни проблеми? Откъде мога да взема пари - данъци, такси, заеми, други…? Може би условието ще малко по-различно тук-там, докато проучвам проблема и го разбирам малко по-добре, и може би би ми отнело време, но систематично бих се опитал да видя какво може да се направи. И да изведа някакво решение. Но това не е моя работа. Като гражданин, моята работа е да избера човека, партията, която предлага решение на този проблем. Не, даже по-точно - моята работа е да избера най-доброто решение. Но как да избера решение, камо ли най-доброто решение, без дори да разбирам проблема?! Преди да избера партията, която ще ме представлява, би трябвало да погледна какви са техните решения. Мога ли да разбера техните решения? Не и преди да съм разбрал проблема! Между другото, решение като “Ще спра корупцията” получава 0 точки на всяка олимпиада. В училище - Слаб 2. С коментар: “Неясно решение, не са показани всички стъпки” **Чия работа е да ми обясни проблемите?** Журналистиката/медиите? Може би. Справя ли се? За мен не. Новините ми дават едни откъслечни проблеми, не целенасочени, а проблеми свързани с деня. Някой влак паднал днес - утре да се стегне железницата! Някой го е блъснала кола - утре да се увеличат глобите! Хаос и паника! Днес се събират 20 депутата, утре 53. Решават някакъв закон. Какво от това? Новините ми дават откъслечна, временна информация, която не трае повече от ден-два и след това новата новина идва и аз нямам Дадено и Търси се за дългосрочните проблеми. Ако решавахме така проблемите с физиката, медицината и астрономията, така откъслечно, така не систематично, така произволно, никога нямаше да направим прогрес. Отдавна свършиха дните, когато хората по случайност намират нещо. Добре де, понякога се получава, но все по-рядко. Хората, които решават задачи се концентрират върху тези задачи с години, понякога десетилетия! Та, как избирам този човек или тази група от хора? Лъчезарната им усмивка? Мачовското изражение? Секси походката? “Не тия, че тия много крадат - по-скоро тия, че тия по-малко крадат”? Слухове? Демагогия? Лозунги? Да, това е един вариант. Друг вариант е да бъда обучен да избирам. **Чия работа е да бъда обучен да избирам?** Училището? Може би. Справя ли се? Според мен не. Ние нямаме гражданско образование, политика или дори (може да се спори) икономика. Кой е учил гражданско образование в училище? Кой е учил политика, освен история с всички битки, царе, векове и години, без изводи, само зубрене? Може би някъде учат история с изводи, на мен от четири училища, не се падна или аз не я разбрах. Както и да е. Откъде да намеря Дадено и Търси се? Интересува ли ме? На всеки 2-4 години, независимо каква е моята професия, аз трябва да отида и да направя един избор. Избор, от който изглежда нищо не разбирам. Аз съм тясно специализиран, може би имам обща култура от новини, но не разбирам от истинските проблеми. **И така, какво мога да направя?** Да се самообуча. Окей, ще изчета учебници по политическа теория, ще разбера обстановката в света, дори история ще хвърля в микса. И моят глас все ще си тежи толкова, колкото и преди, колкото и на всеки българин, обучен или необучен. И, не, не предлагам образователен ценз за изборите. То си има своите проблеми, най-малкият от които е, че разделението на класи никога не е било добра идея в историята. Но въпросът е - за какво да го правя? Нямам личен стимул да се опитам да разбера по-добре решението. Само колективно, ако всички го направим имам интерес, но самостоятелно - нямам. Класическа Теория на игрите. Затворническата дилема. Класическа задача - двама злодеятели, които са извършили едно престъпление са изолирани в килии. Следователите им казват, че ако натопят другия, те самите излизат. Ако и двамата обаче се натопят, двамата лежат дълго. Ако никой не натопи никого - двамата получават лека присъда. Естествено, злодеятелите са изолирани и няма как да комуникират помежду си. Ако можеха, щяха да си кажат никой не топи никого и получават лека присъда. Без да знаят обаче, без да имат комуникация, ситуацията е друга и двамата се прецакват. Потърсете в Гугъл, ако обяснението не ви харесва тук (The prisoner’s dilemma). Само че, за разлика от Затворническата дилема, където злодеятелите са изолирани, в една система като нашата, затворът може би е илюзорен. Затворът е затвор, ако реша, че нищо не мога да направя, освен да се вайкам. Или по-точно, ако всички приемем, че има затвор, затвор има. Нашето общество успява да приеме, че парите струват нещо. Всички вярват в тях и затова работят. Парите, сами по себе си, не струват нищо (освен хартията може би) - те са илюзия. Нямат златно покритие или каквото и да е друго покритие. Парите (например левовете) работят, защото всички българи вярваме, че левовете работят. Ако и това ви е нова идея, потърсете [fiat money]. Но първоначално парите не са работели, хартийката не струва нищо и хората са слагали нещо зад нея, някаква себестойност. С други думи - на теория е възможно обществото да повярва в нещо като цяло, въпросът е как? Такива въпроси ме мъчат от известно време. **Още малко рант** Мисля, че е крайно време хората да спрат да мислят, че управлението на една държава не е за тях. Че материята е твърде сложна, комплексна и объркана и че само избран клан от не-хора, не-човеци, мега-интелигентни (или мега-прости) или извънземни ръководят държавата ни. Защото ти, на тяхно място, с тази система, би вършил същото! Дадено и Търси се не е достатъчно, ако нямаш мнозинство. Населението трябва да спре да мисли, че тези там са ужасни хора, мръсни хора, подли хора. Че тези хора нямат морал, нямат съвест и нямат грам желание да дърпат страната ни към нещо по-добро. Защо? Защото ако поставя който и да е от обществото утре, на тези позиции, най-светлите ни моралисти, чисти хора, най-добрите, честни и почтени, образовани и интелигентни, системата ще бъде същата. Системата ще ги смаже. И това, което хората ще видят е отново непочтени хора, опетнени, мръсни, ужасни хора. Тези хора не са изключителни егоисти, вродени социопати, лъжци, крадци, подлеци и измамници, които трябва да бъдат вкарани в затвора, измъчвани и изтезавани, застреляни, заедно с цялата им рода за престъпления, по-лоши от всяко друго престъпление съществуващо на Земята. Може би някои са такива, не ги познавам. Но разбирам, защото съм си мислел, че ако аз застана там, аз ще бъда същия и аз трябва да се самолинчувам. Какво друго? Как би действал ти, уважаеми читателю? Какво би направил? Не, какво би направил ти, какво? Не гледай надолу в поста, не мами, нали си свят, нали не си лъжец, подлец като тия горе? Хайде, какво би направил? Аз не знам. Ако бях на тяхно място, не знам какво бих направил. Не мисля, че бих направил много. Не мисля, че бих могъл да не лъжа. Да не крада. Да не пренебрегна всички принципи, морални уроци от родители, учители и общество, и съвест. Не бих могъл, не мисля. Защото мислех много какво бих направил аз. Да, аз, господин Никой. Аз не съм политик. Не съм социолог. Или дори историк. Аз съм програмистче, защо аз трябва да разбирам от политика? Защо трябва да разбирам от икономика? Не може всеки да разбира от всичко! Аз разбирам малко от физика и малко повече от компютри. Не мога да науча всичко, а много искам! Но не мога! Трябва други хора. Аз не знам. Аз не мога! Не ме слагайте мене на власт, аз не знам! И наистина не знам! А трябва ли? Защото едни хора, там горе, взимат едни решения, от които аз не разбирам. Аз едвам зацепвам география, къде е изток и запад, камо ли какви конфликти има и колко е сложна цялата тази сложна материя, икономическа обстановка, войни, конфликти, делегати. Че аз съм един обикновен господин Никой. Ама че нали за това имаме разпределение на труда, разпределение на властите. Специализация. Нали за това някои хора разбират от тия неща, за да не трябва аз да разбирам, нали това е цялата идея на модерното ни общество - да разбираме от тясна специализация и да имаме доверие на хората, които ни оправят пералнята без да трябва да знаем как да си я оправим сами? Но аз ще направя избор да отиде някой да ме представлява и да прави избори вместо мен. И поради това, че аз съм избрал най-силно викащия, аз нямам представа какви задачи ще бъдат решавани, още по-малко как ще бъдат решавани. Аз няма да имам почти никакво знание, още по-малко контрол, освен откъслечните прозрения през дупчиците светлина, с която медиите ме прожектират. Защото аз не знам какво е комунизъм или социализъм. Звучат готино, но пък много крадели. Не знам какво е дясно и ляво - нещо за бизнеса и нещо за пенсиите. Ми, не знам ко ме интересува. Ама ако не ме интересува, утре нямам право да се оплаквам. Когато направя избор, от който не разбирам, без да съм се информирал, аз съм играл тото. Като не съм спечелил, на крива ракета, Космосът и крив. И ако цялото общество мисли така, най-лесното е за политиците да говорят гръмко, силно, да разлепват повече плакати от конкурентите и те ще спечелят. Закона на Който по-силно вика. Хора, учени и не-учени, работници, предприемачи, пенсионери, бедни, богати и средна класа, ученици, висшисти, бели, черни, жълти, мъже, жени, гейове, лесбийки, търсещи се, осъзнати и неосъзнати… ## *Така няма да стане!* Без значение от кои групи си от горните, ти трябва да направиш информиран избор и да следиш за изпълнението на нещата, които са ти обещали. Защото иначе... Системата ще си върви, а ние ще се оплакваме. И системата ще си върви, и ние ще си се оплакваме. И системата ще си върви, и ние ще си се оплакваме. И системата ще си върви, и ние ще си се оплакваме…. И ние няма да разберем дясно от ляво, комунизъм от социализъм, анархизъм, фашизъм, капитализъм, плосък данък от прогресивен данък, данъци, такси, акцизи, винетки и саниране. И системата ще си върви, а ние ще се оплакваме. Без да знаем за какво сме отговорни сами за себе си, а за какво е отговорно правителството. „Те“. „Кой?“. И системата ще си върви, а ние ще се оплакваме. Без да разбираме, без граждански контрол и без доверие в институциите и помежду ни - системата ще си върви…
35 20131003 20131003_first_week_of_lectures.md First week of lectures My impressions of the first week of 3rd year at University is that this year it will be really busy. We already have assigment sheets and we are jumping straight into the difficult work - no more lazy introductions. Which is good. Our team project was announced - TweetDesk. It's gonna help journalists mainly to find emerging topics in twitter. Twitter is great, but I also noticed from my ussage that it's not too good to follow too many entitites, since the noise overwhelms the useful information. With our project, we are going to try to fix that. We also met our project supervisor and the 2 PhD guys who will be helping us. As far as we understood in this early stages, we will be mainly working on the front end. This is great news for me since I am already interested in beautiful and simple design and visualisations. Moreover, I worked on similiar tasks during my summer internship and I have some experience. As far as the codebase goes, as far as I am concerned, we should have some backend algorithms for data scraping and event allocation and lots of testing data from historical twitter posts. It is mainly written in Java, but there will also be code from Go, Python and others. On the PSD lecture, we learned about different design models, some historical like the waterfall, V and spiral and the more recent ones like agile development. I particularly like the agile techniques since it gives you what matters for the whole project and end product and not what matters for some manager who is not involved at all in the project. This makes more sence for me. The team's feelings are also similiar, so we chose to go with this approach for other projects and specifically chose the scrum method. We will try dynamic allocation - i.e. no single individual will be scrum master for the whole process, but rather the scrum master "hat" will change in individual sprints. So far, so good, let's see how next week will be.
36 20180719 20180719_facebook_wait_a_minute.md Facebook (and the rest) - wait a minute - this way is wrong! This is not the way we wanted computers to work. We don't want people addicted to their phones all the time, looking like zombies, internally feeling depressed and anxious and always trying to outcompete everybody in the world; trying to show off to get a few more likes, to get a few more comments. We don't want this poisonous competition of individuals for meaningless virtual points. And all the while these same people are being exploited by Facebook to click on things so that advertisers can show them ads to things they probably don't even want. We don't want people reading shallow automatically generated articles of confirmation bias, which are being promoted by Facebook to get even more clicks for more ads for more things you don't want. We wanted to connect with the people we care about. It's our intrinsic desire in this more and more isolated society. We wanted to know what is going on in the lives of the people we cared about but not to compete with them in this ugly jelaous way. When I see a real friend of mine going on vacation - I like it, I feel good he feels good. But when I see it in a person I barely know - I see it as a showoff. What we got is connection with companies. We got hundreds of messaging apps, photo apps and paradoxically - it's making it harder to connect with people. People use something different for different reasons and it's impossible to message inbetween apps like it is possible to send SMS to people on different mobile networks. Facebook seems like a behemot, seems like this huge company that is here to stay. It has done wrong many times, it has changed its algorithms to promote biased content to keep you with interacting with the site, it has created walled gardens, it is ruled by an asshole who has said privacy is not expected but he keeps a tape on his camera. It had broken promises and apologized and broke promises again. It has Instagram and Whatsapp and many people don't even know it - so if you want to escape, it is there to capture you again. It is not how we wanted our society to work. I don't think Steve Jobs wanted this when he and the rest of Apple envisioned the smart phone. I don't think he would be happy to see Apple has worked a few years with it's best engineers on hand to create animated emojis. It is not how we wanted our computing to work. We want to be able to learn new skills, to create things and express ourselves, to connect with people and keep the important ones close to us. That's what fundamentally technology should be about.
37 20151126 20151126_catching_panic_attacks.md "Catching" Panic Attacks I am experiencing a panic attack right now. It's a second day in a row and I've promised to myself I will be observing closely as I know getting one is never the whole story. They come in bunches. It's a very irrational thing - my heart rate is elevated from seemingly unknown reason, you can actually hear it in your ears, I want to hide, isolate or run away somewhere. Fortunately I've experienced enough of those that I can deny the urge and explore... ## Debugging People don't come with debuggers. That would be a highly useful thing. Why? When writing a computer program sometimes things go wrong. You have introduced a bug. Depending on the programming language and type of bug, the program might "throw an exception", i.e. understand that the program has run into an exceptional condition which is not the "normal flow". For example, when you see an error like this ![blue screen of death](/media/20151126_catching_panic_attacks/bsod.jpg) it means that your Operating system encountered something it couldn't handle. Different languages talk differently about it - throwing/raising an exception/error or ironically, the language I am learning right now (go), calls it **panicking**. Broadly speaking there are two types of exceptions - ones that you have anticipated and others that you haven't. Anticipated exceptions can be surrounded by some code that handles it. Again, different languages call it catching/handling, go calls it **recovering**. A program can recover from something unexpected, probably notify the user, but overall - it continues working as it should. For example human society has invented a way to recover from anticipated exceptional conditions like bumping into someone. You naturally anticipate when walking in a crowd that you may hit someone. The way polite people recover from it is to say "Sorry". In Bulgaria many times, we recover by looking evil-y at each other. Doesn't matter, we anticipate, we recover and move on. However, the unanticipated exceptions can be the tricky ones. You haven't thought of them, sometimes they appear randomly. In that case, you run another program which inspects your program and runs it step-by-step. It's called a **debugger**. A debugger generally has play/pause/forward buttons which allows you to fine control the execution of a program in human understandable times. A processor is much quicker than a human (in terms of the operations in which the processor is good at - well, duuh) and executes program lines in thousandths or millionths of a second. A human may need a few seconds or several minutes to understand what is happening. So you press the pause button (or set a break point somewhere in the code) and inspect what the program state at this moment is. Now humans as well as computers handle poorly unanticipated exceptions but the reasons are different. In computers, the programmer hasn't written that piece of code to handle the exception, thus introducing a bug. So the program crashes. It can die, hang or otherwise be a very bad program. Humans respond differently too - they can cry, shout, depress, overeat, become unresponsive or millions of other things. As in programs, sometimes we know what caused it - e.g. your spouse cheated, sometimes we don't. With my current panic attack, I don't. So if I was a program, I would run a debugger to try to investigate. Unfortunately, in humans, you can hardly be a rational debugger while the exceptional situation is appearing. ## Debugging for humans But I will do what a debugger does - write as much as I can about my state at this moment and what led to this state trying not to judge as to why, because I know I won't be rational. In programming terms, I will just dump all I know about myself right now and try to analyse it later. Stack trace as the panic started occurring: * Travelling to my part time job as a research assistant at the University of Glasgow. I was reading hacker news and particularly this [article about startups](http://macro.ycombinator.com/articles/2015/11/jessica-livingston-startup-school-radio/) * I've been awake for 1.5 hours, basically packing and commuting. * I've slept relatively well compared to previous 4 nights (Android sleep tracker helps me quantify this - 5.5 hours compared to about 3.5 of deep sleep in the last 4 nights previously). * I've been more optimistic about the start up than usual in the past week, working hard on doing it. Evident by the number of commits, lines of code and subjective attitude. * My appetite is down in the past 3 days. * I have been poorly exercising in the past two weeks. * Broke up my 2-months relationship two days ago. ## Handling panic attacks I have some tricks to handle panic attacks when they come. The first time I had one, I didn't have a strategy. Other than...well... I called an ambulance at 2 in the morning and scared the shit out of my room mate that I was dying. If you've never experienced one, it's pretty intense. Especially when you don't have the knowledge of what is happening, you feel you might be getting a heart attack. It probably doesn't make sense when you are 22 and overall healthy but you don't think that in this moment. I laugh at it now but I was probably most scared than ever in my life back then. It seems funny from the outside and when I had subsequent ones in the coming months, my best friends joked that I was dying. Which was actually cool because it helped me diminish the effect of how "serious" the situation was. Best friends always know best. So my first physical tactic is to slow down my breathing as unnatural as it feels in the moment. Count to 5 while breathing, hold breath for 5 and exhale for 5. Repeat 5 times. Reevaluate. It looks stupid, mumbo-jumbo woodoo stuff, but physical stuff help the mind. It usually calms me down a bit so that I can see there is nothing too serious to worry about. But in a case of a panic attack it doesn't always work too well. However, at least I know what it is and given time (about half an hour) I can just let it pass without calling an ambulance :) So now that I've been writing in the past half an hour and evaluating what is happening in my life, it makes it easier to call my rational part. ## State Analysis The part time job at the University is a job that I wish I didn't have but have to have since I'm working on a start-up which doesn't generate revenue so far. I've been working in a start up world for about a year now, pivoting, exploring and there are whole lot of reasons of why it hadn't worked so far. From the "stack trace" I can see that stress has been accumulating without being released properly in the past few weeks (releasing for me usually means exercising). However, I've had other periods with no proper exercises and similar state. The low appetite is very unnatural for me but I guess I can also attribute it to stress. The curious part is probably the break up. The last time I had severe panic attacks is when I broke up with my previous girlfriend. The break up then was of a 2.5 year relationship and it was a bit longer than an abrupt "we're done" kind of way but I don't want to go into details. The thing with break ups is that you usually feel they are coming at least for me. Could that be the thing? And if yes, why does it cause panic attacks for me? I said right after the break up to a friend of mine that I usually expect to feel much worse after a break up but I'm usually quite okay compared to my expectations. Well, maybe I feel that way, but I'm not. I don't fall into too deep depressions - usually a good night sleep heals everything in me. I see myself as a rather optimistic person and take stuff lightly. However it could be the case that my way of handling exceptions is not through depression but through anxiety. It's not news for me - I usually fight this with tons of exercising, good diet and friends. So I'm going to force myself for the next two weeks to put this as a higher priority in my list and exercise every day. I've done [this multiple times before](http://pi2squared.blogspot.co.uk/2012/09/blog-post.html), it works for me. ### So what? This blog post is rather more personal than usual. I felt like talking about it here because I feel quite comfortable about the problem that I have and could help other people in a situation similar to mine. Also, I like writing. I bet there are a lot of wanna-be-preneurs who have a lot of stress in their lives and can relate to the debugger metaphor. By the way, here's a free idea for anyone who complains there are not enough ideas to work on, with time and desire to implement. [CC0](https://creativecommons.org/publicdomain/zero/1.0/) from this line below: We need debuggers for humans. But not like this above pseudo-psychological analysis that works for me but might not work for anybody else. A real, metric based debugger that can take a stack trace of the current mind with as many variables as it can, dump it somewhere and then a rational person can explore and analyse. I guess you also need to track yourself in "normal state". I'm becoming a fan of tracking stuff with that sleep tracking thing and I haven't explored the market too much but I feel it's pretty new market and hasn't been explored too much yet. The trackers and the "quantify yourself" movement that we are experiencing with smart watches and the like is just the beginning. People will always want to know more about themselves in as many possible ways - physically and mentally. Nowadays the "obvious" pulse, location, movement, sleep tracking are becoming a standard. They might not even be exploited completely. How about more subtle or harder to measure variables like cortisol levels, brain activity and others? Technologies like portable blood laboratories are in the exploratory stage for medical professionals. How about for the public? Anyone up for a start up?
38 20190106 20190106_my_university_blog.md My University Blog During year 3 at University on one of the courses we had to write a blog post every week. I have written a blog before (this one) but 3rd year at University of Glasgow is crazy busy - almost everyone has developed a depression, panic attacks, disorders and has become a goat. I have discovered my old University blog on the interwebs and copied it over to this new/old blog of mine. Few things of note: * They are past, yes, but I stand by them - even if I don't agree with some of the things I said anymore - this was who I was and it was part of what made me - me and other new-agey sentences here. * Yes, including the controversial, censored, SCANDALOUS post ["The shape of the Universe"](/blog_post/20140219_the_shape_of_the_universe.md) in which I explain how the world sucked at year 3. And had problems with high-minded people. * The follow up [The Dynamics of Ovis Aries](/blog_post/20140219_week_ans^wer.md) which was written after I got told off that I need to pull down that blog post and so wrote a short story of what it's like to be at University which replaced the FORBIDDEN blog post. * It seems that I had a lot of fun in semester one - writing song mashups and genuinly describing what lectures are. And after The Shape of the Universe - completely gave up and sarcastically wrote things - which are also fun but much darker. So here are the links to the posts: * [Week 1](/blog_post/20131003_first_week_of_lectures.md) - the hello world of blog posts - literal, to the point, boring as hell * [Week 2](/blog_post/20131011_week_10.md) - Still kind of meh - a bit of rant that I hate planning - ironically, I kind of like it now but still not too much. Notice my smarty pants naming of weeks - this is binary representation. * [Week 3](/blog_post/20131019_week_floor_pi.md) - Ah, **"Ode to Version control"** - a spinoff of a Bulgarian poem "The rebels on Shipka". It's back when git was as mysterious as it is... today... Actually after 6 or so years I kind of get most of the basic commands but if I do something wrong, I still mostly go to the repo and copy and paste. * [Week 4](/blog_post/20131024_week_ceil_pi.md) - My mashup of **"I will survive"** bashed around the theme of requirements * [Week 5](/blog_post/20131103_week_sqrt_25_we_had_the_guts.md) - This is right after me and the GUTS team organized the first Hackathon - a tradition that I'm proud has kept going and has continued to be a thing every year at University. Probably my best co-achievement to-day. * [Week 6](/blog_post/20131108_week_------rw-.md) - Another song, this time of **"It's raining man"** spinned around prototyping. I remember I spent more time than I had to trying to be creative and make it a bit easier to read. But also for my amusement. As we will see later, that wasn't rewarded... * [Week 7](/blog_post/20131115_week_g.md) - Pretty meh diary-like blog post - when things are going well, things are boring. * [Week 8](/blog_post/20131123_week_math_pow_this_week_10_this_week_floor_pi.md) - This title gives me headaches (and threw away some of my file-naming conventions). Otherwise ranting about standards which are still a pain-point for me. Whenever I see American-retard style of writing dates, or retard units of measurement I cringe. I have only one iso memorized by number but have mentioned it so often, I was known at one job as the Dates-guy - **long live ISO-8601!** * [Week 9](/blog_post/20131201_week_девет.md) - Another diary-like post. * [Week 10](/blog_post/20131209_week_x.md) - Another diary. This is December of 2013, I'm definately burning out - the team project is super interesting to me, but I am dissapointed of my team, relationship is going bad, too much useless coursework but also - it wasn't too clear what is expected of these blog posts. So I did what I could knowing that others are not even doing that - many people wrote their blog posts in bulk at the end of the semester. I wanted to be consistent. * [Summary of semester 1](/blog_post/20140102_semester_1_summary.md) - Summary of the first semester is pretty positive and some assumptions of what the real world of software development is - wrong on some accounts, right on others. Pretty cool reflection. * [Week 11](/blog_post/20140121_week_mg.md) - Diary, getting up to speed with coursework after the break. I remember I had decided to take it easier this time - I had some panic attacks over the vacation and had made the decision to cut some of my responsibilities which are not essential so that I can cope and concentrate on my mental health - I believe good decision. * [Week 12](/blog_post/20140121_week_v_5FFRoYhTJQQ.md) - First glimpse of what is to come - an annoying amount of technologies which we would touch but not have the time to understand and were very disconnected with what we had to do in the team project and other courses. * [Week 13](/blog_post/20140128_week_fatal.md) - Diary. * [Week 14](/blog_post/20140207_week_ngc_6402.md) - Here is my first real display of annoyance - a useless few hour meeting in which we would discuss something that wasn't defined. It actually represents a lot of real life but I didn't know that at the time. So unfortunate... It seems I've been thinking quite arrogantly of myself at the time - calling myself "a leader" but then again... I was :D * [Week 15](/blog_post/20140216_week_1^2+1^2+2^2+3^2.md) - A rationally presented annoyance at the course with its many frameworks and libraries which felt disconnected and useless. * [Week 16 (1)](/blog_post/20140219_the_shape_of_the_universe.md) - And here it is **The Shape of The Universe**. It was written after a hackathon organized by city of Glasgow that we won. We were 11 people participating and we did everything wrong from a tech perspective in a hackathon (but the right stuff from professional software development standpoint). At the time, all I wanted is to write code, execute, make great things and make them work. Unfortunately, the "leader" of the group was someone else - which I guess hurt my ego. Additionally, the teammate from my team project sneaked into the team which really, really pissed me off. I knew he wouldn't do anything and he didn't - but he still got a piece of the pie of the win (which at the time was quite a lot of money even split 11-ways). I had previously tried to raise concerns about this person to my manager and to the course coordinator but nothing has happened. And so I got very pissed off at the way he would benefit from all our team work, and future-projecting also from the grade he would get at the end of the year. And thus, I ranted here. * [Week 16 (2)](/blog_post/20140219_week_ans^wer.md) - After the blog post went up, it got somewhat viral and some people told me good stuff, other people told me bad stuff but I felt I needed to say it. Maybe the University blog wasn't the right medium but after all - we were supposed to write something there without much understanding what. Eventually, I got called by the course coordinator and got told that I need to replace that blog post. I was in a room with him and he was drawing some circles, squares and arrows explaining how the University system works which how I understood it - was that some courses are sponsored by some banks. Which was even worse news than my previous complaint. Oh, I also got told that if I don't bring it down, it would have to go to the head of school and he is known as a quite tempered person. So okay, I brought it down, coppied it over to my personal blog and wrote this story, complaining even more what the state of University is like. * [Week 17](/blog_post/20140226_week_least_random_number.md) - Aaand now I'm pissed at pretty much everything. Sarcasm everywhere, just can't stand the way I should behave so I poke everywhere I can, obviously copying results from Google and not anymore rationally suggesting what can be fixed - because I understand that nothing matters anyway. * [Week 18](/blog_post/20140304_week_adult.md) - This is where I got broke about believing that my actions would have any consequences so I write whatever sarcasm I can think of. * [Week 19](/blog_post/20140311_week_90n.md) - I guess I got told at that meeting that I need to link things and express my rational ideas in a constructive way. Well, fuck that, you ain't putting me in a box - I will make my own box and put it in yours. * [Week 20](/blog_post/20140327_week_xx.md) - I guess that's when I got introduced to [The expert](https://www.youtube.com/watch?v=BKorP55Aqvg) video which was at the absolute right time. Still brilliant! * [Summary of semester 2](/blog_post/20140327_summary_entry_ii.md) - Actually, quite rational and very dissapointed from the second semester. Again, nice assumptions about "real world" e.g. that people would get fired in the real world for not doing the work. Due to supply and demand of jobs, this might not actually be very true now, but this is a topic for a different time. It was quite fun remembering what 3rd year was like - it was an absolute hell and has been since then. I still have people complaining about it - it is way too much for a year given that the previous two years are relatively easy going. Add to that the fact that most people are searching for summer internships and start to get the scared feeling of "What the fuck am I going to do in real life" after ~14 years (all of your meaningful life) of education and being told what to do. It's very stressful but maybe it's because reality is quite stressful.
39 20161217 20161217_и_кой_каза.md И КОЙ КАЗА... Драги бивши и настоящи възпитаници на бъдещата новооткрита Софийска ПМГ, Не исках да си използвам тежката си дума, но иначе толкова чистата ми и подредена стена във фейса се петни от тъжни, печални и гневни писма от мои почитатели, които искат лично да коментирам ужасът на премахмането на буквичката. Всичко започва така... “Възможно е моето училище наесен да не съществува”? Ъм... Защото ще му махнат буквичка от името? НЕ, ДАНИЕЛЕ, БУКВИЧКАТА ЗНАЧИ МНОГО, ТЯ Е СИМВОЛ НА ИЗРАЖЕНИЕТО НА ЛИРИЧНИЯ ГЕРОЙ И НЕГОВИЯ КАТАРЗИС В СИНЕТОХАТА НА ... к, chill. Знам, знам, и аз съм бил в час по БЕЛ и държал матура (отуична пуи това). Знам, името е важно, кей? Обаче... Не викахме, когато направиха 8ми клас подготве да учим чужд език. Мех. Не викахме, когато сложиха резултатите от изпита по БЕЛ като изискване за влизане. Че аз само заради това успях в Н/СПМГ - математика и физика FOREVA. Не викахме когато махнаха системата "15% отсъствия и си вън". Падна ни стандартчето, на олимпиади се представяхме все по-мех и все по-се напивахме, но не викахме. Не се срещахме с президенти, не ни даваха по националната телевизия. Когато беше стачката нашия 9ти клас бяхме повече от щастливи, че не учим. Не викаме, и че всеки иска да се профилира по неговия си предмет, но учим глупостите от средното образование. Сега викаме, че ще ни махнат Н-то? И, кво, проблемът е, няма да можем да се дуем, че сме Национална? Че ще дойдат събратята ни от Бургаското ПМГ и ние няма да можем да скандираме Н-П-М-Г а само... нещо друго? АМА, НЕ, НАЦИОНАЛНА Е ВАЖНА, ЗАЩОТО СИ Е ГОРДОСТ. ТИ СИ СРАМ ЗА НАШАТА ГИМНАЗИЯ!!! Да, бе знам, териториалност. Носталгия на бивши ученици и статут на настоящи. Хубаво де, всички си имаме дозата горделивост, важна или не, грешна или не. Хубаво, Н-то е важно, убедихте ме. И аз искам да съм на 3000 километра и някой да изкрещи “И КОЙ КАЗА?“ и аз да се провикна като един иначе толкова възпитан претопен и толерантен англичанин от село Бърдо - “Н-П-М-Г”. Не, бе, честно, яко е, няма да споря! А, между другото, там тия поправките в закона, ако чета правилно (може и да греша, не съм законо-човек, само програматор) си има изисквания за името Национална, които ми се виждат fair-enough. ([Тука щракате](http://dv.parliament.bg/DVWeb/showMaterialDV.jsp?idMat=106992) - и после Ctrl+F “Национална“). Честно казано, има логика Национална да се казват само училищата, които изпълняват поръчките на Партията майка ИЛИ пък имаме малко повече чуждоземци (за хората с ограничена РАМ памет, които не могат да отворят още един таб - трябват ни поне 20 ученика от други области и някакви мн сложни математични правила). НЕ, БЕ, ДАНИЕЛЕ, ДА ТЕ ТАКОВАМ В ИРОНИЯТА!!! ТО Е ПРОСТО ЧАСТ ОТ ГОЛЕМИЯ ОБРАЗОВАТЕЛЕН ПРОБЛЕМ НА ДЪРЖАВАТА, ТОВА Е ПРОСТО ПОСЛЕДНАТА КАПКА!!! Ако е така, аз съм с триста ръце ЗА. Защото имаме много проблеми в образованието. Но ми се струва, че вдигаме малко повечко шум за Н-то. Айде тая енергия дето сте я поели за Н-то да я пренасочите към истинските проблеми. Примерно, да протестираме срещу домашните работи? Ще спасите много часове на много хора. И все пак, да сме съпричастни #НеПипайМоятаГимназия бе кеуеши, приемете си законите за референдумите и пр, не се занимавайте с нашата си гордост, да ви...!!!!!!!!!!!!!!!!!!! ## Н П М Геееееееееееееее Казах си думата. Чакам си псувните. Айде, Лека нощ.
40 20170104 20170104_ударен_от_живота.md Ударен от живота **или Връщам се (да направим двойните заглавия пак хит през 2017 ;) и ASCII еможиконките)** Замисляли ли сте се как взимате решения? Как сте решили да учите в училището, което учите или как работите това, което работите? Имали сте мечти, планове и живота ви удря в някакъв момент и плановете не работят или се променят. Едно време трудните решения в живота си ги взимах с монета - хвърляш, наименуваш си ги ези и тура и каквото се падне. Даже мисля, че някъде имам блог пост за [Квант на решението](http://pi2squared.blogspot.bg/2012/09/blog-post_10.html) - идеална монета хвърлена по рандъм начин. Теорията ми беше, че ако се замислям за повече от 10 минути върху нещо, значи че плюсовете и минусите на двете са почти еквивалентни като чувство и по-добре да действам, отколкото да си губя времето в решения. Много хора ми казваха, че това е глупаво. Аз им казвах, че е най-добрата стратегия, която знам. Нещеш ли, както става в приказките, реших да решавам по друг начин. Пробвах другото - да мисля повече преди да взимам решения. И това почти ме съсипа. Да се върна в България или да остана в Глазгоу? Да затворя компанията или да продължа да се мъча? Да скъсам с приятелката или да продължа да инвестирам? Правих схеми, диаграми, списъци с плюсове и минуси. Ходих на разходки. Гледах звездите. Питах приятели, семейство. Някак си всички други знаеха какво аз трябва да правя, освен аз самия. „Аз ако бях на твое място...“. Само че не си. Всеки си има индивидуален живот и няма как ти да си на мое място. Едно дете ги знае тия неща, ама възрастните говорят с разни хипотетични невъзможни неща. И така, взех се насериозно. Станах възрастен. Удари ме живота. Загубих всичко, любовта си отиде, компанията се срути, приятелите ме изоставиха (ама май и аз ги изоставих, казва Нютон) и всички други там неща от баладичните ревящи песнички. Реших, че в Глазгоу ми е студено нещо. Ветровито. Пък тук, цитирам, съм „щял да си живея като цар“, казват някои хора. Сега, не знам дали бих искал да съм цар. Демокрацията все още ми харесва като идея, въпреки проблемите, които видяхме през последната година, но за тях някой друг път. Но пък да пробвам ИТ сектора тука, да видим как се развива, какво има като работа, как са се променили българите през последните 5 години... това ми се прави. Що съм ударен от живота ли? Ми не знам, дойде един Живко и ме удари. :) Не бе, сериозно, някои дни съм като парцал. Колкото повече мисля какво се случва и как всичко около мен се променя, толкова повече се сдухвам. Като гледам българските новини и се сдухвам. Като слушам за престрелки и терористи и паднали самолети, влакове, и се сдухвам. Като си търся работа и ме отрежат се сдухвам. Сдухвам се, че от самостоятелен на квартира на майната си, сега живея с наще. Но пък колкото повече си спомням, че съм мижитурна част от съществуването на човечеството, на Вселената и тия неща нямат изглежда нямат никакво значение и се кефя. Като си спомня, че имам късмета да прекарвам време с наще, докато сме си още всички живи и здрави, и се кефя. Като видя как София се е променила през последните 5 години откак съм на майната си, и се кефя. Като се видя с приятелите ми тук и как те си се кефят на живота, и се кефя. Някои дни не мога да се надигна от кревата от липса на мотивация. Не знам какво ми се прави, мисля си, че не знам как ще преглътна да работя за шеф (все пак съм лигав милениал), не знам какво ми е интересно точно, не се чувствам достатъчно добър в нищо, докато гледам хората около мен как си се кефят на нещата, които правят и се чудя само аз ли? Ми не. Май. Много хора не знаят какво правят и чувстват, че нищо не знаят и буксуват. О, и в последните пет години съм изгледал достатъчно мотивационни, подскачащи и неподскачъщи, ТЕД talk-ове и тем подобни. Като МакДоналдс са - много добри, помагат за малко и след 2 часа пак нищо не знаеш. Обикновено ме мотивира по-дългосрочно като погледна нещо за Вселената. За огромната, безкрайна Вселена. Или снимка на някоя галактика, или като някой ми заговори за квантова механика и квантови компютри. Или като някой ми заговори за наноботчета и молекулни машинки. Или за Марс, за коли на ток, за ДНК, за прогреса в медицината, технологията. Или като се видя с хора, тук в България, които се занимават с тия неща, откриват звезди, пишат пейпъри, блъскат човечеството напред, въпреки все още трудната образователно-политико-икономна ситуация... еми спуквам се от кеф! Така е като те удари Живко. Ставаш и продължаваш, щото на Млечния път ич не му дреме, че някой си Живко те е ударил. 14 милиарда години еволюция в космичен, химичен и биологичен смисъл, живея в най-якото време, където да те убият е новина, а не статистика, където знаем толкова много и има толкова много да се открие... Живко да си гледа работата, нека си удря. Но за да перефразирам Пипи: „Като те хапят комарите, хапи ги и ти“!
41 20151120 20151120_after_enter_episode_2_pressing.md AFTER ENTER - Episode 2 - Pressing! The story so far: * [Episode 1 of After Enter - Before the Enter](/20151113_after_enter_episode_1_before_the_enter.md) Hi again. Last time we spoke about what happens before a search engine like Google has to accomplish before doing a search through billions of documents that make the Internet. Today we are starting our journey by doing a real search. Our particular search will be the age old question that every child asks and every adult is ashamed to not know the answer: *Why is the sky blue?* How many ways can you think of doing that search? If you are on a phone or have a smartwatch you can say “OK Google, (hear a small bleep) why is the sky blue?”. Or you can tap on your home screen box and type with the keyboard that appears on the screen. If you are at home and have a laptop on your… well, lap… you could type on your keyboard. So which one was it for you? This interaction is called **interfacing**. The word **interface** is used frequently and interchangeably but basically it means what are the ways to communicate from one thing to another. If you used your laptop keyboard, that was an interface. Inter meaning between and face - ummm … face? On the other hand the keyboard interfaced with the computer via some internal cables, the laptop interfaces with the internet via WiFi, cable or mobile network and so on. Okay so you typed it and pressed enter or said it and are now waiting. Well you don't wait for too long because the response comes almost instantly. But the story is incredible! Listen… Let's assume you pressed enter and we slow down time a LOT. So much that a blink of an eye will take the next 10 episodes. That's long… All right, here we go! Let’s look around, what is happening. A keyboard consists of electrical switches in a similar way a lamp switch is made. ![Key schematic](/media/20151120_after_enter_episode_2_pressing/02_keyboard_first.png) Now, see that switch. The two cables have electrons which stay relatively static. (Well, that's a lie, they move all the time buzzing randomly like flies.) Why do they buzz randomly? They are excited but they don't feel strongly to move one way or another. There is no direction in their life. It's like when you are in a big pool and you have more than enough energy to enjoy swimming but with no particular direction. Where is that energy coming from? The loud Big bang. Now, concentrate! Once we press the button, closing the switch the electrons start feeling a force. It's like a wind starts blowing in one direction and they slowly obey. They still are kind of randomly moving, but randomly with direction. ![Key press](/media/20151120_after_enter_episode_2_pressing/02_keyboard_press.png) While our finger is still on the keyboard, the electrons start flowing in one direction. Where is that force actually coming from? Your finger? Not exactly. When you turn on your lamp, your finger just opens the gates for power to go. Now how does your computer know that? Well, your keyboard is actually not just these two wires connecting the enter. There are many more connecting each key. But if there was one cable connecting each key, that will be a lot of cables! Your keyboard will be big and bulky. No, let's not do that. Let's organize the cables in a **matrix**. Now in this case a matrix is a fancy way to say that cables form grids on two layers. If you have an old keyboard connected to a desktop computer, I would disassemble it and see what's inside. It's pretty cool! You’ll see two thin plastic sheets with some very thin paths made of some metal separated by a third layer with holes… it's like a sandwich with emmental cheese, mmm.. ![Metal sandwich](/media/20151120_after_enter_episode_2_pressing/02_metal_sandwich.png) So when you press the button you connect the two pieces of bread of this sandwich through the cheese which lets these electrons flow. Now the keyboard has small computer itself called a **controller**. What it does is checks every thousandth of a second or so which two metal pieces of the two grids made contact if any. If any of them did, the controller records that in a memory of its own called the **endpoint**. And then it waits. Remember, we slowed down time a lot. The controller checks every thousandth of a second just to be sure but there is no typewriter in the world that is that fast. {% rawhtml %}<iframe width="560" height="315" src="https://www.youtube.com/embed/m9EXEpjSDEw" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>{% endrawhtml %} Turns out the the fastest of the fastest types about 200 words per minute which is about 1000 characters per minute equating to merely 15 keystrokes per second. I said merely because from our standpoint that's eternity. In real time, that's pretty impressive! This is of course in the case of a real, solid keyboard. What if it was one on your smartphone? ![finger pressing smart display](/media/20151120_after_enter_episode_2_pressing/02_virtual_keyboard.png) Well, it’s pretty similar, just your finger acts as a connector between the two components. Don’t worry, these electrons are actually pretty tiny and won’t hurt you. Anyway, the information about the press got to the keyboard controller. And the keyboard controller waits. For what? Remember we slowed down time. The keyboard controller queries for keypresses thousands of times per second but the computer queries the keyboard much less often. There are two ways computer stuff communicate - they either **push** or they **pull**. Let’s say our keyboard controller waits for a pull from the computer. If it was more pushy type, it would flush down what it gathered down the line for the computer to collect and not wait at all. Why the two ways?. Well, the brain of any computer, called the **Central Processing Unit** or **CPU** is a very important and busy boss. It allows you to listen to music while you type, move your mouse, browse the Internet and many other tasks. ![Workers queue](/media/20151120_after_enter_episode_2_pressing02_queue.png) Now she can either order that some of her workers go and fetch things in which case the workers go, **pull** and then queue or if the keyboard **pushes** a message, the keyboard worker queues. This queue exists so that you can do many things seemingly at the same time. What actually happens is that the boss reads messages really quickly and passes messages around the workers. ![Fast workers queue](/media/20151120_after_enter_episode_2_pressing/02_quick_workers.png) It depends on many factors whether the communication will be push or pull. Some interfaces like USB wait for pull from the computer, other push. In the end, the messages always end up in the queue for the boss. All right. So a worker goes to the keyboard controller endpoint and asks: “Do you have anything new for me?” to which the keyboard controller answers: “Yes, indeed I do. Here is what I gathered in the last 10ms” and passes the code for Enter. This is very cute and all but it’s not really what happens. See, there are no small humans inside your machine. There are just wires and electrons. What I just pictured above is a model of how it works because you, reader, are probably a human and humans speak abstractions. The real language that the keyboard controller communicates with the computer speak is not really English. It’s called **binary**. Binary is the language that comprises of two letters - 0 and 1. Zero means no (or very weak) signal, one means (stronger) signal. The controller actually sends these signals in a specific variation in order to **encode** the message that the key was pressed down the wire to the cable connecting via the computer interface. ## Let’s recap: You press a button on a physical or virtual keyboard which is the interface to your machine. A physical keyboard has a matrix or a grid of electrical conductors separated by a layer of electrical insulator like a sandwich with emmental cheese. By pressing the button you let some small amount of electrons move around. The keyboard controller reads the matrix about a thousand times a second to check for changes, saving the change in a memory location called the endpoint. Now it can either push this data down the cable to the computer or wait to be pulled. Computers communicate in a language called binary which uses only zeros and ones as letters. So far we know what has to happen before a search occurs and what happens when you press a button of a keyboard. The information about your query has just started - 10 milliseconds into the trip only your keyboard knows that you have asked something. The journey continues next time as we follow the information flowing into your computer and what happens there. Stay tuned!
42 20161005 20161005_this_post_starts_normally_talking_about_interviews_and_transitions_into_a_life_crisis.md This post starts normally talking about interviews and transitions into a life crisis ## Job Interviews I will be having interviews these days. I guess I am giving up my dream of starting a startup, maybe few years down the road when I get more experience. Don’t judge me. It’s hard. So let’s do some standardized interviews, that is good and stable. Get a job that you will be happy. Algorithms and data structures. Binary search trees, DFS, BFS, Heaps - the regular stuff. You know, the stuff that you do every day as a programmer. Not debugging or refactoring, not testing or googling. A hackerrank ™ online test which shows your capabilities best, implementing things you haven’t done in years but hey - ADS must be important. I can’t possibly have 3 good programmers around me at the time of the interview that google like crazy and help me to pass it. If I was the only one complaining, I would consider myself just plain uncapable of my profession. And maybe I am. Maybe the actual coding stars out there don’t complain on HN and can just breeze the interviews about ADS and laugh at the amateurs like me that they don’t know the simple things. Maybe I am so low in the hierarchy that I still can’t see the use, I am just a regular work-man level. And that makes sense - I am just 24, no industry experience except my (failing?) startup, a Bachelor degree and an internship or two. I do not pretend my knowledge is good enough. Hell, what do I know? Seriously, no irony, I get it - maybe ADS is the right way. I just highly suspect it is not. /modesty. Let’s move on. But if that is true, then why do companies examine me on “tech star” level things? Shouldn’t they just know if I can bash my way out of a stuck python terminal and hire me anyway? If I am supposed to be a low-level worker, why not just test me if I can do for loops, if statements and hire me? ## Company’s incentives Hypothesis: “A company wants their employees to be obedient.” Hiring is costly. People quitting is costly. People who are adventurous, hackers, people who do open source or side projects, startups are kind of risky. If they hire such a person, she could resign in 6 months because of her side projects. Considering an average 3 months to get up to speed in a company, that leaves (at best) 3 months of work of that candidate. This is not good. And as far I understand, it is rather hard to fire a person these days. So if you hire somebody, it better be for good and better be for long. What if we can filter people who we know they will stay for a while longer and will not be tempted to leave? Give them a test that: A. they will have to spend a week or two brushing up on their skills OR B. they are so fresh out of college that they will know these stuff anyway and would not have the experience of the real world to tempt them so quickly to leave Also ADS is great sweet spot to see if you are/were a good student. And a good student means obedient student - one who does all the exercises and, maybe complains a bit, but excels at them. Why are ADS sweet spot? Well, they are a bit trickier than the other stuff. They do require a bit more abstract thinking, maths etc. “Great” - HRs say - “this is what programmers do, right? Maths? And abstract thinking? Yeah, let’s do that!” So now, I am brushing up on my AVL rotation skills. Which I haven’t done in 3 years. And which if I have to do anytime after the interview, I will just google and copy the code anyway (of course, only from SO or github with the proper licence and attributions, yadda-yadda). But I wouldn’t trust myself to do it on the spot in 15 minutes. Why not? See, I would trust myself setting up a flask webserver on the spot even with no googling. Or writing routes, models, doing migrations, scheduling tasks with workers, running a debugger. I will trust myself doing list comprehension, designing classes and inheritance, refactoring or unit testing, I would trust myself using bash to find files that contain a string recursively, changing permissions, setting up nginx, uwsgi etc. Why? Because I’ve done this hundreds of times and the first 20 or so with googling. Then it becomes quicker to get it from brain than the slow Internet, we all know I/O kills everything, brain is quicker. But my small cache doesn’t really have AVL because it wasn’t accessed that often. ## Why is that possibly true I can’t prove my hypothesis that companies do that only because obedient people would sit down and study the things that a company tells them to do. I mean, it makes sense I think, but again, I have very limited experience and maybe once you grow up from setting webservers, you do start writing algorithms. Maybe having algorithms in cache is a good signal or correlates well with “knows how to do shit”. If there is research like that, please let me know. And don’t get me wrong, I can reason why to use a list or a dict at certain situation, I do think about my data structures, I do think about algorithms. But I don’t write my own merge sort, ever, I use sorted(). I don’t write my hash functions with random probing collision resolution, although I was interested enough to look up how python does it and am aware of edge cases and limitations - but even that is trivia that I don’t really need to know. Just I need to know dictionaries are better for looking up keys than storing the same info in a list of lists. And other things of course. But I think it’s correct, the hypothesis I mean, because I’ve heard and read about tons of programmers who I consider much, much better than me to complain about the same thing. Complain that they couldn’t pass a Google interview because they asked them to implement a red-black tree on the spot in 15 minutes and they couldn’t. But if they could it would mean that they have a track record of knowing how to do it in the past or are scared enough to sit down and learn that thing for a company because they need a job. Or that they are pure machines that eat Algs for breakfast, Data structs for lunch and dynamically program their pizza for dinner. So what is a good interview then? Billion dollar question isn’t it. Seems that nobody knows, or at least that is what I read. Bad things that we know didn’t work in the past: - **Brain teasers** - You know, you have 10 coins, 3 of them lie all the time the rest are put inside of a blender that starts spinning in 10 seconds, what would happen if you put the blender on a manhole which is square and how would you time these 10 seconds given you only have a boat that can carry only one thing and a giraffe inside of a fridge? These turn out not to be good predictors for success, although they were asked by the Big 5 in the past. Most Good companies ® stopped using them. I used to play tons of this in the time when Internet was still not a thing and I was socializing with the children at my grandma’s place. My 5 year old-self would be able to pass these interviews, no problems, I knew so many words, in fact I knew the best words, I had the best words... but not anymore. - **Trivia** - what is the difference between finalize, final, finesse, what ECT3-omicron stands for in AWS, and what if you type []+[] in a javascript console. Similar to brainteasers, you are probing your luck with those - the candidate either knows them or doesn’t and there is no much thinking or explanation that can be given. A good Who wants to be a millionaire programmer question for $25,000 but with no 4 possible answers and can’t call a friend. Brain teasers are probably actually better than these, since the candidate can at least show some logical thinking. - **Maths**. Duh. Answering 100 questions in 25 minutes aptitude-get interview that a calculator would do and if my fingers are fast is not a good predictor except maybe that I am a fast typer and have drunk 2 red bulls before that. And if you give me some of that crazy alien symbols, some of which are greek, some of which are inverted greek that don’t even look like an equation but behave like one if you divide both sides by square root of -1… I will just give you a reference to a friend of mine who gets high on square roots. - **IQ**. Maybe a good predictor still but as with all tests, if I practice enough pattern seeking and number sequences, I am pretty sure I can get 30 points which is a lot, right? I think ADS will be added to this list at some point in time. It just sounds too much like “if I study it for a week or two, I can fake it for 20 minutes”, similar to the above of the list. So what is left? **Writing actual code**. Can’t go wrong with that and many companies do it. If I have to hire a plumber and he can’t do pipes, I don’t care too much if his engineering skills are a blast and he could draw me a sketch of the Golden gate bridge in a flash. But then how should candidates write code? IDE, text editor or white board? Can they use Google or documentation or man pages? Only brain cache? What is the measurement? Time? Space? LOC? Yeah, I think that last one would be great. It’s so easy to pass it to an HR and measure the amount of LOC - the more lines, the better programmer and it’s an easy decision! HIRE! These are hard questions and it probably depends on a company. You are free to decide, of course. But you will be wrong if you don’t decide like me. MY BLOG POST, MY RULES, GET OUT OF HERE! I would go with full blast - you can use IDE or vim, you can use docs and duckduckgo or whatever you will use if this actual problem is given to you at work. Hell, why limit her? I don’t get it - let her call a friend, ask around, ask the interviewer, try things around, run it, break it, let her watch a youtube video of a cat or whatever she is into (no porn… unless it’s… no, no porn), stretch a bit, go for coffee, come back, try again… Why limit the available resources when programming is hard enough even when you do have all the resources?! I mean, if it was that easy to code with Google, probably I would be a superstar coder immediately, no? I would give only 2 restrictions or differences: - You can’t copy-paste code verbatim. In any way it is a good practice to remember code and avoids liability for a company, especially if the code is not explicitly stated as free to use - You have to sort-of walk us through what you are doing and why you are doing it. Which is not that much different than pair programming. And you can BYOLaptop if you want, show us some cool .vimrc or whatever to kick things off, make it more of a normal conversation. Of course, there is an imbalance of nervousness on the sides of the interview and it’s hard to balance this one, the candidate has a lot to lose but if I can do this on an interview, I would be 10 times calmer since it almost sounds like a normal work day. And for fucks sake, don’t ask me about my weaknesses if you don’t want to hear them. **SPOILER: The crazy part starts here. Mom, please don't read below this.** My weaknesses? I am an angry, lonely, insecure perfectionist who gets distracted by sexy red heads, solving his problems with occasional running or eating until regret, over-stressed quarter-life crisis millennial who believes is entitled to a meaningful job, an over-controlling freak that draws diagrams at 2 o’clock in the morning of the-meaning-of-my-life, fucks that, then fucks his right hand instead of his girlfriend because he believes his life is worthless and he doesn’t deserve to be happy whatever that means. But I think that improves me in a way, yeah? How are you crazy? What do you do at 2 o’clock in the middle of the night? Do you check your facebook wall? Or do you think about work? I know I think about my startup and how to make it work even though I have said about 50 times in the past month that I am done and only 45 times that I think it will actually work, is that crazy? I know I dumb my senses with binge-watching Mr Robot because I don’t want to face real-life decisions. How do you destress Mrs HR? Are you happy, do you stay positive? Don’t ask me about my 5-year plan. I am not in school anymore, yeah? I don’t know what 5 years is anymore, too many decisions. Will I have a baby? Will Trump become president and start a nuclear war? Would I do programming or switch to something else because of FOMO? How should I know? Do you? Can you predict the future? Can you give me your plan? Can I follow your plan? Because you have one, and I don’t, yours is better? Let’s just build a wall. Will I be a team player or a leader? Better both. I can show you examples of these, does it matter? Am I hired? Am I a good person? Oh, boy, I am complaining. I am a white young male in the western world with first world problems, shit! I have too many choices - I can become anything! ANYTHING, you hear?! ANYTHING! People in Africa would kill for these choices. And I sit here complaining when I should be studying rotations. Fuck! I don’t want choices. I am too smart. I am too dumb. My parents know what I should do. My girlfriend knows what I should do. My business partner knows what I should do. How come I don’t know what to do? I don’t know. I ain’t no HR. Obviously, for now I ain’t no businessman either. I will probably try again at some point. Now, I need to pay the rent. Or should I go back to my home? No, that’s not good, we decided we are a “person-who-lives-in-the-western-world”. We? I mean I. I MEAN ME. Suck up with interviews, give up my entitlements, dumb my senses, starts living an average life. “Just” be normal. “Just” stay positive. “Just” enjoy the journey, the beautiful life you’ve been given. You have 1 in a trillion chance being born and you just have that many years to enjoy the journey. It’s a struggle, everybody struggles, but you learn from it. Hapiness must come from within, you can't control the external stuff. You are responsible for your own life and you decide how to me happy. Here, read that self-help book. Here, watch that guru talking on youtube, he has his life figured out. Meet friends, don’t isolate yourself. But I hate people. But I am lonely. I need people. But I hate people. I should hate people right? I am an introvert. But I love my girlfriend. Yeah, let’s just stick with that. Make a family. Enjoy the little things. But I need to socialize. Let’s go to a party. Fuck, I don’t want to talk about “what do I do”? I don’t know what do I do. What do you mean, I guess I code? I sort-of-have a business. I don't anymore. Or I do? How do you decide if your business fails? It's a mirage. But it's my baby. Would I ever give up on my baby? Should I give up. Dude, just chill. You are living the dream. Just enjoy it, it’s not that bad, you have friends, family, you are healthy, you are smart, educated. Why do you think you have so many problems? You know how many problems I have? Dude, tons of problems, yours are nothing! You have a choice, you can work wherever you want. Just send your CV, just pass that interview at that company. Just be happy, okay? “Just” say “just” one more time motherfucker, say “just” one more time, I dare you, I double dare you!
43 20131011 20131011_week_10.md Week 10 This week - charts. ![how i met your mother - marshal showing his favourite bars on a pie chart and his favourite pies in a bar chart](/media/20131011_week_10/charts.png) Almost. But not quite. We were talking about Gantt and PERT charts. Cool stuff that bussiness people talk all the time. They just love it - give them meetings, status reports, where is it going, how much is it gonna cost, who is working on what, what needs to be done in order to AAA! Just do IT! To be honest - I hate planning (no way, you couldn't have guessed from the rant above). Not just the process of planing, the execution of it. I just can't work with a plan - it limits me or it pushes me - never with the right speed. The right speed depends on many factors including distance and time but in this context - my current mood, level of entropy in the Universe and amount of food around me. The bad thing is that it's a must do and not want to do - and that's all the difference for me. I'm the kind of person that just wants to do the work, not plan it. But... some people need it. Some people need to know what is going on when and how. And because I must to work with other people, I will do my best to draw charts.
44 20180929 20180929_bullsh8t_01_astrology.md Bullsh8t, Episode #1 - Astrology *This episode of bulls8t is sponsored by my own desire to limit some of the bullsh8t in the world* Horoscopes are the worst thing since the invention of God(s). The stupid idea that planets and stars somehow influence your day to day life is idiotic and should have died pretty much whenever it was conceived. Like most of humanity. Or at least ever since we know that it doesn't influence your life. Which in all practical terms has been forever. ### Hey babeee, Which sign are you? Astrology, a.k.a. horoscopes, a.k.a. these things in the websites you read "just for fun but you actually don't really believe" (but deep down you actually do believe them because you think there is a grand scheme of things, but deeper, deeper down you know you don't know anything) revolves around an idea called a sign. Signs are twelve words that sound funny in English so that's why we stick with much hipster Latin. ![achzually](/media/bullsh8t/01_00_actually.png) ACKCHYUALLY. Signs are constellations in the sky. Constellations are what our pattern matching machines in our heads try to invent whenever they look at pretty much anything. Do an experiment if you don't believe me. Spill some salt on the table. Now lock your head on the table and watch that for 30 days. In less than 5 minutes you will start seeing triangles and rectangles, also pentagons, hexagons and septagons. Octagons? Possible. Nonagons? Sure. How about shapes with 10 sides. Maybe. 11 sides? I can see that happening. 12 sides? It is entirely possible. The point is, you will see anything you want to see. And when you are the night shift at some old point in the past and have to be under a table of distant salt (also known as glowing balls of hydrogen and helium) you start seeing shapes. Wanna see how Aries looks like? Well, take a look at this magnificient ram: ![it's alive!](/media/bullsh8t/01_01_aries.jpg) Most of them constellations are like this. If you go out and look UP rather than at your glowing rectangle of light in your hand, you will see that. Well, no, actually you will see this if you also go somewhere nice and clean like a mountain, not in the dust- and light- poluted cities. Man, we have screwed up these cities. Also if there are no white water vapour in the air also known as tobacco smoke that smokers keep on saying "itz nize and calmz ya dawn man". Fuck you. To help you in your quests, sometimes the civilization hires large laser pointers, shoot them up in the stratosphere and draw lines for you to imagine. Just ask you nearest flat-earther to tell you when and you will see this: ![it's alive!](/media/bullsh8t/01_02_aries_connected.jpg) So yeah, somehow someone saw a ram there. Yeah. Moving on. Now why Aries is special collection of dots? Because from our very special point of view (the Earth) the Sun appears to pass through these constellations as the year goes on. And wherever the Sun has been when you were born in relation to other stars that's what sign you are. That's it. Now I took a trip to space, hired a bunch of lasers and satelites to draw the lines just to show you this photo: ![it's alive!](/media/bullsh8t/01_03_sun_in_aries.jpg) You are welcome. ## The 4 Lies THEY have been feeding us! You won't believe number 2!! No, I didn't go to space. Obviously. This "photo" is taken in the future, in May of 2019 (or the past depending on when you are reading this crap). And I sure won't use my time machine just for a shity blog post. But that's just the small lie. The real lie is that the Earth is flat. But another lie is that if you paid enough attention, May of 2019?! But Aries is in March/April. Then why is the Sun in the constellation in May? And are there only 12 constellations through which the Sun passes? And who cares - I mean, if you are reading this, you probably know the answers. People who believe in zodiac crap generally don't read. Well, they do read but only their horoscopes. And facebook posts. But facebook I hear is not cool anymore because it indeed requires reading. Now the hype is in Instafeces where you don't need to read - just look at photos of the Magellanic clouds. Haha, but no, really, you just look at pictures of the concerning climate change graphs. Haha, but no seriously you look at pictures of your mom. Haha but she is so fat that, eh... whatever. Ok, but seriously - there are 13 constellations, and they are not given equal rights. Like not at all, it's worse than Attack helicopter gender and the rest. ![fixd that for ya](/media/bullsh8t/01_05_attack_helicopter.jpg) Also, 13 is unlucky and people are superstitious so they cut down the Snake bearer Ophiuchus which is between Scorpio and Sagitarius because ain't nobody wants to be a Snake bearer. And also dates defer because the Earth wobbles like a coin on a table (get it, cause it's flat). Do you want to see what Aries looks like from Betelgeuse, a star far away but still in our galaxy? Here it is: ![still magnificient tho](/media/bullsh8t/01_04_aries_from_betelgeuse.jpg) You see it now? Great! ### So... what I was trying to say is... Astrology is full of Tauri excrements. Like seriously full of bullsh8t. If I hear anybody talking that they have read that today it's gonna be a lucky day because they are Pisces, I go away. More than I go away if someone is smoking and when someone is smoking it is actually burning my lungs. If somebody asks me which sign I am, I tell her she is an idiot (see, gender equality, I use "she" when it's relevant) and I don't waste my time with her. I prefer to waste my time by watching and recording meteors which is another useless thing but oh so much better than listening about horoscopes.
45 20140327 20140327_week_xx.md Week XX As I said in the previous week post, OCL is great. Here is how I imagine my first meeting in a bank (that I will definately go to work for): {% rawhtml %}<iframe width="560" height="315" src="https://www.youtube.com/embed/BKorP55Aqvg" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>{% endrawhtml %} Did you know that the site [http://omg.org](http://omg.org) is actually relevant to the topic? I mean, OMG... Is Object Management Group! OMG! So these guys are doing a good job creating formal language for development. Here is what I definately read: * [http://www.omg.org/spec/OCL/2.4/](http://www.omg.org/spec/OCL/2.4/) * [http://cs.ulb.ac.be/public/_media/teaching/infoh302/oclnotes.pdf?id=teaching%3Ainfoh302&cache=cache](http://cs.ulb.ac.be/public/_media/teaching/infoh302/oclnotes.pdf?id=teaching%3Ainfoh302&cache=cache) Actually for a whole week now, when I message my buddies, I do it like this: ``` context Message: inv type=Individual let message="Hello John" pre: open(facebook) post: press(Enter) ``` See, I am into it! Discussing, linking, appraising and critisising. I love my blog!!!
46 20140226 20140226_week_least_random_number.md Week Least Random Number Aspect Oriented development. I loved it. I think it aspect oriented programming is really useful. I think it creates the abstraction needed for professional software development. I think the day that we spent using AspectJ was absolutely enough to grasp the main point. Maybe not understand it completely, but really get what's going on. I didn't have any previous experience with that, so that didn't help me a lot. But I understand the idea. And that's important! Here are some links which helped me while understanding deeply aspect oriented development - totally not result 1,2,3 of a search engine: 1. [http://en.wikipedia.org/wiki/Aspect-oriented_programming](http://en.wikipedia.org/wiki/Aspect-oriented_programming) 2. [http://www.onjava.com/pub/a/onjava/2004/01/14/aop.html](http://www.onjava.com/pub/a/onjava/2004/01/14/aop.html) 3. [http://docs.spring.io/spring/docs/2.5.4/reference/aop.html](http://docs.spring.io/spring/docs/2.5.4/reference/aop.html) Also, I have been talking to my friends and family all week about aspect oriented development. It's been so wonderful. I was also able to practice it! I just put it on the round-robin schedule that fixed my life and sooner or later it's time came next to NS, OS, Food, DIM, Sleep, DB, TP dissertation, enjoying the wonderful time at University, running for a marathon and the wonderful help I got from my team to further pop things from my schedule so that I have more time for Aspect Oriented Development. And now, that the week is gone and I got to know (please, not know - understand and appreciate) how to do Aspect Oriented Development which I will need once I start working in the real work, it's time to throw it away and never look back! How I would do things differently: I am afraid a lot of stuff from Apache weren't looked at all this year. For example the mini Apache Web Server. But who uses that... Also take a look at these and try to squeeze some more into PSD next year: [wikipedia](http://en.wikipedia.org/wiki/List_of_Apache_Software_Foundation_projects)
47 20140304 20140304_week_adult.md Week Adult (in most European countries) We did state machine diagrams in year 2, computer systems course. We dealt with finite state machines and explored their properties in semester 1 in Algorithmics 3. (Personal background experience noted) But until now, we had no idea how do draw state machine diagrams. So now we know! Here are some links to support my thesis: 1. [http://www.dcs.gla.ac.uk/people/personal/gethin/alg3/2013/alg3_section6.pdf](http://www.dcs.gla.ac.uk/people/personal/gethin/alg3/2013/alg3_section6.pdf) 2. [http://www.dcs.gla.ac.uk/people/personal/gethin/alg3/2013/alg3_pushdown_automata.pdf](http://www.dcs.gla.ac.uk/people/personal/gethin/alg3/2013/alg3_pushdown_automata.pdf) The second part of the lecture - Threads! We did that too in Advanced programming 3, semester 1. With the second assessed excersise being on Java threads. And refreshed it in Networking Systems, semester 2. And the assessed excercise in NS was with C Threads. And the OS assessed excersise requires knowledge of C Threads (with tutorial refreshing the concepts). But I think it's the first time that we see a UML state diagram. Here are some links to support what I am saying: 1. [http://moodle2.gla.ac.uk/pluginfile.php/120556/mod_resource/content/1/Concurrency2a.pdf](http://moodle2.gla.ac.uk/pluginfile.php/120556/mod_resource/content/1/Concurrency2a.pdf) 2. [http://moodle2.gla.ac.uk/pluginfile.php/193944/mod_resource/content/1/lab2.pdf](http://moodle2.gla.ac.uk/pluginfile.php/193944/mod_resource/content/1/lab2.pdf) 3. [http://moodle2.gla.ac.uk/pluginfile.php/206062/mod_resource/content/1/Pthreads_tutorial.pdf](http://moodle2.gla.ac.uk/pluginfile.php/206062/mod_resource/content/1/Pthreads_tutorial.pdf) 4. [http://moodle2.gla.ac.uk/pluginfile.php/120575/mod_resource/content/1/General1.pdf](http://moodle2.gla.ac.uk/pluginfile.php/120575/mod_resource/content/1/General1.pdf) I know the repetition is the mother of learning but I would argue with that. If I repeat a 1000 times the expression "Hello world" to a dog, it will not be able to learn it how to do it himself, although it would react somehow the next time I mention it. The doing of the assessed excersices help in the different courses but introducing us to threads once we have done it for a year... Maybe as well, who am I to judje? How would I do things differently? Spend some time making the courses more coherent. (A constructive suggestion.) Appraisal: I liked that the lecture was moved to 10 o'clock. I am surprised how suddenly the room was made available for us one hour later on Monday. Many questions will remain unanswered though: who was occupuing the room at that time all year? What happened to them? Is the University haunted by aliens? ![i'm not saying it's aliens... but it's aliens](/media/20140304_week_adult/aliens.jpg)
48 20180402 20180402_signal.md Auto adapting signal to day-night scheme So I wanted to automatically change the day/night theme of my brand new Signal desktop app. The way that it is manually done is through the `File -> Preferences...` menu. Now that's not convinient for programatic person like me. Let's investigate! ## `.config` folder My first stab is looking into the mostly standard `~/.config` folder in Linux for Signal if one actually exists. It turns out it does. Let's see. It even has a `~/.config/Signal/config.json` file. Unfortunately, that file doesn't contain the settings for the theme, just window positions. `grep -r`ing in the folder for any of `android` or `theme` just returns the logfile that Signal is writing to. ``` ... ./logs/log.log.1:{..."theme-setting changed to android-dark",...} ... ``` No luck. Another stab is at `/opt/Signal` directory. Again - no luck. And the app is a binary ELF executable ``` $ file signal-desktop signal-desktop: ELF 64-bit LSB executable,... ``` ## `strace`-ing My next attempt is to attach to attach to the Signal process via `strace`. Find the process by `ps aux|grep signal`, attach by `strace -p <pid>` and try to change the . Boy, this does a lot of stuff! Let's filter by writing: `strace -e write -p 12345` Still, too much but I saw something hapenning amid the writing to `40` and `71` file descriptors (fd). ```bash #... write(40, "!", 1) = 1 write(71, "\0", 1) = 1 write(40, "!", 1) = 1 write(1, "{\"name\":\"log\",\"hostname\":\"pi2-ho"..., 147) = 147 write(12, "\1\0\0\0\0\0\0\0", 8) = 8 write(71, "\0", 1) = 1 write(40, "!", 1) = 1 #... ``` All right, the `1` fd is the log that is being written that I already saw. How about that 12 fd? Let's explore within the `proc` fs: ```bash $ cd /proc/1234/fd $ ls -la # ... lrwx------ 1 pi2 pi2 64 Mar 29 23:23 12 -> anon_inode:[eventfd] # ... ``` Oh boy, some wierd anonymous inode. So we are definately not dealing with a good old filesystem file but rather some on the fly created fd. Let's explore a bit more... ## Signal is an Electron app Taking a look at the [github repo of the project](https://github.com/signalapp/Signal-Desktop). Searching for `dark` and `theme` reveals css, sass files. Okay Looking at the menus there is `View -> Toggle Developer Tools` and BAM - a good old Chrome developer tools console pops up! Inspecting the elements, it's pretty clear what is happening: ```html <body class="android"> <!-- changes to --> <body class="android-dark"> ``` Brilliant, the change of theme just changes the class on the `body` element. Let's see if we have jquery or I have to go to the dark ages of javascript's `findElementByTagName`: ```javascript > $ < function ( selector, context ) { // The jQuery object is actually just the init constructor 'enhanced' ... ``` Good, we have. Now I "just" have to find a way to connect to chrome console via a good old terminal in some way... ## Chrome remote debugging Searching the Internets, I find a [post](https://blog.chromium.org/2011/05/remote-debugging-with-chrome-developer.html) in Chromium blog from way back in 2011 that I can run Chrome with `--remote-debugging-port` flag which enables some sort of a remote console. Would the electron app do the same? ```bash signal-desktop --remote-debugging-port=9222 ``` Indeed it does. This console however is not just a simple tcp connection to the javascript console. Running `echo "alert('echo'); | netcat localhost 9222` does nothing. More reading to go... Turns out, Chrome DevTools has its [own protocol](https://chromedevtools.github.io/devtools-protocol/) that among other things exposes websockets. Let's see what clients exist for that [Quite a lot](https://github.com/ChromeDevTools/awesome-chrome-devtools). Any pythonic ones? [pychrome](https://github.com/fate0/pychrome) seems simple enough. Let's be modern, do python3: ```bash pip3 install pychrome ``` And I will use my favourite repl, `ipython` and follow the Getting started tutorial: ```python import pychrome browser = pychrome.Browser(url="http://127.0.0.1:9222") ``` Awesome, I have a connection. The tutorial goes into opening a tab. I don't want that, I assume I should alread have a tab. Exploring `browser` object (via my favourite [ipython repl](http://ipython.org/)): ```python In [3]: dir(browser) Out[3]: [... _private_stuff 'activate_tab', 'close_tab', 'dev_url', 'list_tab', 'new_tab', 'version'] In [4]: browser.list_tab() Out[4]: [<Tab [38473d8e-ad8d-4325-8cb6-81aaec36c124]>] In [5]: tab = browser.list_tab()[0] In [6]: dir(tab) Out[6]: [... _private_stuff 'call_method', 'debug', 'del_all_listeners', 'event_handlers', 'event_queue', 'get_listener', 'id', 'method_results', 'set_listener', 'start', 'status', 'status_initial', 'status_started', 'status_stopped', 'stop', 'type', 'wait'] ``` The README goes into navigating pages and the examples folder is also not what I am looking for. But they do tell me `call_method` is probably what I want, just need to find the proper string and parameters in the protocl. I want to execute a javascript call. Back to the [Chrome DevTools Protocol Viewer](https://chromedevtools.github.io/devtools-protocol/). I look through a few of the Domains listed and finally arrive at [Runtime.evaluate](https://chromedevtools.github.io/devtools-protocol/tot/Runtime#method-evaluate) method. ```python In [7]: tab.start() In [8]: tab.call_method('Runtime.evaluate', expression='alert("hi");') # I GET AN ALERT IN THE BROWSER! Dismiss it. Out[8]: {'result': {'type': 'undefined'}} ``` Finally! I have access to my javascript console in the browser! Let's write the jquery change of theme: ```python tab.call_method('Runtime.evaluate', expression='$("body").removeClass("android").addClass("android-dark");') ``` That worked! ## Wrapping it up Let's write a propper python script now: ```python #!/usr/bin/env python3 import sys import pychrome sys_argv = sys.argv if len(sys_argv) < 2: print("first argument needs to be day|night") exit(1) command = sys_argv[1] if command == "night": expression = js_dark_to_light = """ $("body").removeClass("android").addClass("android-dark"); """ elif command == "day": expression = js_light_to_dark = """ $("body").removeClass("android-dark").addClass("android"); """ else: print("first argument needs to be day|night") exit(1) browser = pychrome.Browser(url="http://127.0.0.1:9222") tab = browser.list_tab()[0] tab.start() tab.call_method('Runtime.evaluate', expression=expression) tab.stop() ``` Running `./change_signal.py day` changes to white theme and `./change_signal.py night` goes to dark theme. I also want to change the `signal-desktop` app to always start with the remote-debug flag enabled, so I do that: ```bash rm /usr/local/bin/signal-desktop cat > /usr/local/bin/signal-desktop << EOF #!/bin/bash /opt/Signal/signal-desktop --remote-debugging-port=9222 EOF chmod +x /usr/local/bin/signal-desktop ``` And that's it. Code can be found in my [sun](https://gitlab.com/pisquared/sun) repo which also deals with other day-night related dark-light themes including a script to detect whether the sun has set or not: ```bash $ ./calc_sun.py usage: calc --loc=location_name [--date-format] calc --lat=latitude --lon=longitude [--tz|--date-format] returns current_time sunrise sunset day|night $ ./calc_sun.py --lat=51.21 --lon=4.40 --tz=Europe/Brussels 23:57 07:23 20:10 night ``` So now I can chain that: ```bash state=`./current.sh | cut -f4 -d' '` ./change_signal.py $state ``` Voala! That was fun 🙂😊
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 1.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

View File

@ -0,0 +1,132 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="210mm"
height="297mm"
viewBox="0 0 210 297"
version="1.1"
id="svg8"
inkscape:version="0.92.2pre0 (973e216, 2017-07-25)"
sodipodi:docname="income_vs_free_time.svg">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.98994949"
inkscape:cx="228.38069"
inkscape:cy="739.84235"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1019"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1">
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:5.39267254px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.13481681"
x="124.3552"
y="112.74063"
id="text3701"><tspan
sodipodi:role="line"
id="tspan3699"
x="124.3552"
y="112.74063"
style="stroke-width:0.13481681">SaaS</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.07776928px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.10194423"
x="88.296967"
y="70.758125"
id="text3705"><tspan
sodipodi:role="line"
x="88.296967"
y="70.758125"
style="stroke-width:0.10194423"
id="tspan3765">Consultancy</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.9187727px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:0.12296932"
x="76.945984"
y="60.47411"
id="text3705-3"><tspan
sodipodi:role="line"
id="tspan3703-6"
x="76.945984"
y="60.47411"
style="fill:#0000ff;stroke-width:0.12296932">Income</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.64490414px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#0000ff;fill-opacity:1;stroke:none;stroke-width:0.1161226"
x="164.62019"
y="125.17039"
id="text3705-3-7"><tspan
sodipodi:role="line"
id="tspan3703-6-5"
x="164.62019"
y="125.17039"
style="fill:#0000ff;stroke-width:0.1161226">Free time</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 84.1899,63.139163 V 181.27229"
id="path3743"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="M 21.648831,122.20573 H 160.89625"
id="path3745"
inkscape:connector-curvature="0" />
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.03096676px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.10077417"
x="103.87975"
y="88.110062"
id="text3701-3"><tspan
sodipodi:role="line"
id="tspan3699-5"
x="103.87975"
y="88.110062"
style="stroke-width:0.10077417">Company work</tspan></text>
<text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:4.03096676px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.10077417"
x="147.81297"
y="120.37782"
id="text3701-3-6"><tspan
sodipodi:role="line"
id="tspan3699-5-2"
x="147.81297"
y="120.37782"
style="stroke-width:0.10077417">Investing</tspan></text>
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 356 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 KiB

View File

@ -10,10 +10,11 @@
font-family: "Open Sans", Arial, sans-serif;
color: #444;
padding: 0 1em;
background-color:white;
}
main {
max-width: 1200px;
max-width: 800px;
margin: 0 auto;
}