Седмицата (20–25 май)

Post Syndicated from Надежда Радулова original https://www.toest.bg/sedmitsata-20-25-may/

Седмицата (20–25 май)

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

Двете ми баби бяха учителки. Едната – начална, другата – по български език и история. В ранните ми детски години празнувах 24 май с тях и през техния поглед. Къщата на едната ми баба се намираше на границата между града и полето и на 23 май двете винаги излизахме на дълга разходка из пролетните ливади, за да берем цветя. (Така баба ми беше празнувала деня на светите братя с учениците си през всичките години на учителстване – любима нейна дума – преди да се пенсионира.) После сядахме в калдъръмения двор, за да вием венец. Полските цветя бяха с по-жилави дръжки и венците ставаха здрави и трайни. С цветята от градината – рози, кремове, лулички, божури, перуники – пълнехме вазите и украсявахме къщата. А в една от задните стаи, където рядко влизаха гости, имаше кандило и на самия празник баба ми го палеше.

Другата ми баба пееше. И досега се питам откъде знаеше толкова много песни по стихотворения на български поети. Повечето от тях съм чувала единствено от нея и всичките ми усилия да ги открия през годините са били напразни. Ботев, младият Славейков (така го наричаше тя), Яворов, Дебелянов, Лилиев, Траянов… – за мен тези поети най-напред прозвучаха през гласа на баба ми, чак после изпълниха страниците на книгите и на тетрадките ми по литература.

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

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

Лицемерие се лее с легени и от издателските инициативи, свързани с празника. Смях да те напуши от внезапно, за кратко и очевидно не намясто ексхумираните думи като книжнина и словесност, при положение че значителна част от българските издателства гледат да спестят някой и друг лев от – например – редактирането на въпросната книжнина… Защо да има редактор, като така или иначе се плаща на коректор, а?! Но не бързайте да завиждате на коректорите. Те са лукс! На половината от пръстите на едната ми ръка се броят медиите, които изобщо работят с коректори. Затова пък си имат многолюдни отдели с пиари и мениджъри по продажбите. Наистина, чудесно е да се продават правописни грешки! Това някак си затваря кръга и донякъде обяснява затворените училища на 24 май. Ами да, срамно е да празнуваш нещо, което последователно и целенасочено подценяваш и пренебрегваш.

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

Преди малко повече от година активно участвах в една кампания за повишаване на тарифите на литературните преводачи. Парадоксът беше, че съпротивата (поне на думи) дойде не от издателите, а от част от широката (уж „читателска“) публика. Водих дълги и в крайна сметка безполезни спорове с високообразовани компютърни инженери, които ме убеждаваха, че вместо да се борим за достойно заплащане, по-добре да се възползваме от машинните преводачи и да си повишим КПД-то. Опитах се да обясня, че на този етап от развитието на машинните преводачи те все още не вършат работа при превода на художествена литература. За да илюстрирам твърдението си, предложих няколко откъса от Дикенс и от Мелвил, „минати“ (буквално) през DeepL. Оказах се пълна наивница. Реакцията отсреща беше: „Еми какво, всичко се разбира…“

Поздравът ми към вас днес ще бъде именно един от тези машинно преведени откъси – началото на великия „Моби Дик“. Ако и вие прецените, че всичко се разбира, то значи утрешният ден принадлежи на… вас, не на мен. (Преди да се зарадвате обаче, чуйте суперготиното и винаги актуално парче Tomorrow belongs to me на Джон Кандър и Фред Еб.) А на останалите – честит празник!

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

Преведено с DeepL.com (безплатна версия)

Далакът – да си гледа работата, смърт на хипотонията и скорошен излаз на море за всички! А дотогава – ето ви четиво за утеха и добро кръвообращение:

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

[$] Atomic writes without tears

Post Syndicated from jake original https://lwn.net/Articles/974578/

John Garry and Ted Ts’o led a discussion about supporting atomic writes for buffered
I/O, without any torn (or partial) writes to the device, at the 2024 Linux Storage,
Filesystem, Memory Management, and BPF Summit
. It is something of a
continuation of a discussion at last year’s
summit
. The goal is to help PostgreSQL, which writes its data using
16KB buffered I/O; it currently has to do a lot of extra work to ensure
that its data is safe on disk. A promise of non-torn, 16KB buffered writes
would allow the database
to avoid doing double writes.

