Category Archives: технология

Избори юли 2021: секциите в чужбина

от Боян Юруков
лиценз CC BY-SA

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

  • Изборният ден започва в 7:00 сутринта местно време и свършва в 8:00 часа вечерта
  • Може да гласува всеки български гражданин независимо дали е подал заявление или не
  • Независимо от отбелязаната в заявлението Ви секция, може да гласувате където и да е в чужбина
  • В чужбина може да гласува всеки български гражданин независимо от обичайното му пребиваване. Това означава, че ако пътувате зад граница по работа или на почивка, може да упражните гласа си в близка до Вас секция. Отново, няма значение дали сте подавали заявление.
  • Ако все пак сте в България по време на изборите, може да гласувате само по постоянен адрес. Тогава попълвате декларация 17, че не сте гласували в чужбина и са длъжни да Ви отбележат. Присъствате в списъка и след името Ви е отбелязано МВнР
  • Ако гласувате в чужбина попълвате декларация 22, че не сте и няма да гласувате другаде. В секцията следва да има бланки за попълване на място, но имате право да я попълните вкъщи и да я донесете. Това ще Ви спести време. Ако комисията на секцията откаже да приеме предварително попълнено заявление, имате право да обжалвате и са длъжни да се свържат с ЦИК и да решат въпроса веднага без отлагане. Ако откажат или продължават да настояват, може да подадете сами сигнал до ЦИК на телефоните, които ще бъдат обявени на сайта или по мейл
  • Гласува се с валидна лична карта или паспорт или такава изтекла след 13 март 2020 г. Ако е изтекла преди това може да гласувате като покажете бележка от консулството, че сте заявили нов документ. Това беше потвърдено с решение на ЦИК.
  • В чужбина има възможност да гласувате само за партия/коалиция. Няма възможност за преференции, каквито има в страната. Така гласът Ви помага само на конкретната коалиция да влезе в парламента. Запознайте се и с образеца на бюлетината.
  • В част от секциите в чужбина ще има възможност да се гласува с машини. Това ефективно изключва вероятността за невалидни гласове. Пример за електронната бюлетина ще намерите тук, а тук е демо за работа с машините. Макар на екрана да има заглавие за „Преференции“, полето ще остане празно в чужбина по причините в предишната точка.
  • Криптографският идентификатор (системен хеш), който трябва да фигурира в системната разписка (диагностичен доклад), отпечатана от СИК преди началото на гласуването в изборния ден от машината за гласуване е със следното съдържание: 05 35 97 A2 16 3A 8F 72 6D 48 6E 09 35 F8 AA 03 56 AD A8 25 92 D1 10 21 CD 88 11 D1 Е7 F0 9С 2Е. Проверявайте го в секцията, в която гласувате. Трябва да е на видимо място

Както и на предишните избори може да натискате на адреса и да го отворите в Google. Тъй като изписването на адресите невинаги се намира в Google, съм добавил и възможност за отваряне по географски координати.

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

Секциите в чужбина ще намерите на картата, както и на сайта на ЦИК.

The post Избори юли 2021: секциите в чужбина first appeared on Блогът на Юруков.

Как да разберем, че ще ни застроят градинката поне няколко дни преди багерите?

от Боян Юруков
лиценз CC BY-SA

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

Ситуацията в София е една идея по-добра, тъй като има що-горе добър портал на Направление „Архитектура и градоустройство“. Проблемът обаче е, че твърде често документите за определени апетитни сгради се укриват умишлено от администрацията прикрити зад „технически грешки“, а обществените обсъждания направо се прескачат. Това, разбира се, може да се промени единствено с кадърен кмет начело, който да следи изкъсо администрацията си. Това обаче го няма в София, няма и да го има още няколко години. Кметовете на райони, които имат желание да действат, нямат достатъчно лостове. Решение би била и работеща прокуратура, но и това го нямаме. За последното обаче има какво да направим и то е на изборите на 11-ти юли.

Когато документи и обсъждания се публикуват обаче, ни се дава шанс да участваме, реагираме и протестираме. Често формалната процедура далеч не работи заради вкоренената корупция и сенчестост на Софийска община. Да знаем навреме за нов строеж или промяна на ПУП ни дава лостове да вдигнем шум, а това често дава резултати.

