Pull to refresh
  • by relevance
  • by date
  • by rating

C++0x (С++11). Лямбда-выражения

C++ *
Tutorial
Буквально на днях случайно наткнулся на Хабре на статью о лямбда-выражениях из нового (будущего) стандарта C++. Статья хорошая и даёт понять преимущества лямбда-выражений, однако, мне показалось, что статья недостаточно полная, поэтому я решил попробовать более детально изложить материал.

Читать дальше
Total votes 75: ↑71 and ↓4 +67
Views 269K
Comments 81

Python: советы, уловки, хаки (часть 1)

Python *
Translation
Предлагаю читателям «Хабрахабра» перевод статьи «Python Tips, Tricks, and Hacks». Статья будет полезна на начальном и среднем этапах изучения Python.

Хотите писать более лаконичный и читаемый код? Вы хотите уместить как можно больше смысла в одно выражение? Считаете, что прочитать о нескольких уловках лучше, чем провести остаток жизни за чтением документации? Вы обратились по адресу. Мы начнем с маленьких уловок, которые вы уже могли встретить, если немного работали с Python. Но я обещаю, что ближе к концу статьи вас ожидает больше безумных вещей.

Содержание

1. Маленькие уловки. Четыре типа кавычек. Правдивость различных объектов. Проверка на вхождение подстроки. Красивый вывод списка. Целочисленное деление и деление с плавающей точкой. Лямбда-функции.
2. Списки. Генераторы списков и выражения-генераторы.
Читать дальше →
Total votes 98: ↑94 and ↓4 +90
Views 250K
Comments 67

Лямбда-функции и реализация удобного механизма Callback-ов на C++

C++ *
Sandbox
В этой статье на примере реализации механизма обратного вызова будет рассмотрена возможности применения лямбда функций в удобной и быстрой форме.
Читать дальше →
Total votes 22: ↑14 and ↓8 +6
Views 41K
Comments 8

AWS Lambda и никаких серверов

EPAM corporate blog Amazon Web Services *
Лично для меня Amazon Web Services всегда ассоциировался с Infrastructure as a Service (IaaS), на базе которого каждый строил свои сервисы и приложения. Но есть и претендующие на роль платформы в виде сервиса, например, Elastic Beanstalk и OpsWorks. Хотя, по моему мнению, их с натяжкой можно считать PaaS, так как остается доступ к инфраструктуре, и вместе с тем головная боль по её администрированию.

Вся прелесть PaaS — это нулевые затраты на администрирование, простота использования и, как следствие, возможность сфокусироваться на коде приложения, забыв о том, как его разворачивать, интегрировать и поддерживать.

Итак, по словам представителей AWS, Lambda позволит забыть об инфраструктуре и запускать приложения в облаке, при этом получая интеграцию с другими сервисами Amazon, масштабируемость, низкую цену использования вычислительных ресурсов. Все, что нужно для старта, — написать функцию, ассоциировать её с событиями. После этого амазон автоматически выполнит функцию при каждом новом событии. О масштабировании и высокой доступности можно не думать: наша функция сможет обработать десятки тысяч запросов в час без каких-либо усилий с нашей стороны, без бекенда в традиционном его понимании.
Читать дальше →
Total votes 18: ↑15 and ↓3 +12
Views 32K
Comments 23

Вычисляем символьные выражения с нечеткими треугольными числами в python

Python *Mathematics *
Tutorial
Привет, Хабр! Сегодня миниатюрный туториал о том, как сделать разбор строки с математическим выражением и вычислить его используя нечеткие треугольные числа. При соответствующих изменениях кода туториал сгодится для работы и с другими «кастомными» переменными. Справка: нечеткие треугольные числа — частный случай нечетких чисел (нечетких переменных на числовой оси). Ознакомиться подробнее рекомендую здесь и здесь.

Требования:

  • Язык программирования python 3.x (приводимый в статье код проверялся на python 3.5)
  • библиотека sympy
Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Views 4.5K
Comments 11

Интеграция Aviasales API с Amazon Kinesis и простота serverless

Python *Programming *Cloud computing *Amazon Web Services *Big Data *
Привет, Хабр!

А вы любите летать на самолетах? Я обожаю, но на самоизоляции полюбил еще и анализировать данные об авиабилетах одного известного ресурса — Aviasales.

Сегодня мы разберем работу Amazon Kinesis, построим стримминговую систему с реал-тайм аналитикой, поставим NoSQL базу данных Amazon DynamoDB в качестве основного хранилища данных и настроим оповещение через SMS по интересным билетам.

Все подробности под катом! Поехали!


Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 3.5K
Comments 0