[$] Allocator optimizations for transparent huge pages

Post Syndicated from corbet original https://lwn.net/Articles/974636/

The original Linux kernel, posted in 1991, ran on a system with a 4KB page
size. Over 30 years later, most of us are still running on systems
with 4KB pages, even though the amount of installed memory has grown by a
few orders of magnitude. It is generally accepted that using large page
sizes results in better performance for most applications, but allocating
larger pages is often difficult. During a memory-management session at the 2024 Linux Storage,
Filesystem, Memory-Management and BPF Summit
, Yu Zhao presented his
ideas on improving the allocation of huge pages in the kernel.

[$] Recent improvements to BPF’s struct_ops mechanism

Post Syndicated from daroc original https://lwn.net/Articles/974848/

Kui-Feng Lee spoke early in the BPF track at the 2024
Linux Storage,
Filesystem, Memory Management, and BPF Summit
about some of the
recent improvements to BPF. These changes were largely driven by the
sched_ext work that David Vernet had covered in
the previous talk
. Lee focused on changes relevant to struct_ops
programs, but several of those changes apply to all BPF programs.

Build Spark Structured Streaming applications with the open source connector for Amazon Kinesis Data Streams

Post Syndicated from Idan Maizlits original https://aws.amazon.com/blogs/big-data/build-spark-structured-streaming-applications-with-the-open-source-connector-for-amazon-kinesis-data-streams/

Apache Spark is a powerful big data engine used for large-scale data analytics. Its in-memory computing makes it great for iterative algorithms and interactive queries. You can use Apache Spark to process streaming data from a variety of streaming sources, including Amazon Kinesis Data Streams for use cases like clickstream analysis, fraud detection, and more. Kinesis Data Streams is a serverless streaming data service that makes it straightforward to capture, process, and store data streams at any scale.

With the new open source Amazon Kinesis Data Streams Connector for Spark Structured Streaming, you can use the newer Spark Data Sources API. It also supports enhanced fan-out for dedicated read throughput and faster stream processing. In this post, we deep dive into the internal details of the connector and show you how to use it to consume and produce records from and to Kinesis Data Streams using Amazon EMR.

Introducing the Kinesis Data Streams connector for Spark Structured Streaming

The Kinesis Data Streams connector for Spark Structured Streaming is an open source connector that supports both provisioned and On-Demand capacity modes offered by Kinesis Data Streams. The connector is built using the latest Spark Data Sources API V2, which uses Spark optimizations. Starting with Amazon EMR 7.1, the connector comes pre-packaged on Amazon EMR on Amazon EKS, Amazon EMR on Amazon EC2, and Amazon EMR Serverless, so you don’t need to build or download any packages. For using it with other Apache Spark platforms, the connector is available as a public JAR file that can be directly referred to while submitting a Spark Structured Streaming job. Additionally, you can download and build the connector from the GitHub repo.

Kinesis Data Streams supports two types of consumers: shared throughput and dedicated throughput. With shared throughput, 2 Mbps of read throughput per shard is shared across consumers. With dedicated throughput, also known as enhanced fan-out, 2 Mbps of read throughput per shard is dedicated to each consumer. This new connector supports both consumer types out of the box without any additional coding, providing you the flexibility to consume records from your streams based on your requirements. By default, this connector uses a shared throughput consumer, but you can configure it to use enhanced fan-out in the configuration properties.

You can also use the connector as a sink connector to produce records to a Kinesis data stream. The configuration parameters for using the connector as a source and sink differ—for more information, see Kinesis Source Configuration. The connector also supports multiple storage options, including Amazon DynamoDB, Amazon Simple Service for Storage (Amazon S3), and HDFS, to store checkpoints and provide continuity.

For scenarios where a Kinesis data stream is deployed in an AWS producer account and the Spark Structured Streaming application is in a different AWS consumer account, you can use the connector to do cross-account processing. This requires additional Identity and Access Management (IAM) trust policies to allow the Spark Structured Streaming application in the consumer account to assume the role in the producer account.

You should also consider reviewing the security configuration with your security teams based on your data security requirements.

How the connector works

Consuming records from Kinesis Data Streams using the connector involves multiple steps. The following architecture diagram shows the internal details of how the connector works. A Spark Structured Streaming application consumes records from a Kinesis data stream source and produces records to another Kinesis data stream.