Следенето на портала на НАГ не е приятно занимание. Правя го от месеци всяка седмица и е тягостно. В такива случаи опирам до автоматизация, както направих с ЦИК и заявленията в чужбина. За общата администрация имам обаче друг проект – GovAlertEu, където в серия от Twitter акаунти се пускат новини, събития и документи от всякакви държавни институции. Последно след сушата добавих бюлетина на оценката за състоянието на язовирите, например. Друг пример е, че от години пуска в почти реално време съобщения за земетресения от БАН. През тази система ми минава и автоматизация на Lipsva след като спрях проекта преди 7 години.

Сега добавих и НАГ София към списъка. Освен новини и събития се пускат съобщения за:

  • обществени обсъждания за промени на ПУП и ново строителство
  • визи за проектиране
  • градоустройствени заповеди
  • разрешение за строеж
  • разрешение за поставяне
  • разрешения за строеж на благоустройствени обекти
  • доклади на главния архитект
  • решения РИОСВ за преценяване на необходимостта от екологична оценка
  • заповеди на Общински строителен контрол

съобщения за обществени обсъждания, визи за проектиране, градоустройствени заповеди и разрешителни за строеж. Може да ги следите на акаунта @NAG_SO_public в Twitter.

Проверката се прави на всеки 2-3 часа и както при всички останали наблюдавани сайтове е направена така, че да не натоварва сървърите. Където е възможно в tweet-овете показвам първите страници от дадения документ като снимка. Във всички случаи обаче целта на съобщението е да даде представа за какво става дума и дали би било интерес за следящия новини.

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

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

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

Подобни електронни услуги могат да станат съвсем лесни, ако портали като този на НАГ, а и други информационни системи на администрацията, се създават в съответствие със закона и предоставят автоматични интерфейси за обмен и отворени данни. Така ще дадат възможност не само на актунти като този, но и на всякакви приложения да уведомяват заинтересовани за актове на администрацията. Това не се прави обаче дори когато няма корупционен риск – просто липсва визия в законодателната и изпълнителната власт също толкова, колкото и в местната. Затова кандидатури като тази на Божидат Божанов в 24 МИР София са толкова важни на изборите на 11-ти юли.

Ако имате идеи какви други регистри и новини могат да се добавят, пишете с линк в коментарите. Може би вашият град има подобен портал или страница с обявления.

The post Как да разберем, че ще ни застроят градинката поне няколко дни преди багерите? first appeared on Блогът на Юруков.

Every Serialization Framework Should Have Its Own Transient Annotation

от Божидар Божанов
лиценз CC BY

We’ve all used dozens of serialization frameworks – for JSON, XML, binary, and ORMs (which are effectively serialization frameworks for relational databases). And there’s always the moment when you need to exclude some field from an object – make it “transient”.

So far so good, but then comes the point where one object is used by several serialization frameworks within the same project/runtime. That’s not necessarily the case, but let me discuss the two alternatives first:

  • Use the same object for all serializations (JSON/XML for APIs, binary serialization for internal archiving, ORM/database) – preferred if there are only minor differences between the serialized/persisted fields. Using the same object saves a lot of tedious transferring between DTOs.
  • Use different DTOs for different serializations – that becomes a necessity when scenarios become more complex and using the same object becomes a patchwork of customizations and exceptions

Note that both strategies can exist within the same project – there are simple objects and complex objects, and you can only have a variety of DTOs for the latter. But let’s discuss the first option.

If each serialization framework has its own “transient” annotation, it’s easy to tweak the serialization of one or two fields. More importantly, it will have predictable behavior. If not, then you may be forced to have separate DTOs even for classes where one field differs in behavior across the serialization targets.

For example the other day I had the following surprise – we use Java binary serialization (ObjectOutputStream) for some internal buffering of large collections, and the objects are then indexed. In a completely separate part of the application, objects of the same class get indexed with additional properties that are irrelevant for the binary serialization and therefore marked with the Java transient modifier. It turns out, GSON respects the “transient” modifier and these fields are never indexed.

In conclusion, this post has two points. The first is – expect any behavior from serialization frameworks and have tests to verify different serialization scenarios. And the second is for framework designers – don’t reuse transient modifiers/annotations from the language itself or from other frameworks, it’s counterintuitive.

The post Every Serialization Framework Should Have Its Own Transient Annotation appeared first on Bozho's tech blog.

Забранява ли WHO на жените да пият и защо някой му пука дали са в детеродна възраст?

