Основы функционального программирования на Python
- Tutorial
Этот пост служит для того, чтобы освежить в памяти, а некоторых познакомить с базовыми возможностями функционального программирования на языке Python. Материал поста разбит на четыре части:
Этот пост служит для того, чтобы освежить в памяти, а некоторых познакомить с базовыми возможностями функционального программирования на языке Python. Материал поста разбит на четыре части:
В апреле 2021 у операционной системы Ubuntu 16.04 закончилась стадия основной поддержки https://wiki.ubuntu.com/Releases и тем самым обозначило прекращение выхода обновлений для неё.
Данный релиз был выпущен в апреле 2016 года и поддерживался до апреля 2021 года.
Однако, пользователи Ubuntu 16.04 могут получить патчи безопасности для своей системы до апреля 2024 года.
Для этого используется подключение к программе Ubuntu Advantage https://ubuntu.com/advantage и на один аккаунт можно добавить 3 машины (бесплатно для персонального использования) получив ключ. Все что необходимо для этого - это Ubuntu One аккаунт.
Для коммерческого использования предлагается платная подписка, цены варьируют от $25 за desktop, $75 за виртуальный сервер и $225 за физический сервер в год и выше, более дорогие цены подразумевают не только обновления, но и получение технической поддержки через тикеты и по телефону.
В одном из последних обновлений Ubuntu 16.04 в систему устанавливается утилита ua с помощью которой происходит подключение к сервису
Для подключения к программе получения обновлений необходимо войти в свой аккаунт, получить токен и выполнить команду
sudo ua attach ваш_токен
Проверить статус подключения можно командой
sudo ua status
Тем самым вы будете получать обновления еще три года до апреля 2024. Также следует отметить, что если вы являетесь Ubuntu community member https://wiki.ubuntu.com/Membership, то вы сможете подключить к сервису до 50 машин.
Следует отметить, что для релизов, которые еще актуальны (ubuntu 18.04, 20.04) существует сервис livepatch https://ubuntu.com/security/livepatch и с его помощью возможно получение и установка патчей безопасности ядра без перезагрузки системы. Условия использования сервиса такие же - 3 машины бесплатно (и до 50 машин для community members).
Главная задача этого поста – показать один мало применяемый в Python подход к работе функциями в рамках более общей функциональной парадигмы, в которой функциями можно манипулировать точно так же, как и любыми другими объектами: присваивать переменным, передавать в качестве аргументов в другие функции, возвращать из функций и включать в последовательности в качестве их элементов.
Функциональный стиль программирования очень близок к тому, как размышляет человек во время решения задачи. «Пусть дано x
. В целях решения задачи с этими данными необходимо выполнить серию преобразований. Сначала применить к ним f
и получить результирующие данные x'
. Затем к новым данным применить f2
и получить новые результирующие данные x''
и т.д.
Как оказалось, такой образ мыслей отлично укладывается в то, что называется конвейером обработки данных. Конвейер обработки данных состоит из связанных между собой узлов, т.е. функций. Узел характеризуется набором входных и выходных каналов, по которым могут передаваться объекты. Узел ожидает появления определенного набора объектов на своем входном канале, после чего проводит вычисления и порождает объект(ы) на своем выходном канале, которые передаются в следующий узел в конвейере.
В функциональных языках конвейеры находят широкое применение, и для их имплементирования даже существуют специальные синтаксические конструкции. Вот как выглядит конвейер в языке F#:
2
|> ( fun x -> x + 5)
|> ( fun x -> x * x)
Какая ежедневно используемая ИТ-система удалена от нас дальше всех? Марсоход Perseverance. Пожалуй, дальше пока что некуда. Под катом поговорим о технической начинке миссии, особенностях связи с Землей и других насущных проблемах и задачах, которые стоят перед марсоходом Perseverance и его маленьким крылатым другом Ingenuity.
Широко известен исторический анекдот о том, что царица Екатерина II писала простое русское слово из 3 букв с 4 ошибками. Куда менее известно, что эта ошибка вовсе не уникальна. Дети европейских экспатов, изучающие русский язык, запросто могут в диктанте слово “ёжик” написать как Й-О-Ш-Е-Г.
К корпоративным блогам на Хабре не самое тёплое отношение. Если компания о чём-то пишет, значит рекламируется. А раз рекламируется, то пытается втюхать простому хабравчанину что-то, что ему даром не нужно. Но это, конечно, просто навязчивый стереотип. Компании в своих блогах занимаются отнюдь не только саморекламой. Они вообще ей редко заняты. Гораздо чаще они постят хорошие экспертные материалы на самые разные темы. Коллекцию именно таких материалов мы собрали сегодня. Хабравчане — знакомьтесь и избавляйтесь от стереотипов. Корпораты — оценивайте тяжкий труд коллег.
В предыдущей статье мы подобрали все необходимые компоненты для сборки нашей самодельной ретроконсоли. Настало время вдохнуть в нее жизнь! В этом нам поможет RetroPie — операционная система, основанная на Linux-дистрибутиве Raspbian OS и представляющая собой сборник эмуляторов разнообразных игровых приставок прошлых лет и удобный менеджер для работы с вашей игротекой в одном лице. Хотя это отнюдь не единственное из доступных решений, по нашему мнению, именно данная сборка лучше всего подходит новичку, так как требует минимальных навыков для базовой установки и настройки, отличаясь при этом стабильностью и достаточно широким спектром возможностей. Итак, приступим.
Генри Форд чуть не прогорел на своей классической фразе про пятьдесят оттенков черного. General Motors стала предлагать разноцветные модели Chevrolet, Pontiac, Buick, Oldsmobile и Cadillac — и не прогадала. Глядя на это, даже упрямый Форд изменил свое мышление — и разработал новый Ford A, вернувший его на автомобильный Олимп. Бывают времена, когда парадигма мышления должна стать новой — ибо человек умирает тогда, когда перестаёт меняться ©Генри Форд.
Пришло время и для разработчиков. Command Query Responsibility Segregation (CQRS) и Event Sourcing (ES) уже не миф — они реально работают. Конечно, не для всех задач — как и классический черный цвет Форда, PHP никуда не исчез и нужен по-прежнему. Но теперь уже есть задачи, где мы встречаемся с CQRS и ES чаще, чем нам кажется. Антон Шабовта на PHP Russia 2021 расскажет, как смена парадигмы и взгляд с другой стороны помогают разработчикам. А перед конференцией мы расспросили Антона подробнее о его новых взглядах на разработку, PHP и, конечно, о CQRS и ES.
Инженерная цель данного эксперимента заключалась в разработке системы из трёх частей, а именно модели сегментации изображения, скрипта управления двигателем и спринклера, работающего под управлением Arduino. Эта система должна целенаправленно поливать участки травяного газона, что позволит сэкономить значительное количество воды, а заодно и времени.
Разрабатывая корпоративные веб-приложения, каждый из нас рано или поздно сталкивается с необходимостью обеспечить их безопасность и защитить их ресурсы от несанкционированного доступа. Нужно определить роли для управления доступом, которые будут назначаться пользователям или группам и наделять их полномочиями выполнять те или иные операции в приложении.
Okta — это облачный сервис, который позволяет управлять удостоверениями и доступом. Согласно документации Okta, это сервис корпоративного уровня, который создан для управления удостоверениями в облачной среде, но при этом совместим и со многими локальными приложениями. С его помощью ИТ-специалисты могут управлять доступом сотрудников к любому приложению или устройству. Сервис развернут на надежной и защищенной облачной платформе, которая обладает широкими возможностями аудита и тесно интегрируется с локальными приложениями, службами каталогов и системами управления удостоверениями. Подробную информацию о том, как Okta интегрируется с приложениями, можно получить по этой ссылке.
Для авторизации пользователей в Okta используется протокол OAuth2. Подробнее о протоколе OAuth2 и стандарте Open ID Connect (OIDC) можно почитать в блоге Okta.
В этой статье мы рассмотрим демонстрационное приложение «Контакты» и настройку разрешений на просмотр, создание, редактирование и удаление контактов. Это вторая часть цикла статей о приложении «Контакты», посвященная его защите с помощью Okta. О базовом приложении подробно написано в первой статье цикла: «Разработка веб-приложения на Spring Boot + Angular».
Уильяма Шекспира знают без малого все. Не только в Британии, но и во всем мире. Это поэт №1 во всем мире.
А кто знает Александра Поупа? Британцы изучают его в университетах, но мы уверены, что среди читателей Хабра с его творчеством знакомы очень немногие. Поуп — это второй по цитируемости поэт в английском языке, автор переводов Гомера и создатель целого ряда идиом, которые сегодня считаются «народными».
А дядька-то на самом деле был очень крут. Поэтому сегодня расскажем именно о нем.
Всем привет! Я задался вопросом о том, что полезного может получить айтишник от приобщения к современному искусству. В тексте – результаты моих размышлений. Если есть интерес к теме – приглашаю к дискуссии.
Очереди - прекрасный инструмент, который практически идеально масштабируется. Не справляется железо? Просто добавили узлов в кластер. Когда очередь присутствует в проекте, то возникает соблазн всё больше функционала реализовывать с её помощью.
О подводных камнях такого пути поговорим в этой статье.
Рано или поздно, применяя очереди, пользователь сталкивается с вопросом использования их совместно с каким-то сервисом, базой данных и т.п.
Осторожно: 1) Гифки тяжелые! 2) Много ярких мигающих картинок!