A Kinesis data stream is composed of set of shards. A shard is a uniquely identified sequence of data records in a stream and provides a fixed unit of capacity. The total capacity of the stream is the sum of the capacity of all of its shards.

A Spark application consists of a driver and a set of executor processes. The Spark driver acts as a coordinator, and the tasks running in executors are responsible for producing and consuming records to and from shards.

The solution workflow includes the following steps:

  1. Internally, by default, Structured Streaming queries are processed using a micro-batch processing engine, which processes data streams as a series of small batch jobs. At the beginning of a micro-batch run, the driver uses the Kinesis Data Streams ListShard API to determine the latest description of all available shards. The connector exposes a parameter (kinesis.describeShardInterval) to configure the interval between two successive ListShard API calls.
  2. The driver then determines the starting position in each shard. If the application is a new job, the starting position of each shard is determined by kinesis.startingPosition. If it’s a restart of an existing job, it’s read from last record metadata checkpoint from storage (for this post, DynamoDB) and ignores kinesis.startingPosition.
  3. Each shard is mapped to one task in an executor, which is responsible for reading data. The Spark application automatically creates an equal number of tasks based on the number of shards and distributes it across the executors.
  4. The tasks in an executor use either polling mode (shared) or push mode (enhanced fan-out) to get data records from the starting position for a shard.
  5. Spark tasks running in the executors write the processed data to the data sink. In this architecture, we use the Kinesis Data Streams sink to illustrate how the connector writes back to the stream. Executors can write to more than one Kinesis Data Streams output shard.
  6. At the end of each task, the corresponding executor process saves the metadata (checkpoint) about the last record read for each shard in the offset storage (for this post, DynamoDB). This information is used by the driver in the construction of the next micro-batch.

Solution overview

The following diagram shows an example architecture of how to use the connector to read from one Kinesis data stream and write to another.

In this architecture, we use the Amazon Kinesis Data Generator (KDG) to generate sample streaming data (random events per country) to a Kinesis Data Streams source. We start an interactive Spark Structured Streaming session and consume data from the Kinesis data stream, and then write to another Kinesis data stream.

We use Spark Structured Streaming to count events per micro-batch window. These events for each country are being consumed from Kinesis Data Streams. After the count, we can see the results.

Prerequisites

To get started, follow the instructions in the GitHub repo. You need the following prerequisites:

After you deploy the solution using the AWS CDK, you will have the following resources:

  • An EMR cluster with the Kinesis Spark connector installed
  • A Kinesis Data Streams source
  • A Kinesis Data Streams sink

Create your Spark Structured Streaming application

After the deployment is complete, you can access the EMR primary node to start a Spark application and write your Spark Structured Streaming logic.

As we mentioned earlier, you use the new open source Kinesis Spark connector to consume data from Amazon EMR. You can find the connector code on the GitHub repo along with examples on how to build and set up the connector in Spark.

In this post, we use Amazon EMR 7.1, where the connector is natively available. If you’re not using Amazon EMR 7.1 and above, you can use the connector by running the following code:

cd /usr/lib/spark/jars 
sudo wget https://awslabs-code-us-east-1.s3.amazonaws.com/spark-sql-kinesis-connector/spark-streaming-sql-kinesis-connector_2.12-1.2.1.jar
sudo chmod 755 spark-streaming-sql-kinesis-connector_2.12-1.2.1.jar

Complete the following steps:

  1. On the Amazon EMR console, navigate to the emr-spark-kinesis cluster.
  2. On the Instances tab, select the primary instance and choose the Amazon Elastic Compute Cloud (Amazon EC2) instance ID.

You’re redirected to the Amazon EC2 console.

  1. On the Amazon EC2 console, select the primary instance and choose Connect.
  2. Use Session Manager, a capability of AWS Systems Manager, to connect to the instance.
  3. Because the user that is used to connect is the ssm-user, we need to switch to the Hadoop user:
    sudo su hadoop

  4. Start a Spark shell either using Scala or Python to interactively build a Spark Structured Streaming application to consume data from a Kinesis data stream.

For this post, we use Python for writing to a stream using a PySpark shell in Amazon EMR.

  1. Start the PySpark shell by entering the command pyspark.