от Боян Юруков
лиценз CC BY-SA

Относно „новината“, че „СЗО искала да забрани на жените в детеродна възраст да пият алкохол“ има няколко неща, които може би сме пропуснали и други, които имат нужда от обяснение. Първо, горе виждате точния текст. Той е част от първата чернова на плана 2022-2030 за намаляване на консумацията на алкохол. Целият документ на черновата ще намерите тук и тук. Конкретното предложение е в секция за образование, повишаване на информираността за вредните ефекти от алкохола.

Второ, нищо от това не е ново. Идентичен текст имаше в предишния план 2013-2020. Долу виждате снимка на параграфа от тогава. Ще намерите пълния текст тук и тук.

Това предложение се фокусира върху предпоставките и подтикването идващо от социалната среда за това хората да започнат да пият и да пият повече. В този смисъл стратегията подхожда към алкохола като към нормален наркотик и търси какво води до увеличаване на дозата и кои са най-уязвимите.

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

Тук съвсем нормално беше попитано защо само жени в детеродна възраст? Защо не преди или след? Това ли е най-важното на една жена – че е в детеродна възраст? Момичетата под 15 са включени в другата категория подрастващи. Много добър е въпросът защо точно 15 до 50 г. Още повече, че прекомерната употреба на алкохол, дори да не бъде квалифицирана като алкохолизъм, носи многократно по-голяма вреда на мъжете от всички възрасти.

През 2018-та излиза доклад на WHO, в който се анализира развитието по темата и се подготвя почвата за черновата, която обсъждаме сега. Целия документ ще намерите тук и тук. В него се посочва ясно, че жените в глобален мащаб пият много по-малко от мъжете и това води до над 3 пъти по-малко смъртни случаи, както и 4 пъти по-малка загуба на здравословен начин на живот заради прекомерна употреба. Всъщност над 5 пъти по-малко жени имат проблеми с алкохола, отколкото мъжете. В развитите страни алкохолизмът е по-изразен. В Европа, например, 14.8% от мъжете и 3.5% от жените имат този проблем.

Всичко това говори още повече, че подобна стратегия следва да се фокусира върху мъжете, където алкохолизмът води до значително повече смърт, отколкото при жените, още повече в определена възраст. Причината обаче е в последствията. В същия този доклад се изследва ефектът на употребата на алкохол по време на бременност. Виждаме, че в Европа синдромите и уврежданията свързани с това са в пъти над другите региони. Говорим за 0.4% при синдрома и 2% при всички засечени отклонения.

На база тези анализи и общата стратегия за подобряване на репродуктивното здраве е установено, че т.н. social pressures, грешни представи за ефектът на алкохола, разни бабини методи и включително остарели разбирания на лекари са основната причина за прекомерна употреба на алкохол при жените, което в конкретната възрастова група между 15 и 50 г. води в немалко случаи до употреба на алкохол при бременност. Всъщност според региона между 0.2% и 13.9% от бременните са употребявали алкохол редовно. В немалка това идва и от митът, че умереното пиене е полезно за здравето. Именно затова е тази част от стратегията – за да образова.

Отделно, не трябва да забравяме, че за разлика от мъжете, жените преживяват множество промени през живота си. Независимо дали решат да имат деца или не, това, което минават най-малкото през пубертета и менопаузата няма аналог при мъжете. Когато стане дума за хормонални промени някак е прието да се обръщаме с насмешка на стереотипът за изнервеност. Всъщност обаче става дума за много повеч, тъй като тези процеси управляват всичко в тялото ни. При мъжете дори не се сещаме за това, но при жените дори в „стандартния“ случай носят със себе си сериозни болести и рискове. В този смисъл, когато говорим за физиологичен ефект от злоупотреба със субстанции, ефектът върху женското здраве е значително по-голям.

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

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

The post Забранява ли WHO на жените да пият и защо някой му пука дали са в детеродна възраст? first appeared on Блогът на Юруков.

Избори юли 2021: заявления за гласуване в чужбина

от Боян Юруков
лиценз CC BY-SA

