Поради редица причини се налага да мигрирам сървъра си. Оставам отново на Superhosting, но трябва да променя структурата на сайтовете си и да пресъздам някои като част от миграция. За последно направих това преди 12 години когато Superhosting ме подпомогнаха. Това означава, че блогът, всички сайтове с визуализации и отворени данни, сайтът за безследно изчезналите и други ще претърпят спиране за известно време. Ще оставя GovAlert за последен, тъй като е най-сложен.
Abstract: In recent years, large language models (LLMs) have become increasingly capable and can now interact with tools (i.e., call functions), read documents, and recursively call themselves. As a result, these LLMs can now function autonomously as agents. With the rise in capabilities of these agents, recent work has speculated on how LLM agents would affect cybersecurity. However, not much is known about the offensive capabilities of LLM agents.
In this work, we show that LLM agents can autonomously hack websites, performing tasks as complex as blind database schema extraction and SQL injections without human feedback. Importantly, the agent does not need to know the vulnerability beforehand. This capability is uniquely enabled by frontier models that are highly capable of tool use and leveraging extended context. Namely, we show that GPT-4 is capable of such hacks, but existing open-source models are not. Finally, we show that GPT-4 is capable of autonomously finding vulnerabilities in websites in the wild. Our findings raise questions about the widespread deployment of LLMs.
В средата на миналата година в Европа се завъртя на по-високи обороти дебатът за генетичните редакции с помощта на новите геномни техники (НГТ) и в началото на този месец той най-накрая стигна до Европейския парламент. С 307 гласа за (нито един от представител на България), 263 против и 41 въздържали себеше прието предложението да се въведат две категории генетично модифицирани организми. В първата категория ще попадат растенията, при които промените могат да се получат по естествен път в природата или чрез методите на традиционната селекция, и за тях ще отпаднат тежките процедури за регистрация, прилагани в момента. Потребителите ще бъдат осведомявани чрез поставяне на информация върху продуктите, които ги съдържат – промяна в сравнение с първоначалното предложение от 2019 г., в което бе заложено да се обозначават само семената. Също така растенията няма да могат да бъдат сертифицирани като „органични“. Във втората категория ще бъдат оставени растения с по-сложни редакции, както и създадени с предишното поколение методи за генетични манипулации.
Следващата стъпка е предложението да мине през Европейския съвет, където обаче се очаква тежка дискусия за патентите върху растения, получени с помощта на новите методи. От Комисията по околна среда, обществено здраве и безопасност на храните, която гласува положително преди вота в Европарламента, не се дават насоки относно решаването на този въпрос. Намерението е да се направи анализ на пазара и да се оцени влиянието на новите регулации върху биотехнологичните компании и семепроизводителите, както и върху достъпа на фермерите до семена. Резултатите от анализа ще бъдат публикувани през 2026 г.
Депутатите смятат, че патентите върху растенията, получени чрез НГТ, трябва да бъдат забранени, за да се избегнат правни диспути и да се улесни достъпът до тях както на биотехнологичния, така и на земеделския сектор. Също така се изисква отчет за влиянието на новите правила още през 2025 г. За съжаление, не е ясно дали тази забрана може да бъде въведена лесно. В момента всички сортове, получени чрез традиционните методи за селекция (дефинирани като „биологични процеси“), не могат да бъдат патентовани, но генетично манипулираните могат, тъй като са резултат от технологичен процес. Това означава, че за да отпаднат патентите, ще трябва да се променя и съществуващото законодателство в тази област. Към средата на миналата година в Европейското патентно ведомство са били регистрираниоколо 3100 патента за генетично модифицирани растения. Според организацията успеваемостта за получаване на такъв патент е около 35%, а средната достига почти 60%.
Въпреки заявените намерения на евродепутатите традиционните селекционери, по-малките биотехнологични компании и фермерите изразяват опасения, че сегашната правна рамка за патентите ще им попречи да се възползват от новите регулации и ще позволи на големите компании да завземат сериозни части от пазара. Пример за това е описан в публикация на Politico – голямата биотехнологична компания KWS е получила патент за царевица, която е устойчива на ниски температури и е получена чрез редакция на гени с НГТ. Така KWS има възможността да забрани продажбата на сходен сорт, произведен от малка компания от Нидерландия, която го е създала с помощта на класическа селекция. За момента забрана няма, но освен чисто правно предимство, голямата компания има достъп до повече ресурси и по-лесно производство.
За момента решението на Европейския парламент се приема очаквано от двата лагера, участващи в дискусията – учените и биотехнологичните компании са въодушевени и смятат, че е стъпка в правилната посока, докато природозащитните организации са недоволни. Положителният вот донякъде е неизбежна стъпка за приемането на новите технологии, което, както вече е споменавано, е нужно с оглед на климатичните промени и заплахата Европа да остане извън предстоящата генетична революция.
Генетично манипулирани организми в ръцете на потребителите
Раздвижване в сферата има и отвъд океана, където крайните потребители могат да се сдобият с две нови растения, получени чрез генетични манипулации.
Биолуминесценцията се среща при редица видове от различни групи – бактерии, насекоми, гъби, морски организми, но в природата няма биолуминесциращи растения. За получаването на светлина са нужни два основни компонента – луциферин и ензимът луцифераза. Доскоро за създаването им се използваше бактериен оперон (група от гени, които се експресират заедно, обикновено за нуждите на конкретен процес), но този подход има редица недостатъци, най-важните от които са слаба светлина и токсични междинни продукти.
Иновацията идва от екип руски учени, които разгадават биосинтетичния път в гъбата Neonothopanus nambi в края на 2018 г. Те установяват, че той е тясно свързан с кафеената киселина, намираща се и в растенията, и че за прехвърляне на процеса в тях са нужни само четири гена. Подходът се оказва значително по-ефективен – растенията светят по-ярко, а освен това е безвреден за приемните организми, тъй като се вписва в съществуващи биохимични пътища. Година по-късно учените оповестяват успешното създаване на светещ тютюн, а в началото на годината излиза и публикация, представяща оптимизация, която увеличава силата на светлината до два пъти.
Разработката може да се използва за изучаването на различни биологични процеси като биосензор – светлината може да се индуцира само в определени случаи и така да се проследяват биологични пътища. Работата им има и комерсиален резултат – биолуминесцентна петуния, наречена Светулка(Firefly Petunia) и предлагана от компанията LightBio. След като бе одобрена за продажба и отглеждане в САЩ в края на миналата година, тя вече е достъпна за предварителна поръчка.
Другата иновация е по-практична и е под формата на лилав домат. Тъмнолилавите домати не са новост – с помощта на класическата селекция са създадени редица такива сортове, но при повечето от тях наситеният цвят е само по повърхността, а месестата им част е в оттенък на червеното. Лилавите домати, предлагани от Norfolk Healthy Produce, са изцяло оцветени и са единственият такъв сорт, тъй като технологията за създаването им е патентована.
Научната основа е публикувана през 2008 г. и се базира на вмъкването на два гена от декоративното растение кученце (Antirrhinum majus), които отговарят за синтеза на лилав пигмент – антоциан. С изключение на тези два гена доматите не се различават по нищо от конвенционалните си роднини и сортът дори не е хибриден. Това означава, че от него може да се събират семена, които да се засяват на следващата година, и не е нужно да се купуват нови. Разработката е резултат от сътрудничеството на няколко европейски екипа (от Англия, Италия, Нидерландия и Германия) и е получила европейско финансиране, но към момента семената не са достъпни на нашия пазар поради съществуващите регулации.
Основното предимство на сорта, което се изтъква от авторите, е повишеното ниво на антоциани, които имат антиоксидантна функция. В публикацията си екипът описва и експеримент, целящ да проследи продължителността на живота на мишки, склонни да образуват тумори. Мишките са разделени на три групи. Едните ядат само стандартна храна, другите – стандартна храна и червени домати, а третите – стандартна храна и лилави домати. Между първите две групи няма значима разлика – те живеят средно около 140 дни. Но мишките, в чиято диета са добавени лилавите домати, живеят средно около 180 дни.
Въпреки че данните в изследването изглеждат убедителни, ползата от антоцианите за здравето е тема, по която все още се водят дебати и няма ясен отговор. Окислителните процеси имат важна сигнална роля и са част от процеса на програмирана клетъчна смърт, който е важен за отстраняване на клетки, функциониращи некоректно (например прототуморни). Наред с това новият сорт е 10% от хранителния прием на мишките, което не е пренебрежимо количество, ако се съотнесе към стандартната ни диета. От друга страна, лилавите домати биха допринесли за по-пълноценното хранене на хората, които не приемат достатъчно антоциани.
Въпреки че преките ползи за здравето не са напълно потвърдени, новият сорт е интересен дори само заради вида си и възможността генетично манипулираните растения да станат по-достъпни за потребителите. Климатичната реалност ще бъде изключително изпитание за традиционната селекция и широкото въвеждане на храни – плод на генно инженерство, изглежда неизбежно, поради което, колкото по-бързо се нормализират, толкова по-лесно ще можем да направим стъпката напред.
Грешка в превода
При изстрелването на „Вояджър 1“ през 1977 г. учените от НАСА не подозират, че мисията му ще продължи повече от 40 години. Основната програма е планирана до края на 1980 г., когато той трябва да премине покрай Сатурн и някои от луните му. Благодарение на шеметната си скорост от 17 км/сек в началото на 1998 г. той стана най-отдалечената от Земята космическа сонда, изпреварвайки по-рано изстреляния „Пионер 10“.
През 2012 г. мисията отново попадна в новините, тъй като апаратът стана първият създаден от човека обект, който напуска Слънчевата система. Това беше установено по спадането на нивото на заредени частици от Слънцето (т.нар. слънчев вятър) и покачването на космическите лъчи. Тези данни показват преминаване на хелиопаузата – участък, в който силата на слънчевия вятър и междузвездната среда се изравняват.
През годините с цел пестене на енергия редица от изследователските уреди на сондата бяха изключени, но въпреки това учените все още можеха да комуникират с нея и да получават данни. За съжаление, от няколко месеца съобщенията, които получаваме, са объркани и не могат да бъдат разчетени.
Според НАСА повредата е в един от бордовите компютри. Една от неговите задачи е да изпраща телеметрия към Земята, което в момента не може да се осъществи, а това прави откриването на проблема изключително трудно, но има редица хипотези какъв може да е той. Една от тях е, че се касае за грешка в паметта на компютъра, която води до объркване на записаните в нея данни; друга възможност е просто да има механична повреда в някоя от частите. По-интересна (но и по-малко вероятна) е възможността за „обръщане на бит“ – това може да бъде причинено от заредена космическа частица, която удря паметта в точно определено място, карайки 0 да премине в 1 или обратното. Допълнителна трудност за установяване на случващото се е и разстоянието до апарата – 22 часа и 34 светлинни минути. За достигането на всяка команда до апарата е необходимо това време и съответно още толкова за получаване на обратната информация. Разбира се, вече е опитан добрият стар трик с рестартирането, но това не е помогнало.
Въпреки че опитите за възстановяване на комуникацията с „Вояджър 1“ продължават, скоро може да се наложи да приемем, че повторна връзка с него няма да има. Добрата новина е, че той има апарат близнак („Вояджър 2“), който също прекоси хелиопаузата, но шест години по-късно, въпреки че е изстрелян с две седмици по-рано от „брат“ си. Причината е в различните орбити, по които се движат двете сонди. Комуникацията с него все още е възможна и това е известно успокоение за учените, които могат да продължат да изучават междузвездното пространство.
По следите на пътешествениците
„Нови хоризонти“ (New Horizons) може да се нарече съвременният последовател на апаратите „Вояджър“. Изстрелян през 2006 г., след 9-годишно пътешествие, преминало покрай Юпитер и Сатурн, той прелита близо до планетата джудже Плутон и луната ѝ Харон, давайки ни първите детайлни снимки на тяхната повърхност. Заснети са и по-малките спътници на Плутон – Стикс, Никс, Керберос и Хидра.
След този успех мисията е удължена и новата цел е изследване на обектите от Пояса на Кайпер – област, сходна с астероидния пояс между Марс и Юпитер, но с много по-големи размери, като повечето обекти в него са от замръзнал метан, амоняк или вода. Там се намират и планети джуджета, сред които е Плутон.
Нови данни, получени от инструмент, броящ и измерващ частиците прах, сочат, че поясът на Кайпер всъщност е много по-обширен. До момента се предполагаше, че той се простира до около 50 AU (AU – астрономически единици, средното разстояние между Земята и Слънцето, или приблизително 150 млн. км). Но изглежда, че той достига 80 AU или дори още по-далеч. За да подкрепят данните, получени от апарата, астрономите използват и телескопски наблюдения, за да търсят обекти, чийто сблъсък може да е причина за образуването на този прах. Сред предложените хипотези е частиците да са от лед, който все още не се е разсеял, или пък този прах да е избутан от слънчевия вятър по-далеч, отколкото се смята за възможно.
Учените са развълнувани от откритието, тъй като това може да доведе до установяването на нова група обекти в Слънчевата система. Към момента мисията е удължена до напускането на Пояса на Кайпер, което се очаква между 2028 и 2029 г. Но най-вероятно научната работа с апарата ще продължи и ще започнат наблюдения на района около хелиопаузата, а може би и след нея. Според данните в момента наличната енергия ще е достатъчна за нормалната му работа за още поне 15 години, така че, ако не стане нещо непредвидено, апаратът ще продължи да ни съобщава какво се случва в периферията на Слънчевата система.
Greg Kroah-Hartman has announced the release of seven new stable kernels: 6.7.6, 6.6.18, 6.1.79, 5.15.149, 5.10.210, 5.4.269, and 4.19.307. As usual, they contain many
important fixes throughout the kernel tree.
Security updates have been issued by Debian (chromium, imagemagick, and iwd), Fedora (chromium, firefox, and pdns-recursor), Mageia (nodejs and yarnpkg), Red Hat (firefox, postgresql, and postgresql:15), and SUSE (bind, mozilla-nss, openssh, php-composer2, python-pycryptodome, python-uamqp, python310, and tiff).
The Curl project has previously had problems with
CVEs issued for things that are not security issues. On February 21,
Daniel Stenberg
wrote about the Curl project’s most recent issue with the CVE system, saying:
I keep insisting that the CVE system is broken and that the database of
existing CVEs hosted by MITRE (and imported into lots of other
databases) is full of questionable content and plenty of downright
lies. A primary explanation for us being in this ugly situation is that
it is simply next to impossible to get rid of invalid CVEs.
Политическата акция на „Да, България“, при която гумена лодка акостира на плажа до лятната резиденция на Ахмед Доган, беше символен опит да се отвоюва държавата от мафията. Същинският е сега, когато промените в Конституцията и в още няколко закона трябва да бъдат осъществени чрез кадровия подбор – в органите на съдебната власт, в новата антикорупционна комисия, в регулаторите и в службите. Преосноваването на държавата започва от нейните институции.
Това е истинската битка, която предстои, а не словесните атаки по телевизионни студиа и пред камерите за фактури за газ, „левче“ за бензин, за външен министър или кога да е ротацията. В сражението „Продължаваме промяната“ – „Демократична България“ залагат политическото си бъдеще и шанса да докажат, че са способни да се преборят за върховенството на правото, и да си върнат избиратели, обърнали им гръб заради „сглобяването“ с Бойко Борисов и особено с Делян Пеевски.
Възможно ли е?
Опраскване 2.0 на хоризонта или…?
Съдебната реформа може да бъде опраскана чрез ново прааас – когато ДПС и ГЕРБ заплашиха с предсрочни избори за Народно събрание заедно с европейските в началото на юни. Статуквото се ядоса на меморандума, предложен от ПП–ДБ на официалния партньор във фактическата коалиция ГЕРБ–СДС. Партиите на Бойко Борисов и на Ахмед Доган го приеха като ултиматум и извиване на ръце, а от ПП–ДБ обясниха, че е начало на преговори.
Ако има избори 2 в 1, „вероятността новият главен прокурор и новият председател на Върховния административен съд да бъдат избрани от сегашния състав на Висшия съдебен съвет се повишава неимоверно“, прогнозира във Facebook директорката на Българския институт за правни инициативи Биляна Гяурова-Вегертседер. Голяма е и вероятността работата си да продължат регулатори с изтекъл отдавна мандат, от чиито решения зависи всеки български гражданин и всеки бизнес. А това означава, че в тях ще бъдат запазени позициите на ГЕРБ и ДПС или по-скоро на Бойко Борисов, Делян Пеевски и уплътняващите ги обръчи. От това може да се предположи, че предстоят и други афери, подобни на „Червеи“, „Двете каки“, „Осемте джуджета“, „SS Club“на Нотариуса, както и че ще има търговия с постове и влияние, ще има и натиск върху правосъдието.
Цялата мръсна пяна на аферите излиза при изслушванията във временната парламентарна комисия, създадена за изясняване на обстоятелствата около убийството на Мартин Божанов – Нотариуса. И макар че осмелилата се първа да съобщи за натиска върху нея съдийка Владислава Цариградска каза пред депутатите, че „мафия не се бори с публично изслушване на свидетелите на мафиотските действия“, все пак публичното осветяване на мафиотизацията на съдебната система е от огромно значение за обществената подкрепа за тази битка. Досега гражданите чуваха предимно от политици и неправителствени организации за поръчковите дела, за прокурорските бухалки и рекетираните бизнесмени, за подкупните съдии.
Сега обаче за първи път излизат и говорят магистрати, хора от съдебната система, и разказват „зловещи неща“, по определението на прокурор Невена Зартова. И нито един от последните двама главни прокурори, а също и настоящият изпълняващ функциите не са извадени пред скоба в този трилър, в който единственият труп е на върховенството на правото. Големите въпроси са ще назоват ли изслушваните магистрати имена на политици и ще бъде ли повикан за изслушване Делян Пеевски, след като председателят на комисията Никола Минчев от ПП заяви, че няма пречка това да стане.
За разлика от декември 2015 г., когато статуквото удари по законодателните промени още при гласуването им, този път заплашва да го направи, преди да бъде приложен механизъм за номинации и одобрение на кадрите. Вулгарният публичен език на Пеевски показа, че в ДПС са се разбеснели заради меморандума, който не им отрежда „квота“ в съдебната власт, нито в регулаторите, за каквато говореше преди време бившата председателка на ПГ на ГЕРБ Десислава Атанасова (настояща конституционна съдийка).
Христо Иванов и олигарсите зад него искат да вземат прокуратурата. Имаше добри разговори за Конституцията – как всичко ще е прозрачно, но Христо Иванов излъга. Христо Иванов пи мазно турско кафе и седеше в скута ми, докато се случи Конституцията, и всички идваха час през час, докато направихме промените, които са важни за България! Сега ще ми казва, че пак ще извади темата ДПС. ДПС крепи това правителство девет месеца. Маските паднаха, Христо, приятелю мой. Всичко свърши!
После Пеевски поиска очна ставка с Христо Иванов, за да стане ясно, че са водени разговори за различни назначения. Сред тях и на бившия прокурор и заместник-министър на правосъдието Андрей Янкулов от Антикорупционния фонд за главен прокурор или за шеф на Комисията за противодействие на корупцията и на настоящия прокурор Сава Петров за негов заместник. Иванов отрече да са водени такива разговори, коментирайки, че Пеевски е самовзривил опита на ДПС да се препозиционира като приемлива партия.
Това ще бъде решение на бъдещия Висш прокурорски съвет и аз много държа на това. Как ще изберем прокурорски съвет, е наистина много важна тема, политическа, която никой не би трябвало да изненада, че е във фокуса на моето внимание, нали така? Но ако бъдещият Висш прокурорски съвет избере някой с профила на г-н Янкулов, мисля, че ще бъде много добре за България, защото ако някой с профила на господин Янкулов беше избран, нямаше да има Нотариуса, нямаше да има „Осемте джуджета“, щеше да има реално разследване. Да, темата е следващият главен прокурор да не бъде както главния прокурор, който беше избран по времето на доминацията на ГЕРБ и ДПС – Гешев и Цацаров. Ако по мое време бяха избрани такива главни прокурори, аз бих си мълчал, бих бил по-кротък.
Ултиматум или (добро) начало
От известно време лидерът на ГЕРБ Бойко Борисов настояваше за коалиционно споразумение, но ето че ПП–ДБ изпревариха и предложиха проект на такова, но с условието, че ако не се приеме, следват избори 2 в 1 (за български и европейски парламент в началото на юни 2024 г.). Направиха го еднолично, без предварителни разговори с ГЕРБ (и с ДПС), и поставиха на масата предложението си за скрепяване на съвместното управление.
В продължение на 9 месеца лидерите на ПП–ДБ бяха подложени на критиките и недоволството на избирателите си заради това, че с приобщаването на ДПС и ГЕРБ към конституционното мнозинство са отстъпили от каузални цели, довело и до избор на подуправител на БНБ, номиниран от ДПС – Петър Чобанов. Експанзията на политическия терен на санкционирания заради корупция от САЩ и Великобритания председател на ПГ на ДПС Делян Пеевски е сред основните причини за гнева. Медийното му (само)утвърждаване като говорител по основните теми на управляващото мнозинство също отблъсква избиратели от ПП и ДБ.
И докато Христо Иванов се конфронтира с Пеевски, съпредседателят на ПП Кирил Петков предлага „всички малко да се успокоят“ и да укротят емоциите. Трудна работа – развали се рахатлъкът на Бойко Борисов, който формално е ядосан заради несъгласувани назначения, извършени във финансовия сектор, както и заради сливането на НАП и митниците. Последното беше обявено наскоро от Министерството на финансите и ръководството на митниците беше тутакси променено.
Кой съгласува смяната в Агенцията за държавен финансов контрол? В кой меморандум е записано това, ДНСК, БАБХ, митниците? От една и съща партия, еднолично, в разрез на всичко, което е разписано в този меморандум… Независимите регулатори са независими, не се парцелират между Борисов и Петков. Категорично не сме склонни да приемем предложението на ПП–ДБ.
И това – казано от политик, чиято партия обсеби регулаторите. Но Борисов е ядосан, тъй като с меморандума ПП–ДБ го карат да направи избор – с тях или с ДПС. Труден избор в ситуация, в която той отдавна не е лъвът в българската политика, а е по-скоро уморен от дългото управление и притискан и отвън, и отвътре. Европейският съюз е различен след войната на Русия с Украйна. Различна е и Европейската народна партия, където Борисов винаги се е хвалил с добрите си контакти. Но откритият съюз с ДПС – партия, чийто фронтмениджър е лице, санкционирано за корупция, е труден за преглъщане от евроатлантическите партньори. Още по-малко възможен е управленски съюз с проруски политически сили.
В настоящата ситуация Борисов няма как да прави онези толкова успешни прикляквания и на Изток, и на Запад, с които обичаше да се хвали, самоизтъквайки дипломатическия си усет. Завоите в днешната геополитическа ситуация не са приемливи, още повече в светлината на силно промотирания му в последните 9 месеца евроатлантизъм.
Предсрочните парламентарни избори няма да променят настоящото разпределение на силите в парламента. Така че по-вероятно е прагматикът Борисов да седне на масата на преговорите, осъзнавайки, че сегашната конфигурация е безалтернативна.
Механизъм за назначения и хоризонт от 4 години
Какво обаче е записано в меморандума, който толкова ядоса Пеевски и Борисов? Като всеки проектодоговор, и този съдържа повече, отколкото ще остане при подписването му от лидерите на коалициите. Лайтмотивът в него обаче е подробно разписаният механизъм за назначения в регулаторите, а също и споменатият за първи път публично хоризонт за пълен мандат.
Ключов е следният текст:
5.3.3. За целите на постигане на необходимото мнозинство от 2/3, страните ще оценят съвместно номинациите на други парламентарни групи и координирано ще подкрепят съответен брой кандидати, които в най-голяма степен съответстват на изискванията на конституцията и закона и принципите по параграфи 5.3.1 и 5.3.2, както и 2.1 и 2.2 по-горе.
Това означава, че и пресяването на кандидатите ще става като гласуването – заедно и координирано, а не като в случая с избора на конституционни съдии, при който всяка от двете коалиции предложи свой кандидат и после мнозинството гласува. Този механизъм означава, че процесът с номинациите може да се проточи, но също така е гаранция за обща политическа отговорност и недопускане на компрометирани фигури. Затова е и забраната за плаващи мнозинства – любим похват на ГЕРБ.
2.6. Забрана за плаващи мнозинства и зачитане на равнопоставеността на страните. Страните се ангажират да не разчитат на плаващи мнозинства и да не прибягват до договорки с други парламентарни сили за съответни техни действия и бездействия, насочени към осигуряването на избор на кандидат против обоснованите и навременно повдигнати възражения (вето) на другата страна. При спазване на принципите в параграф 2.2 за политическа неутралност, страните ще осигурят постигането на равно разпределение на броя кандидати, избирани за членове на съответния орган. Случаите, в които някоя от страните предложи да бъде избран кандидат на друга парламентарно представена партия, се отчитат за номинация на съответната страна, която прави предложението, и не водят до промяна на съотношението между страните.
Ако ГЕРБ иска и ДПС да има номинации, ще трябва да им отстъпи от своя дял. Има и някои неща, също толкова важни, колкото и механизмът за избор, и това са възможността сред номинираните да има представители на неправителствени организации, както и подробно разписаните проверки за интегритет. Тяхната тежест при избора е голяма.
2.8. Право на вето. Всяка една от страните има право да наложи вето на така предложените кандидати от другата страна, при условие че по време на изслушванията и проверката за интегритет са открити факти и данни за действия, които биха сериозно накърнили доверието в институцията, за която даденият кандидат се е кандидатирал. Страните действат добросъвестно и подхождат с уважение към всички кандидати и опазват тяхното достойнство.
Може ли да се мине без гласовете на ДПС при обновяване на регулаторите, след като с промените в Конституцията беше вкарано мнозинство от 160 гласа за избора? Преди това например председателят на Комисията за защита на конкуренцията се избираше с обикновено мнозинство.
Трудно, но не и невъзможно. Дебаркирането започна.
Да употребяваме ли деепричастия? Този въпрос за мен винаги е имал положителен отговор и ми е звучал също толкова странно, колкото „Да употребяваме ли минало неопределено време?“ или „Да избягваме ли наречията?“. В българския език има деепричастия (мислейки), така както има сегашни деятелни причастия (мислещ), минали деятелни причастия – свършени (мислил) и несвършени (мислел) – и минали страдателни причастия (мислен). Защо да се лишаваме от изразните възможности, които ни предоставят причастията от един точно определен вид? И нарочени ли са всъщност те?
Личен опит vs. чужд опит
Опитвам се да си спомня за учител по български език или за преподавател в университета, който е бил настроен отрицателно към деепричастията, но нищо не се появява в съзнанието ми. Или съм имала голям късмет, или съм игнорирала съветите да се избягват тези граматични форми, защото:
били тромави;
правели речта по-изкуствена, по-книжна;
били създадени по подражание на други езици;
издавали езиковата немощ на автора/преводача на текста;
трудно се употребявали, без да се допускат грешки.
Всички тези аргументи съм чувала от други хора, у повечето от които се е задействало самоцензурирането, и те съзнателно ограничават употребата на деепричастия в речта си. Не е лесно да се променят формирани с години езикови нагласи, но все отнякъде трябва да се започне. И така, нека да поразчистим камъните в градината на деепричастието.
Български по произход ли са тези форми?
Стопроцентово. Съвременните книжовни форми със завършек -йки всъщност са разклонение на – изненада! – сегашните деятелни причастия. Как така, ще попитате, е възможно ходейки например да има нещо общо с ходещ? В старобългарския език формата на сегашното деятелно причастие е била ходѧшть. Както преди, така и сега то се е изменяло по род и число (в миналото – и по падеж), съгласувайки се с името, което е определяло.
В някои случаи обаче е започнало да се употребява в застинала, неизменяема форма, най-често със завършек -ще или -щи, без да се съгласува с име. Примерите са от писмени паметници от ХIII и ХIV век. Така на преден план излиза глаголната, а не атрибутивната (тоест прилагателната) природа на причастието и по своята същност и функции то се доближава доста до съвременното деепричастие.
Но как от застиналата форма ходѧшти се стига до ходейки? Вследствие на смекчаване на съгласните настъпва следната метаморфоза: ходѧшти > ходеш’т’и > ходех’к’и > ходейки¹. Преходът се извършва в югозападните български говори, от които сме приели точно тези форми в съвременния книжовен език. Това не е станало нито гладко, нито изведнъж.
Установяване на деепричастията в новобългарския книжовен език
В пред- и следосвобожденската ни книжнина граматични форми с най-различни облици се борят да седнат на трона на деепричастието. Ето, вижте какъв е мащабът на конкуренцията: играюще, играющи, казав, казавше, казавши, играя, носяйки, бидейким, пеещем, ходещец, ходещиц… При това спестявам например форми като товарйъще,закусвайъще, употребявани от Г. С. Раковски, но пък ви компенсирам с едно изречение от Дядо Славейков, в което деепричастието има неповторим звуков ефект: Госпожа Хрисодактилица остави съпруга си и влѣзе в стайътъ си шушнещец.
Общо взето, през последните двайсет години на ХIХ век формите на -йки започват да надделяват над останалите и голяма роля за това има лансирането им от писатели като И. Вазов, П. П. Славейков, П. К. Яворов, П. Ю. Тодоров².
Ако приемем, че в началото на ХХ век деепричастието вече се е установило в книжовния ни език, достатъчни ли са ни били 120 години, за да го приемем безрезервно и да го използваме свободно в своята реч? Оказва се, че не. Доста затруднения среща то по пътя си и няма как да не признаем, че поне част от причините за ограничената му употреба са основателни.
Проблемът с книжната и изкуствената реч
Факт е, че деепричастието е в основата на обособена част в изречението, а обособените части „са характерни предимно за писмената реч и имат книжен характер, белег са на по-обработената реч“³. Илюстрирам го с пример от Смирненски: Очите се разтвориха в тревожно любопитство, по лицата легна бледината на страха и минувачите странно забързаха, шушнейки си плахо. Вероятността да срещнем деепричастия в публицистичната, художествената, официално-деловата или научната реч е многократно по-голяма, отколкото в живата реч.
Тук е важно да направим едно уточнение – „книжно“ значи не „изкуствено“, а най-вече „писмено“, макар че днес сме склонни да го асоциираме по-скоро с „официално“ и едва ли не „почти архаично“. Деепричастията просто са типични за писмената, обработена, тоест премислената, а не спонтанната реч и затова не виждам основания съзнателно да ограничаваме употребата им поне в писмени текстове. Имам предвид най-вече художествената литература и медийните публикации.
Езиково немощни ли са авторите и преводачите, употребяващи деепричастия?
Ако се увличат и текстовете им изобилстват от тези граматични форми – да, това ще натежи и наистина ще означава, че не умеят да си служат добре с различни синтактични конструкции. Но ако в една статия се срещат едно, две или три уместно употребени деепричастия, какъв е проблемът? В предишната публикация в тази рубрика например съм използвала допитвайки се и опитвайки се, без изобщо да регистрирам това – в процеса на писането тези форми са се появили естествено в съзнанието ми. Предполагам, че при много други хора е така, и това всъщност е нормално.
Кой от вас си казва: „Сега ще употребя прилагателно име, а тук е необходимо наречие, но я да се върна малко назад, за да поразредя съществителните“? Да, звучи абсурдно, но защо тогава проявяваме свръхчувствителност към деепричастията? Не е ли по-добре да се възползваме от по-богатата вариативност, която ни предоставят? Например освен
Приятно ми е, като си мисля за теб, да гледам звездното небе. или Приятно ми е, когато си мисля за теб, да гледам звездното небе. може да кажем Приятно ми е, мислейки си за теб, да гледам звездното небе.
В конкретния случай аз бих предпочела третия пример, защото ми звучи по-поетично. В други случаи може по-уместен да се окаже вариантът с подчинено изречение с като или когато – или пък някакъв четвърти, или пети вариант.
Предполагам, че преводачите често проиграват подобни възможности, когато търсят най-доброто съответствие на определена синтактична конструкция в оригинала. Да имаш един вариант повече винаги е за предпочитане.
Разбира се, подмолните камъни в превода не са малко и поне един от тях е свързан с нашата тема: ако за езика на оригинала са твърде характерни граматични форми, съответстващи на нашето деепричастие, опасността да се залитне при предаването им на български е съвсем реална. За английския език рисковете са ясни, но и в гръцкия, да речем, деепричастието се среща доста по-често и вещият преводач следва да отчита тази особеност.
Всъщност моето впечатление е, че ако има залитане при преводите, то по-скоро е в другата посока. От опасения да не се прекали с деепричастията те се свеждат до абсолютния минимум.
Граматиката е коварна и грешки дебнат отвсякъде
Уви, това важи с пълна сила за нашите граматични форми. За да е правилна употребата им, е необходимо да бъдат изпълнени две условия: 1) действието, означено с деепричастие, трябва да се извършва едновременно с основното действие в изречението, и 2) вършителят им да е един и същ.
Конникът профуча край мен, яздейки бял жребец.
Често обаче се нарушава второто условие и се стига дори до примери като
Вдигнах поглед към конника, яздейки бял жребец.
Двете условия чувствително ограничават употребата на деепричастието, но (сякаш това не е достатъчно) те не са единствените, които регулират появата му в речта. Ще дам само един пример за типологична грешка – когато вършителят на действието, означено с деепричастие, е неопределен:
Имайки предвид прогнозите, дефицитът в бюджета ще остане под 3%.
Изречението може да се редактира така:
Като се имат/имаме предвид прогнозите, дефицитът в бюджета ще остане под 3%.
От всички аргументи против употребата на деепричастия най-силен според мен е последният – възможността да се допуснат грешки, която изобщо не е за подценяване и може дори да откаже по-неуверените. Ако обаче знаем в кои случаи може да се подхлъзнем, и внимаваме повече, когато пишем, опасенията ще останат на заден план, а речта ни ще стане по-богата и по-разнообразна с деепричастия. Нека не се лишаваме от възможността, която езикът ни дава, и да ги използваме – с мярка, разбира се.
1 Харалампиев, И. История на българския език. Велико Търново: Фабер, 2001, с. 169 – 170.
2 История на новобългарския книжовен език. София: Издателство на БАН, 1989, с. 419 – 426.
3 Граматика на съвременния български книжовен език. Т. 3. Синтаксис. София: Издателство на БАН, с. 225.
Посвещавам публикацията на Боряна Телбис за любезното и аргументирано насърчение и на Стефан Русинов, който, нищейки проблемите на превода, не забравя и деепричастието.
Родителите искат децата им да получат от образованието си както знания и умения, които да са им полезни в живота, така и ценности и собствен морал. Това сочи ново национално представително изследване на Асоциация „Родители“ за нагласите на родителите към българското образование „Българското училище – погледът на родителите“, проведено сред 807 пълнолетни родители през октомври–ноември 2023 г. със съдействието на агенция „Ноема“. Проучването бе представено преди дни на форум, в който участие взеха министърът на образованието Галин Цоков, председателят на Комисията по образование в парламента Красимир Вълчев и представители на образователни институции и родителски общности.
Надежда Цекулова разговаря с Яна Алексиева и Давид Кюранов от Асоциация „Родители“ за категоричното желание на всички за промяна, но и за устойчивостта на инерцията.
Като журналист и родител си представям, че въпросът „Какво искаме от образованието на децата?“ би следвало да е обект на периодична дискусия между родителите и образователната система, а и самите деца. Уточнявам това, защото иначе първият ми въпрос може да прозвучи наивно – как ви хрумна да направите изследване за това какво очакват родителите от образованието?
Яна: Тук сме на едно мнение – това трябва да е непрекъснат процес, но в същото време такъв процес и такъв разговор под никаква форма не се води нито на национално ниво, нито дори на ниво възрастните в едно училище или в една детска градина. В обществото ни все още е валидна нагласата, че учителите знаят най-добре какво да направят за децата, и родителите биват питани само когато много се налага или настъпи някаква криза. Иначе казано, родителят е включен само когато учителят допусне да го включи, и то по начин, по който учителят прецени – процесът не е двустранен.
Виждаме през извадки и през анализа, който правим, че няма истинско включване, така че родителят да се чувства достатъчно равноправен в това да казва какво мисли за образованието на децата. Всичко е доста инструментално и формално дори когато родителите биват питани за нещо.
Давид: Но има и друга страна. Трябва да си кажем честно, че има и добри примери. И е трудно, защото да се работи активно с родителите и да бъдат те включени в образователния процес е реформа за българското образование. Дали тя е важна? Да, важна е заради нещо много просто и ясно, което и Андреас Шлайхер [ръководителят на Образователния център на Организацията за икономическо сътрудничество и развитие и създател на тестовете PISA – б.а.] каза, когато беше в България: най-успешните образователни системи са тези, в които родителите участват активно.
Много голямо впечатление ми направи големият процент на жените, на майките сред респондентите – 82%. Къде са бащите?
Давид: Във всяко семейство търсихме този родител, който основно се занимава с образованието на детето. В този смисъл присъствието на майката в такъв огромен процент е напълно в съответствие с тенденции, които сме проследявали в други изследвания през годините.
Това какво ни казва и всъщност доминацията на майките в грижата за образователното развитие има ли отношение към очакванията от образованието?
Яна: Влияе със сигурност, всяко нещо си има своето влияние. Интересното тук е, че този стереотип се затвърждава убедително и чрез професионалистите. Ние продължаваме да чуваме в училищата, че когато майката я няма, за нея се пита. Някак се приема, че бащата отива в училище само ако майката не може. Има и ситуации, в които бащата се търси като „следваща инстанция“, един вид: „Ще кажа на баща ти и ще видиш какво ще стане…“
Има тенденция за промяна, но тя все още е много нова. От друга страна, извън изследването мога смело да кажа, че всички събития, свързани с по-активно включване на бащите, се радват на огромен интерес.
Давид: Това е една сложна ситуация, но от учителите сме имали много пъти обратна връзка, че след като са започнали да търсят бащите по-често, с изненада са установили, че се разбират с тях дори по-лесно, отколкото с майките. Така че се надяваме бащите все по-активно да се саморазпознават и да бъдат разпознавани като фактор в образованието на децата.
Какво се оказа, че искат тези родители от образованието на децата си?
Давид: От социологическа гледна точка е интересно, че отговорът на въпроса излезе по най-чистия възможен начин – през отворен въпрос, в който родителите можеха сами да напишат това, което искат. И ако трябва да го синтезираме, родителите биха искали децата им да имат знания и умения, които им вършат реална работа в живота. Също така в рамките на образованието децата да се изграждат поетапно като личности, развивайки собствени ценности и собствен морал. И двете неща са важни.
Доколко това се случва в реалността?
Давид: Според данните ни отговорът е малко мъгляв и той е „Донякъде се случва“. Има един дял родители (между 25 и 33–34%), които са доста доволни от отделни аспекти на училищния живот. Става въпрос за общи процеси, свързани с комуникацията, да кажем честота на общуване с учителите, качество на информацията, която се получава, провеждане на различни инициативи…
Признавам, че бях доста изненадана от процента родители, които според изследването са доволни от родителските срещи – 36% напълно удовлетворени и още 46% по-скоро удовлетворени…
Яна: Ние също обсъждахме с екипа подробно тези резултати, защото чисто субективно аз не познавам родител, който е доволен от родителската среща в класическия ѝ вид.
И как обяснявате този парадокс? Защо не познаваме родители, които да са доволни от родителските срещи и от информацията, която получават, а от изследването излиза, че всъщност повечето родители са поне донякъде доволни?
Давид: Хубавото на такъв тип изследвания е, че те ни дават възможност да излезем от балона, в който сме ние самите. Защото родителските срещи в класическия им формат наистина не ни вършат много работа. Но когато изследвах данните и си задавах въпроса „Добре, какви са тия хора, които са толкова доволни?“, започнах да разбирам някои неща. И първото е, че основният контекст на отношенията родители–училище е огромната инерция. Инерция на статукво, на непроменяне на модела такъв, какъвто го помним от времето, когато ние сме били ученици – две родителски срещи на срок, излизаме след два часа без съществена информация за нашето дете, пък дори и за класа.
Най-интересният дял сред отговорите на въпроса дали са удовлетворени от този формат на родителските срещи, е и най-големият – на тези, които са отговорили с „По-скоро да“. Да кажеш, че нещо по-скоро става, не означава, че си доволен. В този смисъл подвеждащо е да гледаме графиката и да причисляваме тази голяма група родители към доволните. Те по-скоро приемат инерцията.
Яна: Големият въпрос е как излизаме от тази инерция и как мотивираме родителите осъзнато да помислят какво искат от училището и каква е тяхната роля.
Ние сме общество, което не е тренирано да изисква нещо повече, родителите не са изключение…
Яна: Да изискват, но и да дават. Важно е не само осъзнато да мислим за това какво очакваме от училището, но и какво можем да дадем.
Аз исках да направя преход към академичните очаквания. Защо според проучването родителите оценяват училището с оценка „много добър 4,57“, а в същото време след всеки значим изпит, национално външно оценяване или PISA ставаме свидетели (и автори) на апокалиптични прогнози за бъдещето на днешните ученици?
Давид: По отношение на удовлетворението от образователната подготовка, от една страна, се вижда, че пак има един дял между 10 и 25%, които подчертават, че са много доволни, но най-големият дял отново са хората, които казват, че тези неща „по-скоро вършат работа“. Това щеше да бъде странно, ако беше останало безкритично. Тоест ако след този въпрос, когато говорим с нашите респонденти за предложения, те бяха казали, че нещата са си съвсем добре. Но не е така. Когато стане дума за предложения за промени, един огромен дял от 85% казват, че промени задължително трябва да има. Така че общото послание по отношение на образователния процес и резултатите от него е, че той върши някаква работа, но недостатъчно, и промени трябва да има.
Искам да помоля да начертаем някаква конкретика. От какво са доволни родителите и от какво не са?
Давид: Като наблюдаваме данните, се вижда, че неща, свързани с обща грамотност или с това дали учениците учат и възпроизвеждат, се приемат за успешни. Тоест децата се научават да зазубрят и възпроизвеждат.
Яна: Но виждаме например, че голям дял от родителите искат едносменен режим, искат повече умения, да има повече отделено време за теми, свързани с живота на децата.
Давид: Реално нещата, от които родителите са по-малко доволни и искат да виждат повече възможности, са развиване на самостоятелно мислене, децата да учат с разбиране, да решават реални казуси. Мога да дам съвсем конкретен пример – според родителите липсва развиване на умения за правилно хранене и грижа за тялото. Те посочват, че това е конкретна нужда на децата, за която в училище въобще не става дума.
Яна: Ако трябва да сме още по-конкретни, говорим за липса на здравно образование и за невъзможност за интегриране на здравословен режим в самия учебен ден на децата.
Давид: Очевидно не само ние с Яна си задаваме въпроса как се отразява образованието на здравето – буквално, в чисто физически параметри, дори и да не споменаваме психическите. Родителите категорично подкрепят и заявяват нуждата да се работи повече в посока грижа за здравето.
Може ли да направим обобщението, че от една страна, има нужда и дори има предложения за промени, а от друга страна, като че ли няма осъзнатост, че реализацията на тези предложения всъщност изисква общо действие, някаква проактивност?
Давид: Да, съгласен съм с този извод. Той може да се види и през начина, по който ние самите презентираме това изследване. Институциите ни казват: „Да, родителят е много важен“. Но след това има риск да изпаднем в типичния институционален синдром „Чудесно изследване, приберете го в това чекмедже“. Тоест как правим крачката към това да започнем да включваме родителите в училище по смислен начин, а не да ги задължим с някаква формалистка програма. Защото основният въпрос, който се вижда кристално ясно в изследването, е „Каква всъщност е ролята на родителя в училище?“. За самите родители е трудно да си отговорят. И аз смятам, че не е и тяхна работа да си отговарят. Според мен е работа на училището да им предложи различни възможности.
Яна: Мисля, че е и въпрос на взаимно осъзнаване. Не бих искала да прозвучи, сякаш търсим някакъв конфликт между училището и родителите – точно обратното е. От една страна, училището трябва да е лидер, да води този процес. От друга, родителите трябва да се научим да си задаваме целенасочено въпроса „Като пращаме детето на училище, за какво го пращаме?“. От изследването виждаме нещо, което се наслагва през различи перспективи – че като общество не сме напълно наясно какво искаме от това образование. Липсва ясна визия на системата, която родителят да припознае – или дори ако щете, да се бунтува срещу нея.
Давид: Да подчертая и аз, че в никакъв случай не говорим за конфликт, а за това, че лидерът на училищната общност е училището. И ако искаме родителите да участват ефективно в образователния процес, те трябва да виждат в това ясен смисъл.
Можем ли на база на добри практики у нас или на чужд опит да формулираме какво значи „ясен смисъл“?
Яна: Ясният смисъл е благосъстоянието на детето. Или още по-просто – кои са тези първо, второ, трето, пето, с които родителят може да участва, за да стане средата по-добра за неговото дете и за всички деца в общността.
Миналата година в България беше една американска изследователка, която сподели, че само в бившия соцблок все още наблюдава това силно затруднение родителите да бъдат адекватно включени, а учителите да не са подготвени още от университета какви варианти за включване на родителите биха могли да използват.
Родителите водят своето дете в училище с надеждата то да е добре, да се учи и ако е възможно, да му се случват и други хубави неща там. Ясният смисъл би бил да им се дадат ясни възможности да допринасят за това.
This week we covered the Intel Foundry event and some of the new innovations in both fabrication and packaging technologies coming. Something we also wanted to cover is the innovation that Intel pre-announced for its Clearwater Forest line. This is set to be a high-core count game-changing server CPU with multiple technological breakthroughs. Let us get […]
In the domain of data processing, data analysts run their ad hoc queries on the data lake. The lake serves as an interface between our analytics and production environment, preventing downstream queries from impacting upstream data ingestion pipelines. To ensure efficient data processing in the data lake, choosing appropriate storage formats is crucial.
The vanilla data lake solution is built on top of cloud object storage with Hive metastore, where data files are written in Parquet format. Although this setup is optimised for scalable analytics query patterns, it struggles to handle frequent updates to the data due to two reasons:
The Hive table format requires us to rewrite the Parquet files with the latest data. For instance, to update one record in a Hive unpartitioned table, we would need to read all the data, update the record, and write back the entire data set.
Writing Parquet files is expensive due to the overhead of organising the data to a compressed columnar format, which is more complex than a row format.
The issue is further exacerbated by the scheduled downstream transformations. These necessary steps, which clean and process the data for use, increase the latency because the total delay now includes the combined scheduled intervals of these processing jobs.
Fortunately, the introduction of the Hudi format, which supports fast writes by allowing Avro and Parquet files to co-exist on a Merge On Read (MOR) table, opens up the possibility of having a data lake with minimal data latency. The concept of a commit timeline further allows data to be served with Atomicity, Consistency, Isolation, and Durability (ACID) guarantees.
We employ different sets of configurations for the different characteristics of our input sources:
High or low throughput. A high-throughput source refers to one that has a high level of activity. One example of this can be our stream of booking events generated from each customer transaction. On the other hand, a low-throughput source would be one that has a relative low level of activity. An example of this can be transaction events generated from reconciliation happening on a nightly basis.
Kafka (unbounded) or Relational Database Sources (bounded). Our sinks have sources that can be broadly categorised into unbounded and bounded sources. Unbounded sources are usually related to transaction events materialised as Kafka topics, representing user-generated events as they interact with the Grab superapp. Bounded sources usually refer to Relational Database (RDS) sources, whose size is bound to storage provisioned.
The following sections will delve into the differences between each source and our corresponding configurations optimised for them.
High throughput source
For our data sources with high throughput, we have chosen to write the files in MOR format since the writing of files in Avro format allows for fast writes to meet our latency requirements.
Figure 1 Architecture for MOR tables
As seen in Figure 1, we use Flink to perform the stream processing and write out log files in Avro format in our setup. We then set up a separate Spark writer which periodically converts the Avro files into Parquet format in the Hudi compaction process.
We have further simplified the coordination between the Flink and Spark writers by enabling asynchronous services on the Flink writer so it can generate the compaction plans for Spark writers to act on. During the Spark job runs, it checks for available compaction plans and acts on them, placing the burden of orchestrating the writes solely on the Flink writer. This approach could help minimise potential concurrency problems that might otherwise arise, as there would be a single actor
orchestrating the associated Hudi table services.
Low throughput source
Figure 2 Architecture for COW tables
For low throughput sources, we gravitate towards the choice of Copy On Write (COW) tables given the simplicity of its design, since it only involves one component, which is the Flink writer. The downside is that it has higher data latency because this setup only generates Parquet format data snapshots at each checkpoint interval, which is typically about 10-15 minutes.
Connecting to our Kafka (unbounded) data source
Grab uses Protobuf as our central data format in Kafka, ensuring schema evolution compatibility. However, the derivation of the schema of these topics still requires some transformation to make it compatible with Hudi’s accepted schema. Some of these transformations include ensuring that Avro record fields do not contain just a single array field, and handling logical decimal schemas to transform them to fixed byte schema for Spark compatibility.
Given the unbounded nature of the source, we decided to partition it by Kafka event time up to the hour level. This ensured that our Hudi operations would be faster. Parquet file writes would be faster since they would only affect files within the same partition, and each Parquet file within the same event time partition would have a bounded size given the monotonically increasing nature of Kafka event time.
By partitioning tables by Kafka event time, we can further optimise compaction planning operations, since the amount of file lookups required is now reduced with the use of BoundedPartitionAwareCompactionStrategy. Only log files in recent partitions would be selected for compaction and the job manager need not list every partition to figure out which log files to select for compaction during the planning phase anymore.
Connecting to our RDS (bounded) data source
For our RDS, we decided to use the Flink Change Data Capture (CDC) connectors by Veverica to obtain the binlog streams. The RDS would then treat the Flink writer as a replication server and start streaming its binlog data to it for each MySQL change. The Flink CDC connector presents the data as a Kafka Connect (KC) Source record, since it uses the Debezium connector under the hood. It is then a straightforward task to deserialise these records and transform them into Hudi records, since
the Avro schema and associated data changes are already captured within the KC source record.
The obtained binlog timestamp is also emitted as a metric during consumption for us to monitor the observed data latency at the point of ingestion.
Optimising for these sources involves two phases:
First, assigning more resources for the cold start incremental snapshot process where Flink takes a snapshot of the current data state in the RDS and loads the Hudi table with that snapshot. This phase is usually resource-heavy as there are a lot of file writes and data ingested during this process.
Once the snapshotting is completed, Flink would then start to process the binlog stream and the observed throughput would drop to a level similar to the DB write throughput. The resources required by the Flink writer at this stage would be much lower than in the snapshot phase.
Indexing for Hudi tables
Indexing is important for upserting Hudi tables when the writing engine performs updates, allowing it to efficiently locate the file groups of the data to be updated.
As of version 0.14, the Flink engine only supports Bucket Index or Flink State Index. Bucket Index performs indexing of the file record by hashing the record key and matching it to a specific bucket of files indicated by the naming convention of the written data files. Flink State Index on the other hand stores the index map of record keys to files in memory.
Given that our tables include unbounded Kafka sources, there is a possibility for our state indexes to grow indefinitely. Furthermore, the requirement of state preservation for Flink State Index across version deployments and configuration updates adds complexity to the overall solution.
Thus, we opted for the simple Bucket Index for its simplicity and the fact that our Hudi table size per partition does not change drastically across the week. However, this comes with a limitation whereby the number of buckets cannot be updated easily and imposes a parallelism limit at which our Flink pipelines can scale. Thus, as traffic grows organically, we would find ourselves in a situation whereby our configuration grows obsolete and cannot handle the increased load.
To resolve this going forward, using consistent hashing for the Bucket Index would be something to explore to optimise our Parquet file sizes and allow the number of buckets to grow seamlessly as traffic grows.
Impact
Fresh business metrics
Post creation of our Hudi Data Ingestion solution, we have enabled various users such as our data analysts to perform ad hoc queries much more easily on data that has lower latency. Furthermore, Hudi tables can be seamlessly joined with Hive tables in Trino for additional context. This enabled the construction of operational dashboards reflecting fresh business metrics to our various operators, empowering them with the necessary information to quickly respond to any abnormalities (such as high-demand events like F1 or seasonal holidays).
Quicker fraud detection
Another significant user of our solution is our fraud detection analysts. This enabled them to rapidly access fresh transaction events and analyse them for fraudulent patterns, particularly during the emergence of a new attack pattern that hadn’t been detected by their rules engine. Our solution also allowed them to perform multiple ad hoc queries that involve lookbacks of various days’ worth of data without impacting our production RDS and Kafka clusters by using the data lake as the data interface, reducing the data latency to the minute level and, in turn, empowering them to respond more quickly to attacks.
What’s next?
As the landscape of data storage solutions evolves rapidly, we are eager to test and integrate new features like Record Level Indexing and the creation of Pre Join tables. This evolution extends beyond the Hudi community to other table formats such as IceBerg and DeltaLake. We remain ready to adapt ourselves to these changes and incorporate the advantages of each format into our data lake within Grab.
Grab is the leading superapp platform in Southeast Asia, providing everyday services that matter to consumers. More than just a ride-hailing and food delivery app, Grab offers a wide range of on-demand services in the region, including mobility, food, package and grocery delivery services, mobile payments, and financial services across 428 cities in eight countries.
Powered by technology and driven by heart, our mission is to drive Southeast Asia forward by creating economic empowerment for everyone. If this mission speaks to you, join our team today!
The latest version of the AWS HITRUST Shared Responsibility Matrix (SRM)—SRM version 1.4.2—is now available. To request a copy, choose SRM version 1.4.2 from the HITRUST website.
SRM version 1.4.2 adds support for the HITRUST Common Security Framework (CSF) v11.2 assessments in addition to continued support for previous versions of HITRUST CSF assessments v9.1–v11.2. As with the previous SRM versions v1.4 and v1.4.1, SRM v1.4.2 enables users to trace the HITRUST CSF cross-version lineage and inheritability of requirement statements, especially when inheriting from or to v9.x and 11.x assessments.
The SRM is intended to serve as a resource to help customers use the AWS Shared Responsibility Model to navigate their security compliance needs. The SRM provides an overview of control inheritance, and customers also use it to perform the control scoring inheritance functions for organizations that use AWS services.
Using the HITRUST certification, you can tailor your security control baselines to a variety of factors—including, but not limited to, regulatory requirements and organization type. As part of their approach to security and privacy, leading organizations in a variety of industries have adopted the HITRUST CSF.
AWS doesn’t provide compliance advice, and customers are responsible for determining compliance requirements and validating control implementation in accordance with their organization’s policies, requirements, and objectives. You can deploy your environments on AWS and inherit our HITRUST CSF certification, provided that you use only in-scope services and apply the controls detailed on the HITRUST website.
What this means for our customers
The new AWS HITRUST SRM version 1.4.2 has been tailored to reflect both the Cross Version ID (CVID) and Baseline Unique ID (BUID) in the CSF object so that you can select the correct control for inheritance even if you’re still using an older version of the HITRUST CSF for your own assessment. As an additional benefit, the AWS HITRUST Inheritance Program also supports the control inheritance of AWS cloud-based workloads for new HITRUST e1 and i1 assessment types, in addition to the validated r2-type assessments offered through HITRUST.
At AWS, we’re committed to helping you achieve and maintain the highest standards of security and compliance. We value your feedback and questions. Contact the AWS HITRUST team at AWS Compliance Contact Us. If you have feedback about this post, submit comments in the Comments section below.
The .NET 8 runtime is built on the Amazon Linux 2023 (AL2023) minimal container image. This provides a smaller deployment footprint than earlier Amazon Linux 2 (AL2) based runtimes and updated versions of common libraries such as glibc 2.34 and OpenSSL 3.
The new image also uses microdnf as a package manager, symlinked as dnf. This replaces the yum package manager used in earlier AL2-based images. If you deploy your Lambda functions as container images, you must update your Dockerfiles to use dnf instead of yum when upgrading to the .NET 8 base image. For more information, see Introducing the Amazon Linux 2023 runtime for AWS Lambda.
Performance
There are a number of language performance improvements available as part of .NET 8. Initialization time can impact performance, as Lambda creates new execution environments to scale your function automatically. There are a number of ways to optimize performance for Lambda-based .NET workloads, including using source generators in System.Text.Json or using Native AOT.
Lambda has increased the default memory size from 256 MB to 512 MB in the blueprints and templates for improved performance with .NET 8. Perform your own functional and performance tests on your .NET 8 applications. You can use AWS Compute Optimizer or AWS Lambda Power Tuning for performance profiling.
At launch, new Lambda runtimes receive less usage than existing established runtimes. This can result in longer cold start times due to reduced cache residency within internal Lambda subsystems. Cold start times typically improve in the weeks following launch as usage increases. As a result, AWS recommends not drawing performance comparison conclusions with other Lambda runtimes until the performance has stabilized.
Native AOT
Lambda introduced .NET Native AOT support in November 2022. Benchmarks show up to 86% improvement in cold start times by eliminating the JIT compilation. Deploying .NET 8 Native AOT functions using the managed dotnet8 runtime rather than the OS-only provided.al2023 runtime gives your function access to .NET system libraries. For example, libicu, which is used for globalization, is not included by default in the provided.al2023 runtime but is in the dotnet8 runtime.
While Native AOT is not suitable for all .NET functions, .NET 8 has improved trimming support. This allows you to more easily run ASP.NET APIs. Improved trimming support helps eliminate build time trimming warnings, which highlight possible runtime errors. This can give you confidence that your Native AOT function behaves like a JIT-compiled function. Trimming support has been added to the Lambda runtime libraries, AWS .NET SDK, .NET Lambda Annotations, and .NET 8 itself.
Using.NET 8 with Lambda
To use .NET 8 with Lambda, you must update your tools.
If you use the .NET Lambda Global Tools extension (Amazon.Lambda.Tools), install the CLI extension and templates. You can upgrade existing tools with dotnet tool update -g Amazon.Lambda.Tools and existing templates with dotnet new install Amazon.Lambda.Templates.
You can also use .NET 8 with Powertools for AWS Lambda (.NET), a developer toolkit to implement serverless best practices such as observability, batch processing, retrieving parameters, idempotency, and feature flags.
Building new .NET 8 functions
Using AWS SAM
Run sam init.
Choose 1- AWS Quick Start Templates.
Choose one of the available templates such as Hello World Example.
Select N for Use the most popular runtime and package type?
Select dotnet8 as the runtime. The dotnet8Hello World Example also includes a Native AOT template option.
Follow the rest of the prompts to create the .NET 8 function.
AWS SAM .NET 8 init options
You can amend the generated function code and use sam deploy --guided to deploy the function.
Using AWS Toolkit for Visual Studio
From the Create a new project wizard, filter the templates to either the Lambda or Serverless project type and select a template. Use Lambda for deploying a single function. Use Serverless for deploying a collection of functions using AWS CloudFormation.
Continue with the steps to finish creating your project.
You can amend the generated function code.
To deploy, right click on the project in the Solution Explorer and select Publish to AWS Lambda.
Using AWS extensions for the .NET CLI
Run dotnet new list --tag Lambda to get a list of available Lambda templates.
Choose a template and run dotnet new <template name>. To build a function using Native AOT, use dotnet new lambda.NativeAOT or dotnet new serverless.NativeAOT when using the .NET Lambda Annotations Framework.
Locate the generated Lambda function in the directory under src which contains the .csproj file. You can amend the generated function code.
To deploy, run dotnet lambda deploy-function and follow the prompts.
You can test the function in the cloud using dotnet lambda invoke-function or by using the test functionality in the Lambda console.
You can build and deploy .NET Lambda functions using container images. Follow the instructions in the documentation.
Migrating from .NET 6 to .NET 8 without Native AOT
Using AWS SAM
Open the template.yaml file.
Update Runtime to dotnet8.
Open a terminal window and rebuild the code using sam build.
Run sam deploy to deploy the changes.
Using AWS Toolkit for Visual Studio
Open the .csproj project file and update the TargetFramework to net8.0. Update NuGet packages for your Lambda functions to the latest version to pull in .NET 8 updates.
Verify that the build command you are using is targeting the .NET 8 runtime.
There may be additional steps depending on what build/deploy tool you’re using. Updating the function runtime may be sufficient.
Using AWS extensions for the .NET CLI or AWS Toolkit for Visual Studio
Open the aws-lambda-tools-defaults.json file if it exists.
Set the framework field to net8.0. If unspecified, the value is inferred from the project file.
Set the function-runtime field to dotnet8.
Open the serverless.template file if it exists. For any AWS::Lambda::Function or AWS::Servereless::Function resources, set the Runtime property to dotnet8.
Open the .csproj project file if it exists and update the TargetFramework to net8.0. Update NuGet packages for your Lambda functions to the latest version to pull in .NET 8 updates.
Migrating from .NET 6 to .NET 8 Native AOT
The following example migrates a .NET 6 class library function to a .NET 8 Native AOT executable function. This uses the optional Lambda Annotations framework which provides idiomatic .NET coding patterns.
Update your project file
Open the project file.
Set TargetFramework to net8.0.
Set OutputType to exe.
Remove PublishReadyToRun if it exists.
Add PublishAot and set to true.
Add or update NuGet package references to Amazon.Lambda.Annotations and Amazon.Lambda.RuntimeSupport. You can update using the NuGet UI in your IDE, manually, or by running dotnet add package Amazon.Lambda.RuntimeSupport and dotnet add package Amazon.Lambda.Annotations from your project directory.
Your project file should look similar to the following:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AWSProjectType>Lambda</AWSProjectType>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<!-- Generate native aot images during publishing to improve cold start time. -->
<PublishAot>true</PublishAot>
<!-- StripSymbols tells the compiler to strip debugging symbols from the final executable if we're on Linux and put them into their own file.
This will greatly reduce the final executable's size.-->
<StripSymbols>true</StripSymbols>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Amazon.Lambda.Core" Version="2.2.0" />
<PackageReference Include="Amazon.Lambda.RuntimeSupport" Version="1.10.0" />
<PackageReference Include="Amazon.Lambda.Serialization.SystemTextJson" Version="2.4.0" />
</ItemGroup>
</Project>
Updating your function code
Reference the annotations library with using Amazon.Lambda.Annotations;
Add [assembly:LambdaGlobalProperties(GenerateMain = true)] to allow the annotations framework to create the main method. This is required as the project is now an executable instead of a library.
Add the below partial class and include a JsonSerializable attribute for any types that you need to serialize, including for your function input and output This partial class is used at build time to generate reflection free code dedicated to serializing the listed types. The following is an example:
/// <summary>
/// This class is used to register the input event and return type for the FunctionHandler method with the System.Text.Json source generator.
/// There must be a JsonSerializable attribute for each type used as the input and return type or a runtime error will occur
/// from the JSON serializer unable to find the serialization information for unknown types.
/// </summary>
[JsonSerializable(typeof(APIGatewayHttpApiV2ProxyRequest))]
[JsonSerializable(typeof(APIGatewayHttpApiV2ProxyResponse))]
public partial class MyCustomJsonSerializerContext : JsonSerializerContext
{
// By using this partial class derived from JsonSerializerContext, we can generate reflection free JSON Serializer code at compile time
// which can deserialize our class and properties. However, we must attribute this class to tell it what types to generate serialization code for
// See https://docs.microsoft.com/en-us/dotnet/standard/serialization/system-text-json-source-generation
}
After the using statement, add the following to specify the serializer to use. [assembly: LambdaSerializer(typeof(SourceGeneratorLambdaJsonSerializer<LambdaFunctionJsonSerializerContext>))]
Swap LambdaFunctionJsonSerializerContext for your context if you are not using the partial class from the previous step.
Updating your function configuration
If you are using aws-lambda-tools-defaults.json.
Set function-runtime to dotnet8.
Set function-architecture to match your build machine – either x86_64 or arm64.
Set (or update) environment-variables to include ANNOTATIONS_HANDLER=<YourFunctionHandler>. Replace <YourFunctionHandler> with the method name of your function handler, so the annotations framework knows which method to call from the generated main method.
Set function-handler to the name of the executable assembly in your bin directory. By default, this is your project name, which tells the .NET Lambda bootstrap script to run your native binary instead of starting the .NET runtime. If your project file has AssemblyName then use that value for the function handler.
Deploy your function. If you are using Amazon.Lambda.Tools, run dotnet lambda deploy-function. Check for trim warnings during build and refactor to eliminate them.
Test your function to ensure that the native calls into AL2023 are working correctly. By default, running local unit tests on your development machine won’t run natively and will still use the JIT compiler. Running with the JIT compiler does not allow you to catch native AOT specific runtime errors.
Conclusion
Lambda is introducing the new .NET 8 managed runtime. This post highlights new features in .NET 8. You can create new Lambda functions or migrate existing functions to .NET 8 or .NET 8 Native AOT.
For more serverless learning resources, visit Serverless Land.
The collective thoughts of the interwebz
Manage Consent
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.