Because you already have the connector installed in the EMR cluster, you can now create the Kinesis source.

  1. Create the Kinesis source with the following code:
    kinesis = spark.readStream.format("aws-kinesis") \
        .option("kinesis.region", "<aws-region>") \
        .option("kinesis.streamName", "kinesis-source") \
        .option("kinesis.consumerType", "GetRecords") \
        .option("kinesis.endpointUrl", "https://kinesis.<aws-region>.amazonaws.com") \
        .option("kinesis.startingposition", "LATEST") \
        .load()

For creating the Kinesis source, the following parameters are required:

  • Name of the connector – We use the connector name aws-kinesis
  • kinesis.region – The AWS Region of the Kinesis data stream you are consuming
  • kinesis.consumerType – Use GetRecords (standard consumer) or SubscribeToShard (enhanced fan-out consumer)
  • kinesis.endpointURL – The Regional Kinesis endpoint (for more details, see Service endpoints)
  • kinesis.startingposition – Choose LATEST, TRIM_HORIZON, or AT_TIMESTAMP (refer to ShardIteratorType)

For using an enhanced fan-out consumer, additional parameters are needed, such as the consumer name. The additional configuration can be found in the connector’s GitHub repo.

kinesis_efo = spark \
.readStream \
.format("aws-kinesis") \
.option("kinesis.region", "<aws-region>") \
.option("kinesis.streamName", "kinesis-source") \
.option("kinesis.consumerType", "SubscribeToShard") \
.option("kinesis.consumerName", "efo-consumer") \
.option("kinesis.endpointUrl", "https://kinesis.<aws-region>.amazonaws.com") \
.option("kinesis.startingposition", "LATEST") \
.load()

Deploy the Kinesis Data Generator

Complete the following steps to deploy the KDG and start generating data:

  1. Choose Launch Stack:
    launch stack 1

You might need to change your Region when deploying. Make sure that the KDG is launched in the same Region as where you deployed the solution.

  1. For the parameters Username and Password, enter the values of your choice. Note these values to use later when you log in to the KDG.
  2. When the template has finished deploying, go to the Outputs tab of the stack and locate the KDG URL.
  3. Log in to the KDG, using the credentials you set when launching the CloudFormation template.
  4. Specify your Region and data stream name, and use the following template to generate test data:
    {
        "id": {{random.number(100)}},
        "data": "{{random.arrayElement(
            ["Spain","Portugal","Finland","France"]
        )}}",
        "date": "{{date.now("YYYY-MM-DD hh:mm:ss")}}"
    }

  5. Return to Systems Manager to continue working with the Spark application.
  6. To be able to apply transformations based on the fields of the events, you first need to define the schema for the events:
    from pyspark.sql.types import *
    
    pythonSchema = StructType() \
     .add("id", LongType()) \
     .add("data", StringType()) \
     .add("date", TimestampType())

  7. Run the following the command to consume data from Kinesis Data Streams:
    from pyspark.sql.functions import *
    
    events= kinesis \
      .selectExpr("cast (data as STRING) jsonData") \
      .select(from_json("jsonData", pythonSchema).alias("events")) \
      .select("events.*")

  8. Use the following code for the Kinesis Spark connector sink:
    events \
        .selectExpr("CAST(id AS STRING) as partitionKey","data","date") \
        .writeStream \
        .format("aws-kinesis") \
        .option("kinesis.region", "<aws-region>") \
        .outputMode("append") \
        .option("kinesis.streamName", "kinesis-sink") \
        .option("kinesis.endpointUrl", "https://kinesis.<aws-region>.amazonaws.com") \
        .option("checkpointLocation", "/kinesisCheckpoint") \
        .start() \
        .awaitTermination()

You can view the data in the Kinesis Data Streams console.

  1. On the Kinesis Data Streams console, navigate to kinesis-sink.
  2. On the Data viewer tab, choose a shard and a starting position (for this post, we use Latest) and choose Get records.

You can see the data sent, as shown in the following screenshot. Kinesis Data Streams uses base64 encoding by default, so you might see text with unreadable characters.

Clean up

Delete the following CloudFormation stacks created during this deployment to delete all the provisioned resources:

  • EmrSparkKinesisStack
  • Kinesis-Data-Generator-Cognito-User-SparkEFO-Blog

If you created any additional resources during this deployment, delete them manually.

Conclusion