Остават още два дни, в които българите в чужбина могат да подават заявления за гласуване. Срокът е полунощ българско време в края на 15-ти юни. До тогава ще може да попълвате електронно заявление за гласуване на страницата на ЦИК. Няколко важни точки за това, които объркват доста хора:

  • Заявлението не е задължително, но ще помогне да се отворят повече секции и ще ви позволи да гласувате по-бързо в изборния ден, тъй като няма нужда да попълвате допълнително декларация
  • Заявленията се попълват отделно за всеки вот. Тоест няма значение дали сте попълнили вече за изборите през април, сега трябва да попълните отново
  • Ако сте попълнили заявление и все пак в изборния ден сте в България, пак може да гласувате по настоящ адрес, но само там
  • Независимо дали и за къде сте попълнили заявление, може да гласувате в която и да е секция в чужбина. Тогава обаче ще трябва да попълните изрична декларация, че не сте гласували другаде преди това.

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

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

Както и преди, активността на подаване на заявленията се следи в реално време от портала Glasuvam.org. Те могат да се видят на картата, както и в подробнен табличен формат. Там има възможност и за сваляне на последните данни и да се връща историята на подаване по часове назад до началото на кампанията.

Карта на изборите в чужбина от Glasuvam.org

Една подробност за този вот е, че не можах да маркирам автоматично отворените секции в зелено само на база имената им. Формулярът на ЦИК имаше някои странности и не можеше да се напасне едно към едно въведеното там с имената в решението на комисията. Отделно този път нямах толкова време да инвестирам в чистене на данните. Затова около 100-тина места с под 20 заявления, които алгоритъма ми не успя да постави на картата, не бяха добавени. Все пак ги има в подробната таблица, но не и като червени точки на картата. По принцип ги обработвам на ръка и сливам заявленията на записи с идентични места с различно изписване. Този път доста хора се бяха организирали да подават отделно заявления за различни секции на едно и също място. Картата ми, за съжаление, не поддържа това. Така точките останаха една върху друга. За президентските избори ще измисля нещо по въпроса.

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

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

В помощ на българите в чужбина разпратих напомнящи писма за подаване на заявления на 2500-те абонирани в Glasuvam.org за новини покрай изборите. Когато станат ясни секциите, ще изпратя детайли как се гласува и къде е най-близката до тях секция. Ще обновя и картата със секциите. Аналогична ще намерите и при Свободна Европа. Още полезна информация ще намерите и при приятелите ми от Тук-Там.

The post Избори юли 2021: заявления за гласуване в чужбина first appeared on Блогът на Юруков.

Дребнава корупционна кирилица

от Боян Юруков
лиценз CC BY-SA

Ето един злободневен пример за т.н. „корупционна кирилица“. Този път в Министерство на младежта и спорта. Покрай злоупотреби на Национална спортна база ЕАД със спортни съоръжения се разрових в порталите на министерството като принципал, за да намеря къде са скрили иначе уж публичните договори и поръчки, които би трябвало да са сключили.

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

Ако си имате време за губене и решите да пишете мейл на Министерството на младежта и спорта със сигнал за корупция или с въпрос или каквото и да е друго, ще ви се наложи да отидете на страницата им за контакти и да копирате мейлите от там. Ще бъдете обаче доста изненадани. Няколко букви в адресите посочени на сайта им са на кирилица, което ги прави невалидни.

При това не става дума за случайно натиснат бутон. Не е проста техническа грешка. В един и същи адрес символите „е“ и „р“ ги има на кирилица и латиница. Най-отдолу съм показал и че тази подмяна на букви се е „развивала“ през годините. Последно адресите са били вярни през 2014-та. След това през няколко месеца са сменяни букви в адресите без нищо друго да се променя по страницата за контакти. Днес, например, адресът за въпроси е различен от този през август 2020-та.

Божидар Божанов предлоложи, че може би са се опитвали да се пазят така от спам, което по негови думи е „скандална некомпетентност“. Той има повече опит в борбата с подобни практики в администрацията вече години наред. На мен не ми хрумна дори това обяснение, защото като мислене в кабинета това може да се сравни единствено с онзи виц за двете мутри, които си купили еднакви джипове и са си счупили по един фар, за да си ги разпознават. Ако утре Кралев и ГЕРБ излязат с това обяснение, буквално за този маниер на работа говорим

Това е малък детайл, който надали някой ще забележи, тъй като сигналите за корупция особено в това министерство и особено по времето на ГЕРБ и Красен Кралев специално бяха като викане на арменския поп. Не може да очакваш от създалият схемите да направи нещо по тях. Показателно е обаче до какви дребнави неща се стига, за да могат да си шетат и крадат на воля, а после да свиват злорадо рамене, че никой не бил подал сигнал.

