[$] BPF iterators for filesystems

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

In the first of two combined BPF and filesystem sessions at the
2023 Linux Storage, Filesystem,
Memory-Management and BPF Summit
, Hou Tao introduced his BPF iterators
for filesystem information. Iterators for
BPF
are a relatively recent addition to the BPF landscape; they help
BPF programs step through kernel data structures in a loop-like manner, but
without running afoul of the BPF verifier, which is notoriously hard to
convince about loops.

Extract time series from satellite weather data with AWS Lambda

Post Syndicated from Lior Perez original https://aws.amazon.com/blogs/big-data/extract-time-series-from-satellite-weather-data-with-aws-lambda/

Extracting time series on given geographical coordinates from satellite or Numerical Weather Prediction data can be challenging because of the volume of data and of its multidimensional nature (time, latitude, longitude, height, multiple parameters). This type of processing can be found in weather and climate research, but also in applications like photovoltaic and wind power. For instance, time series describing the quantity of solar energy reaching specific geographical points can help in designing photovoltaic power plants, monitoring their operation, and detecting yield loss.

A generalization of the problem could be stated as follows: how can we extract data along a dimension that is not the partition key from a large volume of multidimensional data? For tabular data, this problem can be easily solved with AWS Glue, which you can use to create a job to filter and repartition the data, as shown at the end of this post. But what if the data is multidimensional and provided in a domain-specific format, like in the use case that we want to tackle?

AWS Lambda is a serverless compute service that lets you run code without provisioning or managing servers. With AWS Step Functions, you can launch parallel runs of Lambda functions. This post shows how you can use these services to run parallel tasks, with the example of time series extraction from a large volume of satellite weather data stored on Amazon Simple Storage Service (Amazon S3). You also use AWS Glue to consolidate the files produced by the parallel tasks.

Note that Lambda is a general purpose serverless engine. It has not been specifically designed for heavy data transformation tasks. We are using it here after having confirmed the following:

  • Task duration is predictable and is less than 15 minutes, which is the maximum timeout for Lambda functions
  • The use case is simple, with low compute requirements and no external dependencies that could slow down the process

We work on a dataset provided by EUMESAT: the MSG Total and Diffuse Downward Surface Shortwave Flux (MDSSFTD). This dataset contains satellite data at 15-minute intervals, in netcdf format, which represents approximately 100 GB for 1 year.

We process the year 2018 to extract time series on 100 geographical points.

Solution overview

To achieve our goal, we use parallel Lambda functions. Each Lambda function processes 1 day of data: 96 files representing a volume of approximately 240 MB. We then have 365 files containing the extracted data for each day, and we use AWS Glue to concatenate them for the full year and split them across the 100 geographical points. This workflow is shown in the following architecture diagram.

Deployment of this solution: In this post, we provide step-by-step instructions to deploy each part of the architecture manually. If you prefer an automatic deployment, we have prepared for you a Github repository containing the required infrastructure as code template.

The dataset is partitioned by day, with YYYY/MM/DD/ prefixes. Each partition contains 96 files that will be processed by one Lambda function.

We use Step Functions to launch the parallel processing of the 365 days of the year 2018. Step Functions helps developers use AWS services to build distributed applications, automate processes, orchestrate microservices, and create data and machine learning (ML) pipelines.

But before starting, we need to download the dataset and upload it to an S3 bucket.

Prerequisites

Create an S3 bucket to store the input dataset, the intermediate outputs, and the final outputs of the data extraction.

Download the dataset and upload it to Amazon S3

A free registration on the data provider website is required to download the dataset. To download the dataset, you can use the following command from a Linux terminal. Provide the credentials that you obtained at registration. Your Linux terminal could be on your local machine, but you can also use an AWS Cloud9 instance. Make sure that you have at least 100 GB of free storage to handle the entire dataset.

wget -c --no-check-certificate -r -np -nH --user=[YOUR_USERNAME] --password=[YOUR_PASSWORD] \
     -R "*.html, *.tmp" \
     https://datalsasaf.lsasvcs.ipma.pt/PRODUCTS/MSG/MDSSFTD/NETCDF/2018/

Because the dataset is quite large, this download could take a long time. In the meantime, you can prepare the next steps.

When the download is complete, you can upload the dataset to an S3 bucket with the following command:

aws s3 cp ./PRODUCTS/ s3://[YOUR_BUCKET_NAME]/ --recursive

If you use temporary credentials, they might expire before the copy is complete. In this case, you can resume by using the aws s3 sync command.

Now that the data is on Amazon S3, you can delete the directory that has been downloaded from your Linux machine.

Create the Lambda functions

For step-by-step instructions on how to create a Lambda function, refer to Getting started with Lambda.

The first Lambda function in the workflow generates the list of days that we want to process:

from datetime import datetime
from datetime import timedelta

def lambda_handler(event, context):
    '''
    Generate a list of dates (string format)
    '''
    
    begin_date_str = "20180101"
    end_date_str = "20181231"
    
    # carry out conversion between string 
    # to datetime object
    current_date = datetime.strptime(begin_date_str, "%Y%m%d")
    end_date = datetime.strptime(end_date_str, "%Y%m%d")

    result = []

    while current_date <= end_date:
        current_date_str = current_date.strftime("%Y%m%d")

        result.append(current_date_str)
            
        # adding 1 day
        current_date += timedelta(days=1)
      
    return result

We then use the Map state of Step Functions to process each day. The Map state will launch one Lambda function for each element returned by the previous function, and will pass this element as an input. These Lambda functions will be launched simultaneously for all the elements in the list. The processing time for the full year will therefore be identical to the time needed to process 1 single day, allowing scalability for long time series and large volumes of input data.

The following is an example of code for the Lambda function that processes each day:

import boto3
import netCDF4 as nc
import numpy as np
import pandas as pd
from datetime import datetime
import time
import os
import random

# Bucket containing input data
INPUT_BUCKET_NAME = "[INPUT_BUCKET_NAME]" # example: "my-bucket-name"
LOCATION = "[PREFIX_OF_INPUT_DATA_WITH_TRAILING_SLASH]" # example: "MSG/MDSSFTD/NETCDF/"

# Local output files
TMP_FILE_NAME = "/tmp/tmp.nc"
LOCAL_OUTPUT_FILE = "/tmp/dataframe.parquet"

# Bucket for output data
OUTPUT_BUCKET = "[OUTPUT_BUCKET_NAME]"
OUTPUT_PREFIX = "[PREFIX_OF_OUTPUT_DATA_WITH_TRAILING_SLASH]" # example: "output/intermediate/"

# Create 100 random coordinates
random.seed(10)
coords = [(random.randint(1000,2500), random.randint(1000,2500)) for _ in range(100)]

client = boto3.resource('s3')
bucket = client.Bucket(INPUT_BUCKET_NAME)

def date_to_partition_name(date):
    '''
    Transform a date like "20180302" to partition like "2018/03/02/"
    '''
    d = datetime.strptime(date, "%Y%m%d")
    return d.strftime("%Y/%m/%d/")

def lambda_handler(event, context):
    # Get date from input    
    date = str(event)
    print("Processing date: ", date)
    
    # Initialize output dataframe
    COLUMNS_NAME = ['time', 'point_id', 'DSSF_TOT', 'FRACTION_DIFFUSE']
    df = pd.DataFrame(columns = COLUMNS_NAME)
    
    prefix = LOCATION + date_to_partition_name(date)
    print("Loading files from prefix: ", prefix)
    
    # List input files (weather files)
    objects = bucket.objects.filter(Prefix=prefix)    
    keys = [obj.key for obj in objects]
           
    # For each file
    for key in keys:
        # Download input file from S3
        bucket.download_file(key, TMP_FILE_NAME)
        
        print("Processing: ", key)    
    
        try:
            # Load the dataset with netcdf library
            dataset = nc.Dataset(TMP_FILE_NAME)
            
            # Get values from the dataset for our list of geographical coordinates
            lats, lons = zip(*coords)
            data_1 = dataset['DSSF_TOT'][0][lats, lons]
            data_2 = dataset['FRACTION_DIFFUSE'][0][lats, lons]
    
            # Prepare data to add it into the output dataframe
            nb_points = len(lats)
            data_time = dataset.__dict__['time_coverage_start']
            time_list = [data_time for _ in range(nb_points)]
            point_id_list = [i for i in range(nb_points)]
            tuple_list = list(zip(time_list, point_id_list, data_1, data_2))
            
            # Add data to the output dataframe
            new_data = pd.DataFrame(tuple_list, columns = COLUMNS_NAME)
            df = pd.concat ([df, new_data])
        except OSError:
            print("Error processing file: ", key)
        
    # Replace masked by NaN (otherwise we cannot save to parquet)
    df = df.applymap(lambda x: np.NaN if type(x) == np.ma.core.MaskedConstant else x)    
        
    
    # Save to parquet
    print("Writing result to tmp parquet file: ", LOCAL_OUTPUT_FILE)
    df.to_parquet(LOCAL_OUTPUT_FILE)
    
    # Copy result to S3
    s3_output_name = OUTPUT_PREFIX + date + '.parquet'
    s3_client = boto3.client('s3')
    s3_client.upload_file(LOCAL_OUTPUT_FILE, OUTPUT_BUCKET, s3_output_name)

