[Перевод] Python 3.8: Что нового и как этим пользоваться?

Следующий перевод подготовлен специально для «питонистов», которым интересно наверняка интересно почитать о новых функциях Python 3.8. В преддверии запуска нового потока по курсу «Разработчик Python» мы не смогли пройти мимо этой темы.

В этой статье мы поговорим про новые функциональные возможности, которые были введены в Python 3.8.


Моржовый оператор (Оператор присваивания)

Мы знаем, что вы этого ждали. Это ожидание восходит еще к тем временам, когда в Python намеренно запретили использовать «=» в качестве оператора сравнения. Некоторым людям это понравилось, поскольку они больше не путали = и == в присваивании и сравнении. Другие сочли неудобной необходимость повторять оператор, либо присваивать его переменной. Давайте перейдем к примеру.
Читать дальше →
[Перевод] Python 3.8: Что нового и как этим пользоваться?
Source: habrahabr

[Перевод] Почему мы перенесли серверы в Исландию

Примечание переводчика. Simple Analytics — сервис аналитики для веб-сайтов, ориентированный на приватность (в некотором роде противоположность Google Analytics)

Как основатель Simple Analytics, я всегда помнил о важности доверия и прозрачности для наших клиентов. Мы несём ответственность за них, чтобы они могли спать спокойно. Выбор должен быть оптимальным с точки зрения конфиденциальности и посетителей, и клиентов. Так, одним из важнейших для нас вопросом стал выбор местоположения серверов.

В последние несколько месяцев мы постепенно переместили наши серверы в Исландию. Хочу объяснить, как всё происходило, и, самое главное, почему. Это был непростой процесс, и я хотел бы поделиться нашим опытом. В статье есть некоторые технические детали, которые я попытался написать понятным языком, но прошу прощения, если они слишком технические.
Читать дальше →
[Перевод] Почему мы перенесли серверы в Исландию
Source: habrahabr

[Перевод] Проектирование доступных цветовых систем

Цветовой контраст является важным аспектом доступности в дизайне продукта. Хорошая контрастность облегчает использование продуктов людьми с нарушениями зрения и помогает в несовершенных условиях, таких как слабое освещение или старые экраны. Имея это в виду, мы недавно обновили цвета в наших пользовательских интерфейсах, чтобы сделать их более доступными. В переводе этой статьи сотрудники Stripe рассказывают о том, как они решали эту проблему, чем руководствовались и к чему в итоге пришли.

Читать дальше →
[Перевод] Проектирование доступных цветовых систем
Source: habrahabr

[Перевод] ZIO & Cats Effect: удачный союз

Cats Effect стал своего рода «Reactive Streams» для функционального Scala-мира, позволив объединить всю разнообразную экосистему библиотек вместе.

Многие отличные библиотеки: http4s, fs2, doobie — реализуются только на базе тайп классов из Cats Effect. А библиотеки типа ZIO и Monix, уже в свою очередь, предоставляют инстансы этих тайп классов для своих типов эффектов. Несмотря на некоторые проблемы, которые будут исправлены в версии 3.0, Cats Effect помогает многим опенсорс контрибьюторам органично поддерживать всю функциональную экосистему языка Scala. Разработчики, которые используют Cats Effect, сталкиваются с трудным выбором: какую реализацию эффектов использовать для своих приложений.

На сегодня есть три альтернативы:

  • Cats IO, ссылочная реализация;
  • Monix, тип данных Task и связанная с ним реактивность в коде;
  • ZIO, тип данных ZIO и его прицел на многопоточность.

В этом посте я постараюсь доказать вам, что для создания своего приложения с использованием Cats Effect, ZIO — хороший выбор с дизайн решениями и возможностями, довольно сильно отличающимися от ссылочной реализации в Cats IO.
Читать дальше →
[Перевод] ZIO & Cats Effect: удачный союз
Source: habrahabr

[Перевод] Автоматизация Android. Супер простое руководство по созданию первого Espresso-теста

Здравствуйте, друзья. В преддверии старта курса «Mobile QA Engineer», хотим поделиться с вами переводом интересного материала.


Что такое Espresso?

Нет, это не напиток, который вы пьете каждый день, чтобы взбодриться. Espresso — это тестовый фреймворк с открытым исходным кодом, разработанный Google. Он позволяет выполнять сложные тесты пользовательского интерфейса на реальном устройстве или эмуляторе. Потребуется ли время, чтобы начать писать сложные тесты для Android?