The post Дребнава корупционна кирилица first appeared on Блогът на Юруков.

Търси си=’в’ ИСУН/> пеша, бе!

от Боян Юруков
лиценз CC BY-SA

Днес Томислав Дончев съвсем без ирония помоли да отбележи, че не трябвало да се чака съгласие за публикуване на най-големите получатели на поръчки и проекти по еврофондовете, а можело просто да се видят в портала на ИСУН.

Да, наистина – там са… почти. Липсват онези прибрали стотици милиони скрити зад Автомагистрали ЕАД и подобните паравани за безконтролно харчене. Но какво са това няколко стотин милиона между приятели?

Да, наистина може да се намерят. Дори като пуснаха портала се похвалиха, че имат отворени данни. Т.е. пак имат отворени данни, защото бяха платили за такива в стария ИСУН, който беше много хубав, ама не беше готов, особено от гледна точка на прозрачността и трябваше да го ремонтират.

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

Отворих ИСУН и о, чудо! – има бутон за сваляне на отворени данни. Най-накрая! Затърсих къде мога да направя подобни справки и да сваля нужното ми, но уви – нямаше. Трябваше да се сваля всичко програма по програма.

Пуснах първата и зачаках. Свали се файл от 1.7Mb за Транспорт и транспортна инфраструктура. Повторих същото още 20 пъти докато след 20-тина минути не получих 307 Mb в XML файлове.

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

Разбира се, с данните следва да има схема и описание кое какво означава, каква е структурата и номенклатурите, но такова нещо почти не се среща в родната администрация. Затова не следва да се учудваме, че не са си документирали собствените данни. По имената на полета избрани наслуки от навярно разбрал значението им програмист аз догадих какво би трябвало да значат изначално. След това написах няколко скрипта на bash да извадя статистика за структурата, за да знам с какво си имам работа. 41280 проекта, 54451 юридически лица със 122049 взаимодействия между тях. Тръгнах да пиша нещо набързо на bash да извади имената им, взаимовръзките и прочие. Т.е. да сдъвква тия 300Mb от машинно четима информация. Утре ще си играя още.

Междувременно намерих и доста грешки и липсваща информация. Вземете например АНИВА ЕООД с ЕИК 121282600. Няма специална причина да избера тях. Нямам и идея кои са – просто бяха първите в търсачката. Уникалният код в данните им е b1be295ec5e347a7081ff257e61ab5e6f2ea4982. Според търсачката са изпълнители в 5 проекта. В отворените данни обаче се виждат само в двата от Развитие човешки ресурси, но не и в трите от Иновации и конкурентоспособност. Но какво толкова? Тук само за едни 812156.50 лв. говорим – даже за половин чехмедже няма.

Та дори сваляйки суровите данни и с нужните технически умения да се борави с тях, пак няма да получим вярна справка за реално получилите еврофондове. Нищо от това всъщност не е ново – за проблемите с данните от еврофондовете, достъпността и грешките говорим от години. То дори цели проекти изчезваха в портала с обяснение за системни грешки. Една съвсем явна управленска „грешка“ беше дългото криене на данните за селските райони. ПРСР нарочно години наред не беше вкарван в ИСУН, за да може ДПС да се нахрани скрита от погледите на обществеността.

Затова, да драги мои – наистина в ИСУН ги има данните. Повечето поне. И ако искате въпросната справка, а хора като мен не си вдигат телефона, защото изработват данъците за вилите за тъщи на заместници и съветници, за които същия този Томислав Дончев мижеше почти десетилетие по коридорите на МС, то хващайте молив и тетрадка и започвайте да смятате на ръка прелиствайки търсачката на ИСУН.

Така или иначе все още искат всичко на хартия – с мокър печат и „вярно с оригинала“. Та и отворените данни на ИСУН те така.

The post Търси си=’в’ ИСУН/> пеша, бе! first appeared on Блогът на Юруков.

Един фокус, мишка и Сафари

от Гонзо
лиценз CC BY-NC-SA

За да направя така, че падащото меню да се прибира при цъкане извън него реших да използвам събитието focusout на елементът, съдържащ целия компонент. Събитието focusout може да бъде прихванато от всеки елемент в йерархията, независимо дали самия елемент може да приема фокус, така че беше идеално за целта. Щом фокуса отида другаде, а това става и когато се цъкне с мишката извън него или пък потребителя се прехвърли на друг елемент с tab, значи падащото меню трябва да се прибере. Да, ама не и в Сафари. Там нещата винаги работят по друг начин.