You need to associate a role to the Lambda function to authorize it to access the S3 buckets. Because the runtime is about a minute, you also have to configure the timeout of the Lambda function accordingly. Let’s set it to 5 minutes. We also increase the memory allocated to the Lambda function to 2048 MB, which is needed by the netcdf4 library for extracting several points at a time from satellite data.

This Lambda function depends on the pandas and netcdf4 libraries. They can be installed as Lambda layers. The pandas library is provided as an AWS managed layer. The netcdf4 library will have to be packaged in a custom layer.

Configure the Step Functions workflow

After you create the two Lambda functions, you can design the Step Functions workflow in the visual editor by using the Lambda Invoke and Map blocks, as shown in the following diagram.

In the Map state block, choose Distributed processing mode and increase concurrency limit to 365 in Runtime settings. This will enable parallel processing of all the days.

The number of Lambda functions that can run concurrently is limited for each account. Your account may have insufficient quota. You can request a quota increase.

Launch the state machine

You can now launch the state machine. On the Step Functions console, navigate to your state machine and choose Start execution to run your workflow.

This will trigger a popup in which you can enter optional input for your state machine. For this post, you can leave the defaults and choose Start execution.

The state machine should take 1–2 minutes to run, during which time you will be able to monitor the progress of your workflow. You can select one of the blocks in the diagram and inspect its input, output, and other information in real time, as shown in the following screenshot. This can be very useful for debugging purposes.

When all the blocks turn green, the state machine is complete. At this step, we have extracted the data for 100 geographical points for a whole year of satellite data.

In the S3 bucket configured as output for the processing Lambda function, we can check that we have one file per day, containing the data for all the 100 points.

Transform data per day to data per geographical point with AWS Glue

For now, we have one file per day. However, our goal is to get time series for every geographical point. This transformation involves changing the way the data is partitioned. From a day partition, we have to go to a geographical point partition.

Fortunately, this operation can be done very simply with AWS Glue.

  1. On the AWS Glue Studio console, create a new job and choose Visual with a blank canvas.

For this example, we create a simple job with a source and target block.

  1. Add a data source block.
  2. On the Data source properties tab, select S3 location for S3 source type.
  3. For S3 URL, enter the location where you created your files in the previous step.
  4. For Data format, keep the default as Parquet.
  5. Choose Infer schema and view the Output schema tab to confirm the schema has been correctly detected.

  1. Add a data target block.
  2. On the Data target properties tab, for Format, choose Parquet.
  3. For Compression type, choose Snappy.
  4. For S3 Target Location, enter the S3 target location for your output files.

We now have to configure the magic!

  1. Add a partition key, and choose point_id.

This tells AWS Glue how you want your output data to be partitioned. AWS Glue will automatically partition the output data according to the point_id column, and therefore we’ll get one folder for each geographical point, containing the whole time series for this point as requested.

To finish the configuration, we need to assign an AWS Identity and Access Management (IAM) role to the AWS Glue job.

  1. Choose Job details, and for IAM role¸ choose a role that has permissions to read from the input S3 bucket and to write to the output S3 bucket.

You may have to create the role on the IAM console if you don’t already have an appropriate one.

  1. Enter a name for our AWS Glue job, save it, and run it.

We can monitor the run by choosing Run details. It should take 1–2 minutes to complete.

Final results

After the AWS Glue job succeeds, we can check in the output S3 bucket that we have one folder for each geographical point, containing some Parquet files with the whole year of data, as expected.

To load the time series for a specific point into a pandas data frame, you can use the awswrangler library from your Python code:

import awswrangler as wr
import pandas as pd

# Retrieving the data directly from Amazon S3
df = wr.s3.read_parquet("s3://[BUCKET]/[PREFIX]/", dataset=True)

If you want to test this code now, you can create a notebook instance in Amazon SageMaker, and then open a Jupyter notebook. The following screenshot illustrates running the preceding code in a Jupyter notebook.

As we can see, we have successfully extracted the time series for specific geographical points!

Clean up

To avoid incurring future charges, delete the resources that you have created:

  • The S3 bucket
  • The AWS Glue job
  • The Step Functions state machine
  • The two Lambda functions
  • The SageMaker notebook instance

Conclusion

In this post, we showed how to use Lambda, Step Functions, and AWS Glue for serverless ETL (extract, transform, and load) on a large volume of weather data. The proposed architecture enables extraction and repartitioning of the data in just a few minutes. It’s scalable and cost-effective, and can be adapted to other ETL and data processing use cases.

Interested in learning more about the services presented in this post? You can find hands-on labs to improve your knowledge with AWS Workshops. Additionally, check out the official documentation of AWS Glue, Lambda, and Step Functions. You can also discover more architectural patterns and best practices at AWS Whitepapers & Guides.


About the Author

Lior Perez is a Principal Solutions Architect on the Enterprise team based in Toulouse, France. He enjoys supporting customers in their digital transformation journey, using big data and machine learning to help solve their business challenges. He is also personally passionate about robotics and IoT, and constantly looks for new ways to leverage technologies for innovation.

[$] Large folios for anonymous memory

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

The transition to folios has transformed
the memory-management subsystem in a number of ways, but has also resulted
in a lot of code churn that has not been welcomed by all developers. As
this work proceeds, though, some of the benefits from it are beginning to
become clear. One example may well be in the handling of anonymous memory,
as can be seen in a pair of patch sets from Ryan Roberts.

Implementing AWS Lambda error handling patterns

Post Syndicated from Julian Wood original https://aws.amazon.com/blogs/compute/implementing-aws-lambda-error-handling-patterns/

This post is written by Jeff Chen, Principal Cloud Application Architect, and Jeff Li, Senior Cloud Application Architect

Event-driven architectures are an architecture style that can help you boost agility and build reliable, scalable applications. Splitting an application into loosely coupled services can help each service scale independently. A distributed, loosely coupled application depends on events to communicate application change states. Each service consumes events from other services and emits events to notify other services of state changes.

Handling errors becomes even more important when designing distributed applications. A service may fail if it cannot handle an invalid payload, dependent resources may be unavailable, or the service may time out. There may be permission errors that can cause failures. AWS services provide many features to handle error conditions, which you can use to improve the resiliency of your applications.

This post explores three use-cases and design patterns for handling failures.

Overview

AWS Lambda, Amazon Simple Queue Service (Amazon SQS), Amazon Simple Notification Service (Amazon SNS), and Amazon EventBridge are core building blocks for building serverless event-driven applications.

The post Understanding the Different Ways to Invoke Lambda Functions lists the three different ways of invoking a Lambda function: synchronous, asynchronous, and poll-based invocation. For a list of services and which invocation method they use, see the documentation.

Lambda’s integration with Amazon API Gateway is an example of a synchronous invocation. A client makes a request to API Gateway, which sends the request to Lambda. API Gateway waits for the function response and returns the response to the client. There are no built-in retries or error handling. If the request fails, the client attempts the request again.

Lambda’s integration with SNS and EventBridge are examples of asynchronous invocations. SNS, for example, sends an event to Lambda for processing. When Lambda receives the event, it places it on an internal event queue and returns an acknowledgment to SNS that it has received the message. Another Lambda process reads events from the internal queue and invokes your Lambda function. If SNS cannot deliver an event to your Lambda function, the service automatically retries the same operation based on a retry policy.

Lambda’s integration with SQS uses poll-based invocations. Lambda runs a fleet of pollers that poll your SQS queue for messages. The pollers read the messages in batches and invoke your Lambda function once per batch.

You can apply this pattern in many scenarios. For example, your operational application can add sales orders to an operational data store. You may then want to load the sales orders to your data warehouse periodically so that the information is available for forecasting and analysis. The operational application can batch completed sales as events and place them on an SQS queue. A Lambda function can then process the events and load the completed sale records into your data warehouse.

If your function processes the batch successfully, the pollers delete the messages from the SQS queue. If the batch is not successfully processed, the pollers do not delete the messages from the queue. Once the visibility timeout expires, the messages are available again to be reprocessed. If the message retention period expires, SQS deletes the message from the queue.

The following table shows the invocation types and retry behavior of the AWS services mentioned.

AWS service example Invocation type Retry behavior
Amazon API Gateway Synchronous No built-in retry, client attempts retries.

Amazon SNS

Amazon EventBridge

Asynchronous Built-in retries with exponential backoff.
Amazon SQS Poll-based Retries after visibility timeout expires until message retention period expires.

There are a number of design patterns to use for poll-based and asynchronous invocation types to retain failed messages for additional processing. These patterns can help you recover from delivery or processing failures.

You can explore the patterns and test the scenarios by deploying the code from this repository which uses the AWS Cloud Development Kit (AWS CDK) using Python.

Lambda poll-based invocation pattern

When using Lambda with SQS, if Lambda isn’t able to process the message and the message retention period expires, SQS drops the message. Failure to process the message can be due to function processing failures, including time-outs or invalid payloads. Processing failures can also occur when the destination function does not exist, or has incorrect permissions.

You can configure a separate dead-letter queue (DLQ) on the source queue for SQS to retain the dropped message. A DLQ preserves the original message and is useful for analyzing root causes, handling error conditions properly, or sending notifications that require manual interventions. In the poll-based invocation scenario, the Lambda function itself does not maintain a DLQ. It relies on the external DLQ configured in SQS. For more information, see Using Lambda with Amazon SQS.

