Руска оозиция с първи форум в София Нансенови вместо златните паспорти искат руските политимигранти в България

Post Syndicated from Николай Марченко original https://bivol.bg/%D0%BD%D0%B0%D0%BD%D1%81%D0%B5%D0%BD%D0%BE%D0%B2%D0%B8-%D0%B2%D0%BC%D0%B5%D1%81%D1%82%D0%BE-%D0%B7%D0%BB%D0%B0%D1%82%D0%BD%D0%B8%D1%82%D0%B5-%D0%BF%D0%B0%D1%81%D0%BF%D0%BE%D1%80%D1%82%D0%B8-%D0%B8.html

неделя 20 февруари 2022


Да получават подобно на белоемиграцията след Октомврийската революция аналог на т.нар. „Нансенови“ паспорти на Лигата на нациите искат политическите имигранти от Руската федерация. Това стана ясно на първата конференция на…

Happy 10th Birthday, DynamoDB! 🎉🎂🎁

Post Syndicated from Sébastien Stormacq original https://aws.amazon.com/blogs/aws/happy-birthday-dynamodb/

On January 18th 2012, Jeff and Werner announced the general availability of Amazon DynamoDB, a fully managed flexible NoSQL database service for single-digit millisecond performance at any scale.

During the last 10 years, hundreds of thousands of customers have adopted DynamoDB. It regularly reaches new peaks of performance and scalability. For example, during the last Prime Day sales in June 2021, it handled trillions of requests over 66 hours while maintaining single-digit millisecond performance and peaked at 89.2 million requests per second. Disney+ uses DynamoDB to ingest content, metadata, and billions of viewers actions each day. Even during unprecedented demands caused by the pandemic, DynamoDB was able to help customers as many across the world had to change their way of working, needing to meet and conduct business virtually. For example, Zoom was able to scale from 10 million to 300 million daily meeting participants when we all started to make video calls in early 2020.

A decade of innovation with Amazon DynamoDB

On this special anniversary, join us for an unique online event on Twitch on March 1st. I’ll tell you more about this at the end of this post. But before talking about this event, let’s take this opportunity to reflect back on the genesis of this service and the main capabilities we added since the original launch 10 years ago.

The History Behind DynamoDB
The story of DynamoDB started long before the launch 10 years ago. It started with a series of outages on Amazon’s e-commerce platform during the holiday shopping season in 2004. At that time, Amazon was transitioning from a monolithic architecture to microservices. The design principle was (and still is) that each stateful microservice uses its own data store, and other services are required to access a microservice’s data through a publicly exposed API. Direct database access was not an option anymore. At that time, most microservices were using a relational database provided by a third-party vendor. Given the volume of traffic during the holiday season in 2004, the database system experienced some hard-to-debug and hard-to-reproduce deadlocks. The e-commerce platform was pushing the relational databases to their limits, despite the fact that we were using simple usage patterns, such as query by primary keys only. These usage patterns do not require the complexity of a relational database.

At Amazon and AWS, after an outage happens, we start a process called Correction of Error (COE) to document the root cause of the issue, to describe how we fixed it, and to detail the changes we’re making to avoid recurrence. During the COE for this database issue, a young, naïve, 20-year-old intern named Swaminathan (Swami) Sivasubramanian (now VP of the database, analytics, and ML organization at AWS) asked the question, “Why are we using a relational database for this? These workloads don’t need the SQL level of complexity and transactional guarantees.”

This led Amazon to rethink the architecture of its data stores and to build the original Dynamo database. The objective was to address the demanding scalability and reliability requirements of the Amazon e-commerce platform. This non-relational, key-value database was initially targeted at use cases that were the core of the Amazon e-commerce operations, such as the shopping basket and the session service.

AWS published the Dynamo paper in 2007, three years later, to describe our design principles and provide the lessons learned from running this database to support Amazon’s core e-commerce operations. Over the years, we saw several Dynamo clones appear, proving other companies were searching for scalable solutions, just like Amazon.

After a couple of years, Dynamo was adopted by several core service teams at Amazon. Their engineers were very satisfied with the performance and scalability. However, we started to interview engineers to understand why it was not more broadly adopted within Amazon. We learned Dynamo was giving teams the reliability, performance, and scalability they needed, but it did not simplify the operational complexity of running the system. Teams were still needed to install, configure, and operate the system in Amazon’s data centers.

At the time, AWS was proposing Amazon SimpleDB as a NoSQL service. Many teams preferred the operational simplicity of SimpleDB despite the difficulties to scale a domain beyond 10 GB, its non-predictable latency (it was affected by the size of the database and its indexes), and its eventual consistency model.

We concluded the ideal solution would combine the strengths of Dynamo—the scalability and the predictable low latency to retrieve data—with the operational simplicity of SimpleDB—just having a table to declare and let the system handle the low-level complexity transparently.

DynamoDB was born.

DynamoDB frees developers from the complexity of managing hardware and software. It handles all the complexity of scaling partitions and re-partitions your data to meet your throughput requirements. It scales seamlessly without the need to manually re-partition tables, and it provides predictable low latency access to your data (single-digit milliseconds).

At AWS, the moment we launch a new service is not the end of the project. It is actually the beginning. Over the last 10 years, we have continuously listened to your feedback, and we have brought new capabilities to DynamoDB. In addition to hundreds of incremental improvements, we added:

… and many more.

Lastly, during the last AWS re:Invent conference, we announced Amazon DynamoDB Standard-Infrequent Access (DynamoDB Standard-IA). This new DynamoDB table class allows you to lower the cost of data storage for infrequently accessed data by 60%. The ideal use case is for data that you need to keep for the long term and that your application needs to occasionally access, without compromising on access latency. In the past, to lower storage costs for such data, you were writing code to move infrequently accessed data to lower-cost storage alternatives, such as Amazon Simple Storage Service (Amazon S3). Now you can switch to the DynamoDB Standard-IA table class to store infrequently accessed data while preserving the high availability and performance of DynamoDB.

How To Get Started
To get started with DynamoDB, as a developer, you can refer to the Getting Started Guide in our documentation or read the excellent DynamoDB, Explained, written by Alex DeBrie, one of our AWS Heroes, and author of The DynamoDB Book. To dive deep into DynamoDB data modeling, AWS Hero Jeremy Daly is preparing a video course “DynamoDB Modeling for the rest of us“.

Customers now leverage DynamoDB across virtually any industry vertical, geographic area, and company size. You are continually surprising us with how you innovate on DynamoDB, and you are continually pushing us to continue to evolve DynamoDB to make it easier to build the next generation of applications. We are going to continue to work backwards from your feedback to meet your ever evolving needs and to enable you to innovate and scale for decades to come.

A Decade of Innovation with DynamoDB – A Virtual Event
As I mentioned at the beginning, we also would love to celebrate this anniversary with you. We prepared a live Twitch event for you to learn best practices, see technical demos, and attend a live Q&A. You will hear stories from two of our long-time customers : SmugMug CEO Don MacAskill, and engineering leaders from Dropbox. In addition, you’ll get a chance to ask your questions to and chat with AWS’ blog legend and Chief Evangelist Jeff Barr, and DynamoDB‘s product managers and engineers. Finally, AWS heroes Alex DeBrie and Jeremy Daly will host two deep dive technical sessions. Have a look at the full agenda here.

This will be live on Twitch on March 1st, you can register today. The first 1,000 registrants from US will receive a free digital copy of the DynamoDB book (this has a $79 retail value).

To DynamoDB’s next 10 years. Cheers 🥂.

— seb

Friday Squid Blogging: South American Squid Stocks Threatened by Chinese Fishing

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2022/02/friday-squid-blogging-south-american-squid-stocks-threatened-by-chinese-fishing.html

There’s a lot of fishing going on:

The number of Chinese-flagged vessels in the south Pacific has surged 13-fold from 54 active vessels in 2009 to 707 in 2020, according to the SPRFMO. Meanwhile, the size of China’s squid catch has grown from 70,000 tons in 2009 to 358,000.

As usual, you can also use this squid post to talk about the security stories in the news that I haven’t covered.

Read my blog posting guidelines here.

How to evaluate the benefits of AQUA for your Amazon Redshift workloads

Post Syndicated from Dinesh Kumar original https://aws.amazon.com/blogs/big-data/how-to-evaluate-the-benefits-of-aqua-for-your-amazon-redshift-workloads/

Amazon Redshift is the cloud data warehouse of choice for tens of thousands of customers, who use it to analyze exabytes of data to gain business insights. Customers have been asking us for better performance at scale as the volume, variety, velocity, and veracity of their data grows. We have added several features to Amazon Redshift that enable you to get up to three times better price performance with Amazon Redshift than other cloud data warehouses.