Оказа се, че в Сафари взаимодействията с мишката не водят до промяна на фокуса. Т.е. цъкането с мишката върху бутон не поставя фокуса върху него. Съответно цъкането извън бутона няма да предизвика загуба на фокус от бутона. К’во правим сега?

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

dropdown.addEventListener( 'mouseup', function( e ) {
  this.focus();
  e.preventDefault();
} );

Дано това да ви помогне и на вас ако срещнете подобен проблем. А самия компонент в действие може да разгледате на адрес https://www.thenaturaladventure.com/tours/. Обратната връзка е добре дошла.

Тъжно за FOSDEM

от Ясен Праматаров
лиценз CC BY

Да, тъжно ми е. FOSDEM беше много важно събитие за мен и го смятам за част от израстването ми като компютърен специалист, като философ, ако щете и като човек изобщо. Това е мястото и времето, в което се включваш, макар и за малко, в пулса на цялата общност на свободния софтуер. Това, че е в университетски кампус е още по-показателно. Не успях да ида да уча навън като студент, но още първата година, когато с Jitsi отидох в ULB, все едно имах крила на обувките и търсех да видя коя сграда на кой факултет и на коя специалност е. Не намерих по-социални науки от право, май, но все едно бях в някой от онези колежански сериали, дето във викториански сгради учат ту физика, ту история на американската литература… примерно.

Тази година ФОСДЕМ няма. Е, уж има онлайн събитие, но аз не мога да следя излъчвания в мрежата. Не знам защо, просто не ми се получава. Мога да гледам записи, понякога нарочно търся нещо тематично, но наживо да следя емисии, да гледам “live-ове” – това не е за мен. А има някои неща, които много искам да следя, някои от тях имат редовни емисии – например всеки петък или веднъж на две седмици… и пак не успявам. Случвало ми се е да се сещам вече закъснял и да тичам към компютъра или пък да ровя бързо в мобилния, само за да открия, че излъчването току-що е приключило. Някои казват, че това с живите предавания на събития, конференции и дори концерти било страхотно, така сме щели да се справим с предизвикателствата на ковид – е, сори, но аз своите записи из мрежата не съм догледал, та камо ли друго.

Конференцията в Белгия е по-специална за мен и по други причини. Като франкофон ми беше още по-вълнуващо да крача из улици, сред всякаква френска реч, от разбираема до съвсем нечленоразделна за мен. Помня как първия път се загубих в нощен Брюксел и първо реших да разчитам на естествения си усет за ориентация, който бързо ме предаде и се оказах в квартали, в които не чуват точно френски говор, а фасадите бяха с една идея по-близки до мизерните квартали на София. Заговорих се на френски с полицаи и разбрах, че съм вървял бързо в обратна на центъра посока. Спомням си как с Емчо вървяхме през половината град към Beermania и като стигнахме се зарекох като се прибера, да изхвърля кубинките. Как с Ицо и Боби се заливахме от смях из нощните улици, след като в Delirium-а бяхме седяли до една италианска двойка на средна възраст, дето подозрително цяла вечер миришеха на джойнт. Разходките из града с Любо и Слави. Всички срещи с българската група там – някои редовни участници от българските конференции и общности, някои съвсем неочаквани, като Шопов. Оглеждането на опашката за жетони за бира, тъкмо пристигнал, дали ще видиш познати лица. Посрещането на Даменчо на гарата и после двата часа по тъмно отвън на по бира, с разказване как са те, как съм аз. Като бонус – всички познати лица от големите проекти, пък и от по-малките, някои легенди в средите, всички интересни проекти, щандове и лекции, на които или си искал да идеш, или случайно си попаднал, защото съседната зала вече е била пълна. Дори лицата от поредното подписване на ключове. Тук-там и някой от големите компании, дето са се свързвали с теб в миналото и ти ги знаеш по име и лице, но те не и си стоиш във фоайето на сграда K и си говориш с тях…