The following shows the design pattern when you configure Lambda to poll events from an SQS queue and invoke a Lambda function.

Lambda synchronously polling catches of messages from SQS

Lambda synchronously polling batches of messages from SQS

To explore this pattern, deploy the code in this repository. Once deployed, you can use this instruction to test the pattern with the happy and unhappy paths.

Lambda asynchronous invocation pattern

With asynchronous invokes, there are two failure aspects to consider when using Lambda. The event source cannot deliver the message to Lambda and the Lambda function errors when processing the event.

Event sources vary in how they handle failures delivering messages to Lambda. If SNS or EventBridge cannot send the event to Lambda after exhausting all their retry attempts, the service drops the event. You can configure a DLQ on an SNS topic or EventBridge event bus to hold the dropped event. This works in the same way as the poll-based invocation pattern with SQS.

Lambda functions may then error due to input payload syntax errors, duration time-outs, or the function throws an exception such as a data resource not available.

For asynchronous invokes, you can configure how long Lambda retains an event in its internal queue, up to 6 hours. You can also configure how many times Lambda retries when the function errors, between 0 and 2. Lambda discards the event when the maximum age passes or all retry attempts fail. To retain a copy of discarded events, you can configure either a DLQ or, preferably, a failed-event destination as part of your Lambda function configuration.

A Lambda destination enables you to specify what to do next if an asynchronous invocation succeeds or fails. You can configure a destination to send invocation records to SQS, SNS, EventBridge, or another Lambda function. Destinations are preferred for failure processing as they support additional targets and include additional information. A DLQ holds the original failed event. With a destination, Lambda also passes details of the function’s response in the invocation record. This includes stack traces, which can be useful for analyzing the root cause.

Using both a DLQ and Lambda destinations

You can apply this pattern in many scenarios. For example, many of your applications may contain customer records. To comply with the California Consumer Privacy Act (CCPA), different organizations may need to delete records for a particular customer. You can set up a consumer delete SNS topic. Each organization creates a Lambda function, which processes the events published by the SNS topic and deletes customer records in its managed applications.

The following shows the design pattern when you configure an SNS topic as the event source for a Lambda function, which uses destination queues for success and failure process.

SNS topic as event source for Lambda

SNS topic as event source for Lambda

You configure a DLQ on the SNS topic to capture messages that SNS cannot deliver to Lambda. When Lambda invokes the function, it sends details of the successfully processed messages to an on-success SQS destination. You can use this pattern to route an event to multiple services for simpler use cases. For orchestrating multiple services, AWS Step Functions is a better design choice.

Lambda can also send details of unsuccessfully processed messages to an on-failure SQS destination.

A variant of this pattern is to replace an SQS destination with an EventBridge destination so that multiple consumers can process an event based on the destination.

To explore how to use an SQS DLQ and Lambda destinations, deploy the code in this repository. Once deployed, you can use this instruction to test the pattern with the happy and unhappy paths.

Using a DLQ

Although destinations is the preferred method to handle function failures, you can explore using DLQs.

The following shows the design pattern when you configure an SNS topic as the event source for a Lambda function, which uses SQS queues for failure process.

Lambda invoked asynchonously

Lambda invoked asynchonously

You configure a DLQ on the SNS topic to capture the messages that SNS cannot deliver to the Lambda function. You also configure a separate DLQ for the Lambda function. Lambda saves an unsuccessful event to this DLQ after Lambda cannot process the event after maximum retry attempts.

To explore how to use a Lambda DLQ, deploy the code in this repository. Once deployed, you can use this instruction to test the pattern with happy and unhappy paths.

Conclusion

This post explains three patterns that you can use to design resilient event-driven serverless applications. Error handling during event processing is an important part of designing serverless cloud applications.

You can deploy the code from the repository to explore how to use poll-based and asynchronous invocations. See how poll-based invocations can send failed messages to a DLQ. See how to use DLQs and Lambda destinations to route and handle unsuccessful events.

Learn more about event-driven architecture on Serverless Land.

Belgian Tax Hack

Post Syndicated from Bruce Schneier original https://www.schneier.com/blog/archives/2023/07/belgian-tax-hack.html