In addition, we launched AQUA (Advanced Query Accelerator) for Amazon Redshift to help you cost-effectively run analytics at the new scale of data. AQUA is a distributed and hardware-accelerated cache that enables Amazon Redshift to run an order of magnitude faster than other enterprise cloud data warehouses by automatically boosting certain types of queries. AQUA uses AWS-designed processors with AWS Nitro chips adapted to speed up data encryption and compression, and custom analytics processors, implemented in FPGAs, to accelerate operations such as scans, filtering, and aggregation. AQUA is available with the RA3.16xlarge, RA3.4xlarge, and RA3.xlplus nodes at no additional charge and requires no code changes. You can enable AQUA for your existing Amazon Redshift RA3 clusters or launch a new AQUA-enabled RA3 cluster via the AWS Management Console, API, or AWS Command Line Interface (AWS CLI). To learn more about AQUA, see Working with AQUA (Advanced Query Accelerator).

This post walks you through steps to quantify expected benefits from AQUA for Amazon Redshift for your workloads. We cover the methodology used for testing AQUA and share the scripts, a sample dataset, and queries so you can test AQUA in your own environment. We have published scripts on GitHub (along with a README file), which you need as you follow the steps in this post. Download all scripts to your working directory from where you intend to connect to your Redshift clusters.

Solution overview

At a high-level, the AQUA test process involves the following steps:

  1. Create a test cluster to evaluate AQUA and make sure that AQUA is turned on. For instructions, see Working with AQUA (Advanced Query Accelerator).
  2. Analyze your workload for AQUA and capture eligible queries. To learn more about the types of queries accelerated by AQUA, refer to When does Amazon Redshift use AQUA to run queries?
  3. Run the workload with AQUA activated and deactivated on your test cluster.
  4. Compare performance results.

This approach is a straightforward yet practical way to measure the performance gain you can expect to get for your workload by turning on AQUA.

With the exception of one workload parsing and analyzing script (aqua_capture_query.sh), you can run the rest of the scripts on a test cluster. We recommend using a test cluster to minimize the impact to your production cluster.

Create a test cluster

Create a snapshot from a production cluster that has read-heavy workloads and restore it as test cluster.

Analyze your workload and capture eligible queries

Run aqua_capture_query.sh on the production cluster to determine the queries suitable for acceleration by AQUA. We recommend choosing workloads with SELECT queries that use LIKE or SIMILAR TO functions in the WHERE clause and scan, filter, and aggregate large datasets. aqua_capture_query.sh scans the query history on your production cluster and captures queries that AQUA can accelerate.

The script runtime may exceed several minutes depending on the selected time interval (analyze_starttime and analyze_endtime), size of the cluster, and workload complexity. We suggest restricting the script runtime by limiting the time interval to the lesser of your workload runtime or 3 hours. Alternately, you can evaluate AQUA using the Amazon Reviews sample dataset, which we demonstrate later in this post.

aqua_capture_query.sh saves an output file named aqua_eligible_queries to your working directory and contains a subset of most suitable AQUA-eligible queries.

The following is a sample output by the script:

select count(*) from amazon_reviews where product_title SIMILAR TO '%lap%' group by star_rating ORDER BY star_rating desc;
select count(*) from amazon_reviews where product_title ilike '%e%|%E%' or customer_ID like '3%__%45__3';

If your workload history doesn’t have enough AQUA-eligible queries, the script reports no eligible queries found. If this happens, run the script with different date/time parameters. If you still don’t see any queries, you can try using the sample dataset and queries provided in this post. For more information about AQUA-eligible queries, refer to When does Amazon Redshift use AQUA to run queries?

Run the workload on your test cluster

Run aqua_execute_query.sh on your test cluster. The script runs the captured queries on your cluster repeatedly to get consistent performance by reducing the impact of runtime difference due to environmental factors with AQUA activated and deactivated. The script records the start date/time and end date/time to a file named workload_datetime.txt in your working directory.

Compare performance results

When aqua_execute_query.sh script is complete, run aqua_perf_compare.sh, which generates a CSV file named aqua_benefit in your working directory. The following table summarizes the sample output.

Query ID Amazon Redshift with AQUA turned on Query ID Amazon Redshift with AQUA turned off Runtime in seconds with AQUA turned on Runtime in seconds with AQUA turned off Speedup
(Column C/Column B)
1153194 1153370 2.7 59.4 22.0
1153214 1153456 22.8 104.9 4.6
334629 334631 1.66643 35.8 22.25
334850 334672 1.71297 26.9 15.7
334984 334998 1.85051 26.9 14.5
334830 334793 6.47884 87.2 13.4
334828 334740 6.6974 87.1 13

This table shows the query identifiers and runtime of the queries with AQUA activated and deactivated. You can compare the benefits offered by AQUA by reviewing the speedup column.

Example use case with the Amazon Reviews dataset

To test AQUA with the Amazon Reviews sample dataset, perform the following steps:

  1. Create a two-node RA3.4xlarge cluster by issuing the following command:
    aws redshift create-cluster --cluster-identifier test-amazon-reviews --node-type ra3.4xlarge --number-of-nodes 2 --master-username adminuser --master-user-password <xxpasswordxx> --aqua-configuration-status enabled

  2. Create a test database on our Amazon Redshift cluster by issuing the following command:
    CREATE DATABASE TestDB;

  3. Load the table with the Amazon Reviews dataset by running the script load_amazon_sentiments_data.sql.
  4. Run a few AQUA-eligible queries (similar to the following) multiple times with and without AQUA activated using the script execute_test_queries.sh:
    select count(*) from amazon_reviews WHERE product_title SIMILAR TO '%lap%' or product_title SIMILAR TO '%hope%' or product_title SIMILAR TO '%nice%' or product_title SIMILAR TO '%soa%';

More evaluation queries are available on the GitHub repo.

  1. Run aqua_perf_compare.sh on the test cluster.

The following table shows that AQUA accelerated the queries 5–22 times faster.

Query ID Amazon Redshift with AQUA turned on Query ID Amazon Redshift with AQUA turned off Runtime in seconds with AQUA turned on Runtime in seconds with AQUA turned off Speedup
(Column C/Column B)
364202 364217 2.33411 51.56207 22.09073
334984 334998 1.85051 26.9 14.5
334830 334793 6.47884 87.2 13.4
334828 334740 6.6974 87.1 13

Summary

This post provides a straightforward yet practical way to measure the performance gain you can expect to get for your workload by turning on AQUA. You can use the scripts provided and test with your own dataset and queries, or use the sample dataset and queries to determine AQUA’s impact.

We continue to invest and launch new capabilities like AQUA for Amazon Redshift to make sure Amazon Redshift continues to improve as your data warehouse needs grow. For AQUA, we continue to add hardware acceleration for more SQL operators, functions, predicates, data types, and file formats so more scans, filters, and aggregations can be pushed down to AQUA. Pushdowns to AQUA remain transparent so Amazon Redshift decides when to push queries down to AQUA to take advantage of hardware acceleration. And when queries don’t get pushed down to AQUA, they continue to run on Amazon Redshift as before.

We invite you to test AQUA for yourself and share the findings.


About the Authors

Dinesh Kumar is a Database Engineer at AWS focusing on Amazon AQUA. He works with customers to build highly scalable data warehouse and high performant database solutions. Outside work, he enjoys gardening and spending time with his family.

Manan Goel is a Product Go-To-Market Leader for AWS Analytics Services including Amazon Redshift & AQUA at AWS. He has more than 25 years of experience and is well versed with databases, data warehousing, business intelligence, and analytics. Manan holds a MBA from Duke University and a BS in Electronics & Communications engineering.

На Източния фронт нищо ново. Разговор със Стефан Тафров

Post Syndicated from Венелина Попова original https://toest.bg/stefan-tafrov-interview/

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

Стефан Тафров е бил два пъти представител на България в ООН, посланик във Франция, Италия, Малта, Великобритания и Ирландия, зам.-министър на външните работи в кабинета на Филип Димитров и на Иван Костов и съветник по външната политика на президента Желю Желев. Със Стефан Тафров разговаря Венелина Попова.


Владимир Путин заяви, че започва изтегляне на руските войски от границата с Украйна и сателитни снимки показват движение на военна техника в тези зони. Но Джо Байдън твърди, че вероятността за военен конфликт остава, а Антъни Блинкен предупреди Сергей Лавров, че евентуална агресия на Русия ще предизвика решителен отговор от САЩ и техните съюзници. Каква е истината?

Данни на НАТО и на американското разузнаване показват, че няма сериозно изтегляне на руските войски от граничната зона. Напротив, има съсредоточаване на още военни части, така че опасността остава. Тя е значителна до такава степен, че американският държавен секретар Блинкен се съгласи на среща с Лавров през следващата седмица някъде в Европа само при положение че междувременно няма руска атака срещу Украйна.

Как очаквате да се развие конфликтът и има ли Путин полезни ходове, които няма да го компрометират вътре в страната?