In this post, we discussed the open source Kinesis Data Streams connector for Spark Structured Streaming. It supports the newer Data Sources API V2 and Spark Structured Streaming for building streaming applications. The connector also enables high-throughput consumption from Kinesis Data Streams with enhanced fan-out by providing dedicated throughput up to 2 Mbps per shard per consumer. With this connector, you can now effortlessly build high-throughput streaming applications with Spark Structured Streaming.

The Kinesis Spark connector is open source under the Apache 2.0 license on GitHub. To get started, visit the GitHub repo.


About the Authors


Idan Maizlits is a Senior Product Manager on the Amazon Kinesis Data Streams team at Amazon Web Services. Idan loves engaging with customers to learn about their challenges with real-time data and to help them achieve their business goals. Outside of work, he enjoys spending time with his family exploring the outdoors and cooking.


Subham Rakshit is a Streaming Specialist Solutions Architect for Analytics at AWS based in the UK. He works with customers to design and build search and streaming data platforms that help them achieve their business objective. Outside of work, he enjoys spending time solving jigsaw puzzles with his daughter.

Francisco Morillo is a Streaming Solutions Architect at AWS. Francisco works with AWS customers helping them design real-time analytics architectures using AWS services, supporting Amazon MSK and AWS’s managed offering for Apache Flink.

Umesh Chaudhari is a Streaming Solutions Architect at AWS. He works with customers to design and build real-time data processing systems. He has extensive working experience in software engineering, including architecting, designing, and developing data analytics systems. Outside of work, he enjoys traveling, reading, and watching movies.

Optimized for low-latency workloads, Mistral Small now available in Amazon Bedrock

Post Syndicated from Esra Kayabali original https://aws.amazon.com/blogs/aws/optimized-for-low-latency-workloads-mistral-small-now-available-in-amazon-bedrock/

Today, I am happy to announce that the Mistral Small foundation model (FM) from Mistral AI is now generally available in Amazon Bedrock. This a fast-follow to our recent announcements of Mistral 7B and Mixtral 8x7B in March, and Mistral Large in April. You can now access four high-performing models from Mistral AI in Amazon Bedrock including Mistral Small, Mistral Large, Mistral 7B, and Mixtral 8x7B, further expanding model choice.

Mistral Small, developed by Mistral AI, is a highly efficient large language model (LLM) optimized for high-volume, low-latency language-based tasks. Mistral Small is perfectly suited for straightforward tasks that can be performed in bulk, such as classification, customer support, or text generation. It provides outstanding performance at a cost-effective price point.

Some key features of Mistral Small you need to know about:

  • Retrieval-Augmented Generation (RAG) specialization – Mistral Small ensures that important information is retained even in long context windows, which can extend up to 32K tokens.
  • Coding proficiency – Mistral Small excels in code generation, review, and commenting, supporting major coding languages.
  • Multilingual capability – Mistral Small delivers top-tier performance in French, German, Spanish, and Italian, in addition to English. It also supports dozens of other languages.

Getting started with Mistral Small
I first need access to the model to get started with Mistral Small. I go to the Amazon Bedrock console, choose Model access, and then choose Manage model access. I expand the Mistral AI section, choose Mistral Small, and then choose Save changes.

I now have model access to Mistral Small, and I can start using it in Amazon Bedrock. I refresh the Base models table to view the current status.

I use the following template to build a prompt for the model to get sub-optimal outputs:

<s>[INST] Instruction [/INST]

Note that <s> is a special token for beginning of string (BOS) while [INST] and [/INST] are regular strings.

I try the following prompt to see a classification example:

Prompt:

<s>[INST] Classify the following email to determine if it is spam or not. Only respond with the exact words "Spam" or "Not spam".
🎉 Limited time offer! Buy 2, Get 1 Free! Offer ends today! Don't miss out the CHANCE TO SAVE, please click on the link below: https://bit.ly/buy-2-get-1-free [/INST]

Mistral 7B, Mixtral 8x7B, and Mistral Large can all correctly classify this email as “Spam.” Mistral Small is also able to classify this accurately, just as the larger models can. I also try several similar tasks, such as generating a Bash script from a text prompt and generating a recipe to prepare yoghurt, and get good results. For this reason, Mistral Small is the most cost-effective and efficient option of the Mistral AI models in Amazon Bedrock for such tasks.