Получение Method из Method Reference в Java

Java *
Tutorial

Я столкнулся с проблемой — как получить из method reference вида


Function<String, Integer> fun = String::length;

вызываемый метод класса (или хотя бы его имя), т.е. в примере это java.lang.String.length(). Как выяснилось, не одного меня волновал этот вопрос, нашлись такие обсуждения на stackoverflow [1], [2], проекты на GitHub, которые так или иначе касаются этой проблемы [1], [2], [3], но не один из них не дает ровно то, что нужно. На Хабре ibessonov предложил свое решение, а apangin — свое в комментарии. Вариант Андрея мне понравился, но вскоре выяснились некоторые связанные с ним проблемы. Во-первых, это основано на внутренних классах JDK, все это работает только в Java 8, но не в более поздних версиях. Во-вторых, этот метод имеет ряд ограничений, например для BiFunction или BiConsumer он выдает неверное значение (это как раз обсуждается в комментариях).


В общем, перебрав несколько вариантов, удалось найти тот, который не имеет этих изьянов и работает в поздних версиях JDK — SerializedLambda. Забегая вперед сразу скажу, что это работает только с функциональными интерфейсами, помеченными как java.io.Serializable (т.е. с java.util.function.Function работать не будет), но в целом это не проблемное ограничение.

Читать дальше →
Total votes 13: ↑13 and ↓0 +13
Views 4.2K
Comments 5

Салют от Сбера в Яндекс.Облаке

JavaScript *Node.JS *Yandex API *Voice user interfaces
Tutorial


В сентябре 2020 г. Сбербанк переименовал себя просто в Сбер (т.н. ребрендинг), и на радостях запустил собственную платформу голосовых ассистентов под названием Салют. Особенностью Салюта является наличие сразу трёх голосовых ассистентов на выбор пользователей: Сбер — мужчина, стиль обращения на «вы», Афина — женщина, обращается также на «вы», и Джой — девушка с дружеским «ты».

Сбер (банк, не его тёзка — голосовой ассистент) открыл эту платформу для сторонних разработчиков, пригласив их делать для неё приложения, т.н. смартапы — аналог навыков голосовой помощницы Алисы, и учредив для них конкурс с весьма щедрым призовым фондом. В этом туториале мы рассмотрим как сделать смартап на Node.js, разместить его код в Яндекс.Облаке (используя функции), и, наконец, создать проект в Салюте, пройти там модерацию, и опубликовать наш смартап, чтобы он стал общедоступным.
Читать дальше →
Total votes 19: ↑14 and ↓5 +9
Views 5.8K
Comments 4

Обобщаем паттерн посетитель (С++)

Programming *C++ *
Sandbox

В статье приводится описание того:

- Как создать посетитель не привязанный к предметной области.

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

- Как без лишних усилий добавлять и удалять типы, которые посетитель может обработать.

Читать далее
Total votes 8: ↑8 and ↓0 +8
Views 6K
Comments 25

Борьба с холодным стартом serverless-функций: «подогрев» среды и оптимизация запуска контейнеров

IT Infrastructure *Cloud services Serverless *

Основная претензия при работе с serverless — время холодного старта, которым нельзя управлять «из коробки». Если функция стартует впервые за последние 5–25 минут, скорее всего запуск будет долгим — сотни миллисекунд. Причём статически типизированные языки имеют в разы большее время холодного запуска, которое может достигать нескольких секунд. Разработчики решают это на этапе загрузки своего кода, и им в помощь есть целые библиотеки. Например, они позволяют вызвать функцию заранее. Эти способы действительно сокращают время, но не устраняют проблему полностью и могут работать нестабильно. Параллельно этот вопрос пытаются решить и сами облачные провайдеры. Сегодня поговорим о том, как с холодным стартом справляются и те и другие.

Читать далее
Total votes 21: ↑20 and ↓1 +19
Views 2.7K
Comments 1

Serverless хранение файлов с AWS lambda

Python *Amazon Web Services *API *DevOps *
Tutorial

Добрый день, сегодня мы развернем serverless инфраструктуру на базе AWS lambda для загрузки изображений (или любых файлов) с хранением в приватном AWS S3 bucket. Использовать мы будем terraform скрипты, залитые и доступные в моем репозитории kompotkot/hatchery на GitHub.

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

В целях упрощения мы воспользуемся функционалом Bugout.dev Resources, в нашем примере выполняющий функцию удаленной базы данных для хранения записей о принадлежности файла к заметки.

Читать далее
Total votes 7: ↑5 and ↓2 +3
Views 1.8K
Comments 28