Зависи за кого полезен. Истината е, че винаги когато има външнополитически и въоръжени конфликти като сегашния, одобрението на режима на Путин в Русия се увеличава. И това по мнението на много наблюдатели е една от причините за сегашното напрежение. А през последните месеци и във връзка с не особено цветущото положение на руската икономика, подкрепата за руския президент вътре в страната намалява. Затова за него конфликтът е средство да увеличи популярността си – своята и на кръговете, свързани с него, най-вече на хората, които са се обогатили по време на управлението му и искат то да продължи колкото може по-дълго. Затова много наблюдатели се опасяват, че може да се стигне до въоръжен конфликт, който да укрепи сегашния режим в Русия. Ясно е като цяло и в дългосрочен план, че подобен конфликт би бил много вреден за руските интереси. Той ще доведе до трайно отчуждаване на украинците от Русия и ще засили самия смисъл от съществуването на НАТО. Ако преди време някой поставяше под съмнение бъдещето на Алианса, случващото се с Украйна показва значението му.

На второ място, не се оправдават надеждите на Путин да предизвика разцепление в ЕС. Напротив, на последния Съвет на ЕС в Брюксел на 17 февруари нямаше никакви разногласия по отношение на Русия, няма такива и между съюзниците в НАТО. Трансатлантическата връзка се засилва, а конфликтът работи против интересите на Русия. В Москва го разбират добре и затова човек си задава въпроса: „А защо го правят?“ И обикновено обяснението е, че целта е да се укрепи режимът и да се удължи животът на тази управленска върхушка, която се възползва материално от своето господстващо положение.

Долната камара на Държавната дума гласува резолюция и призова руския президент да признае Донецка и Луганска народна република за суверенни държави. Очаквате ли Путин да направи това и може ли признаването им да бъде последвано от разполагане на руски войски в Източна Украйна?

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

А възможно ли е Минските споразумения да бъдат изпълнени – и от руска, и от украинска страна?

Самите споразумения са трудни за изпълнение, особено в ситуацията след засилването на престрелките от двете страни.

Споделяте ли тезата, че Русия анексира Крим и поддържа сепаратистите в Украйна, защото Путин се плаши повече от трайното установяване на демокрация в страни като Украйна и Грузия например, отколкото от разполагането на натовски ракети на границата с Русия?

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

В публичното пространство у нас малко се говори за военен съюз между Русия и Китай, който би поставил света в съвършено различна ситуация. Какво е Вашето мнение?

Има геополитически интереси на двете страни, които съвпадат на антизападна основа по отношение на конфликта с Украйна и преди това. Въпросът е, че геополитическата двойка Китай–Русия е крайно неравностойна. Защото Китай е много по-голяма страна, с по-голяма и по-силна икономика, и в тази двойка Русия играе подчинена роля. А изострянето на ситуацията с Украйна поставя Москва в още по-подчинена роля и така да се каже, в ръцете на Китай. А за Пекин ситуацията е благоприятна, тъй като в момента вниманието на САЩ е насочено към Европа и Украйна, а не към Азия, какъвто беше приоритетът на американската външна политика още по време на мандата на президента Обама. Знаете, че Китай има амбиция да възстанови своя контрол върху Тайван, и това е много сериозна потенциална точка на напрежение. Но сега САЩ, които нямат толкова ресурси, не могат да обърнат внимание на две конфликтни точки едновременно. Затова сегашната ситуация е добре дошла за Китай, но обрича Русия на все по-неравностойно партньорство с него.

Този конфликт с Украйна маргинализира Русия, така ли мислите?

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

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

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

Интервюто е направено на 18 февруари 2022 г. Прочетете и разговора с Димитър Луджев.
Заглавна снимка: … 

Източник

На Източния фронт нищо ново. Разговор с Димитър Луджев

Post Syndicated from Венелина Попова original https://toest.bg/dimitur-ludzhev-interview/

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

Димитър Луджев е политик и учен, автор на множество книги и научни публикации. Участвал е в Кръглата маса през 1990 г., бил е депутат в 7-мото Велико народно събрание и в 36-тото Народно събрание, вицепремиер в кабинета на Димитър Попов и министър на отбраната в правителството на Филип Димитров. С Димитър Луджев разговаря Венелина Попова.


Вместо да нападне Украйна, Путин започна изтегляне на руските войски от граничните зони. Джо Байдън се обърна към руския народ с думите „Вие не сте ни врагове“, но и не отхвърли възможността за военен конфликт. А Антъни Блинкен предупреди Сергей Лавров, че евентуална агресия на Русия ще предизвика решителен отговор от САЩ и техните съюзници. Как разчитате тези послания?

Най-напред искам да кажа, че Русия никога не е имала намерение да напада Украйна. Може Путин и първите политици на страната да имат много грехове, но те не са идиоти, за да предприемат подобна авантюра. Мисля, че тази антируска истерия, която за мен изненадващо подеха Байдън и неговата администрация, искаше да оправдае отдавнашните намерения на САЩ да разширят НАТО на изток до границите на Русия. Затова беше цялата тази кампания през последните два месеца, която подлуди медиите и хората. А снощните думи на президента Байдън и изявлението на Блинкен са едно меко оттегляне в посока към най-разумното – започването на преговори между САЩ, НАТО, ЕС и Русия за намиране на необходимия баланс на интересите.

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

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

През 2003 г. у нас имаше международна конференция по сигурността, организирана от екип под мое ръководство и с участието на представители на НАТО. Още тогава висши служители от Съвета по национална сигурност на САЩ показаха на карта в залата как НАТО ще се придвижи на изток и ще вземе и Украйна, и Грузия, и Армения, и пр. Става дума за стари планове на една част от американския естаблишмънт, който не можа да преодолее антируската си нагласа и намерения, които бяха временно притъпени след разпадането на СССР.

Долната камара на Държавната дума гласува резолюция и призова президента Путин да признае Донецка и Луганска народна република за суверенни държави. Може ли признаването да бъде последвано и от разполагане на руски войски в Източна Украйна, както прогнозират някои експерти?

Това е форма на натиск, която да даде тласък на разговорите в рамките на Минските споразумения (или Минската четворка). Те зациклиха заради нежеланието на Украйна да изпълни договорености в него, които са ясни – да започне преговори с представителите на самопровъзгласилите се републики и да даде широка автономия на тези области съобразно новата Конституция на страната. Такава е и позицията на Русия. Но Украйна твърди, че не може да направи това, докато не си възвърне контрола по границата, въпреки че подобно условие в Минските споразумения няма. И сега руснаците използват ситуацията за упражняване на натиск, за да придвижат тези споразумения напред.

Но никой от анализаторите не очаква Минските споразумения да се изпълнят – нито от украинска, нито от руска страна. Ако все пак Путин признае за независими двете републики, какви реакции очаквате от САЩ и съюзните държави от Европа в Пакта?

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

Но не очаквате да се постигне споразумение за оттеглянето на Русия от Крим, нали?

Не, Русия от Крим няма да се оттегли.

Звучи ли Ви достоверно тезата, че Русия анексира Крим и поддържа сепаратистите в Украйна, защото трайното установяване на демокрация в страната след приемането ѝ в НАТО и ЕС е по-опасно за Путин от разполагането на натовски ракети на границата с Русия?

В Украйна трудно може да се говори за стабилна демокрация, там има една доста несимпатична националистическа форма на управление и Русия има основание да твърди, че няма нужда от връщането на автономните области към Украйна, тъй като това ще застраши руското население в тях. Ето още един елемент от Минските споразумения, който не е изпълнен от украинските власти – да гарантира правата на малцинствата. Що отнася до Крим, руснаците използват казуса „Косово“. Те казват: как може Косово да се отдели и да бъде признато на базата на желанието на народа за независимост, а Крим да не може? Още повече че стъпват на приетите в Будапеща през 1994 г. от Организация за сигурност и сътрудничество в Европа принципи на самоопределение на дадени народи, на които трудно може да се възрази. Затова и въпросът за анексията на Крим вече не се повдига често и постепенно заглъхва.

Русия има основания да иска и да получи гаранции за своята сигурност и американците да изпълнят своите обещания. През януари 1989 г., когато Джордж Х. У. Буш встъпи в длъжност, Кисинджър замина за Москва, за да се срещне с Горбачов, като му носеше писмо от президента. Тогава американците предложиха, ако Москва се откаже от употреба на сила спрямо източноевропейските държави, нейни сателити и съюзници, и им даде възможност да се самоопределят и да станат независими, то САЩ и НАТО няма да се възползват за разширяване на своето военно присъствие на изток. Това се потвърди в Малта, после през 1997 г. и на разговорите между Русия, САЩ и НАТО в Брюксел. На тях Примаков се съгласи източноевропейските страни да станат членове на НАТО, но американската страна пое ангажименти Алиансът да не се придвижва на изток. Така че е време тези договорености да бъдат оформени в границите на един общ пакет за сигурност, който да включва и намаляване на въоръженията и подновяване на договора за ядрените оръжия и други елементи, които да гарантират сигурността в Европа.

Какво стана ясно от заседанието на Консултативния съвет за национална сигурност, свикан от президента Радев, освен че потвърди липсата на боеспособност на българската армия? И виждате ли разнобой между партньорите в кабинета, който може да доведе до разпад на управляващата коалиция?

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

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