Возможно. Но ничего не мешает вам сделать первый шаг и научиться писать простые тест-кейсы для Android с помощью фреймворка Espresso прямо сейчас.
Читать дальше →
[Перевод] Автоматизация Android. Супер простое руководство по созданию первого Espresso-теста
Source: habrahabr

[Перевод] Ускорение instagram.com. Часть 3

Сегодня публикуем перевод третьей части серии материалов об ускорении instagram.com. В первой части мы говорили о предварительной загрузке данных, во второй — об отправке данных клиенту по инициативе сервера. Здесь речь пойдёт о кэшировании.


Читать дальше →
[Перевод] Ускорение instagram.com. Часть 3
Source: habrahabr

[Перевод] PostgreSQL и настройки согласованности записи для каждого конкретного соединения

Перевод статьи подготовлен специально для студентов курса «Базы Данных». Интересно развиваться в данном направлении? Приглашаем вас на День Открытых Дверей, где мы подробно рассказываем о программе, особенностях онлайн-формата, компетенциях и карьерных перспективах, которые ждут выпускников после обучения.

PostgreSQL и настройки согласованности записи для каждого конкретного соединения
Нам в Compose приходится иметь дело со многими базами данных, именно это дает нам возможность познакомиться поближе с их функционалом и недостатками. По мере того, как мы учимся любить функциональные особенности новых баз данных, мы иногда начинаем думать о том, как бы было хорошо, если бы подобные функции присутствовали и в более зрелых инструментах, с которыми мы работаем уже давно. Одна из новых особенностей, которую хотелось видеть в PostgreSQL, была настраиваемая согласованность записи под соединение во всем кластере. И как оказалось, она у нас уже есть, и сегодня мы хотим поделиться с вами информацией о том, как вы можете ее использовать.

Читать дальше →
[Перевод] PostgreSQL и настройки согласованности записи для каждого конкретного соединения
Source: habrahabr

Ищем и анализируем ошибки в коде Orchard CMS

Picture 6

Эта статья – результат повторной проверки проекта Orchard с помощью статического анализатора PVS-Studio. Orchard это система управления контентом с открытым исходным кодом, которая является частью галереи ASP.NET-проектов некоммерческого фонда Outercurve Foundation. Проверка интересна тем, что проект и анализатор сильно выросли со времени первого анализа. Новые срабатывания и интересные ошибки ждут вас.
Читать дальше →
Ищем и анализируем ошибки в коде Orchard CMS
Source: habrahabr

Вебинар «Разворачиваем кластер Kubernetes за час в Облаке КРОК»

Классический вариант вебинара — лектор рассказывает теорию и (в лучшем случае) дает немного практики. Мы решили попробовать альтернативный способ.

Павел Селиванов, архитектор решений в Southbridge и преподаватель Слёрма, будет во время вебинара создавать и настраивать кластер Kubernetes в Облаке КРОК, попутно комментируя свои действия.

После вебинара те, кто регистрировался с корпоративной почты, получат ссылку на использованные в вебинаре скрипты и плейбуки, и бесплатный триал Облака КРОК.

Когда мы в подобном формате проводили вебинары по Docker и Ansible, половину времени занимали вопросы участников, причем попадались очень интересные и неожиданные вопросы. Посмотрим, что получится в этот раз.

Регистрация


Вебинар «Разворачиваем кластер Kubernetes за час в Облаке КРОК»
Source: habrahabr

[Перевод] Распределенная трассировка в Istio

Примечание от нашей редакции переводов: в представляемой статье описывается закрытый продукт конкретной компании и, к сожалению, пока нет никаких данных о том, что его когда-либо планируют открывать — в столлмановском понимании этого слова. Тем не менее, нам показалось очень важным и полезным рассмотреть, как вообще люди подходят к вопросам дебага Istio и как оптимизируют свою работу на этом поле. Возможно, кто-то сможет почерпнуть для себя пару интересных идей.

В какой-то момент, при разработке продакшн-систем на основе микросервисной архитектуры мы пришли к тому, что мониторинга каждого отдельного элемента нашего сервиса недостаточно, чтобы справляться с серьезными проблемами. С течением времени назрела необходимость получать полную картину всего стека вызовов во всем приложении одновременно, причем с подробной информацией о топологии запросов, задержках сети и длительности отдельных команд. Обычно для решения подобной задачи инженеры прибегают к распределенной трассировке.

В этом посте концепция распределенной трассировки будет рассмотрена через призму микросервисной архитектуры: как это все интегрируется и автоматизируется через Istio, а затем весь процесс упрощается и обрабатывается через Backyards — наш сервисный продукт для Istio.
Читать дальше →
[Перевод] Распределенная трассировка в Istio
Source: habrahabr