Още първия път, когато тръгвах, през 2014г., Светко ме пита дали не може да дойде с мен. Даже се отчая малко, като разбра, че заминавам и ще съм без него. Всеки път след това въпросът беше поставян отново, а междувременно и той, и Оги започнаха да ходят на курсове по роботика, да опитват да програмират на Scratch, даже преди две години, то вече са две години и половина, едно лято на морето започнаха да измислят компютърна игра. Няма да издавам тайни, но е свързана с море и вълни. Имахме съвсем сериозни планове като се приберем, да започна да ги въвеждам в програмиране и да имат свой проект, да разучаваме заедно – ако не бъркам, идеята беше да разучим Blender и после Unity, все свръх амбициозни планове. Така и още стои на трупчета, но пък точно миналата година реших, че е крайно време да ѝ изтупаме праха, да направим проект и да идем с децата на FOSDEM следващата година. А то… онлайн излъчване на видеозаписи на лекции.

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

Догодина се надявам да има и конференции, и фестивали. 2021-ва я пропускаме, но 2022-ра вече трябва да е ок, че ние остаряваме, децата растат…

Ограничаване на видимите снимки в галерия

от Гонзо
лиценз CC BY-NC-SA

Примерът, който ще дам е със стандартен блок за галерия в WordPress, но подходът може да се използва и в други случаи. Целта ни е да покажем първите девет снимки, като върху деветата покажем и броя скрити снимки. Тъй като използваме скрипт за разглеждане на картинките в пълния им размер, искаме естествено скритите снимки да са видими за него. Нещо такова:

Ключовият момент е използването на CSS Grid Layout за оформяне на галерията. Чрез използването на подходящи селектори можем да разположим всички елементи след да кажем деветия в последната клетка от решетката, като по този начин ограничим броя видими снимки.

.blocks-gallery-grid { 
  display: grid; 
  grid-auto-rows: auto; 
  grid-gap: 2em; 
  width: 100%;
}

.columns-3 .blocks-gallery-grid  {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.columns-3 .blocks-gallery-grid > :nth-child(9),
.columns-3 .blocks-gallery-grid > :nth-child(9) ~ * {
  grid-column: -2/-1;
  grid-row: 3;
}

Примерът е за галерия с по три снимки на ред, и след като искаме да са видими първите девет, следователно с три видими реда снимки. Първите двe правила задават решетката за галерията, основния трик е в третото правило. То казва, че деветия и всички елементи след него трябва да се разположат на третия ред от решетката в последната колона. За съжаление CSS Grid не ни позволява да посочваме автоматично създадените редове с отрицателни индекси когато не сме указали точния брой редове в решетката. Ако използвате инспектора във Firefox за да видите как браузъра описва решетката на галерията, ще забележите, че с индекс -1 е означена линията над първия ред. Поради тази причина се налага да посочим реда експлицитно.

До тук добре, но как да покажем броя скрити снимки? И как да направим така, че потребител, използващ само клавиатурата, да се ориентира какво се случва докато се придвижва с Tab през иначе скритите снимки? За да покажем броя скрити снимки ще използваме брояч в CSS, с който да преброим скритите снимки и да покажем стойността му в псевдо-елемент в последната снимка. И ще направим видима снимката, която в момента е на фокус, като я „повдигнем“ над останалите скрити снимки със z-index.

.blocks-gallery-grid { 
  counter-reset: remaining-items;
}

.columns-3 .blocks-gallery-grid > :nth-child(9),
.columns-3 .blocks-gallery-grid > :nth-child(9) ~ * {
  counter-increment: remaining-items;
}

.columns-3 .blocks-gallery-grid > :nth-child(9) ~ :last-child::after {
  content: "+" counter(remaining-items);
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba( 0, 0, 0, .75 );
  color: #fff;
  font-size: 3em;
}

.columns-3 .blocks-gallery-grid > :nth-child(9) ~ * {
  pointer-events: none;
}

.columns-3 .blocks-gallery-grid > :nth-child(9):focus-within,
.columns-3 .blocks-gallery-grid > :nth-child(9) ~ *:focus-within {
  position: relative;
  z-index: 2;
  pointer-events: all;
}

.columns-3 .blocks-gallery-grid > :last-child:focus-within::after {
  opacity: 0;
}

Освен, че показваме брояч, в горните правила изключваме обработването на събития от мишката (или докосвания ако екрана на устройството реагира на тях) за скритите картинки. Но когато дадена картинка е на фокус и съответно е над останалите, бихме искали да реагира на събитията, и за последната снимка искаме да скрием брояча, за да е видима.

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