Мисля, че тази позиция беше изразена по-деликатно, а и бих казал, че не виждам нещо лошо в това да сме приятели с Русия. Да Ви припомня ли, че ние с д-р Желю Желев при посещението си в Москва през октомври 1991 г. подписахме първия междудържавен договор с Русия и на практика България първа призна Русия за самостоятелна държава, преди още СССР да се беше разпаднал. Така че приятелските ни отношения с Русия са нещо нормално и не пречат по никакъв начин на нашите задължения към НАТО. Ако има необходимост, България ще изпълни договорните си отношения с Алианса, но на този етап такава необходимост няма. И разпалването на подобна истерична антируска кампания у нас вреди много на нашите национални интереси.

Що се отнася до отбранителните способности на нашата армия, те действително не са на съвременно ниво, нито отговарят на реалните заплахи за националната сигурност, които може да възникнат. Още във военната доктрина, приета през 1992 г., бе посочено, че трябва да имаме малка, мобилна и модерно въоръжена армия, която да се справя с терористични и други, ограничени по мащаб заплахи по границите. За целта не са необходими F-16, а мобилни хеликоптери и бронирани машини, които да пренасят бързо добре екипирани и обучени части на застрашеното място. Все пак не бива да се забравя, че България е част от отбранителната система на НАТО.

Интервюто е направено на 16 февруари 2022 г. Прочетете и разговора със Стефан Тафров.
Заглавна снимка: Стопкадър от интервю с Димитър Луджев по телевизия „Канал 3“

Източник

Обитаеми ситуации

Post Syndicated from Нева Мичева original https://toest.bg/obitaemi-situatsii/

Скъпа Нева,

Как казваш „не“ – научи ли се на това, или винаги си го можела? Как отстояваш собствените си граници в професионален план (с колеги или хора, искащи услуги например), но и в личен – с приятели, родители, партньори? Имаш ли си ритуали, когато близки, настояващи, че твоето мнение и постъпки са неправилни и ощетяват не само теб, но и тях самите, ти издишат кислорода и започнеш да се задушаваш?

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

С. П.

„Не пипай!“, „Не шуми!“, „Не оттам!“ – тези молби или направо заповеди от детството са вероятно първата ни среща с чудната власт на „не“ да прекъсва и да приключва. И е без значение дали то осуетява дребен каприз, или огромна щета – у нас завинаги остава досадното усещане, че „не“ е спънката по пътя на желанието към нещо възможно; че „не“ е студеният душ за разгорещената спонтанност.

Едва ли има някой, който да се радва на „Не може!“. Едва ли някой тръпне от радост при звука на „Недей!“ или „Няма!“. Едва ли съществува език, в който „не“ по-често да влиза в състава на отрицателни думи, за да ги направи положителни, отколкото обратното. (Сравни десетките от порядъка на „неуютен“, „неверен“, „неприемлив“, „нечист“, „неграмотен“, „неспокоен“, „невъзвратим“ с непропорционално малкото на брой и далеч не толкова категорични – „несложен“, „нелош“, „неглупав“…)

Не искам, не мога, не знам, / не мога, не знам, не искам, нареждаха мрачно преди 30 години „Нова генерация“ в прочутата си песен за екзистенциалния дискомфорт „Тъмна земя“ и продължаваха с мръсно ми е в душата ми… „Негативен“ е дошло през вековете от латинското „който казва не“. На много места по света, включително в България, „не“ може да се „изцъка“ с език или дори да се изобрази с жест с показалеца – толкова е насъщно, че има варианти да се вкара в обращение и без произнасяне…

Голяма тема е малкото „не“. Описва чрез отнемане, тегли чертата, белязва трайно. Привилегия е на реални и метафорични родители (от библейското „Не прелюбодействай“, през Фройдовия строг Свръхаз, до „Не тичай в коридора“ в училище и „Тук не е информация“ по държавните гишета), а срещу тях ни идва да се бунтуваме, както веднъж вече си говорихме. Затова и вероятно се налага да се сдобряваме с „не“ през годините, да го изпробваме предпазливо – или както казваш ти, С., да го учим. Така че когато го обърнем към себе си, да не се нараняваме, а когато го обърнем към другите, да личи, че не нападаме, не назидаваме, не сме безразлични.

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

Аз не съм комунист и никога няма да бъда… Ето ти още една песен отпреди 30 години – „Аз съм просто човек“ на „Щурците“. Току-що бяхме прекрачили края на тоталитаризма, в който от всички се очакваше да сме статисти в чуждо бълнуване – да бъдем „просто хора“, без това да ни декласира до „нихилисти, екстремисти, товаисти и оноваисти“, беше освобождаващо по начин, който днес няма как да се предаде пълно. И все пак „цепенето от колектива“ продължава да ни е проблем; отказът на индивида от споделяне на определени пътища и способи продължава да извиква болезнени реакции в множеството; разлика между стихийното „вкупом“ и осъзнатото „съвместно“ продължава да не се прави. И не само у нас, разбира се.

„Не“ е най-голямата съпротиваТази песен е нова, на има-няма две години. Озаглавена е „Не“ и е на пънкарката Били Ноумейт. Видях клипа от един приятел и се разсмях с глас, когато Били стигна до Не, няма да се обръсна. Не съм на дванайсет! – и завърта очи. Човечеството се изстреля в Космоса, зарови се в атома, клонира овца, а все още не може да преглътне мисълта, че телата на жените се окосмяват – до степен въпросното окосмяване да е тема на спорове и тежки мнения, за които е нужен пънкарски отпор. „Не“ е сила навсякъде, по всяко време…

Как човек да се обясни на другите и същевременно да ги разбере, без да се пребие по резките завои на този процес, е едно от уменията, които усъвършенстваме цял живот и в които няма да стигнем далеч, ако не работим по-решително със себе си и със средата. А част от тази работа става именно с „не“, ако „да“ води до задънени улици. Нерядко приемаме варианти, които не желаем или не можем, за да „има мир“. Или защото сме убедени, че очакващите нашето „да“ имат достатъчно добри причини и намерения; защото не сме сигурни в собствените си потребности; защото така сме възпитани…

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

Стривам „да“ и „не“ между пръстите си – и ги размесвам, / но това още не е лекарство, казва поетът. Твоето премерено „не“ ще придаде допълнителна тежест на „да“-то ти, казват психолозите. Но „да“ и „не“ нямат универсални стойности и употреби, те са различни инструменти за различните хора в различните им етапи. Докато си избистряме какво обичаме и докъде ни стигат силите, какво искаме да представлява нашата история и кои са другите действащи лица в нея; докато си изработваме лична философия относно факта, че принадлежим към човешкия род, както и че сме живи, но смъртни, постепенно проумяваме кои сме, къде сме, и ставаме горди собственици на своите предели. Опознаваме както ограниченията, така и неприкосновеното си лично пространство, където се влиза само с покана и заслуги…

Близките хора са тези, които поставят и нас, и себе си в ситуации, годни за обитаване. Тези, с които можем да си сътрудничим по разширяването и облагородяването на обитаемите ситуации. Никоя близост не бива да ни оставя бездиханни. Никоя кислородна криза не бива да остава без последствия. Всяка връзка подлежи на преразглеждане и здравословно окастряне, включително кръвната. Всеки дълбок и незаобиколим водещ принцип, залегнал в нас, включително атавистичните, подлежи на рационална атака и промяна. Това ми се струва, че разбрах от опит, и оттам сякаш моите „да“ и „не“ се понаместиха.

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

Заглавно изображение: Кадър от филма „Не“ на Пабло Лараѝн, в който е разказана изумителната история за края на кървавия терор на Пиночет в Чили. След преврата срещу Салвадор Алиенде и 15 години брутално насилие, през 1988 г. възрастният вече диктатор решава да поотпусне хватката и да направи референдум. При повече гласове „да“ властта му ще се удължи с 8 години, а при повече гласове „не“ той доброволно ще я сдаде. За да може референдумът да е легитимен пред света, чилийците трябва да са подобаващо информирани, така че се отпуска време за агитация по телевизията – в течение на 27 дни радетелите на „да“ и на „не“ ще разполагат с по 15 минути да обяснят защо тяхната позиция е по-добра. И тук става чудото. Докато първите залагат на тежък тоталитарен кич и куха реторика, вторите избират парадоксален подход, зает право от рекламата: разполагат непривлекателното, даже опасно „не“ на фона на седемцветна дъга, лепват слоган „Чили, радостта вече идва“, измислят жизнерадостна песничка за кампанията си (като в клип за газирана напитка), буквално съблазняват сънародниците си и печелят с размах.

Източник

На второ четене: „Развалината“ от Ендре Кукорели

Post Syndicated from Стефан Иванов original https://toest.bg/na-vtoro-chetene-razvalinata-endre-kukorelly/

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

„Развалината. История на комунизЪма“ от Ендре Кукорели

превод от унгарски Стефка Хрусанова, изд. „Ерго“, 2012

Без предварително да съм планирал да стане така, дочетох книгата на 1 февруари, Деня за почит на жертвите на комунизма в България. Изненадах се от съвпадението.

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

Сетих се за думите на полския интелектуалец Адам Михник, произнесени на конференция в София преди почти осем години:

