IntelliJ против Eclipse: JetBrains Toolbox или Yatta Launcher?
От переводчика:
Ниже приводится перевод с немецкого презабавного интервью с Фредериком Эбельсхойзером, где он раскрывает отношение компании Yatta к недавно вышедшему JetBrains Toolbox.


Искусство создания компьютерных программ
От переводчика:
Ниже приводится перевод с немецкого презабавного интервью с Фредериком Эбельсхойзером, где он раскрывает отношение компании Yatta к недавно вышедшему JetBrains Toolbox.

В недавнем хабрапосте SvyatoslavVasiliev показал, как с помощью популярного сервиса IFTTT и нескольких заклинаний настроить Telegram-уведомления о пропущенных звонках. Концепция «дерни url, и бот тебе напишет, что передано в json payload» мне очень-очень понравилась. Прототипирование и нотификации «на коленке» за несколько минут. Причем не только про телефонию. Точно таким же способом можно сделать уведомления о «прилегшем» сервисе, DDOS атаке или о выходе хабрастатьи в «лучшее». IFTTT – очень хорошая штука, но кликать надо много. Если посмотреть оригинальную статью, то количество скриншотов впечатляет. Под катом я покажу, как сделать то же самое всего в несколько команд.
Всем привет! Это уже седьмой выпуск дайджеста на Хабрахабр о новостях из мира Python. В сегодняшнем выпуске вы найдёте интересные материалы, касающиеся глубокого обучения, объектно-ориентированного программирования, алгоритмов и структур данных, хороших практик при написании Python-кода и многого другого. Присылайте свои актуальные материалы, а также любые замечания и предложения, которые будут добавлены в ближайший дайджест.
Заголовок может вам показаться странным, если вы не используете macOS, но если вы пользуетесь продуктами экосистемы Apple (особенно ноутбуками или iMac Retina 4K), то в процессе работы можете столкнуться с неприятной проблемой: все необходимые для работы инструменты никак не хотят помещаться в 16 Гб оперативной памяти, и система начинает периодически «тормозить» и использовать большое количество сжатой памяти и свопа.


В Java 8 появился новый класс CompletableFuture, который позволяет удобно писать асинхронный код.CompletableFuture из нескольких потоков я столкнулся с его неочевидным поведением, а именно с тем, что callbacks на нём могут выполнятся совсем не в тех потоках, как ожидалось. Об этом и о том, как мне удалось решить проблему — я и расскажу в этой статье.ConcurrentModificationException на внутренних структурах однопоточного клиента.В системах электронного обучения (СЭО), используемых в образовательных учреждениях, часто требуется помимо подключения электронного курса к СЭО, также импортировать его отдельные компоненты для формирования единых банков образовательных ресурсов. Такие банки используются в образовательном процессе, в том числе для создания междисциплинарных спецкурсов, итоговых тестирований по всему периоду обучения. Как правило, это в первую очередь тестовые задания, изображения, мультимедийные компоненты. Некоторые элементы контента, в частности тестовые задания, созданные без использования машиночитаемых форматов (CSV, JSON, XML, XLS), не поддаются эффективному автоматизированному импорту в СЭО. Особенно это касается HTML/CSS/JavaScript, применяемых в контейнере для электронных курсов и публикаций ePUB. Для решения этой задачи автором предлагается использовать описания тестов и отдельных тестовых вопросов в составе курса в машиночитаемом формате XML в соответствии со спецификацией IMS Question and Test Interoperability v.2.2 (IMS QTI).
ePUB версии 3, разработан ассоциацией IDPF и является стандартом для обмена и дистрибуции электронных публикаций. ePUB получил широкое распространение среди издателей электронных учебников и курсов. Формат поддерживается на большинстве мобильных платформ, и лег в основу ряда других подобных форматов, например, ibooks компании Apple.
Рисунок 1. Структура EPUB-контейнера





Программист — человек, создающий программы.
Программист выстраивает цепочку событий, используя доступное множество ресурсов.
Программы бывают компьютерные, музыкальные, поведенческие, обучающие и т.д.
Программа начинает создаваться в тот момент, когда человек определяет начальную и конечную точки процесса.
И если менеджер говорит «у меня есть товар, хочу его поменять на деньги» — он превращается в программиста и строит алгоритм этого процесса.
Для меня программист — это не каста и не профессия. Программист — это состояние ума.

Сейчас мало кого удивишь инструментами управления зависимостями проекта вроде npm, composer, bundler, pip, maven, cargo и других. Их общий недостаток — невозможность управлять непосредственно средой выполнения. Такая задача решается через nvm, php-build, rvm, virtualenv, sdkman, rustup и прочие глобальные "манагеры" версий runtime, обычно написанные под Bash/Zsh.
Следующий уровень "проблем" начинается, когда универсальный разработчик ежедневно занимается проектами с использованием совершенно разных технологий. Переменные окружения превращаются в месиво, а запуск шелла может занимать несколько секунд. Неизбежно начинаются бытовые ошибки в работе с этим зоопарком.
Далее разброд и шатание настегает Continuous Integration & Delivery, где ручные танцы с бубном установки инструментов и активирования конкретных версий совершенно не приветствуются, а в идеале требуется в принципе максимально абстрагироваться от используемых технологий и довести процесс до примитивных нейтральных команд: подготовить к релизу, затегить, скачать, подготовить, построить, упаковать, выложить, проверить, одобрить(подписать), выкатить.
Тут сам собой напрашивается инструмент, унифицировано работающий поверх уже существующих технологий,
который из себя и представляет FutoIn CID — FutoIn Continuous Integration & Delivery tool.