Mistral Small excels in multilingual tasks. Along with English, it delivers superior performance in French, German, Spanish, and Italian. I test the model’s understanding of the German language by asking it to give me two sentences about sustainability:

Prompt:

<s>[INST] Geben Sie mir zwei Sätze zum Thema Nachhaltigkeit. [/INST]

Output:

1. Nachhaltigkeit bedeutet, die Bedürfnisse der heutigen Generation zu befriedigen, ohne die Möglichkeiten künftiger Generationen zu gefährden.
2. Ein nachhaltiger Lebensstil umfasst den bewussten Umgang mit Ressourcen, wie Wasser, Energie und Rohstoffen, sowie den Schutz von Umwelt und Klima.
Diese Sätze sollten Ihnen einen guten Überblick über das Thema Nachhaltigkeit geben.

Programmatically interact with Mistral Small
I can use AWS Command Line Interface (AWS CLI) and AWS Software Development Kit (SDK) to programmatically interact with Mistral Small using Amazon Bedrock APIs. I use the following code in Python, which interacts with Amazon Bedrock Runtime APIs with AWS SDK, asking, “What is the color of the sky?”:

import argparse
import boto3
from botocore.exceptions import ClientError
import json

accept = "application/json"
content_type = "application/json"

def invoke_model(model_id, input_data, region, streaming): 
  client = boto3.client('bedrock-runtime', region_name=region)
  try:
    if streaming:
      response = client.invoke_model_with_response_stream(body=input_data, modelId=model_id, accept=accept, contentType=content_type)
    else:
      response = client.invoke_model(body=input_data, modelId=model_id, accept=accept, contentType=content_type)
    status_code = response['ResponseMetadata']['HTTPStatusCode']
    print(json.loads(response.get('body').read()))
  except ClientError as e:
    print(e)

if __name__ == "__main__":
  parser = argparse.ArgumentParser(description="Bedrock Testing Tool")
  parser.add_argument("--prompt", type=str, help="prompt to use", default="Hello")
  parser.add_argument("--max-tokens", type=int, default=64)
  parser.add_argument("--streaming", choices=["true", "false"], help="whether to stream or not", default="false")
  args = parser.parse_args()
  streaming = False
  if args.streaming == "true":
    streaming = True
  input_data = json.dumps({
    "prompt": f"<s>[INST]{args.prompt}[/INST]",
    "max_tokens": args.max_tokens
  })
  invoke_model(model_id="mistral.mistral-small-2402-v1:0", input_data=input_data, region="us-east-1", streaming=streaming)

I get the following output:

{'outputs': [{'text': ' The color of the sky can vary depending on the time of day, weather,', 'stop_reason': 'length'}]}

Now available
The Mistral Small model is now available in Amazon Bedrock in the US East (N. Virginia) Region.

To learn more, visit the Mistral AI in Amazon Bedrock product page. For pricing details, review the Amazon Bedrock pricing page.

To get started with Mistral Small in Amazon Bedrock, visit the Amazon Bedrock console and Amazon Bedrock User Guide.

— Esra

[$] Readying DNF5 for Fedora 41

Post Syndicated from jzb original https://lwn.net/Articles/969640/

With the release of Fedora 40 it’s time to
start looking ahead to what Fedora 41 has in store. One of the largest
changes planned for the next release is a switch to
DNF5, a C++ rewrite of the DNF
package manager. A previous attempt to make the switch, during the Fedora 39 cycle, was called off, and
deferred to Fedora 41. The developers have had nearly a year to address
compatibility problems and bring DNF5 to a state suitable to replace DNF4. Signs point to a successful switch in
the upcoming release, though there may be a few surprises lurking for Fedora users.

[$] Large-folio support for shmem and tmpfs

Post Syndicated from corbet original https://lwn.net/Articles/974630/

The kernel contains a pair of related filesystems that, among other things,
can be used for shared-memory applications; shmem is an internal mechanism
used within the kernel, while the tmpfs filesystem is mounted and
accessible from user space. As is the case elsewhere in the kernel, these
subsystems would benefit from the addition of large-folio support. During
a joint storage, filesystem, and memory-management session at the 2024 Linux Storage,
Filesystem, Memory-Management and BPF Summit
, Daniel Gomez talked about
the work he is doing to add that support.

Избори 2024 – известни са секциите зад граница