… в Полша създадохме дефиниция за агресия. Какво е агресия? Агресия е, когато една страна напада друга страна без съгласието на Съветския съюз. […] Повече няма какво да кажа. В днешно време основната мисъл е да отваряме границите, а не да ги местим.

„Развалината“ е третата книга на Кукорели на български и е особен роман, който свободно смесва мемоара и есето. Към финала унгарският писател го определя като „аз-роман“, в който той разказва за „комунизъма“ (грешката присъства и в оригиналното заглавие и е преведена уместно) от личната си позиция на човек и читател.

Кукорели има интересна биография. Освен че е поет, прозаик, преподавател по творческо писане, той участва във футболния отбор на унгарските писатели, станали европейски шампиони през 2008 г. На парламентарните избори през 2010 г. е избран за депутат от листата на новосъздадената партия LMP (Lehet Más a Politika – „Възможна е и друга политика“), но след две години се отказва от депутатското си място. Тогава е издадена „Развалината“ в България.

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

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

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

От един момент нататък, след забележителния си престой в казармата, Кукорели редовно пътува до СССР и противопоставя наблюденията си на тези на западните писатели и интелектуалци, защитавали режима след революцията – Бретон, Жид, Барбюс, Жионо, Кьостлер, Арагон, Брехт, Батай, Казандзакис и Малро. Той с почуда се пита дали наистина са вярвали в това, което са писали. С такава почуда се пита и как френските интелектуалци от 1968-ма с лекота са ставали маоисти. Как не са видели или усетили очевидното.

От многото подходящ материал това е най-краткият, ясен и подходящ цитат, който подбрах за представяне или припомняне на „комунизъма“, уж продължил до 1989 г.:

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

Разбира се, не е подмината и 1956-та. Не може да се подминат спонтанният революционен бунт срещу правителството на Унгарската народна република и неговата просъветска политика:

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

През 1956 г. авторът е бил все още дете и звукът на изстрелите се смесвал с приказките, които майка му четяла. Покривът на вилата им до Будапеща бил покрит с насмолен картон; със същия насмолен картон органите на властта опаковали и хората, след като ги обесели:

Говореше се, че ги погребвали с лицето надолу. Не вярвам. Би било прекалено сатанинско, някак си мрачно романтично, с лицето надолу, онези не могат да измислят такова нещо.

Защо в крайна сметка е важна и нужна тази книга точно днес? Защото припомнянето винаги е необходимо. Такъв е занаятът на писателя – да пази и съхранява. Даже и да става въпрос за събития и периоди, които са неописуеми или невъобразими и от които ти се иска да отвърнеш поглед. И защото винаги ще има и такива, които се възползват от това тази памет да я няма:

Мислеха, че това парче земя не съществува. Че не съществува полето на убитите хора. Че не съществува нито този парцел, нито това гробище. Че не съществува тази Унгария.

Но и тази България съществува.

Волята за памет се смесва и с друга – с волята за солидарност:

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

Повече няма какво да кажа.

Заглавна илюстрация: © Елена и Лина Кривошиеви
Активните дарители на „Тоест“ получават постоянна отстъпка в размер на 20% от коричната цена на всички заглавия от каталога на „Ерго“, както и на няколко други български издателства в рамките на партньорската програма Читателски клуб „Тоест“. За повече информация прочетете на toest.bg/club.

Източник

Седмицата (14–18 февруари)

Post Syndicated from Зорница Христова original https://toest.bg/editorial-14-18-feb-2022/

Тази седмица руската държава обяви, че започва изтегляне на военни сили от границата с Украйна. В същото време висш служител на Белия дом изрази съмнения, че това наистина се случва. Има или няма намерение за война? За шантаж ли става дума – или за реална заплаха?

Венелина Попова

Докато политическите анализатори се опитват да осмислят разликата между онова, което се вижда (100 000 войници, бойна техника), и онова, което се казва („не смятаме да нахлуваме, това са само учения“), в петък проруските сепаратисти заявиха, че украинските войски са обстрелвали тяхно село. И светът продължава да стои настръхнал.

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

Междувременно в България има и няма провеждане на „Луковмарш“. Според Светла Енчева маршът е като котката на Шрьодингер – провежда се според участниците, не се провежда според Столичната община и онези медии, които предпочитат да вярват на прессъобщенията. А издадената постфактум забрана само е разделила шествието на три, така че реално са се провели три шествия. Междувременно политическите сили реагират с… декларации от парламентарната трибуна. И нищо.

Един твърди едно, друг – друго, но с времето истината ще се проясни, нали? О, да, вижте как се разрешиха историческите спорове между България и Македония. Или вижте националния ни консенсус по отношение на комунистическото минало. Ако паметта е структурирана като разказ, в момента този разказ у нас е със сюжетната спойка на постмодерен роман. Дали скоро няма да ни трябва адаптирано издание?

Стефан Иванов

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

Йоанна Елми

Ако информационната ненадеждност в нашата уж информационна ера ви фрустрира, Йоанна Елми обръща внимание на две полезни платформи за политическа осведоменост: „Стража“ качва всички парламентарни заседания и гласувания човек по човек (може да проверите за какво точно гласува вашият личен народен представител, и да си направите сметката), а „Царски Пищови“ разяснява основните политически понятия с помощта на инфографики и други методи за нагледност. И двата проекта са дело на млади екипи, което само по себе си е добра новина.

Емилия Милчева

Използвайте „Стража“, моля, за да видите как ще гласува вашият народен представител по предстоящото предложение на парламента за промени в закона, според които оръжейните сделки да не се гласуват в Народното събрание, а да се сключват директно от кабинета. Емилия Милчева предупреждава, че това може да доведе до гигантска корупция – още повече че става въпрос за 2% от БВП, отделени за отбрана. А атмосферата на дезинформация и страх около кризата с Украйна е повече от удобна за целта.

Нева Мичева

В рубриката за читателски писма Нева Мичева отговаря на въпрос за способността да казваш „не“ – или за неспособността да го кажеш. Не, няма да политизирам чудесния ѝ текст, въпреки че изречението „Нерядко приемаме варианти, които не желаем или не можем, за да има мир“ е блестяща илюстрация на максимата „личното е политическо“. Благодарна съм за препратката към „стривам да и не между пръстите си – и ги размесвам, но това още не е лекарство“. И за заключителния образ на човека, който се чупи по стълбите, бързайки към онзи, който иска да бъде. Но приятелите ще изрисуват гипса.

Личната си седмица ще резюмирам накратко: гледайте „Пер Гюнт“ в театър „София“, режисьор Катя Петрова. Впечатлих се специално от сцената с копчелеяра във втората част, от играта на двамата водещи актьори, а също и (професионално изкривяване) от блестящия превод на Стела Джелепова на този невероятно труден текст, който може да се чете и като сатира на вездесъщото днешно „бъди себе си“. „Пияните“ на Вирипаев (постановка Явор Гърдев, Малък градски театър „Зад канала“) също са себе си – макар, клатушкайки се, да падат надолу по гореописаните стълби към човека, който биха искали да са.

„Паралелни майки“ на Алмодовар безспорно хваща, а и засяга силна тема – паметта и истината не са нещо случайно, те са историята на собствените ни близки, на собствената ни плът. Малко не ми достигна спойката между историята с бебетата и историята с масовия гроб, която всъщност е пунктумът, но сюжетно стои като послепис. „КОДА“ е добрият пример за смисъла от холивудските правила състезаващите се за „най-добър филм“ заглавия да включват повече актьори (и теми) от по-малко представяни социални групи. Добре направен, симпатичен филм за чуващо дете в семейство на глухи, като в него нечуващите играят нечуващи, включително носителката на „Златен глобус“ и „Оскар“ за „Деца, забравени от Бога“ Марли Матлин. Жанрът е близо до сладките тийнейджърски филми за израстването, но какво от това – колко филма можете да изгледате с децата и възрастните си близки?

Също по правилата е заснет „Макбет“ на Джоел Коен, но шекспировите постановки от десетилетия включват най-различни по пол и цвят на кожата актьори – общо взето от 1796-та насам, когато за пръв път жена играе „Хамлет“. В този смисъл можем да отбележим просто добрата игра на Дензъл Уошингтън, макар че аз не свалих очи от Франсис Макдорманд – и от сценографията, подчертано театрална по един чудесен, модернистично-минималистичен начин. Което стига, стига!

Довършвайки този обзор, искам да ви обърна внимание на две предстоящи дати. Първо, Задушница е на 26 февруари. Ако ходите на гробищата, добре погледнете тяхното състояние. То казва нещо за нас като нация, за способността ни за родова памет – и това, което казва, е по-силно от всички думи, които ще чуете на Трети март. Родовата ни памет е точно обратното на военната заплаха на границата с Украйна – твърдим, че я има, че е огромна сила на границата с настоящето, а всъщност сме оставили предците си сред кал и боклуци. Поставям си като въпрос за домашно да проуча кой осъществява надзора върху управлението на гробищните паркове – освен общините, към които можем и трябва, абсолютно задължително, да предявим претенции.

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

Източник

Metasploit Weekly Wrap-Up

Post Syndicated from Erin Bleiweiss original https://blog.rapid7.com/2022/02/18/metasploit-wrap-up-149/