Here’s a fascinating tax hack from Belgium (listen to the details here, episode #484 of “No Such Thing as a Fish,” at 28:00).

Basically, it’s about a music festival on the border between Belgium and Holland. The stage was in Holland, but the crowd was in Belgium. When the copyright collector came around, they argued that they didn’t have to pay any tax because the audience was in a different country. Supposedly it worked.

Running a workshop with teachers to create culturally relevant Computing lessons

Post Syndicated from Katharine Childs original https://www.raspberrypi.org/blog/research-teacher-workshop-culturally-relevant-computing-lessons/

Who chooses to study Computing? In England, data from GCSE and A level Computer Science entries in 2019 shows that the answer is complex. Black Caribbean students were one of the most underrepresented groups in the subject, while pupils from other ethnic backgrounds, such as White British, Chinese, and Asian Indian, were well-represented. This picture is reflected in the STEM workforce in England, where Black people are also underrepresented.

Two young girls, one of them with a hijab, do a Scratch coding activity together at a desktop computer.

That’s why one of our areas of academic research aims to support Computing teachers to use culturally relevant pedagogy to design and deliver equitable learning experiences that enable all learners to enjoy and succeed in Computing and Computer Science at school. Our previous research projects within this area have involved developing guidelines for culturally relevant and responsive teaching, and exploring how a small group of primary and secondary Computing teachers used these guidelines in their teaching.

A tree symbolising culturally relevant pedagogy,with the roots labeled 'curriculum, the trunk labeled 'teaching approaches', and the crown labeled 'learning materials'.
Learning materials, teaching approaches, and the curriculum as a whole are three areas where culturally relevance is important.

In our latest research study, funded by Cognizant, we worked with 13 primary school teachers in England on adapting computing lessons to incorporate culturally relevant and responsive principles and practices. Here’s an insight into the workshop we ran with them, and what the teachers and we have taken away from it.

Adapting lesson materials based on culturally relevant pedagogy

In the group of 13 England-based primary school Computing teachers we worked with for this study:

  • One third were specialist primary Computing teachers, and the other two thirds were class teachers who taught a range of subjects
  • Some acted as Computing subject lead or coordinator at their school
  • Most had taught Computing for between three and five years 
  • The majority worked in urban areas of England, at schools with culturally diverse catchment areas 

In November 2022, we held a one-day workshop with the teachers to introduce culturally relevant pedagogy and explore how to adapt two six-week units of computing resources.

An example of a collaborative activity from a teacher-focused workshop around culturally relevant pedagogy.
An example of a collaborative activity from the workshop

The first part of the workshop was a collaborative, discussion-based professional development session exploring what culturally relevant pedagogy is. This type of pedagogy uses equitable teaching practices to:

  • Draw on the breadth of learners’ experiences and cultural knowledge
  • Facilitate projects that have personal meaning for learners
  • Develop learners’ critical consciousness

The rest of the workshop day was spent putting this learning into practice while planning how to adapt two units of computing lessons to make them culturally relevant for the teachers’ particular settings. We used a design-based approach for this part of the workshop, meaning researchers and teachers worked collaboratively as equal stakeholders to decide on plans for how to alter the units.

We worked in four groups, each with three or four teachers and one or two researchers, focusing on one of two units of work from The Computing Curriculum for teaching digital skills: a unit on photo editing for Year 4 (ages 8–9), and a unit about vector graphics for Year 5 (ages 9–10).

Descriptions of a classroom unit of teaching materials about photo editing for Year 4 (ages 8–9), and a unit about vector graphics for Year 5 (ages 9–10).
We based the workshop around two Computing Curriculum units that cover digital literacy skills.

In order to plan how the resources in these units of work could be made culturally relevant for the participating teachers’ contexts, the groups used a checklist of ten areas of opportunity. This checklist is a result of one of our previous research projects on culturally relevant pedagogy. Each group used the list to identify a variety of ways in which the units’ learning objectives, activities, learning materials, and slides could be adapted. Teachers noted down their ideas and then discussed them with their group to jointly agree a plan for adapting the unit.

By the end of the day, the groups had designed four really creative plans for:

  • A Year 4 unit on photo editing that included creating an animal to represent cultural identity
  • A Year 4 unit on photo editing that included creating a collage all about yourself 
  • A Year 5 unit on vector graphics that guided learners to create their own metaverse and then add it to the class multiverse
  • A Year 5 unit on vector graphics that contextualised the digital skills by using them in online activities and in video games

Outcomes from the workshop

Before and after the workshop, we asked the teachers to fill in a survey about themselves, their experiences of creating computing resources, and their views about culturally relevant resources. We then compared the two sets of data to see whether anything had changed over the course of the workshop.

A teacher attending a training workshop laughs as she works through an activity.
The workshop was a positive experience for the teachers.

After teachers had attended the workshop, they reported a statistically significant increase in their confidence levels to adapt resources to be culturally relevant for both themselves and others. 

Teachers explained that the workshop had increased their understanding of culturally relevant pedagogy and of how it could impact on learners. For example, one teacher said:

“The workshop has developed my understanding of how culturally adapted resources can support pupil progress and engagement. It has also highlighted how contextual appropriateness of resources can help children to access resources.” – Participating teacher

Some teachers also highlighted how important it had been to talk to teachers from other schools during the workshop, and how they could put their new knowledge into practice in the classroom:

“The dedicated time and value added from peer discourse helped make this authentic and not just token activities to check a box.” – Participating teacher

“I can’t wait to take some of the work back and apply it to other areas and subjects I teach.” – Participating teacher

What you can expect to see next from this project

After our research team made the adaptations to the units set out in the four plans made during the workshop, the adapted units were delivered by the teachers to more than 500 Year 4 and 5 pupils. We visited some of the teachers’ schools to see the units being taught, and we have interviewed all the teachers about their experience of delivering the adapted materials. This observational and interview data, together with additional survey responses, will be analysed by us, and we’ll share the results over the coming months.

A computing classroom filled with learners
As part of the project, we observed teachers delivering the adapted units to their learners.

In our next blog post about this work, we will delve into the fascinating realm of parental attitudes to culturally relevant computing, and we’ll explore how embracing diversity in the digital landscape is shaping the future for both children and their families. 

We’ve also written about this professional development activity in more detail in a paper to be published at the UKICER conference in September, and we’ll share the paper once it’s available.

Finally, we are grateful to Cognizant for funding this academic research, and to our cohort of primary computing teachers for their enthusiasm, energy, and creativity, and their commitment to this project.

The post Running a workshop with teachers to create culturally relevant Computing lessons appeared first on Raspberry Pi Foundation.

Гешев вдига дървен меч

Post Syndicated from Емилия Милчева original https://www.toest.bg/geshev-vdiga-durven-mech/

Гешев вдига дървен меч

По-консервативни от консерваторите на Европейската народна партия, по-умерени от Джорджа Мелони и нейните „Италиански братя“, патриоти и родолюбци като ВМРО, без изявената путинофилия на „Възраждане“ и техния антиамериканизъм, но все пак с доза евроскептицизъм. Що е то?

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

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

Ако се яви на избори, ще търси избиратели сред тези на ГЕРБ, но теоретично може да вземе и от други партии, които нямат твърд електорат, а симпатизантите им прескачат в последните години от ИТН към „Продължаваме промяната“, а после към „Възраждане“.

На този терен – на консерваторите-(антиглобалисти)-националисти, в последните години се появиха много политически сили: Цветан Цветанов и неговите „Републиканци за България“, „Възраждане“, КОД, „Има такъв народ“, новата партия „Eдинение“ на бившия зам.-министър на земеделието Иван Христанов, но имаше и НФСБ, и „Ред, законност, справедливост“. България следва европейската тенденция на изблик на консервативни антиглобалистки партии, противници на либерализма, някои от тях крайнодесни.

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

Справедливост за кого?

„Не мир дойдох да донеса, а меч“, се казва в Евангелието на Матея (10:34). И Гешев така – само че мечът е дървен. Доскоро най-силният човек в държавата днес е шеф на политически стартъп с неясно и недотам светло бъдеще. Мечът в логото на сдружението напомня на меча в герба на ДС, който пък е правен по аналогия с този на КГБ, разкри във Facebook журналистът от „Сега“ Иво Балев. Други намериха творчески сходства с меча от фирмата на Слави Трифонов – ⅞.

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

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

Но с тези натрупани знания и без всякакви опити за противоречия с „държавната политика“ Иван Гешев изкара половината от 7-годишния си мандат. А днес цитира „Тютюн“ от Димитър Димов:

Над околийския началник стоеше областният, над областния – министърът, над министъра – правителството, а над правителството – мафията – невидима, всемогъща и безчовечна!

И ако обществото се е питало кой е стоял над главния прокурор – не е Господ, мафията е.

Имунитетът на Борисов

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

В деня след изявлението на бившия главен прокурор Борисов най-напред обяви, че няма да даде имунитета си на съучениците на Гешев (прокурорът по делото е негов съученик, по признание на самия Гешев – б.а.), а броени часове след това каза точно обратното – че ще се откаже, за да не става „жертва на шантаж“. Така се слага край на нескончаемите усилия на парламентарната временна комисия за имунитетите да манкира, за да не стигне до обсъждането им, също и на обвиненията за „коалицията на имунитетите“.

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

Дълговременният заместник

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

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

„Не е логично Съвет с изтекъл мандат, независимо че е легитимен към момента, да избира прокурор за 7 години. Първо да се приемат промените в Конституцията, след това нов ВСС и след това нов главен прокурор“, заяви и депутатът от ДПС Делян Пеевски, известен като един от „кръстниците“ на съдебната система, санкциониран по антикорупционния американски закон „Магнитски“, а в новото си качество – конституционен реформатор. Същият Пеевски, чието име не беше прочетено от Гешев зад инициалите Д.П. в документите за грабежа „КТБ“.

Но ще спази ли изобщо парламентът срока от 3 месеца за избор на нов ВСС, заложен в приетите в края на май промени в Haĸaзaтeлнo-пpoцecyaлния ĸoдeĸc и Зaĸoнa зa cъдeбнaтa влacт, с които беше въведен и механизмът зa ĸoнтpoл нa глaвния пpoĸypop? Останаха два месеца, единият от които е парламентарна ваканция, а изборът на членове на регулатори и институции се оказва най-спорната част в не-коалиционните отношения между ГЕРБ–СДС и ПП–ДБ. Пред БНР адв. Валя Гигова заяви:

Главният прокурор не е случаен административен ръководител и не може да бъде избран от ВСС, който е компрометиран като авторитет.

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

Преводът не е веднъж завинаги

Post Syndicated from Габриела Манова original https://www.toest.bg/prevodut-ne-e-vednuzh-zavinagi/

Преводът не е веднъж завинаги

Анджела Родел е родена в Уисконсин, САЩ, през 1974 г. Живее и работи в България от близо 20 години. Превеждала е знакови имена в българската литература – като Георги Господинов, Ивайло Петров, Георги Марков, Захари Карабашлиев, Ангел Игов, Милен Русков, Вера Мутафчиева и др. През май 2023 г. заедно с Георги Господинов печели Международния Букър – най-престижната награда за художествена литература в превод на английски език.

С Анджела Родел разговаря Габриела Манова

Срещам се с Анджела Родел в офиса ѝ в топъл юнски ден. Питам я харесва ли ѝ горещината, защото знам, че е родом от доста по-студено място. Засмива се, казва, че дори тя се предава и пуска климатик – все пак идва от суперклиматизираната Америка. Америка. За много българи американската мечта е още жива и мнозина са заминали да търсят щастието си отвъд океана.

Но Анджела е избрала да дойде тук. И да остане.

Едно от първите ѝ посещения в България е по време на Виденовата зима. Чудя се как не се е отказала. Разказва ми, че преди това отишла в Копривщица през 95-та, а там „супер, някакви планини, някакви баби, слънце, беше много така, романтично и идилично, и вече като кандидатствах за „Фулбрайт“¹ през 96–97-ма, точно за Виденовата зима бях тук“.

Преживяването я заземява: „За мен беше страхотен урок, бях на 23 и разбрах каква щастливка съм, че това, което приемаме за даденост в Америка, хич не е даденост. Тогава имах много нереална, романтична представа. А за мен беше просто по-дълбоко запознаване с България.“ Сравнява го с обичта към човек – в един момент виждаш всичките му страни – и добрите, и лошите, но това не те отблъсква, просто го приемаш такъв, какъвто е. „Благодарна съм, че бях тук през този период. Мисля, че получих някакво прозрение и за себе си, и за България.“

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

На 23 май, в навечерието на най-хубавия български празник, Георги Господинов и Анджела Родел спечелиха Международния Букър за романа „Времеубежище“ и превода му на английски език. Поздравявам я за изключителното признание и споделям, че още в момента, в който Лейла Слимани обяви, че романът, избран от журито, е отличен и заради силно поетичния си език, си казах: няма как да не е „Времеубежище“. Наистина ли, отвръща Анджела, и казва, че с Георги са били изумени, че изобщо са стигнали до дългия списък. „Още ми се вижда като сън, не мога да повярвам.“ Питам я дали за нея е било мечта да спечели тази награда. „Дори не смеехме да си мечтаем. Когато станахме част от дългия списък, си казахме, че е голяма чест, и нали, дотук бяхме! Като влязохме и в краткия списък – пак: дотук бяхме! Аз лично не посмях да си мечтая такова нещо, но…“

Споделям с Анджела надеждите си високото признание да окаже влияние върху самочувствието на българите по отношение на българската литература. „Както каза Георги в много интервюта,

това би трябвало да отвори вратата и за млади писатели, и за други български писатели; вече ще бъдем на картата…“

Интересно ми е какви са според нея впечатленията на американците от България и българската литература. „Средният американец не е чувал за България, не знае къде е. Може би сега, след като вече има толкова българи в Америка, си казват: А, да, имам един приятел, той е българин, тук, на работа, но като цяло никакви асоциации нямат.“ Надява се Международният Букър да е „вратичка към източноевропейската литература“.

„В САЩ реалността е такава, че процентът преводна литература, която се издава, е много малък. И той включва цялата нехудожествена литература, преводни учебници, научни трудове, справочници и т.н. Докато в България дори през социализма винаги е имало много преводна литература. И като гледам пазара, много се следи. Все пак мисля, че европейците като цяло, включително България, са по-отворени и на преводната литература не се гледа като на втора ръка, докато в САЩ, поне допреди двайсетина години, да гледаш филм със субтитри беше някак под нивото им. Но новото поколение вече не мисли така.“

Разпитвам Анджела за първите ѝ стъпки в превода на български. Започнала е с поезия: „Това с превода на поезия стана случайно, но мисля, че има нещо вярно, че най-добрият преводач на поезия е поет, затова обичам да работя с български или американски поети като редактор. Чета поезия, но чувствам, че не е моето. Превела съм доста поезия, но винаги с чувство на притеснение…“ Анджела преподава в магистърската програма „Преводач-редактор“, където също превеждат поезия: „Всички винаги се притесняват, страхуват се, питат се как ще стане, но все се оказва, че има един-двама със страхотна дарба… Те сякаш са поети, още неоткрити, и преводачи, на които това е силната им страна.“

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

„Има стратегии, няма невъзможни неща за превод… почти,

но да, имам едно наум, че всеки текст съдържа капани.“

А кои са нейните учители в превода? Имало ли е въобще някой, който да се занимава с превод от български на английски във времето, когато е дошла в България? „Малко съжалявам, че не съм имала учител, може би по-бързо щях да стигна до някакви важни изводи, но като започнах да превеждам – през 2004–2005 г. работих в списание Vagabond – и там Антони Георгиев, който е много опитен, страшно ми помогна, даде ми кураж. Тогава, като новак, се придържах много буквално към текста, коя съм аз, че да… Нямах самочувствие да е по-леко, свободно, но Антони много ме окуражаваше. Ти знаеш този език, той е и твой, може да даваш нещо от себе си, и това беше много важно… че той като редактор минаваше през всички текстове и държеше преводът да е верен на оригиналния текст, но и да не е скован, дърварски – беше много полезен учител в това отношение. Самите автори също много ми помогнаха, даваха обратна връзка. Имах късмет да работя с автори, които от своя страна имаха търпение да работят с мен.“

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

Да си преводач от български на английски включва и доста посланическа работа. „Много е трудно и това е неплатен труд, нека бъдем откровени. Писах един текст за сборника на Димитър Камбуров и Михаела Харпър² и там точно за това говорех, че ти не си само преводач, никой не идва при теб да ти каже: Дай да преведем един български писател. Самият ти трябва да си скаут, да откриеш интересен автор, да инвестираш в превод, после ставаш агент, търсиш списания, издатели, евентуално намираш възможност за публикуване. И след това пак ти си този, който кандидатства за грантове, финансиране, ти си връзката с издателите… А когато, живот и здраве, книгата излезе, ако авторът не е много сигурен в английския си, трябва да ходиш по разни фестивали – което е супер! Примерно, с Вера Мутафчиева, която вече не е между живите, аз ще правя книжно турне, защото съм и рекламен агент, и пиар… Цялата работа включва много повече от чистата работа с текста.“

И като споменаваме Вера Мутафчиева, Анджела вече е на финалната права в редактирането на превода на „Случаят Джем“. Признава, че е било предизвикателство. „Имаше много турски вътре – нали Вера Мутафчиева е била османистка, учен, историк, и не дава нито бележки под линия, нито нищо, просто ти си в турския текст. Открих един турчин, с когото да се консултирам. Иначе езикът ѝ е страхотен, авторката е с много готино чувство за хумор. За съжаление, не съм я познавала лично, но явно е била добра психоложка, уловила е какво е характерното в човека, в нейните персонажи. Затова въпреки че беше трудно, беше и адски приятно за превод. А и текстът е много авангарден за времето си! През 60-те години такава структура! Как изобщо е излязло подобно нещо в социалистическа България…“ Може да прочетете и прекрасния текст, в който самата Анджела разказва за преживяването си с книгата.

Питам я как се е справила с изискването на американските издателства нищо да не се извежда под линия. „По принцип модата е такава, че не бива да има. Смята се, че това изважда читателя от текста, и преди, когато работехме с издателство Open Letters по „Физика на тъгата“, нямахме право една бележка под линия да сложим, което е много трудно – цялата книга е пълна със соцреалии, просто се видяхме в чудо. С новия издател – Norton, просто без да питаме, решихме, че не може. Но оттам ми пратиха някакви други свои книги, видях, че има бележки, и ги попитах: Ама може ли бележки под линия, а те: Да, естествено, може да използвате. С Георги вече бяхме толкова опарени от предишния си опит, че подходихме много пестеливо. Може би няма и десет бележки под линия в целия роман (Time Shelter).“

И все пак как се предава на американския читател целият този социализъм и въобще културата на Източния блок и мисленето на хората по онова време?

„Едно от спасенията за мен като преводач, е, че хората, които четат преводна литература, са доста подбрана публика;

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

Припомням ѝ за ателието по превод на Фондация „Елизабет Костова“ от 2020 г., в което лектори бяха самата Родел, Изидора Анжел, Екатерина Петрова и Велина Минкова. Тогава за пръв път осъзнах колко е трудно да бъдеш преводач от български на английски, колко усилия изисква това. Анджела признава, че Елизабет Костова и фондацията са я въвели в тази сфера и среда, благодарна е, че са ѝ помогнали да създаде контакти с издатели и редактори.

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

хегемонията на native speakers³ в превода полека си отива.

Например тази година и аз, и Изидора [Анжел] бяхме избрани за стипендиантки на National Endowment for the Arts, и от двайсетина проекта имаше около 6–7 души, които не бяха native speakers, но въпреки това спечелиха. Вече разбираме, че няма един английски, и това, че езикът не ти е роден, не означава, че не можеш да бъдеш добър преводач или че няма какво да дадеш на този текст. Нещата се променят за добро.“

Имало ли е текст или части от текст, за които си е казвала: Не, това не може да се преведе? „Да, по-скоро отделни моменти, и все се сещам за Иглика Василева, която, като превеждала „Одисей“, в един момент толкова се фрустрирала, че взела един нож и пробола книгата. И аз напълно я разбирам!

Сега например с „Хайка за вълци“ – толкова обичам този роман, просто брилянтен език, с чувство за хумор… Може би 7–8 години търсих издател, най-накрая намерих, и си викам: Ама не мога да я преведа тая книга, няма да стане на английски, какво правя аз тука… Не мога! И в един момент, като отшумя това отчаяние, си казах: Да, значи, няма да стане толкова готино, както е на български, с всички там диалекти, идиолекти, но все пак има толкова много интересни неща, чисто исторически, лични, социални, политически, че има стойност, дори всички тънки езикови работи да няма как да ги спася… Поне аз така се утеших.

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

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

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

1 Анджела Родел идва в България да учи български със стипендия „Фулбрайт“, а днес е изпълнителен директор на Българо-американската комисия за образователен обмен „Фулбрайт“.

2 Става дума за сборника Bulgarian Literature as World Literature.

3 Ползва се за хора, на които даден език им е майчин.

4 Служба на федералното правителство в САЩ и най-големият спонсор на изкуствата и обучението по изкуства.

Кюрдският въпрос и „бездомността“ на 30 милиона души

Post Syndicated from Александър Нуцов original https://www.toest.bg/kyurdskiyat-vupros-i-bezdomnostta-na-30-miliona-dushi/

Кюрдският въпрос и „бездомността“ на 30 милиона души

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

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

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

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

Кратка хронология

Локални кюрдски въстания има още преди началото на Първата световна война (1907 г. и 1914 г.). По време на войната обаче започва да се оформя идеята за установяване на независима кюрдска държава. Първоначално тя е подкрепена от съюзниците в Антантата – Великобритания и Русия, с цел да провокират вътрешна съпротива срещу техния военен враг – Османската империя. Избухналите въстанията по време на войната биват потушени, но са важни за покълването на кюрдския национализъм и за бъдещите съпротивителни движения.

След създаването на Турската република избухват нови неуспешни въстания през 1925 г. и в периода 1926–1930 г. Те дават повод на турската държава да оправдае извънредни ответни мерки, насочени срещу кюрдската общност и етническата ѝ същност, включително репресии, насилствена промяна на имената, изселване на кюрди от югоизточните турски територии, погазване на езикови и други малцинствени права, уредени в Лозанския договор от 1923 г. В отговор на това кюрдите започват да сформират редица съпротивителни движения, най-радикалното от които е добре познатата днес Кюрдска работническа партия (Partiya Karkeran Kurdistan, PKK), формално основана през 1974 г. от група студенти от кюрдски произход и обявена за терористична организация от различни държави и институции, сред които Турция, САЩ и Европейския съюз.

С началото на въоръжените действия на PKK през 1984 г. антагонизмът между Турция и кюрдската общност придобива крайни риторически и физически измерения. Влиза се в спирала от насилие, която унищожава пространствата за диалог и разрешаване на конфликта по мирен път – отвъд логиката на сигурността, насилието и войната. Неслучайно крехките моменти на примирие (например през периода 2012–2015 г.) лесно рухват под натиска на вътрешнополитическите и международните обстоятелства, въпреки че PKK променя изначалната си концепция и се отказва от идеята за независима държава за сметка на автономия и повече права.

Кюрдите днес

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

Една част от кюрдското население в Турция (общо около 15 млн.) е добре интегрирана в обществото и участва активно в него. По-гладко, разбира се, се приобщават младите хора в по-големите населени места, където връзката с етническите им корени и традиции напълно липсва или не е толкова устойчива. Въпреки това кюрдската общност остава силно маргинализирана най-вече по-отношение на своите езикови права. Кюрдският език и до днес не е признат за официален, въпреки че около 20% от турското население има кюрдски корени. От това произлиза и забраната за използването му за целите на официалното образование, което на практика ограничава конституционното право на образование на кюрдите, владеещи само майчиния си език.

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

В анализа на Al-Monitor оттогава се посочва, че отношението на турските власти към кюрдското малцинство е променливо. В периода, в който Турция води активни преговори за присъединяване към Европейския съюз, рестриктивните мерки спрямо кюрдския език са смекчени, а в училищата дори е въведен избираем предмет по кюрдски език. През 2015 г. обаче, когато мирните преговори между Турция и PKK се провалят, а междувременно преговорите с ЕС биват замразени, държавната политиката спрямо кюрдите рязко се променя. Сред посочените примери в материалa са натискът върху родители да не записват децата си в избираемите курсове по кюрдски и чистката на ръководители с кюрдски корени в местните администрации (заради предполагаеми връзки с PKK) и замяната им с верни на Ердоган лица.

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

Както вече отбелязахме, турската власт и PKK управляват конфликта през призмата на сигурността. Докато Ердоган разглежда кюрдите (и в частност PKK) като екзистенциална заплаха за турската териториална цялост и суверенитет, а PKK възприема властта като заплаха за съществуването на кюрдската идентичност, двете страни ще легитимират прилагането на извънредни мерки – насилие, от една страна, и репресии, от друга. Омагьосаният кръг драстично стеснява терена за действие на тази част от кюрдската общност, която се опитва да пречупи сегашната логика и да прехвърли спора в полето на разговора и мирния напредък в отношенията.

Между чука и наковалнята

Вътрешната хетерогенност е съпътствана от противоречия на териториален принцип. Ситуацията с кюрдите в Сирия и Ирак е коренно различна. Сирийските кюрди (около 10% от населението) активно участват във военните действия в страната, борейки се за автономия в рамките на Сирия, без да декларират намерение за създаване на независима кюрдска държава по границите между Турция, Сирия и Ирак. Кюрдите на практика контролират североизточните части на Сирия (историческия регион Рожава), където установяват нестабилна автономия.

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

Поради невъзможността в един материал да разгледаме подробно характера и отношенията на многобройните играчи сред кюрдското население, ще направим следното обобщение: кюрдската общност е съставена от образувания с различна структура, роля и позиции на фона на особеностите в страните, които населяват. Във всяка от държавите съществуват кюрдски политически формации, повечето от които разполагат със собствени военни подразделения (например PYD и YPG в Сирия). Различните партийни, военни или граждански организации често имат лични, племенни, идеологически или управленски различия както вътрешно, така и в отношенията помежду си. И дори когато интересите им се преплитат, трудно установяват единно ръководство в преследване на обща цел.

Какво да следим?

Кюрдският въпрос се задълбочи с избухването на революцията в Сирия, когато кюрдите придобиха огромно международно значение като основна сила в борбата срещу тероризма в Близкия изток. Борбата им за автономия и повече права обаче е изправена пред огромни предизвикателства както по отношение на необходимостта от смекчаване на различията между отделните кюрдски общности, така и по отношение на преплитащите се, често променливи интереси на регионалните играчи (най-вече Турция, Сирия и Ирак) и цялата международната общност (в частност САЩ, ЕС, Русия и Китай).

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

Introducing the latest Machine Learning Lens for the AWS Well-Architected Framework

Post Syndicated from Raju Patil original https://aws.amazon.com/blogs/architecture/introducing-the-latest-machine-learning-lens-for-the-aws-well-architected-framework/

Today, we are delighted to introduce the latest version of the AWS Well-Architected Machine Learning (ML) Lens whitepaper. The AWS Well-Architected Framework provides architectural best practices for designing and operating ML workloads on AWS. It is based on six pillars: Operational Excellence, Security, Reliability, Performance Efficiency, Cost Optimization, and—a new addition to this revision—Sustainability. The ML Lens uses the Well-Architected Framework to outline the steps for performing an AWS Well-Architected review for your ML implementations.

The ML Lens provides a consistent approach for customers to evaluate ML architectures, implement scalable designs, and identify and mitigate technical risks. It covers common ML implementation scenarios and identifies key workload elements to allow you to architect your cloud-based applications and workloads according to the AWS best practices that we have gathered from supporting thousands of customer implementations.

The new ML Lens joins a collection of Well-Architected lenses that focus on specialized workloads such as the Internet of Things (IoT), games, SAP, financial services, and SaaS technologies. You can find more information in AWS Well-Architected Lenses.

What is the Machine Learning Lens?

Let’s explore the ML Lens across ML lifecycle phases, as the following figure depicts.

Machine Learning Lens

Figure 1. Machine Learning Lens

The Well-Architected ML Lens whitepaper focuses on the six pillars of the Well-Architected Framework across six phases of the ML lifecycle. The six phases are:

  1. Defining your business goal
  2. Framing your ML problem
  3. Preparing your data sources
  4. Building your ML model
  5. Entering your deployment phase
  6. Establishing the monitoring of your ML workload

Unlike the traditional waterfall approach, an iterative approach is required to achieve a working prototype based on the six phases of the ML lifecycle. The whitepaper provides you with a set of established cloud-agnostic best practices in the form of Well-Architected Pillars for each ML lifecycle phase. You can also use the Well-Architected ML Lens wherever you are on your cloud journey. You can choose either to apply this guidance during the design of your ML workloads, or after your workloads have entered production as a part of the continuous improvement process.

What’s new in the Machine Learning Lens?

  1. Sustainability Pillar: As building and running ML workloads becomes more complex and consumes more compute power, refining compute utilities and assessing your carbon footprint from these workloads grows to critical importance. The new pillar focuses on long-term environmental sustainability and presents design principles that can help you build ML architectures that maximize efficiency and reduce waste.
  2. Improved best practices and implementation guidance: Notably, enhanced guidance to identify and measure how ML will bring business value against ML operational cost to determine the return on investment (ROI).
  3. Updated guidance on new features and services: A set of updated ML features and services announced to-date have been incorporated into the ML Lens whitepaper. New additions include, but are not limited to, the ML governance features, the model hosting features, and the data preparation features. These and other improvements will make it easier for your development team to create a well-architected ML workloads in your enterprise.
  4. Updated links: Many documents, blogs, instructional and video links have been updated to reflect a host of new products, features, and current industry best practices to assist your ML development.

Who should use the Machine Learning Lens?

The Machine Learning Lens is of use to many roles, including:

  • Business leaders for a broader appreciation of the end-to-end implementation and benefits of ML
  • Data scientists to understand how the critical modeling aspects of ML fit in a wider context
  • Data engineers to help you use your enterprise’s data assets to their greatest potential through ML
  • ML engineers to implement ML prototypes into production workloads reliably, securely, and at scale
  • MLOps engineers to build and manage ML operation pipelines for faster time to market
  • Risk and compliance leaders to understand how the ML can be implemented responsibly by providing compliance with regulatory and governance requirements

Machine Learning Lens components

The Lens includes four focus areas:

1. The Well-Architected Machine Learning Design Principles

A set of best practices that are used as the basis for developing a Well-Architected ML workload.

2. The Machine Learning Lifecycle and the Well Architected Framework Pillars

This considers all aspects of the Machine Learning Lifecycle and reviews design strategies to align to pillars of the overall Well-Architected Framework.

  • The Machine Learning Lifecycle phases referenced in the ML Lens include:
    • Business goal identification – identification and prioritization of the business problem to be addressed, along with identifying the people, process, and technology changes that may be required to measure and deliver business value.
    • ML problem framing – translating the business problem into an analytical framing, i.e., characterizing the problem as an ML task, such as classification, regression, or clustering, and identifying the technical success metrics for the ML model.
    • Data processing – garnering and integrating datasets, along with necessary data transformations needed to produce a rich set of features.
    • Model development – iteratively training and tuning your model, and evaluating candidate solutions in terms of the success metrics as well as including wider considerations such as bias and explainability.
    • Model deployment – establishing the mechanism to flow data though the model in a production setting to make inferences based on production data.
    • Model monitoring – tracking the performance of the production model and the characteristics of the data used for inference.
  • The Well-Architected Framework Pillars are:
    • Operational Excellence – ability to support ongoing development, run operational workloads effectively, gain insight into your operations, and continuously improve supporting processes and procedures to deliver business value.
    • Security – ability to protect data, systems, and assets, and to take advantage of cloud technologies to improve your security.
    • Reliability – ability of a workload to perform its intended function correctly and consistently, and to automatically recover from failure situations.
    • Performance Efficiency – ability to use computing resources efficiently to meet system requirements, and to maintain that efficiency as system demand changes and technologies evolve.
    • Cost Optimization – ability to run systems to deliver business value at the lowest price point.
    • Sustainability – addresses the long-term environmental, economic, and societal impact of your business activities.

3. Cloud-agnostic best practices

These are best practices for each ML lifecycle phase across the Well-Architected Framework pillars irrespective of your technology setting. The best practices are accompanied by:

  • Implementation guidance – the AWS implementation plans for each best practice with references to AWS technologies and resources.
  • Resources – a set of links to AWS documents, blogs, videos, and code examples as supporting resources to the best practices and their implementation plans.

4. Indicative ML Lifecycle architecture diagrams to illustrate processes, technologies, and components that support many of these best practices.

What are the next steps?

The new Well-Architected Machine Learning Lens whitepaper is available now. Use the Lens whitepaper to determine that your ML workloads are architected with operational excellence, security, reliability, performance efficiency, cost optimization, and sustainability in mind.

If you require support on the implementation or assessment of your Machine Learning workloads, please contact your AWS Solutions Architect or Account Representative.

Special thanks to everyone across the AWS Solution Architecture, AWS Professional Services, and Machine Learning communities, who contributed to the Lens. These contributions encompassed diverse perspectives, expertise, backgrounds, and experiences in developing the new AWS Well-Architected Machine Learning Lens.

AWS Application Migration Service Major Updates: Global View, Import and Export from Local Disk, and Additional Post-launch Actions

Post Syndicated from Irshad Buchh original https://aws.amazon.com/blogs/aws/aws-application-migration-service-major-updates-global-view-import-and-export-from-local-disk-and-additional-post-launch-actions/

AWS Application Migration Service simplifies, expedites, and reduces the cost of migrating your applications to AWS. It allows you to lift and shift many physical, virtual, or cloud servers without compatibility issues, performance disruption, or long cutover windows. You can minimize time-intensive, error-prone manual processes by automating replication and conversion of your source servers from physical, virtual, or cloud infrastructure to run natively on AWS by using Application Migration Service for migration. Earlier this year, we introduced major improvements, such as a server migration metrics dashboard, import and export, and additional post-launch modernization actions.

Today, I’m pleased to announce three major updates to Application Migration Service. Here’s the quick summary for each feature release:

  • Global View – You can manage large-scale migrations across multiple accounts. This feature provides you both visibility and the ability to perform specific actions on source servers, apps, and waves in different AWS accounts.
  • Import and Export from Local Disk – You can now use Application Migration Service to import your source environment inventory list to the service from a CSV file on your local disk. You can also export your source server inventory list from the service to a CSV file and download it to your local disk. You can continue leveraging the previously launched import and export functionality to and from an S3 bucket.
  • Additional Post-launch Actions – In this update, Application Migration Service added four additional predefined post-launch actions. These actions are applied to your migrated applications when you launch them on AWS.

Let me share how you can use these features for your migration.

Global View
Global View provides you the visibility and the ability to perform specific actions on source servers, applications, and waves in different AWS accounts. Global view uses AWS Organizations to structure a management account (which has access to source servers in multiple member accounts) and member accounts (which only have access to their own source servers).

To use this feature, you need to have an AWS account in which AWS Application Migration Service is initialized. This account must be an admin in AWS Organizations or a delegated admin for AWS Application Migration Service. You can view the Global View page on the Application Migration Service page in the AWS Management Console by selecting Global View in the left navigation menu.

You can use the global view feature to see source servers, applications and waves across multiple managed accounts and perform various actions, including:

  • Launching test and cutover instances across accounts
  • Monitoring migration execution progress across accounts

The main Global View page provides an overview of your account and this information changes depending on whether you have a management account or a member account.

In a management account, you can see the AWS organizations permissions, the count of linked accounts, and the total number of source servers, applications, and waves under Account information. The Linked accounts section displays the relevant information for your linked accounts. It shows all the linked accounts this account has access to, including the account you’re logged into (the management account) and the member accounts that are linked to it. If the management account has access to two additional member accounts, the Linked accounts section will show three accounts. It’s the total number of accounts that are visible through this management account (including itself). For member accounts, this page only displays the account information that includes the AWS organizations permissions and the number of source servers, applications, and waves in the specific account.

Global view

In your management account, you can access and review source servers, applications and waves within your account and across all member accounts. As a manager, you can choose between All accounts and My account from the drop-down menu, which allows you to change you view of presented source servers, applications or waves.

Waves

Import and Export from Local Disk
A comprehensive data center inventory forms the foundation of any successful migration endeavor. This inventory encompasses a comprehensive list of servers and applications managed by customers on premises. The inventory is categorized into migration waves to facilitate efficient migration planning.

Typically, this inventory is compiled using discovery tools or created manually by IT administrators. Perhaps you maintain your data center inventory in Excel spreadsheets. With Application Migration Service, we offer seamless support for importing your inventory list from a CSV file, which follows a format similar to the one used by Cloud Migration Factory.

In the previous release, Application Migration Service supported the option to import a file from Amazon S3 and export a file to Amazon S3. In this latest release, Application Migration Service supports the option to import a file from local disk and export a file to local disk. This makes it easy for you to manage large scale-migrations and ingest your inventory of source servers, applications and waves, including their attributes such as EC2 instance type, subnet and tags. These attributes are the parameters used to populate the EC2 launch template.

Import and Export

To start using the import feature, you need to identify your servers and application inventory. You can do this manually or using discovery tools. The next thing you need to do is download the import template, which you can access from the console.

Import Local

After you download the import template, you can start mapping your inventory list onto this template. While mapping your inventory, you can group related servers into applications and waves. You can also perform configurations, such as defining Amazon Elastic Compute Cloud (Amazon EC2) launch template settings and specifying tags for each wave.

The following screenshot is an example of the results of my import template.

Inventory

On the Application Migration Service page in the AWS Management Console, select Import on the left-side navigation menu (under Import and Export). Under the Import inventory tab, select Import from local disk. Select Choose file and choose the local file containing your inventory list. Select Import, and the inventory file is imported into Application Migration Service. When the import process is complete, the details of the import results appear.

Now, you can view all your inventory inside the Source servers, Applications, and Waves pages on the Application Migration Service console.

To export your inventory to a local file, select Export on the left-side navigation menu of the Application Migration Service page. Under Export inventory tab, choose Export to local disk. Specify the name of the file to download under Destination filename. Choose Export, and the inventory file downloads to your local disk. Application Migration Service uses an S3 bucket within your account for the import and export operations, even when using local disk. You must have the required permissions to perform this action. You can modify the exported inventory file and reimport it to perform bulk configuration updates across your inventory. When the global view feature is activated upon reimport, configuration changes are applied also across accounts.

Export Local

Additional Post-launch Actions
Post-launch actions allow you to control and automate actions performed after your servers have been launched in AWS. You can use predefined or custom post-launch actions.

Application Migration Service now has four additional predefined post-launch actions to run in your Amazon EC2 instances on top of the existing predefined post-launch actions. These additional post-launch actions provide you with flexibility to maximize your migration experience.

Post Launch template

The new four additional predefined post-launch actions are as follows:

  • Configure Time Sync – You can use the Time Sync feature to set the time for your Linux instance using ATSS.
  • Validate disk space – You can use the disk space validation feature to obtain visibility into the disk space and to ensure that you have enough available disk space on your target server.
  • Verify HTTP(S) response – You can use the Verify HTTP(S) response feature to conduct HTTP(S) connectivity checks to a predefined list of URLs. The feature verifies the connectivity to the launched target instance.
  • Enable Amazon Inspector – The Enable Amazon Inspector feature allows you to run security scans on your Amazon EC2 resources, including the target instances launched by Application Migration Service. The Amazon Inspector service is enabled at the account level. This action uses the Enable, BatchGetAccountStatus, and CreateServiceLinkedRole APIs.

Now Available
The Global View, Import and Export Feature from Local, and Additional Post-launch Actions are available now, and you can start using them today in all Regions where AWS Application Migration Service is supported. Visit the Application Migration Service User Guide to dive deeper into these exciting features and you can refer to the Getting started with AWS Application Migration Service to kickstart your workload migration to AWS.

—Irshad

Serverless ICYMI Q2 2023

Post Syndicated from Benjamin Smith original https://aws.amazon.com/blogs/compute/serverless-icymi-q2-2023/

Welcome to the 22nd edition of the AWS Serverless ICYMI (in case you missed it) quarterly recap. Every quarter, we share all the most recent product launches, feature enhancements, blog posts, webinars, live streams, and other interesting things that you might have missed!

In case you missed our last ICYMI, check out what happened last quarter here.

Serverless Innovation Day

AWS recently hosted the Serverless Innovation Day, a day of live streams that showcased AWS serverless technologies such as AWS Lambda, Amazon ECS with AWS Fargate, Amazon EventBridge, and AWS Step Functions. The event included insights from AWS leaders such as Holly Mesrobian, Ajay Nair, and Usman Khalid, as well as prominent customers and our serverless Developer Advocate team. It provided insights into serverless modernization success stories, use cases, and best practices. If you missed the event, you can catch up on the recorded sessions here.

Serverless Land, your go-to resource for all things serverless, expanded to include a new Serverless Testing section. This provides valuable insights, patterns, and best practices for testing integrations using AWS SAM and CDK templates.

Serverless Land also launched a new learning page featuring a collection of resources, including blog posts, videos, workshops, and training materials, allowing users to choose a learning path from a variety of topics. “EventBridge Visuals“, small, easily digestible visuals focused on EventBridge have also been added.

AWS Lambda

Lambda introduced support for response payload streaming allowing functions to progressively stream response data to clients. This feature significantly improves performance by reducing the time to first byte (TTFB) latency, benefiting web and mobile applications.

Response streaming is particularly useful for applications with large payloads such as images, videos, documents, or database results. It eliminates the need to buffer the entire payload in memory and enables the transfer of responses larger than Lambda’s 6 MB limit, up to a soft limit of 20 MB.

By configuring the Function URL to use the InvokeWithResponseStream API, streaming responses can be accessed through an HTTP client that supports incremental response data. This enhancement expands Lambda’s capabilities, allowing developers to handle larger payloads more efficiently and enhance the overall performance and user experience of their web and mobile applications.

Lambda now supports Java 17 with Amazon Corretto distribution, providing long-term support and improved performance. Java 17 introduces new language features like records, sealed classes, and multi-line strings. The runtime uses ZGC and Shenandoah garbage collectors to reduce latency. Default JVM configuration changes optimize tiered compilation for reduced startup latency. Developers can use Java 17 in Lambda through AWS Management Console, AWS SAM, and AWS CDK. Popular frameworks like Spring Boot 3 and Micronaut 4 require Java 17 as a minimum. Micronaut provides a web service to generate example projects using Java 17 and AWS CDK infrastructure.

Lambda now supports the Ruby 3.2 runtime, enabling you to write serverless functions using the latest version of the Ruby programming language. This update enhances developer productivity and brings new features and improvements to your Ruby-based Lambda functions.

Lambda introduced support for Kafka and Amazon MQ event sources in four additional Regions. This expanded availability allows developers to build event-driven architectures using these messaging systems in more regions around the world, providing greater flexibility and scalability. It also supports Kafka and Amazon MQ event sources in AWS GovCloud (US) Regions, allowing government organizations to leverage the benefits of event-driven architectures in their cloud environments.

Lambda also added support for starting from a specific timestamp for Kafka event sources, allowing for precise message processing and useful scenarios like Disaster Recovery, without any additional charges.

Serverless Land has launched new learning paths for Lambda to help you level up your serverless skills:

  • The Java Replatforming learning path guides Java developers through the process of migrating existing Java applications to a serverless architecture.
  • The Lift and Shift to Serverless learning path provides guidance on migrating traditional applications to a serverless environment.
  • Lambda Fundamentals is a 23-part video series providing practical examples and tips to help you get started with serverless development using Lambda.

The new AWS Tech Talk, Best practices for building interactive applications with AWS Lambda, helps you learn best practices and architectural patterns for building web and mobile backends as well as API-driven microservices on Lambda. Explore how to take advantage of features in Lambda, Amazon API Gateway, Amazon DynamoDB, and more to easily build highly scalable serverless web applications.

AWS Step Functions

The latest update to AWS Step Functions introduces versions and aliases, allows users to run specific state machine revisions, ensuring reliable deployments, reducing risks, and providing version visibility. Appending version numbers to the state machine ARN enables selection of desired versions, even after updates. Aliases distribute execution requests based on weights, supporting incremental deployment patterns.

This enhances confidence in state machine updates, improves observability, auditing, and can be managed through the Step Functions console or AWS CloudFormation. Versions and aliases are available in all supported AWS Regions at no extra cost.

AWS SAM

AWS SAM CLI has introduced a new feature called remote invoke that allows developers to test Lambda functions in the AWS Cloud. This feature enables developers to invoke Lambda functions from their local development environment and provides options for event payloads, output formats, and logging.

It can be used with or without AWS SAM and can be combined with AWS SAM Accelerate for streamlined development and testing. Overall, the remote invoke feature simplifies serverless application testing in the AWS Cloud.

Amazon EventBridge

EventBridge announced an open-source connector for Kafka Connect, providing seamless integration between EventBridge and Kafka Connect. This connector simplifies the process of streaming events from Kafka topics to EventBridge, enabling you to build event-driven architectures with ease.

EventBridge has improved end-to-end latencies for event buses, delivering events up to 80% faster. This enables broader use in latency-sensitive applications such as industrial and medical applications, with the lower latencies applied by default across all AWS Regions at no extra cost.

Amazon Aurora Serverless v2

Amazon Aurora Serverless v2 is now available in four additional Regions, expanding the reach of this scalable and cost-effective serverless database option. With Aurora Serverless v2, you can benefit from automatic scaling, pause-and-resume capability, and pay-per-use pricing, enabling you to optimize costs and manage your databases more efficiently.

Amazon SNS

Amazon SNS now supports message data protection in five additional Regions, ensuring the security and integrity of your message payloads. With this feature, you can encrypt sensitive message data at rest and in transit, meeting compliance requirements and safeguarding your data.

Serverless Blog Posts

April 2023

Apr 27 – AWS Lambda now supports Java 17

Apr 27 – Optimizing Amazon EC2 Spot Instances with Spot Placement Scores

Apr 26 – Building private serverless APIs with AWS Lambda and Amazon VPC Lattice

Apr 25 – Implementing error handling for AWS Lambda asynchronous invocations

Apr 20 – Understanding techniques to reduce AWS Lambda costs in serverless applications

Apr 18 – Python 3.10 runtime now available in AWS Lambda

Apr 13 – Optimizing AWS Lambda extensions in C# and Rust

Apr 7 – Introducing AWS Lambda response streaming

May 2023

May 24 – Developing a serverless Slack app using AWS Step Functions and AWS Lambda

May 11 – Automating stopping and starting Amazon MWAA environments to reduce cost

May 10 – Monitor Amazon SNS-based applications end-to-end with AWS X-Ray active tracing

May 10 – Debugging SnapStart-enabled Lambda functions made easy with AWS X-Ray

May 10 – Implementing cross-account CI/CD with AWS SAM for container-based Lambda functions

May 3 – Extending a serverless, event-driven architecture to existing container workloads

May 3 – Patterns for building an API to upload files to Amazon S3

June 2023

Jun 7 – Ruby 3.2 runtime now available in AWS Lambda

Jun 5 – Implementing custom domain names for Amazon API Gateway private endpoints using a reverse proxy

June 22 – Deploying state machines incrementally with versions and aliases in AWS Step Functions

June 22 – Testing AWS Lambda functions with AWS SAM remote invoke

Videos

Serverless Office Hours – Tues 10AM PT

Weekly live virtual office hours. In each session we talk about a specific topic or technology related to serverless and open it up to helping you with your real serverless challenges and issues.

YouTube: youtube.com/serverlessland
Twitch: twitch.tv/aws

LinkedIn:  linkedin.com/company/serverlessland

April 2023

Apr 4 – Serverless AI with ChatGPT and DALL-E

Apr 11 – Building Java apps with AWS SAM

Apr 18 – Managing EventBridge with Kubernetes

Apr 25 – Lambda response streaming

May 2023

May 2 – Automating your life with serverless 

May 9 – Building real-life asynchronous architectures

May 16 – Testing Serverless Applications

May 23 – Build faster with Amazon CodeCatalyst 

May 30 – Serverless networking with VPC Lattice

June 2023

June 6 – AWS AppSync: Private APIs and Merged APIs 

June 13 – Integrating EventBridge and Kafka

June 20 – AWS Copilot for serverless containers

June 27 – Serverless high performance modeling

FooBar Serverless YouTube channel

April 2023

Apr 6 – Designing a DynamoDB Table in 4 Steps: From Entities to Access Patterns

Apr 14 – Amazon CodeWhisperer – Improve developer productivity using machine learning (ML)

Apr 20 – Beginner’s Guide to DynamoDB with AWS CDK: Step-by-Step Tutorial for provisioning NoSQL Databases

Apr 27 – Build a WebApp that uses DynamoDB in 6 steps | DynamoDB Expressions

May 2023

May 4 – How to Migrate Data to DynamoDB?

May 11 – Load Testing DynamoDB: Observability and Performance tuning

May 18 – DynamoDB Streams – THE most powerful feature from DynamoDB for event-driven applications

May 25 – Track Application Events with DynamoDB streams and Email Notifications using EventBridge Pipes

June 2023

Jun 1 – How to filter messages based on the payload using Amazon SNS

June 8 – Getting started with Amazon Kinesis

Still looking for more?

The Serverless landing page has more information. The Lambda resources page contains case studies, webinars, whitepapers, customer stories, reference architectures, and even more Getting Started tutorials.

You can also follow the Serverless Developer Advocacy team on Twitter to see the latest news, follow conversations, and interact with the team.

[$] Improving i_version

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

The i_version
field in struct inode
is meant to track changes to the data or metadata of a file. There are
some problems with the way that
i_version is being handled in the kernel,
so Jeff Layton led a filesystem session at the
2023 Linux Storage, Filesystem,
Memory-Management and BPF Summit
to discuss them and what to do
about them. For the most part, there are solutions in the works that will
resolve most of the larger issues.

Minisforum UM790 Pro Review Big Upgrade to a Small AMD System

Post Syndicated from Patrick Kennedy original https://www.servethehome.com/minisforum-um790-pro-review-big-upgrade-to-a-small-amd-system/

We check out the Minisforum UM790 Pro and see how the company takes a new-generation AMD Ryzen processor and does something different

The post Minisforum UM790 Pro Review Big Upgrade to a Small AMD System appeared first on ServeTheHome.

The collective thoughts of the interwebz