Post Syndicated from Боян Юруков original https://yurukov.net/blog/2024/izbori24-sekcii/

Излезе списъкът със секции в чужбина за смесените избори на 9-ти юни. Този път ще има 769 секции на 670 места по света. Това е значителното увеличение от последните два вота, но доста по-малко от изборите през 2021-ва.

Увеличението спрямо предходната година е със 37 места за секции, 36 от които са допълнителни в Германия. На повечето места разликите са минимални. В Гърция ще има със 7 секции в повече. В Турция местата са същите като брой, но ще има 4 секции повече. В Италия и Белгия също ще са повече.

Ако секциите са на същите места както миналата година, което е доста вероятно, то вече имам адресите на 97.8% от тях. Очаквам до 10% да има промяна. Трябва обаче да ги потвърдя с официалният списък на ЦИК когато излезе преди да публикувам картата на Glasuvam.org

Секциите в Европа на изборите през 2023-та
Секциите в Европа на изборите през 2023-та

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

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

The post Избори 2024 – известни са секциите зад граница first appeared on Блогът на Юруков.

Ако лекарството за СПИН,

Post Syndicated from Тоест original https://www.toest.bg/ako-lekarstvoto-za-spin/

Ако лекарството за СПИН,

Ако лекарството за СПИН,

Линда Грегърсън
Превод от английски Надежда Радулова


Линда Грегърсън е американска поетеса, почетен професор по ренесансова литература на Мичиганския университет, председателка на Академията на американските поети. Книгата ѝ Magnetic North („Магнитен север“) от 2007 г. е финалист за National Book Award. Множеството отличия на Линда Грегърсън включват награди на Американската академия за изкуство и литература, Американското поетическо общество, Асоциацията за модерна поезия, Фондация „Гугенхайм“, Института за академични изследвания, Националния център за хуманитарни науки, Националния фонд за изкуствата, Фондация „Рокфелер“ и Фондация „Мелън“. На български е издадена книгата ѝ с избрани стихотворения „Машини за дишане“ в превод на Надежда Радулова (Издателство за поезия ДА, 2108). През юни Линда Грегърсън ще участва в Международна поетическа конференция в Копривщица, организирана от Фондация „Елизабет Костова“. На 13 юни авторката ще има поетическо четене и в София.

Надежда Радулова пише, превежда поезия и проза от английски език, редактира, преподава. Авторка е на шест стихосбирки, сред които наградените „Алби“ (2000), „Когато заспят“ (2015), „Малкият свят, големият свят“ (2020), както и на романа „Тук живее Йожи“ (2023). Радулова е превеждала прозата на Дж. М. Кутси, Филип Рот, Р. Карвър, Джийн Рис, Силвия Плат, Пати Смит и др., както и поезията на Линда Франс, Линда Грегърсън и Луиз Глик. Отговорна редакторка в „Тоест“ от януари 2023 г.


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

Научни новини: Хипоалергенни котки, чревен микробиом, хитри видри и ванилия за разкош

Post Syndicated from Михаил Ангелов original https://www.toest.bg/nauchni-novini-hipoalergenni-kotki/

Хипоалергенни котки

Научни новини: Хипоалергенни котки, чревен микробиом, хитри видри и ванилия за разкош

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

Счита се, че около 10–15% от хората имат алергия към котки, която се проявява с различни симптоми – от възпаление на лигавиците до астма. Основният им алерген е Fel d 1 – протеин, който се отделя в слюнката и мастните жлези на животните. Въпреки че някои породи отделят по-малко от него (например бенгалските, ориенталските късокосмести, сибирските котки и др.), в повечето случаи те също успяват да провокират алергичен отговор и няма напълно хипоалергенни котки. Точната функция на протеина не е известна, но учените са открили сходство със защитен токсин, отделян от яванското дебело лори, и протеин при мишките, който участва в подбора на партньор.

През годините са правени редица опити за потискане на този ген. Първоначалната стратегия е използването на антитела, които котките приемат с храната. Резултатите от това са обещаващи, но такъв тип „хранителни добавки“ са скъпи и котките трябва да ги приемат постоянно. Преди две години екип описа възможността за нарушаване на синтеза на Fel d 1 с помощта на CRISPR в тъканна култура. Логичното продължение на това е създаването на първите генно редактирани хипоалергенни котки, описани в публикация от началото на 2024 г.