Nagios XI web shell upload module

Metasploit Weekly Wrap-Up

New this week is a Nagios Web Shell Upload module from Rapid7′ own Jake Baines, which exploits CVE-2021-37343. This module builds upon the existing Nagios XI scanner written by Erik Wynter. Versions of Nagios XI prior to 5.8.5 are vulnerable to a path traversal exploit through an admin-authenticated PHP web shell that results in code execution as the www-data user.

Ignition for Laravel RCE module

Community contributor heyder added a module which exploits CVE-2021-3129 in Ignition for Laravel, versions prior to 2.5.2. This module allows for unauthenticated remote code execution due to insecure usage of the PHP functions file_get_contents() and file_put_contents().

New module content (3)

  • Grandstream UCM62xx IP PBX WebSocket Blind SQL Injection Credential Dump by jbaines-r7, which exploits CVE-2020-5723 – A new module has been added which exploits CVE-2020-5724, a blind SQL injection in GrandStream UCM62xx IP PBX devices prior to firmware version 1.20.22 to dump usernames and passwords from the users table as an unauthenticated attacker. Successfully gathered credentials will be stored in Metasploit’s credential database for use in further attacks.
  • Nagios XI Autodiscovery Webshell Upload by Claroty Team82 and jbaines-r7, which exploits CVE-2021-37343 – This exploits a path traversal vulnerability in Nagios XI versions below 5.8.5 to achieve authenticated code execution as the www-data user.
  • Unauthenticated remote code execution in Ignition by Heyder Andrade and ambionics, which exploits CVE-2021-3129 – This module exploits a vulnerability in Ignition before 2.5.2, as used in Laravel and other products, allows unauthenticated remote attackers to execute arbitrary code because of insecure usage of file_get_contents() and file_put_contents().

Enhancements and features

  • #16076 from bcoles – This change adds the Meterpreter session type to the post/osx/gather/hashdump, hiding a warning when the module is run with a Meterpreter session.
  • #16117 from zeroSteiner – This makes some Log4Shell updates. It refactors the scanner to reduce duplicate code, and fix a couple of minor bugs.
  • #16161 from smashery – This PR updates the user agent strings for HTTP payloads to use the latest user agent strings for Chrome, Edge and Firefox on Windows and MacOS, as well as IPad.
  • #16170 from sjanusz-r7 – This change fixes the native_arch functionality on Java and ensures the native architecture is displayed when running meterpreter > sysinfo on Java.
  • #16173 from AlanFoster – Adds additional --no-readline and --readline options to msfconsole for configuring the use of Readline suppor.t
  • #16181 from AlanFoster – This adds a resource script for extracting the Meterpreter commands from currently open sessions.
  • #16192 from zha0gongz1 – The session notifier has been updated to support notifying about new sessions via WeChat using the ServerJang API and servers.
  • #16195 from darrenmartyn – The hp_dataprotector_cmd_exec.rb module has been updated to support x64 payloads. This fixes a bug whereby x64 payloads were not supported as the Arch value was not set, leading it to default to x86 payloads only.

Bugs fixed

  • #16174 from AlanFoster – This change fixes the mode specification on File.read required for ruby 3 on multiple modules.
  • #16175 from AlanFoster – This change fixes the loadpath command summary to display the module types in alphabetical order.
  • #16177 from AlanFoster – This change fixes the post(test/search) Meterpreter tests on OSX.
  • #16184 from adfoster-r7 – This fixes a crash when running msfconsole on a Windows host in conjunction with the sessions -u command.
  • #16194 from zeroSteiner – This fixes a crash when using Metasploit’s psexec module with the Command target.

Get it

As always, you can update to the latest Metasploit Framework with msfupdate
and you can get more details on the changes since the last blog post from
GitHub:

If you are a git user, you can clone the Metasploit Framework repo (master branch) for the latest.
To install fresh without using git, you can use the open-source-only Nightly Installers or the
binary installers (which also include the commercial edition).

Enable users to ask questions about data using natural language within your applications by embedding Amazon QuickSight Q

Post Syndicated from Deepak Murthy original https://aws.amazon.com/blogs/big-data/enable-users-to-ask-questions-about-data-using-natural-language-within-your-applications-by-embedding-amazon-quicksight-q/

Amazon QuickSight Q is a new machine learning-based capability in Amazon QuickSight that enables users to ask business questions in natural language and receive answers with relevant visualizations instantly to gain insights from data. QuickSight Q doesn’t depend on prebuilt dashboards or reports to answer questions, which removes the need for business intelligence (BI) teams to create or update dashboards every time a new business question arises. Users can ask questions and receive visual answers in seconds directly from within QuickSight or from web applications and portals. In this post, we look at how you can embed Q in your web applications or portals.

Solution overview

You can now embed Q in your application without any custom development. Q is a fully managed cloud-native BI offering that you can easily embed without requiring expertise within your team to develop and maintain this capability. You can easily democratize your data and scale your insights to a growing user base, while ensuring you only pay for usage with Q’s unique pay-per-question pricing model.

Applications can authenticate users with any identity provider of choice (such as Active Directory, Amazon Cognito, or any SAML-based federated SSO provider that your organization uses) and act on behalf of the user to get access to the Q question bar. This means that every user receives a secure, personalized question answering experience while requiring no user-facing QuickSight-specific authentication. This enables a novel experience to provide insights within your application with minimal upfront work and allows you to focus on your core application functionality! QuickSight Q embedding is available in QuickSight Enterprise Edition and Q-supported Regions.

To facilitate an easy embedding experience, AWS has also launched the Amazon QuickSight Embedding SDK (JavaScript) and a rich set of Q-specific functionalities. The QuickSight Embedding SDK lets you efficiently integrate Q in your application pages, set a default topic, enable topic selection, set themes, and control Q search bar behavior. This helps you roll out Q to your users faster.

To embed Q in your application, you must complete the following high-level steps:

  1. Set up permissions to generate embedded Q URLs.
  2. Generate a URL with the authentication code attached.
  3. Embed the Q search bar URL.

Set up permissions to generate embedded Q URLs

In this step, you set up permissions for your backend application or web server to embed the Q search bar. This task requires administrative access to AWS Identity and Access Management (IAM). Each user who accesses the Q search bar assumes a role that gives them QuickSight permissions to retrieve a Q-embedded URL.

To make this possible, create an IAM role in your AWS account. Associate an IAM policy with the role to provide permissions to any user who assumes it. The IAM role needs to provide permissions to retrieve embedding URLs for a specific user pool. With the help of the wildcard character *, you can grant the permissions to generate a URL for all users in a specific namespace. Or you can grant permissions to generate a URL for a subset of users in specific namespaces. For this, you add quicksight:GenerateEmbedUrlForRegisteredUser.

The following sample policy provides these permissions:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "quicksight:GenerateEmbedUrlForRegisteredUser"
            ],
            "Resource": "arn:partition:quicksight:region:accountId:user/namespace/userName"
        }
    ]
}

Also, if you’re creating first-time users who will be QuickSight readers, make sure to add the quicksight:RegisterUser permission in the policy.

The following sample policy provides permission to retrieve an embedding URL for first-time users who will be QuickSight readers:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "quicksight:RegisterUser",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Effect": "Allow",
            "Action": [
              "quicksight:GenerateEmbedUrlForRegisteredUser"
            ],
            "Resource": [
              "arn:partition:quicksight:region:accountId:user/namespace/userName"
            ]
        }
    ]
}

Finally, your application’s IAM identity must have a trust policy associated with it to allow access to the role that you just created. This means that when a user accesses your application, your application assumes the role on the user’s behalf and provisions the user in QuickSight.

The following example uses a role called embedding_quicksight_q_search_bar_role, which has the sample policy preceding as its resource:

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Resource": "arn:aws:iam::11112222333:role/embedding_quicksight_q_search_bar_role"
    }
}

Generate a URL with the authentication code attached

In this step, you authenticate your user and get the embeddable Q topic URL on your application server. If you plan to embed the Q bar for IAM or QuickSight identity types, share the Q topic with the users. When a user accesses your app, the app assumes the IAM role of the user. If that user is new, the app adds the user to QuickSight, then passes an identifier as the unique role session ID.

These steps make sure that each viewer of the Q topic is uniquely provisioned in QuickSight. It also enforces per-user settings, such as the row-level security and dynamic defaults for parameters.

The following example code performs the IAM authentication on the user’s behalf. This code runs on your app server:

import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.auth.AWSCredentialsProvider;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.quicksight.AmazonQuickSight;
import com.amazonaws.services.quicksight.AmazonQuickSightClientBuilder;
import com.amazonaws.services.quicksight.model.GenerateEmbedUrlForRegisteredUserRequest;
import com.amazonaws.services.quicksight.model.GenerateEmbedUrlForRegisteredUserResult;
import com.amazonaws.services.quicksight.model.RegisteredUserEmbeddingExperienceConfiguration;
import com.amazonaws.services.quicksight.model.RegisteredUserQSearchBarEmbeddingConfiguration;

/**
 * Class to call QuickSight AWS SDK to get url for embedding the Q search bar.
 */
public class RegisteredUserQSearchBarEmbeddingConfiguration {

    private final AmazonQuickSight quickSightClient;

    public RegisteredUserQSearchBarEmbeddingConfiguration() {
        this.quickSightClient = AmazonQuickSightClientBuilder
                .standard()
                .withRegion(Regions.US_EAST_1.getName())
                .withCredentials(new AWSCredentialsProvider() {
                                     @Override
                                     public AWSCredentials getCredentials() {
                                         // provide actual IAM access key and secret key here
                                         return new BasicAWSCredentials("access-key", "secret-key");
                                     }

                                     @Override
                                     public void refresh() {}
                                 }
                )
                .build();
    }

    public String getQuicksightEmbedUrl(
            final String accountId, // AWS Account ID
            final String topicId, // Topic ID to embed
            final String userArn // Registered user arn to use for embedding. Refer to Get Embed Url section in developer portal to find how to get user arn for a QuickSight user.
    ) throws Exception {
        final RegisteredUserEmbeddingExperienceConfiguration experienceConfiguration = new RegisteredUserEmbeddingExperienceConfiguration()
                .withQSearchBar(new RegisteredUserQSearchBarEmbeddingConfiguration().withInitialTopicId(topicId));
        final GenerateEmbedUrlForRegisteredUserRequest generateEmbedUrlForRegisteredUserRequest = new GenerateEmbedUrlForRegisteredUserRequest();
        generateEmbedUrlForRegisteredUserRequest.setAwsAccountId(accountId);
        generateEmbedUrlForRegisteredUserRequest.setUserArn(userArn);
        generateEmbedUrlForRegisteredUserRequest.setExperienceConfiguration(QSearchBar);

        final GenerateEmbedUrlForRegisteredUserResult generateEmbedUrlForRegisteredUserResult = quickSightClient.generateEmbedUrlForRegisteredUser(generateEmbedUrlForRegisteredUserRequest);

        return generateEmbedUrlForRegisteredUserResult.getEmbedUrl();
    }
}

To generate the URL that you can embed in your app, call the GenerateEmbedUrlForRegisteredUser API operation. This URL is valid for 5 minutes, and the resulting session is valid for up to 10 hours. You can configure the session validity by setting the sessionLifetimeinMinutes parameter for GenerateEmbedURL APIs. The API operation provides the URL with an auth_code value that enables a single-sign on session. The following code shows an example response from generate-embed-url-for-registered-user:

//The URL returned is over 900 characters. For this example, we've shortened the string for
//readability and added ellipsis to indicate that it's incomplete.
{
 "Status": "200",
 "EmbedUrl": "https: //dashboards.example.com/embed/620bef10822743fab329fb3751187d2d...",
 "RequestId": "7bee030e-f191-45c4-97fe-d9faf0e03713"
} 

Embed the Q search bar URL

In this step, you embed the Q search bar URL in your website or application page. You can do this with the QuickSight Embedding SDK, which allows you to do the following:

  • Place the Q search bar on an HTML page
  • Pass parameters into the Q search bar
  • Handle error states with messages that are customized to your application

Embed the Q search bar in your webpage by using the QuickSight Embedding SDK or by adding this URL into an iFrame. If you set a fixed height and width number (in pixels), QuickSight uses those and doesn’t change your visual as your window resizes. If you set a relative percent height and width, QuickSight provides a responsive layout that is modified as your window size changes. When you use the QuickSight Embedding SDK, the Q search bar on your page is dynamically resized based on the state. By using the QuickSight Embedding SDK, you can also control parameters within the Q search bar and receive callbacks in terms of page load completion and errors.

The following example code shows how to use the generated URL. This code is generated on your app server:

<!DOCTYPE html>
         <html>
     
         <head>
             <title>QuickSight Q Search Bar Embedding</title>
             <script src="https://unpkg.com/[email protected]/dist/quicksight-embedding-js-sdk.min.js"></script>
             <script type="text/javascript">
                 var session
     
                 function onError(payload) {
                     console.log("Do something when the session fails loading");
                 }
     
                 function onOpen() {
                     console.log("Do something when the Q search bar opens");
                 }
     
                 function onClose() {
                     console.log("Do something when the Q search bar closes");
                 }
     
                 function embedQSearchBar() {
                     var containerDiv = document.getElementById("embeddingContainer");
                     var options = {
                         url: "https://us-east-1.quicksight.aws.amazon.com/sn/dashboards/dashboardId?isauthcode=true&identityprovider=quicksight&code=authcode", // replace this dummy url with the one generated via embedding API
                         container: containerDiv,
                         width: "1000px",
                         locale: "en-US",
                         qSearchBarOptions: {
                             expandCallback: onOpen,
                             collapseCallback: onClose,
                             iconDisabled: false,
                             topicNameDisabled: false, 
                             themeId: 'theme12345',
                             allowTopicSelection: true
                         }
                     };
                     session = QuickSightEmbedding.embedQSearchBar(options);
                     session.on("error", onError);
                 }
     
                 function onCountryChange(obj) {
                     session.setParameters({country: obj.value});
                 }
             </script>
         </head>
     
         <body onload="embedQSearchBar()">
             <div id="embeddingContainer"></div>
         </body>
     
         </html>

For this example to work, make sure to use the QuickSight Embedding SDK to load the embedded dashboard on your website using JavaScript. You can get the SDK in the following ways:

  • Download the QuickSight Embedding SDK from GitHub. This repository is maintained by a group of QuickSight developers.
  • Download the latest QuickSight Embedding SDK version from npmjs.com.
  • If you use npm for JavaScript dependencies, download and install it by running the following command:
    npm install amazon-quicksight-embedding-sdk

The following screenshot is an example of the embedded Q question bar and a QuickSight dashboard to support natural language questions and analysis of pharmaceutical clinical trial data. You can try out this topic and other such topics in an embedded application demo.

Summary

Enterprises can empower users to ask questions about data in plain English within their applications by embedding the QuickSight Q question bar. Embedding Q into your application is straightforward and requires no custom development from your team.

Get started with a free trial of QuickSight Q.


About the Authors

Deepak Murthy is a Senior Product Manager for Amazon QuickSight, AWS’s cloud-native, fully managed BI service. Deepak started his career with Staples, developing enterprise data warehouse solutions. Later, he was the architect of data warehouse and analytics solutions at Wells Fargo, AMC, and Blackhawk Network. Deepak is excited about the potential of self-service analytics and improving data accessibility by enabling new natural language interactions with data, and looks forward to helping customers leverage these latest analytics innovations.

Rob Foley is a Software Development Engineer for Amazon QuickSight, AWS’s cloud-native, fully managed BI service. Rob began his career with AWS, and has been a member of the QuickSight team for over 1.5 years. He has development experience in a breadth of services and stacks, primarily having worked on data-centric applications like Q.

[$] Thoughts on software-defined silicon

Post Syndicated from original https://lwn.net/Articles/884876/

People are attracted to free software for a number of reasons, including
price, overall quality, community support, and available features. But,
for many of us, the
value of free software is to be found in its ability to allow us to
actually own and maintain control over our systems. Antifeatures in free
software tend
not to last long, and free drivers can often unlock capabilities of the
hardware that its vendors may not have seen fit to make available. Intel’s
upcoming “software defined silicon” (SDSi) mechanism may reduce that control,
though, by taking away access to hardware features from anybody who has not
paid the requisite fees.

Rapid Event Notification System at Netflix

Post Syndicated from Netflix Technology Blog original https://netflixtechblog.com/rapid-event-notification-system-at-netflix-6deb1d2b57d1

By: Ankush Gulati, David Gevorkyan
Additional credits: Michael Clark, Gokhan Ozer

Intro

Netflix has more than 220 million active members who perform a variety of actions throughout each session, ranging from renaming a profile to watching a title. Reacting to these actions in near real-time to keep the experience consistent across devices is critical for ensuring an optimal member experience. This is not an easy task, considering the wide variety of supported devices and the sheer volume of actions our members perform. To this end, we developed a Rapid Event Notification System (RENO) to support use cases that require server initiated communication with devices in a scalable and extensible manner.

In this blog post, we will give an overview of the Rapid Event Notification System at Netflix and share some of the learnings we gained along the way.

Motivation

With the rapid growth in Netflix member base and the increasing complexity of our systems, our architecture has evolved into an asynchronous one that enables both online and offline computation. Providing a seamless and consistent Netflix experience across various platforms (iOS, Android, smart TVs, Roku, Amazon FireStick, web browser) and various device types (mobile phones, tablets, televisions, computers, set top boxes) requires more than the traditional request-response model. Over time, we’ve seen an increase in use cases where backend systems need to initiate communication with devices to notify them of member-driven changes or experience updates quickly and consistently.