Използвайки CRISPR, учените първо са направили ембрионални клетки, в които е проведена редакцията, пречеща на котките да синтезират алергена. След това тези ембриони са имплантирани и от тях са получени две котета – мъжко и женско. Мъжкото (Heavy) е „мозаечно“ – носи два типа редакции в гена. Женското (Haemi) е хетерозиготно: единият алел на гена е редактиран, а другият – не. Въпреки че редакцията е непълна, и двете животни отделят по-малко количество от протеина в сравнение с нередактирана котка. При Heavy резултатът е по-слаб – седем дни след като котките са изкъпани, нивата са почти сходни с тези при нередактираната котка. Разликата в Haemi е осезаема, понеже спадът е почти осем пъти в слюнката ѝ и почти шест пъти по козината.

Но най-драстична е разликата в сина им, хомозиготния Alsik, в който спадът е над 98%. Според учените алергенът, който откриват по него, може да е пренесен от нередактираните котки, тъй като всички животни са отглеждани в обща стая, симулираща нормален дом. Именно поради това екипът обявява, че е създадена първата хипоалергенна котка. За допълнително потвърждение на това Alsik е клониран, като и неговият клонинг Alsik C проявява същите качества и според генетичен анализ е идентичен с „родителя“ си. Авторите отбелязват, че редактираните котки, както и клонингът са здрави и активни и към момента нямат видими симптоми.

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

Здрав корем – здрава глава

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

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

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

Нова публикация показва, че освен върху настроението, чревният микробиом може да има ефект и върху поведението ни. В случая експериментът е проведен с доброволци от германски университет. След като участниците са разделени в две групи за установяване на базово ниво, те се включват като приемащи в „игра с ултиматум“. В нея има двама участници – предлагащ и приемащ. Предлагащият има възможност да избере как да раздели определена сума (в изследването са 10 евро) – например да задържи 7, а приемащият да получи остатъка от 3. Ако приемащият се съгласи, двамата получават съответната сума и играта приключва, но ако откаже, тогава и двамата не получават нищо.

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

Промени има и в нивата на тирозин – прекурсор на невротрансмитера допамин. Така се прави връзка между нивата на триптофан и тирозин. Предишни изследвания са показали, че съотношението между серотонин и допамин има влияние върху вземането на решения в социален аспект, включително и прилагането на алтруистично наказание, както в случая на отхвърлянето на предложението в играта с ултиматум.

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

Хитри видри

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

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

Използването на камъни като наковалня или чук за отваряне на черупки е добре известно при видрите. Те дори имат специални „джобове“ под мишниците си, в които пазят любимите си камъни, докато се придвижват или хранят, за да са свободни и двете им ръце. За да разберат повече за това поведение, екип от учени и доброволци проследява 196 радиомаркирани видри в Калифорния.

Оказва се, че женските видри по-често използват инструменти. Според изследователите причината е, че са по-малки и по-трудно се справят с по-твърдите черупки. Така те успяват да се хранят с до 35% повече твърда храна, отколкото мъжките в същата популация. Това им дава предимство, защото диетата им е по-разнообразна и могат да се хранят по-обилно – обикновено изяждат около 25% от теглото си дневно. Бонус за дамите е, че зъбите им са в по-добро състояние, отколкото на мъжките.

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

С аромат на ванилия

Ванилията е един от най-популярните аромати и се използва изключително широко в кулинарията и парфюмерията. Зад това ухание се крие молекулата ванилин – органично вещество, което се среща най-често в орхидеята Vanilla planifolia.

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

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

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

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

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

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

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

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

BitKeeper, Linux, and licensing disputes: How Linus wrote Git in 14 days (Graphite blog)

Post Syndicated from corbet original https://lwn.net/Articles/974914/

This
Graphite blog post
retells the history of the BitKeeper fiasco and the
dawn of the Git era.

When we think of history, we often romanticize it as being born of
a sudden stroke of inspiration. But the creation of git shows the
far harsher reality of invention: a slowly escalating disagreement
over a license; the need for a scrappy backup solution to unblock
work; and then continued polishing and iteration through years and
years, led not by the inventor, but rather a community.

For those who weren’t around in those days, a perusal of the LWN coverage
from the time might be of interest too, including:

…and a lot more for those who care to search for it.