Use cases

  • Viewing Activity
    When a member begins to watch a show, their “Continue Watching” list should be updated across all of their devices to reflect that viewing.
  • Personalized Experience Refresh
    Netflix Recommendation engine continuously refreshes recommendations for every member. The updated recommendations need to be delivered to the device timely for an optimal member experience.
  • Membership Plan Changes
    Members often change their plan types, leading to a change in their experience that must be immediately reflected across all of their devices.
  • Member “My List” Updates
    When members update their “My List” by adding or removing titles, the changes should be reflected across all of their devices.
  • Member Profile Changes
    When members update their account settings like add/delete/rename profiles or change their preferred maturity level for content, these updates must be reflected across all of their devices.
  • System Diagnostic Signals
    In special scenarios, we need to send diagnostic signals to the Netflix app on devices to help troubleshoot problems and enable tracing capabilities.

Design Decisions

In designing the system, we made a few key decisions that helped shape the architecture of RENO:

  1. Single Events Source
  2. Event Prioritization
  3. Hybrid Communication Model
  4. Targeted Delivery
  5. Managing High RPS

Single Events Source

The use cases we wanted to support originate from various internal systems and member actions, so we needed to listen for events from several different microservices. At Netflix, our near-real-time event flow is managed by an internal distributed computation framework called Manhattan (you can learn more about it here). We leveraged Manhattan’s event management framework to create a level of indirection serving as the single source of events for RENO.

Event Prioritization

Considering the use cases were wide ranging both in terms of their sources and their importance, we built segmentation into the event processing. For example, a member-triggered event such as “change in a profile’s maturity level” should have a much higher priority than a “system diagnostic signal”. We thus assigned a priority to each use case and sharded event traffic by routing to priority-specific queues and the corresponding event processing clusters. This separation allows us to tune system configuration and scaling policies independently for different event priorities and traffic patterns.

Hybrid Communication Model

As mentioned earlier in this post, one key challenge for a service like RENO is supporting multiple platforms. While a mobile device is almost always connected to the internet and reachable, a smart TV is only online while in use. This network connection heterogeneity made choosing a single delivery model difficult. For example, entirely relying on a Pull model wherein the device frequently calls home for updates would result in chatty mobile apps. That in turn will be triggering the per-app communication limits that iOS and Android platforms enforce (we also need to be considerate of low bandwidth connections). On the other hand, using only a Push mechanism would lead smart TVs to miss notifications while they are powered off during most of the day. We therefore chose a hybrid Push AND Pull communication model wherein the server tries to deliver notifications to all devices immediately using Push notifications, and devices call home at various stages of the application lifecycle.

Using a Push-and-Pull delivery model combination also supports devices limited to a single communication model. This includes older, legacy devices that do not support Push Notifications.

Targeted Delivery

Considering the use cases were wide ranging in terms of both sources and target device types, we built support for device specific notification delivery. This capability allows notifying specific device categories as per the use case. When an actionable event arrives, RENO applies the use case specific business logic, gathers the list of devices eligible to receive this notification and attempts delivery. This helps limit the outgoing traffic footprint considerably.

Managing High RPS

With over 220 million members, we were conscious of the fact that a service like RENO needs to process many events per member during a viewing session. At peak times, RENO serves about 150k events per second. Such a high RPS during specific times of the day can create a thundering herd problem and put strain on internal and external downstream services. We therefore implemented a few optimizations:

  • Event Age
    Many events that need to be notified to the devices are time sensitive, and they are of no or little value unless sent almost immediately. To avoid processing old events, a staleness filter is applied as a gating check. If an event age is older than a configurable threshold, it is not processed. This filter weeds out events that have no value to the devices early in the processing phase and protects the queues from being flooded due to stale upstream events that may have been backed up.
  • Online Devices
    To reduce the ongoing traffic footprint, notifications are sent only to devices that are currently online by leveraging an existing registry that is kept up-to-date by Zuul (learn more about it here).
  • Scaling Policies
    To address the thundering herd problem and to keep latencies under acceptable thresholds, the cluster scale-up policies are configured to be more aggressive than the scale-down policies. This approach enables the computing power to catch up quickly when the queues grow.
  • Event Deduplication
    Both iOS and Android platforms aggressively restrict the level of activity generated by backgrounded apps, hence the reason why incoming events are deduplicated in RENO. Duplicate events can occur in case of high RPS, and they are merged together when it does not cause any loss of context for the device.
  • Bulkheaded Delivery
    Multiple downstream services are used to send push notifications to different device platforms including external ones like Apple Push Notification Service (APNS) for Apple devices and Google’s Firebase Cloud Messaging (FCM) for Android. To safeguard against a downstream service bringing down the entire notification service, the event delivery is parallelized across different platforms, making it best-effort per platform. If a downstream service or platform fails to deliver the notification, the other devices are not blocked from receiving push notifications.

Architecture

As shown in the diagram above, the RENO service can be broken down into the following components.

Event Triggers

Member actions and system-driven updates that require refreshing the experience on members’ devices.

Event Management Engine

The near-real-time event flow management framework at Netflix referred to as Manhattan can be configured to listen to specific events and forward events to different queues.

Event Priority Based Queues

Amazon SQS queues that are populated by priority-based event forwarding rules are set up in Manhattan to allow priority based sharding of traffic.

Event Priority Based Clusters

AWS Instance Clusters that subscribe to the corresponding queues with the same priority. They process all the events arriving on those queues and generate actionable notifications for devices.

Outbound Messaging System

The Netflix messaging system that sends in-app push notifications to members is used to send RENO-produced notifications on the last mile to mobile devices. This messaging system is described in this blog post.

For notifications to web, TV & other streaming devices, we use a homegrown push notification solution ​​called Zuul Push that provides “always-on” persistent connections with online devices. To learn more about the Zuul Push solution, listen to this talk from a Netflix colleague.

Persistent Store

A Cassandra database that stores all the notifications emitted by RENO for each device to allow those devices to poll for their messages at their own cadence.

Observability

At Netflix, we put a strong emphasis on building robust monitoring into our systems to provide a clear view of system health. For a high RPS service like RENO that relies on several upstream systems as its traffic source and simultaneously produces heavy traffic for different internal and external downstream systems, it is important to have a strong combination of metrics, alerting and logging in place. For alerting, in addition to the standard system health metrics such as CPU, memory, and performance, we added a number of “edge-of-the-service” metrics and logging to capture any aberrations from upstream or downstream systems. Furthermore, in addition to real-time alerting, we added trend analysis for important metrics to help catch longer term degradations. We instrumented RENO with a real time stream processing application called Mantis (you can learn more about it here). It allowed us to track events in real-time over the wire at device specific granularity thus making debugging easier. Finally, we found it useful to have platform-specific alerting (for iOS, Android, etc.) in finding the root causes of issues faster.

Wins

  • Can easily support new use cases
  • Scales horizontally with higher throughput

When we set out to build RENO the goal was limited to the “Personalized Experience Refresh” use case of the product. As the design of RENO evolved, support for new use cases became possible and RENO was quickly positioned as the centralized rapid notification service for all product areas at Netflix.

The design decisions we made early on paid off, such as making addition of new use cases a “plug-and-play” solution and providing a hybrid delivery model across all platforms. We were able to onboard additional product use cases at a fast pace thus unblocking a lot of innovation.

An important learning in building this platform was ensuring that RENO could scale horizontally as more types of events and higher throughput was needed over time. This ability was primarily achieved by allowing sharding based on either event type or priority, along with using an asynchronous event driven processing model that can be scaled by simply adding more machines for event processing.

Looking Ahead

As Netflix’s member base continues to grow at a rapid pace, it is increasingly beneficial to have a service like RENO that helps give our members the best and most up to date Netflix experience. From membership related updates to contextual personalization, and more — we are continually evolving our notifications portfolio as we continue to innovate on our member experience. Architecturally, we are evaluating opportunities to build in more features such as guaranteed message delivery and message batching that can open up more use cases and help reduce the communication footprint of RENO.

Building Great Things Together

We are just getting started on this journey to build impactful systems that help propel our business forward. The core to bringing these engineering solutions to life is our direct collaboration with our colleagues and using the most impactful tools and technologies available. If this is something that excites you, we’d love for you to join us.


Rapid Event Notification System at Netflix was originally published in Netflix TechBlog on Medium, where people are continuing the conversation by highlighting and responding to this story.

Security updates for Friday

Post Syndicated from original https://lwn.net/Articles/885344/

Security updates have been issued by Debian (chromium and zsh), Fedora (microcode_ctl and zziplib), Mageia (docker-containerd, mariadb, nas, phoronix-test-suite, rlwrap, thunderbird, webkit2, wireshark, zsh, and zxing-cpp), openSUSE (aide, chromium, clamav, expat, htmldoc, libmspack, libsndfile, python-Twisted, qemu, rust, strongswan, tiff, virglrenderer, and xerces-j2), Slackware (mozilla and php), SUSE (aide, clamav, cobbler, expat, kernel, libmspack, libsndfile, python-numpy, python-Twisted, qemu, rust, strongswan, tcpdump, tiff, ucode-intel, virglrenderer, wpa_supplicant, and xerces-j2), and Ubuntu (kernel, libarchive, linux-hwe-5.13, and snapd).

The collective thoughts of the interwebz

By continuing to use the site, you agree to the use of cookies. more information

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close