Социальные сети Рунета
Пятница, 22 октября 2021

Пишем онлайн-радио на языке Vala Привет всем! В своем первом посте я хочу рассказать о создании простого радио на языке Vala. Я ни разу не программист, а скорее любитель и все свои разработки я писал на Java, но так как на компьютере использую GNU/Linux, а именно старый добрый Debian, да еще на GNOME, то по...

Пишем telegram бота на языке R (часть 1): Создаём бота, и отправляем с его помощью сообщения в telegram Аудитория telegram ежедневно растёт с геометрической прогрессией, этому способствует удобство мессенджера, наличие каналов, чатов, и конечно возможность создавать ботов. Боты могут использоваться в совершенно разных целях, от автоматизации коммуникации с вашими клиентами до...

Callisto. Зачем мы придумали замену Selenium Grid На Хабре уже не раз писали о том, что у Selenium Grid есть проблемы, которые не решить простым способом (например: раз, два, три). В этой статье мы поделимся нашим опытом и расскажем, как нам в Wrike удалось построить стабильную инфраструктуру для Selenium-тестов.TLDR: Мы на...

[Перевод] Создание PDF-документа на Python с помощью pText Один из самых гибких и привычных способов сгенерировать pdf — написать код на LaTeX и воспользоваться соответствующей программой. Но есть и другие способы, которые могут оказаться проще и понятнее, чем LaTeX. Специально к старту курса Fullstack-разработчик на Python представ...

Автоматическое создание документации для RPA с Task Capture Первым этапом роботизации процесса является документация. Бизнес-аналитик общается с исполнителем процесса и составляет понятное разработчикам описание этого процесса с детально описанными шагами. На создание документации уходит много ресурсов: как сотрудника, так и ана...

[Перевод] 5 уроков, которые я извлек для себя, продолжая осваивать ZIO Всем привет. В преддверии старта курса "Scala-разработчик" подготовили для вас полезный перевод.Еще в январе 2020 года я написал два поста (I, II) о подводных камнях, с которыми могут столкнуться новички в начале работы с ZIO. Прошло 9 месяцев. На этот период пришелся релиз ...

Как написать простого бота для ВК и Телеграм Мы уже упоминали, как мы предоставляем бесплатные VPS для студентов, чтобы они учились программировать. Один из наших подопечных Павел сделал простеньких телеграм и ВК ботов для FAQ. Они очень просте, тем не менее, начинающему программисту не помешают комментарии опытных р...

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

[Перевод] Как я написал веб-синтезатор без сэмплов и зависимостей Немного зная теорию музыки, чтобы создать цифровой инструмент, мы можем воспользоваться простыми HTML, CSS и JavaScript без каких-либо библиотек или аудиосэмплов. К старту курса по Frontend-разработке делимся статьёй, автор которой рассказывает, как написать простой, но эффе...

Как теперь процессить kernel crash и bug report? Или несколько слов о разнице между интересным и удивительным Широко известен исторический анекдот о том, что царица Екатерина II писала простое русское слово из 3 букв с 4 ошибками. Куда менее известно, что эта ошибка вовсе не уникальна. Дети европейских экспатов, изучающие русский язык, запросто могут в диктанте слово “ёжик” написать...

Как писать читаемый код Бывает, что посмотрев на старый код, мы говорим: «Его проще переписать, чем поменять». Печально, если речь идет о нашем собственном коде, с такой любовь написанном несколько лет назад. Head of Developer Relations в Evrone Григорий Петров в своем докладе на TechLead Conf 2020...

Фоновые задачи на Faust, Часть II: Агенты и Команды Часть II. Узнаем, как писать агентов, обрабатывающих стрим событий из kafka, а так же как написать команды (обёртка на click). Читать далее

Пишем Slack бота для Scrum покера на Go Здравствуйте! Сегодня мы напишем Slack Scrum покер бота на языке Go. Писать будем по возможности без фреймворков и внешних библиотек, так как наша цель – разобраться с языком программирования Go и проверить, насколько этот язык удобен для разработки подобных проектов. Прошу ...

[Перевод] Пишем CRUD-приложение на Go с помощью Mysql, GORM, Echo, Clean Architecture Начнем сначала В этой статье будет сказ о том, как на Clean Architecture написать API с функциями CR(U)D, где в качестве БД взят Mysql, фреймворк – Echo, ORMapper – GORM. Что делаем API с функциями Create, Read, (Update), Delete. Обновление на самом деле реализовать особо н...

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

Чеклисты в помощь QA Всем привет! Меня зовут Анастасия Шарикова, я руковожу отделом тестирования в Bookmate и веду телеграм канал Yet another QA. Сегодня речь пойдет о чек-листах — отличном универсальном инструменте, который может помочь в повседневных задачах QA специалистам любых уровней....

Пишем PBX на Perl для Yate Когда-нибудь я напишу что-то в духе "Как я стал программистом в 40 лет". Но точно не сегодня, к тому же мне давно уже не 40 и программистом я себя не считаю. А рассказать я хотел бы о своём опыте разработки PBX для собственных нужд. В качестве VoIP движка используется Yate, ...

Вызов кода Go из Dart с использованием cgo и Dart FFI на простом примере Ключевой мотивацией для написания данной статьи является факт сильного недостатка информации (особенно в русскоязычном сообществе) по использованию cgo и Dart FFI для использования Go из языка Dart.Язык Dart, не смотря на свою возрастающую популярность, на данный момент до с...

[Перевод] Tweet-a-pot, или Как я через Twitter кофе варил Мы уже писали о том, как сделать умный термостат, чтобы отапливать дом, и рассказывали, как, потратив всего 5 долларов, из подручных материалов собрать спектрометр. Сегодня мы делимся переводом статьи о превращении простой кофеварки в устройство, которое может включаться и в...

Dart на сервере Недавно столкнулся с необходимостью написать REST API сервер на Dart. Оставим за рамками этой статьи почему и зачем это было надо, но первое с чем я столкнулся - выбор библиотек. Так уж сложилось, что я привык писать на NodeJS используя KoaJS в качестве веб сервера. Простая ...

Пишем простой WYSIWYG-редактор с помощью ProseMirror Когда в Sports.ru понадобился свой WYSIWYG-редактор, мы решили сделать его на основе библиотеки ProseMirror. Одной из ключевых особенностей этого инструмента является модульность и широкие возможности кастомизации, поэтому с его помощью можно очень тонко подогнать редактор п...

Пишем расширение для Burp Suite с помощью Python Привет, Хабр!Думаю многие знают о таком инструменте, как Burp Suite от PortSwigger. Burp Suite – популярная платформа для проведения аудита безопасности веб-приложений. Помимо того, что Burp и так содержит тонну полезных функций, он еще и дает возможность пользователям созда...

Qt? ImGUI? wxWidgets? Пишем свое Привет, хабровчане! Хочу рассказать о своей системе UI, которую я написал для своего игрового движка, на которой делаю редактор для него же. Читать далее

Игровой контроллер для одной руки, что так, а что не так Хочу получить обратную связь от людей, которые связаны с разработкой электронных продуктов и не только. Написал сюда, т.к. не знаю, куда писать еще в Рунете на эту тему. Читать далее

[Из песочницы] Изобретаем велосипед или пишем персептрон на С++. Часть 1 и 2 Изобретаем велосипед или пишем персептрон на C++. Часть 1 Напишем простую библиотеку для реализации персептрона на C++ Читать дальше →

SLAE — Security Linux Assembly Expert Exam Security Linux Assembly Expert — онлайн-курс и экзамен по основам 32-битного языка ассемблера процессоров семейства Intel в Linux-системах в контексте информационной безопасности. Курс будет полезен пентестерам, инженерам по информационной безопасности и всем, кто желает ра...

Что делать, чтобы разработчик все-таки написал статью на Хабр? Пишу для тех, кто пытается в условиях ограниченного бюджета настроить в коллективе работу с техническим контентом. Расскажу о том, за что хвататься, если ваши разработчики отказываются писать статьи на Хабр за брендированные кружки и звездочки на доске почета. Волшебных отве...

Как написать пассивный доход: Пишем качественного трейд бота на JS (часть 1) Всем хочется получать пассивный доход. Поэтому и пришла идея написать правильного бота, способного зарабатывать на бирже. Как это сделать? К вашему вниманию подробный туториал . Читать далее

Пишем веб сервис на Python с помощью FastAPI Знаю, знаю, наверное вы сейчас думаете «что опять?!». Да, на хабре уже неоднократно писали о фреймворке FastAPI. Но я предлагаю рассмотреть этот инструмент немного подробнее и написать API своего собственного мини Хабра без кармы и рейтингов, зато с блэкджеком и с тестами,...

Что же не так с любыми электронными голосованиями? Данная публикация написана по мотивам поста «Что же не так с ДЭГ в Москве?». Его автор описывает, как можно выгрузить и расшифровать данные по электронному голосованию, а также приводит целый список замечаний к его текущей системе.Статья хорошая, её выводы и замечания я полн...

Как я сделал Discord бота для игровой гильдии с помощью .NET Core Всем привет! Недавно я написал Discord бота для World of Warcraft гильдии. Он регулярно забирает данные об игроках с серверов игры и пишет сообщения в Discord о том что к гильдии присоединился новый игрок или о том что гильдию покинул старый игрок. Между собой мы прозвали эт...

Как написать плагин для Фигмы: проблема, MVP, решение Привет, я Саша Катин, дизайнер продукта в Авито. Примерно за месяц я написал плагин для Фигмы, чтобы помочь коллегам-дизайнерам. В статье расскажу, что получилось хорошо и быстро, а что — не очень, и что нужно сделать, чтобы запустить свой энтерпрайз-плагин внутри компа...

[Из песочницы] Немного о релокациях в ядре Linux Решим простую задачу — выделим в пространстве ядра Linux блок памяти, поместим в него какой-нибудь бинарный код и выполним его. Для этого напишем модуль ядра, в нем определим функцию foo, которая будет играть роль нужного нам бинарного кода, далее при помощи функции module_a...

Пишем простейший GitHub Action на TypeScript Недавно я решил немного привести в порядок несколько своих .NET pet-проектов на GitHub, настроить для них нормальный CI/CD через GitHub Actions и вынести всё в отдельный репозиторий, чтобы все скрипты лежали в одном месте. Для этого пришлось как следует изучить документацию,...

Кэширование данных увеличивает скорость даже в неожиданных случаях Нас учат, что чтение данных из оперативной памяти — ужасно долгая операция. Приводят аналогии с офисом и удалённым складом, заставляют писать cache-friendly код и внушают смертельный страх перед промахами кэша. Ещё нас учат, что процессоры отлично умеют считать числа, и част...

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

Не практичный python — пишем декоратор в одну строку Давеча, с коллегой, на работе поспорили что нельзя написать кэширующий декоратор в 4 строки, я утверждал что можно. Да все началось с 4 строк, закончилось функциональным программированием кучей lambda выражений в одну строку и декоратором в одну строку. ДисклеймерТакой код н...

Пишем дизассемблер виртуальной машины из игры Clock Tower (PS1/PC) для IDA Pro Всем привет. Тут такое дело: ещё одна моя реверсерская мечта сбылась - я написал процессорный модуль для IDA Pro с нуля, за два дня! Если вы когда-то тоже хотели написать свой модуль, но боялись начать - думаю, моя статья сможет помочь.В качестве кода, который требуется диза...

Пишем хром плагин оповещения в телеграм Беда, товарищи! Дети (~10 лет) перешли на удаленное обучение, расселись по комнатам с компьютерами и не могут сосредоточиться на уроках! Они добавлены в google families, microsoft family, время за компьютером ограничено, а взрослые сайты убраны через opendns. Но чуть что...

Пишем первый плейбук Ansible Статья подготовлена на основе уроков из открытой темы "Установка LEMP стека с помощью Ansible" курса по Ansible от Слёрм. Автор – Всеволод Севостьянов, Lead Engineer в Vene.io (Affiliate marketing solution). Первые две темы курса доступны на Youtube. Материал...

Включение гибридной графики в Ubuntu на ноутбуках Nvidia + Intel (OpenGL, Vulkan) Это простая инструкция как включить гибридную графику intel-nvidia на ноутбуке. Чтобы определенные приложения запускались на дискретном чипе, а другие на встроенном. На свое удивление в интернете не нашел простую инструкцию того, как запускать определенные приложения, исполь...

STM32 fast start. Часть 2 Hello World на HAL, отладка в Atollic TrueSTUDIO В прошлый раз мы осваивали создание нового проекта при помощи STM CubeMX первую часть можно найти здесь. Для тех, кому лень перечитывать — закончилось все тем, что пустой проект успешно собрался. В данной части напишем простейший пример Hello World на HAL, посмотрим как ...

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

Рефакторинг пет проекта: докеризация, метрики, тесты Всем привет, я php разработчик. Я хочу поделиться историей, как я рефакторил один из своих телеграм ботов, который из поделки на коленке стал сервисом с более чем 1000 пользователей в очень узкой и специфической аудитории. Читать далее

Простой rpm репозиторий используя Inotify и webdav В этом посте рассмотрим хранилище rpm артефактов c помощью простого скрипта с inotify + createrepo. Заливка артефактов осуществляется через webdav используя apache httpd. Почему apache httpd будет написано ближе к концу поста. Итак, решение должно отвечать cледующим требован...

Решаем проблему голосовых или создаем простого и полезного бота в Telegram Добрый день, думаю у каждого найдутся люди которые  на сообщение с просьбой писать текстом отвечают   голосовыми. В очередной раз получив голосовые я начал думать как же все-таки решить проблему, и в голову пришла простая идея,  создать бота, который буде...

Как писать книгу в LaTeXe по физике. Cтатья 1 Это моя первая статья на Хабре. Глава 1. Введение 1.1 Позвольте представиться и почему я это пишу    Я — научный сотрудник, физик. Недавно выпустил книгу по спектроскопии объемом 880 страниц и весом 1560 грамм. Эту книгу я писал 9 лет, параллельно читая лекции по...

[Перевод] Глубокое обучение на Kotlin: альфа-версия KotlinDL Привет, друзья!Сегодня мы расскажем о первой предварительной версии KotlinDL (v.0.1.0) — высокоуровневого фреймворка для глубокого обучения, похожего на Keras, но написанного на Kotlin. В нем есть простые API для создания, тренировки и развертывания моделей глубоко...

[Перевод] Компилируем Svelte в уме. Часть 1/3 В данном материале Tan Li Hau, один из мейнтейнеров фреймворка Svelte, в доступной форме рассказывает о том как работает компилятор Svelte и что скрывается под капотом когда мы пишем простейший компонент. Читать далее

VSTi-плагин ASIO-хоста для подключения входа дополнительного ASIO-драйвера в DAW Столкнулся я как-то с ситуацией, когда, при наличии основной звуковой карты со своим ASIO-драйвером, необходимо было в DAW подключить USB-микрофон со своим ASIO-драйвером. А DAW не поддерживает подключение двух ASIO-драйверов одновременно. Поиском наткнулся на VST-плагин "VS...

Гайд по User Stories для Junior BA / PO / PM Статья будет полезная Junior-специалистам, которые так или иначе работают с документацией на проекте. В статье рассматриваются как сами пользовательские истории, так и критерии, по которым можно написать хорошую историю. Из статьи читатель сможет подчеркнуть и как писать ист...

[Перевод] MySQL в Docker не может писать slow-логи в /dev/stderr Прим. перев.: в процессе поиска решения проблемы с логированием медленных запросов MySQL наткнулся на довольно познавательную статью. Её автор не только в деталях описывает своё расследование, которое может оказаться полезным для начинающих администраторов, но и попутно проб...

[Из песочницы] 3D картинка на питоне с (почти) нормальной производительностью Можно считать эту статью ответом на вот эту, где речь идет о написании подобной вещи на C++, с прицелом на новичков, то есть с упором на простой читаемый код вместо высокой производительности. После прочтения статьи у меня возникла идея повторить написанную автором программ...

Итоги конкурса рабочих мест или Игра престолов в битве за PS4 Те, кто на Хабре не первый день, наверняка знают, как мы в RUVDS любим устраивать всякие активности. Что мы уже только не делали. Запускали сервер в облака, делали коллаб с создателем Дюк Нюкема, даже варили свое админское пиво и готовили хабрабургеры, всего и не упомнить....

Как случайно продолжить писать Web-GUI для Haproxy Прошло два года и 4 дня, как я написал Как случайно написать Web-GUI для Haproxy, а воз уже давно не там — все меняется и развивается и HAProxy-WI старается соответствовать этой тенденции. За два года было проделано много работы, об основных изменениях я и хочу сейчас расска...

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

Мне кажется, дело не в языке, а в том, как на нем пишут «Летом между 2 и 3 курсом я пошла искать работу — а в Новосибе того времени почти все вакансии для ребята без опыта были про PHP. Начинала с очень простых вещей — WordPress, Drupal… Потом писала бэкенды на Yii и много еще разного. Go впервые попробовала в 2014-м, вдохновивши...

Пишем свой профайлер для анализа производительности приложения на Android По мере развития приложения стоит проводить её аудит для выявления неявных деградаций в производительности. Недавно я проводил аудит раздела комментариев iFunny и написал собственный профайлер. Он не заменит имеющиеся на рынке инструменты Android Profile из Android Studio, B...

Stm32 + USB на шаблонах C++. Продолжение. Делаем HID В прошлый раз показал один из способов распределение ресурсов между конечными точками, а именно регистров EPnR, памяти под дескрипторы буферов и под сами буферы. Предлагаю продолжить начатое и рассмотреть написанную библиотеку на примере создания простого HID-устройства, поз...

[Перевод] Корутины C++20 в примерах Одним из наиболее важных нововведений C++20 являются корутины. Корутина — это функция, которая может быть приостановлена ​​и после этого возобновлена. Функция становится корутиной, если она используете что-либо из следующего: - оператор co_await, чтобы приостановить выполнен...

[Из песочницы] Пишем шейдеры кодом в Unity LWRP Введение Здравствуй, Хабр. Сегодня хочется рассказать немного о том, как можно быстро и безболезненно (почти) начать писать классические текстовые шейдеры в Unity с использованием Lightweight Rendering Pipeline (LWRP) — одним из примеров конвейера Scriptable Rendering Pipeli...

Масштабируемый Продакшн-реди Телеграм бот на Django На хабре очень много статей о том, как создать простейшего Телеграм бота с кнопками и логикой. Есть инструкции, как это все запустить на сервере. В этой статье я расскажу, как делать масштабируемых ботов "для продакшена", которыми смогут пользоваться сотни тысяч пользователе...

Detekt — пишем свои правила Мы в «Ситимобил», используем статический анализатор кода Detekt. Это инструмент, который при запуске проходит по проекту и показывает допущенные в коде code smell. Сегодня мы расскажем, как написать свое правило и помочь команде соблюдать уникальные для проекта договоренност...

Вытаскиваем данные из Instagram Давайте разберемся, как с помощью достаточно простого кода на python можно вытащить из инстаграмма разные данные, находящиеся в открытом доступе. Читать далее

Пишем плагин отладки для SNES игр в IDA v7 Приветствую, Моя очень старая мечта сбылась — я написал модуль-отладчик, с помощью которого можно отлаживать SNES (Super Nintendo) игры прямо в IDA! Если интересно узнать, как я это сделал, "прошу под кат" (как тут принято говорить). Читать дальше →

Flutter + arduino nano 33 BLE sense = очень простой BLE sensor В этой статье я хочу рассказать как сделать очень простую bluetooth метеостанцию (куда уж без нее :) ) и написать мобильное приложение на Flutter для нее. Читать дальше →

Что за зверь — афинные преобразования? Скорее всего, каждый из Вас хоть раз в жизни слышал термин «афинные преобразования». Действительно, все постоянно о них говорят: «инвариантность к афинным преобразованиям», «аугментация с помощью афинных преобразований», «афинные преобразования в компьютерной графике» и так ...

[Перевод] Koin — библиотека для внедрения зависимостей, написанная на чистом Kotlin Вы узнаете, как с помощью модулей Koin ограничивать область живучести зависимостей, относящихся к конкретному компоненту. Вы также познакомитесь со стандартными областями Koin и способами работы с настраиваемыми областями. Читать далее

Простой ZoomableImageView своими руками за 2 минуты Порой в Android разработке бывают простые проблемы, которые не так просто решить без нужных библиотек или Custom View.Недавно я столкнулся с проблемой создания вот такого простого эффекта: Читать далее

Пишем свой Google, или асинхронный краулер с rate limits на Python Меня зовут Александр, я руковожу backend-разработкой в КТS. Сегодня расскажу, как написать асинхронный краулер.Такая задача часто встречается на практике, когда нужно реализовать периодическую синхронизацию/обкачку между сервисами. Статья написана по мотивам вебинара, к...

[Из песочницы] Пишем на языке С/C++ в Linux под KolibriOS Вступление KolibriOS – миниатюрная операционная система, ядро и большинство программ которой написано на ассемблере. Это, конечно же, не значит, что на других языках программирования писать для KolibriOS нельзя. Данная статья — инструкция по настройке toolchain'а для Linux. ...

Оплата в телеграм боте — Платежи 2.0 — Сбербанк + Telegraf + Node.js Платежи 2.0 — В мессенджере Telegram появилась возможность принимать платежи в любом чате, включая группы и каналы. Подключить свой магазин к платформе можно самостоятельно, без согласования с Telegram. И в этом туториале мы создадим простого бота с Node.js на фреймворке Te...

[Перевод] Java и базы данных: обзор библиотек и API Каждый раз при необходимости взаимодействия с базами данных появляются три вопроса: - Какой подход использовать при разработке: java-first или database-first? Писать сначала Java-классы или SQL-запросы? Будет ли использоваться уже существующая база данных? - Каким способом в...

Откуда взялся 'do' в вопросах и отрицаниях? В июне на Хабре было сразу несколько интересных статей на лингвистические темы, и одну дискуссию из комментариев мне хочется вынести в отдельную статью: удивительная и, по-видимому, уникальная особенность английского — то, что в вопросах и отрицаниях обязательно должен быть ...

[Перевод] Как на Raspberry Pi запустить модель ML и сэкономить пространство одноплатника Представьте ситуацию: впереди выходные, а у вас есть достаточно нагруженная малинка и вы — ради эксперимента — хотите посмотреть, что ML умеет на мощностях RPi, но не хотите слишком перегружать машину, даже всей облегчённой версией TF. Что можно сделать? Мы уже писали о клас...

Нейросеть с нуля своими руками. Часть 3. Sad Or Happy? В предыдущей части статьи мы написали реализацию простейшей нейросети в виде JS класса. Теперь давайте попробуем дать ей настоящее задание. Сценарий будет следующим: пользователь будет рисовать в определенном блоке веб-страницы смайл, а наша нейросеть попробует определить гр...

[Перевод] Трюки с виртуальной памятью Я уже довольно давно хотел написать пост о работе с виртуальной памятью. И когда @jimsagevid в ответ на мой твит написал о ней, я понял, что время пришло.Виртуальная память — очень интересная штука. Как программисты, мы прекрасно знаем, что она есть (по крайней мере, во всех...

[Перевод] Пишем современный маршрутизатор на JavaScript Доброго времени суток, друзья! Простые одностраничные приложения, основанные на React, Vue или чистом JavaScript, окружают нас повсюду. Хороший «одностраничник» предполагает соответствующий механизм маршрутизации. Такие библиотеки, как «navigo» или «react-router», принос...

[Перевод] Как создавать предметы генеративного искусства с помощью L-систем на языке Python Мы уже писали о поле течений, при помощи которого можно генеративно рисовать невероятно красивые, завораживающие линии. Сегодня, к старту курса о Fullstack-разработке на Python, мы решили продолжить тему. Представляем перевод статьи, автор которой рассказывает, как генериров...

Сохраняем архивы виртуального хостинга на Yandex object storage В статье показан простой метод сохранения архивов на Yandex Object Storage с помощью PHP. Читать далее

Vuetify  —  создаем свое простое приложение В этой небольшой статье мы с вами напишем свое простое приложение по типу "заказа еды". Само приложение если что будет статичным и здесь главный упор будет сделан на использование компонентов Vuetify и рассмотрение того как именно они работают. Также добавлю что здесь мы не ...

Кроссплатформенные OpenGL + Python при помощи Kivy Будучи наивным чукотским программистом, я думал: "питон такой кроссплатформенный, напишу игрушку для сына, запущу на планшетике, пусть играется". В результате две недели ушло на попытки натыкать решение по переезду с PyOpenGL+pygame на kivy, так как внятного примера использо...

Подключение Yandex Database к serverless телеграм боту на Yandex Functions Данная статья является продолжением вот этой статьи. В ней мы рассмотрели создание и настройку yandex cloud functions телеграм бота. А сегодня мы рассмотрим подключение телеграм бота к базе данных и сохранение какой-либо информации о пользователе, с которым общается бот.В ка...

Книга: проектирование API Приветики. Каждый из нас в этом этом чудесном году находит свой способ скоротать время. Я вот, например, пишу книгу. Книгу о том, что знаю и люблю — про API. (Кто я такой и какой опыт имею в разработке можно посмотреть здесь)→ Пока что написал первую часть — о принципах прое...

Микросервисы на С++. Выдумка или реальность? В этой статье я расскажу о том, как создал шаблон (cookiecutter) и настроил окружение для написания REST API сервиса на С++ с использованием docker/docker-compose и пакетного менеджера conan. Во время очередного хакатона, в котором я участвовал в качестве бекенд-разработч...

Очереди на очереди: Magento 2 + RabbitMQ Привет! Меня зовут Павел и я Magento 2 бэкенд-разработчик. Когда-то давно, когда я только начинал знакомство с Magento 2 (для краткости буду называть ее M2), мне понадобилось автоматизировать обработку однотипных событий при разработке одного решения. Тогда я удивился, наско...

[Перевод] Пишем загрузчик на Ассемблере и С. Часть 2 В предыдущей статье я рассказал о процессе загрузки, а также продемонстрировал написание загрузочного кода на C и ассемблере, в том числе с вложением инструкций последнего в код первого. При этом мы написали несколько простых программ для проверки работоспособности внедрен...

Linux для macOS M1: что сделала команда Asahi Linux за январь-февраль 2021 Некоторое время назад на Хабре уже писали про проект Asahi Linux.Если кратко, то это попытка запустить linux на новом маке с M1 архитектурой. Прошло 2 месяца с момента старта проекта, и разработчики подготовили отчёт о проделанной работе, который помимо перечня сделанного и ...

[Из песочницы] Телеграм + 1С + Вебхуки + Апач + Самоподписанный сертификат Много строк исписано про интеграцию Телеграма и 1С. Но нигде не увидел полной инструкции по установке и настройке вебхуков. Попробую её написать. Для всего этого нам понадобится (или правильнее будет сказать, что было использовано мной): Apache 2.2.24 OpenSSL (входящий в...

[Из песочницы] Urban Bot или как писать чат-ботов для Telegram, Slack, Facebook… на React.js В этой статье я хочу познакомить с новой библиотекой Urban Bot, которая адаптирует React для написания чат-ботов. Ниже я расскажу, зачем эта библиотека появилась на свет, какие дает преимущества и как написать вашего первого чат-бота. Чат-бот — это чаще всего отдельный чат ...

[Перевод] Трассировщик лучей с нуля за 100 строчек Python В этом посте мы заглянем под капот алгоритмов компьютерной графики, пошагово разберем основные принципы трассировки лучей и напишем ее простую реализацию на Python. Никаких сторонних графических библиотек — только NumPy и голый код в компиляторе.Примечание: Эта статья ни в к...

Как готовить микрофронтенды в Webpack 5 Всем привет, меня зовут Иван и я фронтенд-разработчик из компании DexSys.На моём комментарии про микрофронтенды набралось целых три лайка, поэтому я решил написать статью с описанием всех шишек, что наш стрим набил и набивает в результате внедрения микрофронтендов.Начнём с т...

Запускаем PostgreSQL в Docker: от простого к сложному О простых и продвинутых способах запуска PostgreSQL в Docker: добавляем healthcheck, ставим на мониторинг, настраиваем параметры. Читать далее

HTB Proper. Пишем tamper для sqlmap и эксплуатируем race condition через RFI Для подписчиковВ этой статье мы пройдем машину Proper с Hack The Box. В процессе я покажу, как получить учетные данные к сайту через SQL-инъекцию, написав свой tamper к sqlmap. Далее эксплуатируем race condition через RFI, чтобы получить первоначальный доступ к хосту. Заверш...

[Перевод] Фрактальное сжатие изображений Пару лет назад я написал очень простую реализацию фрактального сжатия изображений для студенческой работы и выложил код на github. К моему удивлению, репозиторий оказался довольно популярным, поэтому я решил обновить код и написать статью, объясняющую его и теорию. Читать ...

[Перевод] MKINITCPIO V31 и заглушки UEFI Изображение взято из статьи «Linux Kernel EFI Boot Stub или «Сам себе загрузчик»» Несколько месяцев назад я написал для скрипта mkinitcpio код, который позволяет ему создавать файлы UEFI с использованием заглушки systemd. Само внесенное мной изменение можно найти на GitHu...

[Перевод] PyFilesystem — мощная альтернатива pathlib Написанная с помощью PyFilesystem функция поиска дубликатов файлов будет работать без изменений с жёстким диском, zip-файом, FTP-сервером, Amazon S3 и т. д., этот API абстрагирует от физического расположения файла. В нём меньше способов выстрелить себе в ногу, чем у модулей ...

Пишем терминальный сервер для микроконтроллера на С Всем привет! В процессе работы над гексаподом AIWM я все чаще задумывался о каком-нибудь удобном интерфейсе для общения с ним. В результате тесной работы с Linux через терминал я подумал, а почему бы не использовать такой же интерфейс и в гексаподе? Я был очень удивлен, что ...

[Перевод] Рейкастинг в игровых 2D-движках Введение На мой взгляд, рейкастинг — великолепная концепция, понять которую не так сложно, но качественных ресурсов по ней очень мало. Я расскажу о математике, лежащей в её основе, чтобы вы при желании с лёгкостью могли реализовать её в своих будущих проектах. Постараюсь сд...

Как программисту стать писателем или как написать эту статью? О, статьи — их тысячи! Их пишут сейчас в огромных масштабах все, кто только пожелает. Но как начать их писать, если вы программист? Каким должно быть введение и как не погубить текст? И это только малая толика того, на что эта статья не ответит! Шучу-шучу… Конечно, мы затрон...

Wasm в Armory Engine Для тех кто в танке - wasm или WebAssembly это язык программирования низкого уровня для виртуальной стековой машины раз разработанный как портативная цель компиляции для высокоуровневых языков, таких как Си, C++, C#, Rust, Go. Проще говоря вы можете ...

Повторил рекламу Яндекс GO в Blender за 24 часа Всем привет!Меня зовут Денис и я занимаюсь 3д и моушн графикой. Я давно читаю Хабр, но ещё ничего не писал сюда. Пару месяцев назад я выложил на ютюб видео с созданием рекламы Яндекс GO. Сразу оговорюсь, что этот ролик никем не проплачен, мне просто захотелось повторить то, ...

[Перевод] Как при помощи ИИ сделать распознавание вводимых вами рукописных цифр прямо в браузере Эта статья для новичков и не претендует на высокий технический уровень, а если вам интересны сложные современные решения, обратите внимание, например, на статью о GIRAFFE, который для генерации реалистичного движения объединяет самые современные подходы в ИИ.В конце статьи в...

[recovery mode] Типобезопасная работа с массивами PHP, часть 2 Всем привет, прошёл почти год с публикации первой части. Обсуждение в комментариях было жарким, выводы я для себя сделал, изменения в либу внёс почти сразу, но написать об этом времени не нашлось.На днях расширил функционал парой методов, и хочу поделиться с вами этими новос...

[Перевод] Рендеринг острова из «Моаны» менее чем за 10 000 строк кода на Swift После того, как Walt Disney Animation Studios выложила в сеть описание сцены острова из «Моаны», много кто пытался его отрендерить своими силами, исключающими оригинальный Hyperion. Это лишь малая часть списка таких движков:Hyperion (естественно);Renderman;PBRT;Embree/OSPRay...

Немного о графиках, сплайнах и генерации ландшафта Всем привет! Недавно я решил написать свой алгоритм генерации ландшафта для своих игр на игровом движке Unity 3D. На самом деле мой алгоритм вполне подойдет и для любых других движков и не только движков, так как использует только чистый C#. Делать это с помощью шума мне пок...

Как создать кастомный плагин для Dart-анализатора Привет! Меня зовут Дима, я frontend-разработчик в компании Wrike. В этой статье я расскажу про то, как написать плагин для анализа кода на Dart. Текст будет полезен тем, кому не хватает текущей функциональности дартового анализатора по статическому анализу или если вам прост...

[recovery mode] Удалённая работа: не рай, а светлое будущее Я прочитал немало статей о том, что удалёнка — это зло для разработчика. Что проседает продуктивность, потому что отвлекаешься на бытовуху. Что человек не может сосредоточиться, потому что жена на фоне варит борщ. Что нет живого общения с коллегами и не у кого спросить что-л...

Построение компонентов с выпадающими блоками с помощью Angular и Material CDK Каждое приложение использует компоненты с выпадающими блоками. Такие панели используются в выпадающем списке, Autocomplete, Tooltip и т.д. В Material CDK есть инструмент Overlay для создания такого функционала.В этой статье мы рассмотрим какую проблему решает Overlay CDK, к...

Пишем мессенджер на Vue в облаке Amazon Разберем как использовать облачный сервис Amazon для создания мессенджера Chatty многопользовательского чат-приложения в реальном времени с одной комнатой с помощью фреймворка Vue и AWS Amplify. Настроим регистрацию пользователей и хранение данных. Читать далее

Прыжок до небес: запускаем телеграм бота на Python в serverless облаке Одним из современных архитектурных подходов в области облачных вычислений является, так называемый, Serverless. Этот способ запуска приложений в облаке освобождает разработчиков от нужды администрировать сервер и заботиться о чем-то, кроме кода.Очевидно, что для такой задачи...

[Перевод] Магия Ensemble Learning Привет, Хабр! Приглашаем Data Engineer'ов и специалистов по Machine Learning на бесплатный Demo-урок «Вывод ML моделей в промышленную среду на примере онлайн-рекомендаций». А также мы публикуем статью Luca Monno — Head of Financial Analytics at CDP SpA.Одним из наи...

Хардкорная разработка под Телеграм. Бот-модератор своими руками. Часть 1 А давайте напишем своего крутого бота-модератора Телеграм-чатов на Python. Пусть он сможет чистить чат, банить участников и выдавать им предупреждения, приветствовать новых участников чата и не только.Мы сделаем полноценного масштабируемого бота с учётом лимитов и особенност...

LINKa смотри. Система выбора карточек при помощи айтрекера и не только Вспомним кто я? Привет, хабр. Я Иван Бакаидов. Много лет назад я писал про свой школьный проект программы, которая позволяет печатать одной кнопкой людям с тяжелой физической инвалидностью. Вот та статья. С того момента много что изменилось, умерла девочка, для которой я ...

RustCon Contest 2021 — соревнование для тех, кто пишет на Rust и тех, кто только к нему подступается В прошлой статье мы писали, что давно пора снова собрать русскоязычное сообщество rust-разработчиков, и поэтому в декабре проведем RustCon Russia. Так вот, при подготовке конференции мы поняли, что есть два разных сегмента тех, кому интересен Rust. Первые — это те, кто уже п...

Самые гибкие todo в Телеграме в две строчки кода Недавно Boomburum писал о своих лайфхаках в Телеграме. Вместо "Избранного" он использует несколько приватных каналов с самим собой — для разделения на категории. И делаю точно так же.Это удобно: в Телеграме всегда можно что-то быстро записать или переслать из других чатов. П...

[Перевод] Откровения кофеин-зависимого инженера: как писать документацию Четыре вида документации распределнные по двум осям: практика-теория и обучение-работа. Недавно вышли два нашумевших поста: Откровения трезвого инженера Откровения пьяного старшего инженера И многие спрашивали: «Кто-нибудь, пожалуйста, научите меня писать хорошую докум...

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

Нейросеть с нуля своими руками. Часть 2. Реализация Итак, моя первая публикация успешно прошла модерацию, поэтому рад вам представить вторую часть статьи, в которой мы применим полученные знания на практике и напишем простейшую нейросеть с нуля.Как я говорил во вступлении к первой части, я frontend-разработчик, и мой родной я...

Разгоняем JS-парсер с помощью WebAssembly (часть 2: алгоритм и его оптимизации) В первой части статьи мы исследовали скорость различных вариантов обмена информацией между JavaScript и WASM-кодом. В этом продолжении - наконец-то займемся написанием прикладного кода нашего парсера.Мы ведь теперь пишем "прямо на ассемблере" - значит, все будет супербыстро!...

Пишем комикс-приключение на Kotlin Всем привет! Сегодня вас ждет легкая статья, которая расскажет как написать простую мобильную игру-викторину на Kotlin. Здесь я расскажу и наглядно покажу как выглядит Kotlin для мобильной разработки и предложу свои идеи о том, как можно структурировать подобный проект. Что ...

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

Калькулятор Wolframalpha в диалоге Telegram Идея В диалогах телеграма я очень часто использую телеграм бот: inlatexbot. Он позволяет вставлять Latex прямо в диалоге телеграма — это удобно: математическое обозначение можно отправить понятной картинкой, чтобы было так $$display$$\sqrt{4} * 2^x * \frac {1} {3}=1024$$disp...

Новый язык программирования — Relax Всем привет, я являюсь автором языка программирования Relax. На данный момент я разрабатываю RVM(RelaxVirtualMachine) И Relasm(Relax Assembly). Первые попытки сделать свой язык начались в конце лета 2020, тогда я и не думал что делать язык - это так сложно. Сам же проект Rel...

Когда нужна телеметрия: интегрируем в проект библиотеку логирования uP7 Зачастую разработчику, или даже пользователю, требуется посмотреть, что происходит внутри устройства. Обычно в таких ситуациях используют либо текстовой вывод в терминал (через голый UART или самописный протокол гарантированной доставки), либо пишут свои собственные системы ...

Как написать Viber чат-бота, работающего с АСУ ТП на базе ПЛК Siemens Как создать Viber чат-бота на Python для диспетчеризации технологического процесса. Читать далее

[Перевод] Кунг-фу стиля Linux: удобный доступ к справке при работе с bash В наши дни редакторы кода часто предлагают программистам помощь или справочные сведения, относящиеся к тому, что вводится с клавиатуры. Это может быть всё что угодно — от списка коротких вариантов автозавершения ввода до шаблонов для ввода больших фрагментов кода. Если вы уж...

[Перевод] Модели глубоких нейронных сетей sequence-to-sequence на PyTorch (Часть 1) Этот туториал содержит материалы полезные для понимания работы глубоких нейронных сетей sequence-to-sequence (seq2seq) и реализации этих моделей с помощью PyTorch 1.8, torchtext 0.9 и spaCy 3.0, под Python 3.8. Материалы расположены в эволюционном порядке: от простой и неточ...

5 причин не начинать писать приложение под macOS/iOS Привет хабр! Я терпел четыре года, и таки решился написать о своем хобби проекте. Если коротко о себе, то я типичный разработчик подсевший на макбуки в эру, когда ноутов с хорошей батареей толком и не было. Мой проект — программа для ведения заметок в Markdown и Plain text. ...

Искусственные нейронные сети. Часть 1 В этой статье вы познакомитесь с основами работы искусственных нейронов. В последующих статьях мы изучим основы работы нейронных сетей и напишем простейшую нейронную сеть на python. Читать далее

[Перевод] Ретро-программирование: пишем простую игру на том самом GW-BASIC 1983 года Image by : Opensource.com Не так давно корпорация Microsoft открыла исходный код GW-BASIC. И на волне этого инфоповода автор решил скачать его, установить на FreeDOS и написать на этом языке знаменитую игру с угадыванием чисел. Казалось бы, всё просто. Но не совсем… Об это...

Как уменьшить размер приложения на C#, которое независимо от среды? В этой статье поделюсь опытом, как уменьшить размер приложения, написанное на C# и независящее от сборки, в 2 – 4 раза. Читать далее

Спасибо, Хабр! Как вы помогли выпустить книгу о Степане Пачикове и первом российском стартапе в Кремниевой долине Больше чем два года назад я написал тут на «Хабре», что пишу книгу — и попросил вас о помощи. Дело было так.Работая репортером в журнале «Сноб», еще в далеком в 2009 году я познакомился со Степаном Пачиковым, легендарном айти-предпринимателем, основателем «ПараГрафа» и Evern...

Detect it to pop it — используем “взрослые” инструменты Intel для решения “детской” задачи Задачу обнаружения различных объектов сейчас модно решать на основе глубокого обучения. Но для этого нужно собрать и разметить датасет, сконструировать глубокую нейросеть, обучить ее и запустить “в продакшн”. И если недавно для всего этого приходилось самостоятельно писать к...

[Перевод] Анализ данных Twitter для ленивых в Elastic Stack (сравнение Xbox и PlayStation) Данные Twitter можно получить множеством способов — но кому хочется заморачиваться и писать код? Особенно такой, который будет работать без перебоев и перерывов. В Elastic Stack вы можете с легкостью собирать данные из Twitter и анализировать их. Logstash может в ...

Пишем юнит тесты на TypeScript'е (на примере котиков) Как писать модульные тесты в проекте с TypeScript'ом? В этой статье я постараюсь ответить на этот вопрос а также покажу как создать среду модульного тестирования под проекты использующие TypeScript. Читать далее

Перезапись специальных переменных Perl регулярными выражениями Когда-то я стал писать на perl из-за встроенных в язык регулярных выражений. Просто пишешь "abc" =~ / (?<x> a) /x; и вуаля: устанавливаются переменные $&, $1, %+, $`, $'.Однако эти же переменные перезаписываются при использовании следующей регулярки: Читать далее

Парсинг логов при помощи Fluent-bit Не так давно передо мной встала задача организации логгирования сервисов, разворачиваемых с помощью docker контейнеров. В интернете нашел примеры простого логгирования контейнеров, однако хотелось большего. Изучив возможности Fluent-bit я собрал рабочий пайплайн трансформ...

Знакомство фронтендера с WebGL: четкие линии (часть 3) Третья часть серии статей о том как фронт писал свой микродвижок для рендера моделей, ради экономии байтов. Ссылка на прошлую.Пишем свой парсер и погружаемся в некоторые функции webGL для красивых линий. Читать далее

Spill-файлы в Greenplum Если вы читаете эту статью, скорее всего, с некоторой периодичностью сталкиваетесь со spill-файлами, а может, и генерируете их. В сети мало статей и постов на эту тему, поэтому я решил написать здесь всё, что знаю о спиллах, о том, как понять, что они есть в запросе, и как и...

Книга «Эффективный C. Профессиональное программирование» Привет, Хаброжители! Мир работает на коде, написанном на C, но в большинстве учебных заведений программированию учат на Python или Java. Книга «Эффективный С для профессионалов» восполняет этот пробел и предлагает современный взгляд на C. Здесь рассмотрен C17, а также потен...

Как заставить машину написать тесты из кода за тебя Мы живем в неидеальном мире. Здесь код пишут люди, а люди по своей природе склонны совершать ошибки. Все бы ничего, ошибки можно отловить на этапе тестирования и не дать им никому навредить. Можно, если писать тесты. Чего люди делать почему-то не любят. Но возможно, есть над...

Python &amp;amp; EEL. Делаем просто на Python’е и красиво на JS Тема красивых интерфейсов была и будет актуальна всегда, кто-то использует для создания графических приложений C#, кто-то использует Java, кто-то уходит в дебри C++, ну а кто-то извращается с Python, используя tkinter или PyQT. Существуют различные технологии, позволяющие со...

Первые шаги с aiohttp: часть 2. Подключаем базу данных к приложению Привет!В прошлой статье мы познакомились с aiohttp и написали на нем свое первое веб-приложение: стену с отзывами.В этой статье мы продолжим изучение и подключим к нашему приложению базу данных PostgreSQL, используя для этого Gino, SQLAlchemy и Aiopg, а также автоматически с...

Разбор спорных научных вопросов: прививки и аутизм, гомеопатия, ГМО и мужчины умнее женщин? ч.1 Привет Хабр! Меня зовут Михаил и я решил написать большую статью для саморазвивающихся людей про одну интересную книгу Аси Казанцевой, в которой разбирается ряд спорных научных вопросов, таких как "Вредно ли ГМО" или же "Пора ли запретить опыты над животными?". Я упрощу напи...

Общего решения из коробки — нет, или Тестируем PySpark MLlib Андрей Гаврилов работает в компании EPAM software инженером и занимается data-инженерными задачами. Пишет на Python, работает с Big Data и изучает Data Science — потому что невозможно заниматься Big Data на Python, не касаясь при этом Data Science.И однажды он захотел выясни...

[Перевод] Семантический поиск: от простого сходства Жаккара к сложному SBERT В материале, переводом которого мы решили поделиться к старту курса о машинном и глубоком обучении, простым языком рассказывается о семантическом поиске, статья охватывает шесть его методов; начиная с простых сходства по Жаккару, алгоритма шинглов и расстояния Левенштейна, а...

Desktop. Не популярный, но все еще живой. Eclipse Rich Client Platform (RCP e4) Всем доброго времени суток. Начнем. Во время своего обучения этой технологии я столкнулся с проблемой, что на весь интернет есть только один нормальный источник информации по этой теме (Lars Vogel). А в нем все написано профи для профи. Поверхностно, без деталей. ...

[Перевод] Вот так выглядит нейросеть без фреймворков Чтобы лучше понять глубокое обучение, Data Scientist из Hewleet Packard написал нейросеть только при помощи NumPy. Знать свои инструменты необходимо любому специалисту, поэтому наш курс по науке о данных включает раздел «Математика для Data Science». Под катом вы найдёте не ...

О том как написать и опубликовать смарт-контракт в Telegram Open Network (TON) О том как написать и опубликовать смарт-контракт в TON О чем эта статья? В статье я расскажу о том, как поучаствовал в первом (из двух) конкурсе Telegram по блокчейну, не занял призовое место и решил зафиксировать опыт в статье, чтобы он не канул в Лету и, возможно, помог ко...

Основы Ansible, без которых ваши плейбуки — комок слипшихся макарон Я делаю много ревью для чужого кода на Ансибл и много пишу сам. В ходе анализа ошибок (как чужих, так и своих), а так же некоторого количества собеседований, я понял основную ошибку, которую допускают пользователи Ансибла — они лезут в сложное, не освоив базового. Для исправ...

Websocket API на nodejs по новому О чем эта статья?1. uWebsockets.js - высокопроизводительная реализация http/websocket сервера для nodejs2. AsyncAPI - спецификация для асинхронного API, с помощью которой можно создать описание Websocket API3. Простой пример websocket API с использованием библиотеки wsapix: ...

ExtendScript Работа с файлами Всем привет.В предыдущей статье я рассказал, как написать скрипт для Adobe After Effects. Напомню, что наш скрипт создает окно в интерфейсе программы. В этом окне можно вводить и выполнять код Extendscript - язык сценариев для программ Adobe. Теперь хочу предложит вам некото...

Заметки Датасатаниста: реляционные vs связанные данные Сегодня мы поговорим о простой, казалось бы, теме, как реляционные и связанные данные. Несмотря на всю ее простоту, замечаю, что иногда люди действительно путаются в них — я решил это исправить, написав краткое и неформальное объяснение, чем они являются и зачем нужны. ...

Насколько сложно написать свою операционную систему? Концептуальная плата REX и простой процессор WRAMP разработаны специально для обучения студентов компьютерной архитектуре, системному программированию и ассемблеру Десять лет назад ходили анекдоты про Дениса Попова, который долго и упорно настаивал, что написал свою опера...

Мониторим основные сервисы в AWS с Prometheus и exporter’ами для CloudWatch Если вы используете в облачных провайдерах managed-инсталляции серверных служб вроде RDS или ElastiCache от AWS, то несомненно задавались темой мониторинга инфраструктуры, а главное — оповещений по произошедшим инцидентам. При реализации возникают понятные вопросы: Как можно...

[Перевод] Наш путь к нулевым простоям при непрерывном обновлении с помощью Ambassador Мы в Lifion строим распределенную платформу и портфель продуктов для клиентов по всему миру. С учетом этого важно, чтобы мы могли выпускать обновления нашей платформы непрерывно прямо во время ее работы, прозрачно для наших пользователей, которым важна доступность системы, ...

Метрика Cognitive complexity или простой способ измерить сложность кода В этой статье я бы хотел поделиться простой и практической рекомендацией о том, как программистам перестать спорить о качестве кода, а вместо этого аргументированно доказывать необходимость рефакторинга, упрощения, добавления комментариев и документации к коду. Автору никто ...

Распаковка исполняемых файлов Статья расскажет о подходах к анализу запакованных исполняемых файлов с помощью простых средств для обратной разработки. Будут рассмотрены некоторые пакеры, которые применяются для упаковки исполняемых файлов. Все примеры будут проведены в ОС Windows, однако изучаемые подход...

Навык Алисы на serverless в Yandex.Cloud СложнСложно в одном тексте описать всё необходимое для разработки даже самого простого навыка для Алисы с одной стороны. А с другой стороны, показать разработку на serverless-стеке так, чтобы и новичку было не так сложно и заядлому девелоперу было не скуч...

Расставляем ударения с помощью Natasha и Spacy Представьте себя на месте изучающего русский язык иностранца. Ударение станет одним из ваших самых страшных ночных кошмаров.Однажды я написал приложение для изучения русского, одной из функций которого была расстановка ударений. Я просто проверял каждое слово по словарю. Одн...

Умные дворники: автоматизируем автомобиль Рассказ об опыте создания "с нуля", от идеи до рабочего устройства, простой автоматизации для своего автомобиля. Используя микроконтроллер STM32 и CAN-шину автомобиля сделаем жизнь автолюбителя немного проще и приятнее. Читать далее

[Перевод] Пошаговое руководство по созданию торгового бота на любом языке программирования У меня нет квалификации, позволяющей давать советы, касающиеся инвестиций, законов, или чего-то подобного. Я и не пытаюсь этого делать. Цель руководства заключается в том, чтобы, в учебных целях, рассказать о программировании торговых ботов. Вы должны понимать, что, создав б...

Когда пандемия пойдёт на спад? Оцениваем на Python с помощью Pandas Всем привет. Видел несколько дашбордов по COVID-19, но не нашёл пока главного — прогноза времени спада эпидемии. Поэтому написал небольшой скрипт на Python. Он забирает данные из таблиц ВОЗ на Github'е, раскладывает по странам, строит линии тренда. И по ним делает прогноз...

Почему инлайнить стили — плохо CSS-стили можно встроить прямо в HTML, импортировать, создать с помощью JavaScript или подключить из отдельного файла. Среди разработчиков хорошим тоном считается использовать последний способ, то есть писать стили в отдельном файле и затем...

Приложение, работающее через I2P: проще, чем кажется Invisible Internet Project (I2P, проект невидимого интернета) – лидер среди технологий приватной передачи информации. Полная децентрализация и независимость делают сеть I2P архитектурно сложной, но уникальной в своем роде. Статья посвящена вопросу: может ли программист, несв...

[Из песочницы] STM32 с чистого листа Нельзя доверять коду, который вы не написали полностью сами. — Кен ТомпсонПожалуй, моя самая любимая цитата. Именно она и стала причиной по которой я решил нырнуть в самую глубь кроличьей норы. Свой путь в мир программирования я начал совсем недавно, прошло всего около месяц...

Облако для SOA приложений и не только Привет Хабр.Сегодня я хочу рассказать про своё детище - платформу "qSOA.cloud", которая позволяет запускать приложения построенные по SOA в облаке по разумной цене. Например, стоимость размещения простого HTTP API сервиса, который обрабатывает ~400 000 запросов в сутки, мож...

Error Boundaries в React: препарируем лягушку Представим, что у нас есть приложение на React, в котором можно читать и писать отзывы. Пользователь открыл список отзывов, пролистал его, нажал кнопку «Написать отзыв». Форма написания отзыва открывается в попапе. Пользователь начинает вводить текст, свой email. Вдруг валид...

Как написать симпатичный чейнджлог: опыт Авито Привет! Меня зовут Гера, я продуктовый редактор в Авито. Пишу тексты для интерфейсов и рассылок, а ещё — чейнджлоги для Google Play и App Store. Это тексты, в которых рассказывается, что появилось в новой версии приложения. По-английски их ещё иногда...

Произвольное число аргументов любых типов на C11 и выше с помощью _Generic и variadic макросов В Си стандарта 2011 года добавили небольшую возможность "перегрузки" функций с помощью макроса. (Generic selection) Мне, очень интересно стало написать какую-нибудь функцию, которая максимально использовала бы эту возможностьЗадумка: написать (макро) функцию print, которая в...

[Из песочницы] Гроубокс как метод познания себя Приветствую тебя, читатель! Хочу поведать тебе историю о сборке небольшого, казалось бы очень простого гроубокса, о вхождение в мир микроконтроллеров, о пути, который был пройден маленькими шажками и о борьбе с собой. Хотел бы поведать именно свой опыт — с чувствами эмоциям...

readable — еще один линтер для PHP Хочу представить линтер для PHP readable. Сейчас в нем 16 правил, которые должны улучшить читабельность кода. К основным преимуществам можно отнести: скорость — меньше секунды на 1000 файлов настройка baseline — можно не исправлять все ошибки в проекте сразу, а создать конф...

Wireguard для Kubernetes и удобные GUI Can I just once again state my love for [WireGuard] and hope it gets merged soon? Maybe the code isn't perfect, but I've skimmed it, and compared to the horrors that are OpenVPN and IPSec, it's a work of art. Linus Torvalds, on the Linux Kernel Mailing List Уверен, что мно...

Интерпретатор скрипта на С++ Всем привет. Написал простой интерпретатор, конечно не конкурент lua, но тоже может пригодиться. Кому интересно прошу. Читать дальше →

[Перевод] Актуальность принципов SOLID Впервые принципы SOLID были представлены в 2000 году в статье Design Principles and Design Patterns Роберта Мартина, также известного как Дядюшка Боб. С тех пор прошло два десятилетия. Возникает вопрос - релевантны ли эти принципы до сих пор?Перед вами перевод статьи Дя...

[Перевод] Кросс-браузерное тестирование в Selenium В этой статье мы рассмотрим кросс-браузерное тестирование. Это тип тестирования, который проверяет, работает ли приложение так, как ожидается, в нескольких браузерах, операционных системах и устройствах. Мы можем проводить кросс-браузерное тестирование с помощью автоматизаци...

[Перевод] Тематическое исследование распознавания именованных сущностей в биомедицине Не так давно у автора этой статьи возник вопрос: может ли простой метод сопоставления строк — в сочетании с некоторыми простыми оптимизациями — конкурировать с моделью, обученной с учителем, в биомедицинской задаче распознавания именованных сущностей (NER)? Автор сравнил эти...

[Перевод] Декодируем JPEG-изображение с помощью Python Всем привет, сегодня мы будем разбираться с алгоритмом сжатия JPEG. Многие не знают, что JPEG — это не столько формат, сколько алгоритм. Большинство JPEG-изображений, которые вы видите, представлены в формате JFIF (JPEG File Interchange Format), внутри которого применяется ...

FSTB – работа с файлами в Node.js без боли Когда я работаю с файлами в Node.js, меня не оставляет мысль, что я пишу очень много однотипного кода. Создание, чтение и запись, перемещение, удаление, обход файлов и подкаталогов, всё это обрастает неимоверным количеством бойлерплейта, который еще усугубляется странными на...

TelegramBot инструкция по созданию базового функционала для бота. (Часть 1) Не так давно я предложил вам воспользоваться моим ботом для телеграмма. Telegram Bot — помощник в планировании мероприятий Получив много вопросов в личку, я понял, что вопрос создания ботов для Телеграм довольно популярен. У меня спрашивали исходный код бота, просили по...

Напиши мне письмо, хоть две строчки всего… Давно ли вы писали письма? Я не про выставление счетов, подтверждение заказов, отправку резюме, ответы на претензии клиентов, не про короткие смс и смайлики в мессенджерах... Я хочу, чтобы вы вспомнили, как давно писали письма. Те самые — ...

Пишем простой Path Tracer на старом добром GLSL На волне ажиотажа вокруг новых карточек от Nvidia с поддержкой RTX, я, сканируя хабр в поисках интересных статей, с удивлением обнаружил, что такая тема, как трассировка путей, здесь практически не освящена. "Так дело не пойдет" - сказал я и решил, что неплохо бы запилить чт...

Google Play Music, прощай! Google начали закрывать доступ к ... Как и обещали, Google начала «убийство» своего долгоиграющего проекта Google Play Music.     Еще в октябре этого года компания Google начала отключать свой музыкальный стриминг-сервис Google Play Music. Компания обещала к декабрю полностью закрыть дост...

Пишем full stack монолит с помощью Angular Universal + NestJS + PostgreSQL Привет, Хабр! В этой статье мы создадим готовый шаблон-монолит, который можно брать за основу нового fullstack приложения как скелет для навешивания функционала. Эта статья будет полезна, если вы: Начинающий  fullstack-разработчик; Стартапер, который пишет MVP чтобы провери...

Как я решил протестировать нагрузочную способность web сервера В одно прекрасное утро вдруг пришла "гениальная" мысль – а не протестировать ли мне что ни будь? Посмотрев по сторонам, на глаза мне попался он - герой этой статьи.Это была вступительная минутка юмора, а если серьёзно то вопрос о тестировании web сервера стоял уже давно....

Автоматизация сбора купонов для бесплатной литературы Предыстория На ЛитРес есть система бонусов и купонов, которые появляются с завидной регулярностью. Чтобы сделать приятное жене, да и в целом может найти себе интересную книжку, начал мониторить сайт в котором появляются свежие купоны и скидывал их в телеграм. Но буквально сп...

Нестойкий оловянный припой. О чуме, погубившей Роберта Скотта, и о других заразных болезнях Дорогая, любимая. Мне непросто писать из-за холода — 70 градусов ниже ноля и только палатка защищает… Мы оказались в тупике, и я не уверен, что мы справимся. Во время короткого завтрака я пользуюсь небольшой толикой тепла, чтобы написать письма, готовясь к возможной кончине....

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

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

Регулярные выражения (regexp) — основы Регулярные выражения (их еще называют regexp, или regex) — это механизм для поиска и замены текста. В строке, файле, нескольких файлах... Их используют разработчики в коде приложения, тестировщики в автотестах, да просто при работе в командной строке!Чем это лучше простого п...

Почему мы должны выбросить React и взяться за Angular Итак, я уже немного написал о том, почему, как мне кажется, мы должны перестать использовать React. Чтобы подвести итог этой статьи, я перечислю несколько проблем, с которыми я столкнулся в React... Читать далее

Как в GitHub смотреть красивые отчеты об ошибках с помощью SARIF Вы пользуетесь GitHub, пишете код и делаете прочие веселые штуки. Для повышения качества своей работы и оптимизации своего времени используете статический анализатор. И вот вам приходит идея - а почему бы не смотреть на ошибки, которые выдал анализатор, прямо в GitHub? Да и ...

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

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

[Перевод] Работа с библиотеками KTX Когда вы используете Android Java API в Kotlin, к вам достаточно быстро приходит понимание, что вам не хватает некоторых фич Kotlin, которые делают написание кода намного проще и приятнее. Вместо того, чтобы писать свои собственные обертки и функции расширения для этих API, ...

Mikrotik и VLAN Сразу оговорюсь, что данная статья про Router OS, а не Switch OS. На мой взгляд, работа с VLAN в Mikrotik освещена хуже всего. Да, конечно есть набор статей на эту тему, но лично я когда их все читал... У меня не складывалось глубокого понимания, как именно это всё работает...

Валидация в приложении на PHP (часть 1 — валидация доменного слоя) Как по мне достаточно важная, хотя и холиварная тема. Думаю каждый из нас задавал себе вопросы: "можно не дублировать проверки?", "а не усложняю ли я?", "да как же это сделать нормально?!". Эта статья аккумулирует в себе те практики, которые мне близки и которых я придержива...

Дом в лесу. Работа с освещением в Unity 3D Продолжим "природную" тематику. Ранее, мы учились делать деревья, построили простой домик, а сегодня добавим чуточку света! Создав простую сцену, мы научимся основам работы с динамическим освещением, различными видами источников света и создадим фонарик. Читать далее

Многопоточность и Kotlin в Яндекс.Картах: как не допустить падения новых фич на iOS Привет! Меня зовут Женя Васильев, я делаю Яндекс.Карты под Android. А с появлением у нас Kotlin Multiplatform — так уж получилось, ещё и под iOS. Kotlin Multiplatform позволяет писать код, который будет одинаково работать на iOS и Android. По крайней мере, должен одинаков...

[Из песочницы] Ваш C# уже «функциональный», просто позвольте ему это Привет, Хабр! Представляю вашему вниманию перевод оригинальной статьи «Your C# is already functional, but only if you let it» автора Igal Tabachnik. Несколько дней назад я написал в Твиттере фрагмент кода C#, реализующий FizzBuzz, используя некоторые из новых «фичи» в C# 8....

Как разработать микросхему. Собственный процессор (почти) Как же разработать свою сикросхему. Задался я этим вопросом, когда я захотел создать собственный процессор. Пошёл я гуглить и ничего годного не нашёл. Ответы в основном два։ "Ты не сделаешь свой процессор, потому что слишком сложно" и "Забей и собери компьютер из комлектующи...

Превращаем клавиатуру в пианино с помощью Python Как-то заинтересовался я теорией музыки. Но пианино, увы, у меня нет, поэтому я отправился в поиски программы со следующий функционалом: после нажатия на кнопку звучит определенная нота. Сперва я посмотрел высокопрофессиональные программы, но в них слишком, уж слишком много ...

Про неправильное использование вентиляторов, глобусов и сов или как НЕ нужно входить в It Всем привет, в общем я решил написать эту статью чтобы показать как (по моему мнению) не нужно входить в It ровно на своем опыте. Читать далее

[Перевод] Лёгкая, гибкая, производительная обёртка над Web Animations API — @okikio/animate В 2020 году автор оригинальной статьи решил написать более эффективную библиотеку PJAX, похожую на проект Rezo Zero — Starting Blocks, но так, чтобы легко работать с barbajs. Он понимал, что Starting Blocks легче расширить с помощью настраиваемых функций ...

Повышаем эффективность работы из дома, или как шевелить мышкой на Pi Zero Пишем эмулятор мыши и клавиатуры на Raspberry Pi Zero (W) Читать далее

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

Ещё один способ использования python в браузере (и не только) Весной 2020 года я впервые попробовал себя в разработке сайтов бэкенд я писал на питоне а на фронте пришлось использовать js и он вызвал у меня отторжение(тут надо уточнить, что я не считаю js ужасным языком, просто он мне не понравился). Не долго думая я начал писать трансл...

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

OpenIn.app — MacOS приложения для ссылок и файлов Привет, Хабр!Давно я ничего не публиковал на Хабре, но вот решил сегодня написать в Я пиарюсь (читай карма-самоуничтожение или как это называется сейчас?)Решил в свободное время заняться разработкой под MacOS и iOS. Начал пока с MacOS. Идей много, так что приложений будет мн...

Как «озадачить» всех инженеров и не перемудрить с правами доступа. Опыт Cloud4Y Наша компания постепенно расширяется, у нас работает всё больше инженеров. А когда их много, надо как-то распределять права и доступы. Почему это важно? У нас есть большое количество скриптов по мониторингу, обслуживанию и т.п., которые обслуживаются просто по крону. Но всег...

Учим AI Dungeon говорить по-русски Недавно ребята из сбер(-банка) анонсировали и выложили в свободный доступ свою модель gpt-3 и я понял, что можно наконец то реализовать свою давнюю мечту - сделать AI dungeon для русского языка. Данная игра сильно выстрелила в прошлом году, про нее было написано множество ст...

Как писать хорошие библиотеки под Angular Веб — наполненная фичами среда. Мы можем перемещаться по виртуальной реальности с помощью геймпада, играть на синтезаторе с MIDI-клавиатуры, покупать товары одним касанием пальца. Все эти впечатляющие возможности предоставляют нативные API, которые, как и их функциональность...

Многопользовательская сетевая игра Ticket to Ride Привет, Хабр! Мы — Тимофей Василевский, Сергей Дымашевский и Максим Чайка — только что окончили первый курс бакалавриата «Прикладная математика и информатика» в Питерской Вышке. В качестве семестрового проекта по C++ мы написали симулятор всем известной настольной игры Ticke...

Just for fun: команда PVS-Studio придумала мониторить качество некоторых открытых проектов Статический анализ кода — это важная составляющая всех современных проектов. Еще более значимым является его правильное применение. Мы решили организовать регулярную проверку некоторых открытых проектов, чтобы увидеть эффект от частого прогона анализатора. Мы используем анал...

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

Чего ждать от коробочных приложений? Всем привет, меня зовут Мария и я CEO & co-founder компании «Технофабрика». Продолжаю делиться заметками из жизни команды разработки и сегодняшняя тема дня — ожидания и реальность коробочных решений. Про масштабирование, кастомизацию, поддержку, доработку и вот это вот в...

Как написать правила для Checkmarx и не сойти с ума Привет, Хабр!В своей работе наша компания очень часто имеет дело с различными инструментами статического анализа кода (SAST). Из коробки они все работают средне. Конечно, всё зависит от проекта и используемых в нём технологий, а также, насколько хорошо эти технологии покрыва...

Yet Another Производственный Календарь на MS SQL. ПО->ША->ГО->ВО Написать свое решение меня подтолкнул пост на Хабре на аналогичную тему, в котором эта задача была решена «в лоб» — простым перечислением дней и флагом рабочий/выходной за весь диапазон жизнедеятельности системы, в которой этот календарь используется. В аналогичной ситуации ...

Чек-лист для тестирования числового поля При тестировании встречаются как интересные задачки с замудреной логикой, так и простые, вроде проверки простой строки или числового поля. Для простых полей можно один раз написать чек-лист проверок, а потом переиспользовать, лишь немного меняя под «своё» поле. Сегодня мы р...

Telegram-бот на Java для самых маленьких — от старта до бесплатного размещения на heroku Для кого написано Если вы ни разу не писали Telegram-ботов на Java и только начинаете разбираться — эта статья для вас. В ней подробно и с пояснениями описано создание реального бота, автоматизирующего одну конкретную функцию. Можно использовать статью как мануал для созда...

[Из песочницы] Пишем автотест с использованием Selenium Webdriver, Java 8 и паттерна Page Object В этой статье рассматривается создание достаточного простого автотеста. Статья будет полезна начинающим автоматизаторам. Материал изложен максимально доступно, однако, будет значительно проще понять о чем здесь идет речь, если Вы будете иметь хотя бы минимальные представлени...

Как пропускать и одновременно присутствовать на лекции или «за меня учится Python бот» Я имею самый обычный рабочий график: 5/2, 8ч/день. В настоящий момент удаленно учусь в аспирантуре (коронавирус, все дела) и единственный день, когда я могу вдоволь почувствовать себя человеком-соседом и поделать что-то по дому, – это суббота. Как вы понимаете, здесь что-то ...

Открытые клиенты Hola VPN и Opera VPN Два простых решения для случаев, когда нужен прокси. Читать далее

Flutter + чистая архитектура: разбираем на примере На определенном этапе изучения новой технологии начинаешь задаваться вопросом, как правильно организовать архитектуру проекта. Мне в свое время повезло - попались опытные наставники, которые дали мудрые советы. Однако я считаю, что знания не должны лежать мертвым грузом, ...

Принимаем 10 000 ивентов в Яндекс.Облаке. Часть 2 И снова здравствуйте! Продолжаем нашу серию статей про то, как мы щупали Яндекс.Облако. Давайте вспомним план, по которому мы с вами двигаемся: 1 часть. Мы определились с ТЗ и архитектурой решения, написали приложение на golang. 2 часть (вы сейчас здесь). Выливаем наше при...

[Перевод] Тестирование контракта потребителя сервиса — часть 2 В предыдущем блоге я представил концепцию контрактных тестов. Сейчас мы рассмотрим написание контрактных тестов для сервисов, которые взаимодействуют через Http. Они написаны с использованием: Читать далее

[Перевод] Ванильный JavaScript и HTML. Никаких фреймворков. Никаких библиотек. Никаких проблем Используете для создания приложений Vue, React, Angular или Svelte? Я использую, и если вы тоже, и уверен, что вам уже давно не приходилось писать приложение, которое выводит информацию без этих прекрасных инструментов. Когда-то многие из нас писали веб-приложения только с...

Хардкорная разработка под Телеграм. Бот-модератор своими руками. Часть 3 Продолжаем писать своего крутого бота-модератора чатов на Python.В этой части мы сделаем команды для модерации. Админы чата смогут банить участников, запрещать им писать в чате, давать предупреждения с помощью команд /ban, /mute, /warn.Некоторые боты-администраторы использую...

Недвижимость в разных странах: что там с арендой, риелторами и ипотекой В разных статьях о релокейте мы касались темы недвижимости: наши герои рассказывали, за какую сумму арендуют квартиры и с чем столкнулись при аренде. Решили собрать в один материал информацию про несколько стран: Бразилию, Великобританию, Польшу и Словакию. Читайте и пишите ...

Простыми словами о Programmatic Меня часто спрашивают, что же такое программатик, и чем он отличается от других digital-инструментов. Решил написать небольшую статью, чтобы закрыть все базовые вопросы по этой теме. Приступим! Автор картинки Karolis Strautnieka Читать дальше →

Бесплатный сервис хранения ссылок Знаю, что “хабра-народ” сейчас очень негодует, что стало очень мало технических статей, Хабр “не торт” и т.п. поэтому напишу сразу – это не техническая статья.Цель статьи – поделиться удобным бесплатным сервисом хранения ссылок. Конечно, можно было бы написать подробное техн...

Planet X3 — новая игра для старых компьютеров Planet X3 игрушка не самая известная, но и нельзя сказать, чтобы совсем уж неизвестная в соответствующих кругах. Но русскоязычных обзоров на неё не встречал, потому решил написать свой. Из упоминаний об игре в рунете нашел только несколько сообщений на форумах да пост на Хаб...

Свободный мини AUTOSAR редактор для микроконтроллеров В этом посте я хочу поделиться с вами программой написанной мной для разработки ПО под микроконтроллеры по стандарту близкому к AUTOSAR. Читать далее

[Перевод] Три способа создания клякс с помощью CSS и SVG Кляксы (Blob) - это гладкие, аморфные, желеобразные формы, обычно  причудливые и забавные. Их можно использовать в качестве элементов иллюстраций и фоновых эффектов в сети.Итак, как же они устроены? Разумеется, можно открыть какой-то графический редактор и сделайте их, ...

Новости Yii 2021, выпуск 2 Привет, сообщество! С вами Александр Макаров, samdark и этой второй выпуск в этом году. Я попросил членов команды написать что-то для вступления, но, похоже, они предпочитают писать код :) Есть новости по важным обновлениям Yii 3 и набор релизов Yii 2. Также упомянем некотор...

TDD для микроконтроллеров. Часть 3: Запуск на железе TDD для микроконтроллеров. Часть 1: Первый полет TDD для микроконтроллеров. Часть 2: Как шпионы избавляют от зависимостей TDD для микроконтроллеров. Часть 3: Запуск на железе В первой части нашего цикла статей мы начали освещать тему эффективности применения методологии TDD...

[Перевод] Веб-скрейпинг на PHP Термин web scraping означает извлечение информации из веб-страниц в интернете. Его ещё называют web crawling или web data extraction. PHP широко используется в качестве серверного скриптового языка для создания динамических сайтов и веб-приложений. И на нём можно написать...

Функциональный подход к транзакциям на Scala или пишем свою полезную монаду Если вы работаете с одной базой данных которая поддерживает транзакции вы даже не задумываетесь о консистентности — база все делает за вас. Если же у вас несколько баз, распределенная система или даже к примеру MongoDB до 4 версии — все не так радужно. Рассмотрим пример — м...

[Перевод] Итак, вы хотите оптимизировать gRPC. Часть 1 Часто возникает вопрос о том, как ускорить gRPC. gRPC позволяет реализовать высокопроизводительный RPC, но не всегда понятно как достичь этого быстродействия. И я решил попытаться показать ход своих мыслей при оптимизации программ.Рассмотрим простой сервис "ключ-значение", к...

Эволюция моих SQL запросов Всем привет! Я тимлид и Senior Oracle Developer, 12 лет работаю с OeBS и в основном пишу SQL запросы. Хотел бы рассказать, как за это время менялся мой подход в написании SQL запросов. Читать далее

[Перевод] Что такое Emergent Communication и почему это нужно знать TL;DR: перевод поста Михаила Нуховича What is Emergent Communication and Why You Should Care: что это такое, зачем это нужно, какие есть точки зрения на задачу и перспективные направления исследований. Обучение с подкреплением, обработка естественного языка, теория игр и фил...

Пишем переиспользуемые компоненты, соблюдая SOLID Всем привет! Меня зовут Рома, я — фронтендер в Я.Учебнике. Сегодня расскажу, как избежать дублирования кода и писать качественные переиспользуемые компоненты. Статья написана по мотивам (но только по мотивам!) доклада с Я.Субботника — видео есть в конце поста. Если вам интер...

Музыка операционных систем: как стандартные звуки и код превращают в полноценные композиции Ранее мы уже рассказывали о музыке «зашитой» в разных версиях ОС Windows: вспоминали композицию CANYON.MID, на которую сегодня существует огромное количество каверов, и трек Beautiful Way, демонстрировавший возможности мультимедийного формата ASF.Сегодня мы продолжим тему, н...

[Перевод] Flutter вот-вот завоюет Web Современные Web-сайты пишутся на HTML, JavaScript и CSS (и этот сайт в том числе). Наверно, вы сейчас прочитали это и подумали «да это же очевидно». А если я вам скажу, что можно написать сайт без использования этих трех технологий, у вас наверняка возникнут вопросы… Читать ...

Ahead-of-Time компиляция и Blazor В DotNet 6 запланирована поддержка AOT компиляции для Blazor WebAssembly приложений. Давайте попробуем запустить в Preview 2 версии.Анонса и инструкций пока что нету. Поэтому и решено написать этот пост. Читать далее

Нейросети уже рисуют картины и пишут сценарии. Где ещё они догоняют человека К 2025 году искусственный интеллект заменит 85 миллионов рабочих мест, в том числе — творческих. Нейронные сети уже умеют рисовать картины, писать сценарии и создавать музыку, а их произведения продают на аукционах за огромные деньги.   В этой статье разберёмс...

[Перевод] Выполнение запланированных заданий в Spring Boot Планирование - это процесс выполнения части логики приложения в определенное время в будущем. Запланированные задания - это часть бизнес-логики, которая должна выполняться по таймеру. Spring позволяет нам запускать запланированные задания в контейнере Spring с помо...

[Перевод] Новый sd-bus API от systemd В новом выпуске systemd v221 мы представляем API sd-bus, поставляемый со стабильной версией systemd. sd-bus - это наша минимальная библиотека D-Bus IPC на языке программирования Си, поддерживающая в качестве бэкэндов как классическую D-Bus на основе сокетов, так и kdbus. Биб...

Архитектура приложения моего защищенного чата В этой статье я хочу описать архитектуру своего приложения. Здесь будут представлен как графический клиент, так и сервер.Оба приложения написаны на C. Это мой любимый язык и на нем я бы хотел писать код, если смогу когда нибудь устроиться на работу программистом. Попользовав...

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

Путь IVI от монолита к микросервисам В этой статье мы не откроем ничего нового об устройстве монолита и микросервисной архитектуры. Про это сказано немало слов, написано ещё больше. Мы расскажем о том, как через это прошла наша компания и какие преимущества и недостатки микросервисной архитектуры мы для себя об...

Hibernate и Spring Boot: кто отвечает за имена таблиц? Когда мы добавляем зависимость в проект, мы подписываем контракт. Зачастую, многие условия в нем «написаны мелким шрифтом». В этой статье мы рассмотрим кое-что, что легко  пропустить при подписании трехстороннего контракта между вами, Hibernate и Spring Boot. Речь пойде...

Начинаем писать под stm8, выбираем среды разработки и стартуем На пути в программировании stm8 есть развилка, о ней сегодня и поговорим. Определимся что речь будет идти о средах которые могут писать под си. Для начала поговорим о подходах, я выделю 2 основных. Первый установка ST Visual Develop и выбор в качестве компилятора COSMIC ...

[Перевод] Использование переменных Grafana для большей интерактивности дашбордов Flowers and butterflies by marijeberting С помощью визуализации данных проще понять и осмыслить собранную информацию, использовать ее на практике. При этом работа с дашбордами должна быть простой для нетехнических пользователей — хорошо, если они смогут получать нужные дан...

Карьера в 2021 году: 4 плюса работы в стартапе + вакансии для разработчиков и маркетологов Всем привет! Я много пишу на Хабре о развитии своих проектов. Один из них – стартап Linguix.com, это AI-based writing assistant, то есть продукт, который помогает не-носителям английского языка писать без ошибок (вот как это работает). Мы развиваем проект уже два года, и за ...

7 хороших HTML привычек Можно легко найти хорошие практики по любой технологии, но, к сожалению, по HTML это сделать не так просто. Недолго думая, я написал свой список из 7 советов и делюсь им с Хабром. Читать далее

Что если изменить систему единиц времени? Это жестко? Официальный сайт движения за изменение системы единиц времени.Здесь я подробно напишу на русском языке объяснение. Читать далее

Чему я научился, написав библиотеку компонентов на Svelte Попробовав Svelte в личных проектах, мне захотелось двигаться дальше, и взять фреймворк в проект побольше. Для этого написал библиотеку компонентов svelte-atoms. За основу я взял UI кит на React, который используем на работе. Каким приемам Svelte я научился, читайте под кат...

Готовим C++. Система сборки Bake Наверное, большинство из вас согласится, что на сегодняшний день наибольшую популярность среди систем сборки для проектов на C/C++ имеет CMake. Каково же было мое удивление увидеть в проекте на новой работе собственную систему сборки - Bake.В этой статье я бы хотел описать о...

Антирейтинг 2021 Эта статья написана по аналогии со статьей «Как не надо писать на Хабр: Антирейтинг 2017». Статьи взяты за 2021 год. Кроме отрицательных значений рейтинга, есть список по абсолютному количеству минусов (видимо, самые обсуждаемые темы). Читать дальше →

[Перевод] 5 любопытных примеров лямбд в C++: рекурсия, constexpr, контейнеры и многое другое Пожалуйста, посмотрите мою небольшую статью в блоге, где я покажу вам несколько интересных примеров лямбд. Знаете ли вы, как написать рекурсивную лямбду? Хранить их в контейнере? Или вызывать во время компиляции?Смотрите в статье. Читать далее

Как мы переосмыслили работу со сценами в Unity Unity как движок имеет ряд недостатков, но которые благодаря возможностям для кастомизации и инструментам для кодогенерации можно решить. Сейчас я вам расскажу о том, как мы написали плагин для Unity на основе пост-процессинга проектов и кодогенератора CodeDom. Читать далее

[Перевод] Пишем babel плагин, пошаговое руководство Сегодня я поделюсь с вами пошаговым руководством как написать свой babel плагин. Вы сможете использовать эти знания для автоматизации правок, рефакторинга или кодогенерации. Читать дальше →

[Перевод] Ответ философам от GPT-3 Привет, Хабр. В преддверии старта курса «Deep Learning. Basic» мы подготовили для вас довольно необычный перевод. Читайте ниже, что из этого вышло. Рафаэль Миллер попросил языковую модель GPT-3 от OpenAI ответить на эссе, написанные о ней философами. Приводим перевод текст...

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

[Перевод] Пишем движок полнотекстового поиска на Go Полнотекстовый поиск — один из тех инструментов, которые мы используем практически каждый день, когда ищем какую-то информацию в интернете. Full-Text Search (FTS) — это метод поиска текста в коллекции документов. Документ может ссылаться на веб-страницу, газетную статью, соо...

DLang, Vibe.d и кросс-компиляция для RPi4 Микрокомпьютеры часто используются для построения на них серверов внутри локальной сети. Это очень удобно - у тебя есть маленькая коробочка, которая стоит где-то в ящике, мало потребляет и позволяет тебе, например, пользоваться принтером или сканером из любой точки твоей ква...

Коммерческая тайна. Частые вопросы и ответы Коммерческая тайна вызывает множество вопросов. Некоторые из них мы уже разбирали в прошлых публикациях. Другие регулярно повторяются в комментариях и письмах наших читателей. Потому было принято решение написать отдельную статью, где собраны наиболее частые вопросы и ответы...

«Чистый код» Роберт Мартин. Конспект. Как писать понятный и красивый код? Я решил написать конспект книги, которая всем известна, а сам автор называет ее «Школой учителей Чистого кода». Пристальный взгляд Мартина как бы говорит: «Я тебя насквозь вижу. Ты опять не следуешь принципам чистого кода?» Читать дальше →

[Перевод] Как создавать интерактивные линейные графики на Pandas и Altair Линейный график является неотъемлемой частью анализа данных. Он даёт нам представление о том, как величина изменяется при последовательных измерениях. В случае работы с временными рядами важность линейных графиков становится решающей. Тренд [направление], сезонность и коррел...

Пишем матчмейкинг для Доты 2014 года Всем привет. Этой весной я наткнулся на проект, в котором ребята научились запускать Dota 2 сервер версии 2014 года и, соответственно, играть на нем. Я большой фанат этой игры, и не смог пройти мимо уникальной возможности окунуться в свое детство. Окунулся я очень глубоко, и...

Как я устал от JavaScript и создал свой собственный язык программирования За свою карьеру я успел поработать со множеством языков программирования. Писал flash-игры на ActionScript 3 и Android-игры на Java, сервера на Java, Scala и NodeJS (JavaScript), скрипты на Python, веб и мобильные приложения на React (JavaScript). И на каком бы языке я не пи...

Пора на свалку Никогда не думал, что это случится со мной, но, похоже, я выгорел. А ещё мне стрёмно. Да, это ещё одна статья про выгорание. Я тут на днях смотрел на свою RSS-читалку и заметил, что под тегом «C++» у меня где-то три сотни непрочитанных статей. Я не прочитал ни одной статьи ...

[Перевод] Как предоставить доступ к кластеру Kubernetes с помощью клиентского сертификата: простое руководство Предположим, мы создали кластер Kubernetes. И кто-то из команды разработчиков хочет развернуть и протестировать на нем новое приложение. Как нам предоставить ему доступ в кластер? Команда Kubernetes aaS Mail.ru Cloud Solutions перевела простое руководство по предоставлению д...

Простые запросы SNMP в Python (с помощью pysnmp) Этот пост предназначен в первую очередь для сотрудников телекома, админов и новичков в разработке, впервые столкнувшихся с необходимостью отправить snmp-запросы к какому-нибудь коммутатору и разобрать полученный ответ. Разберем основы работы с библиотекой pysnmp на примере ...

Реализация конечного автомата для автоматизации процессов Каждый уважающий себя техлид \ архитектор ПО \ руководитель разработки,должен написать в своей жизни хотя бы одну CRMнародная мудрость Читать далее

Cosmo Communicator — возможно еще один Linux телефон Возможно еще один Linux телефон, но это не точно... не точно - что получится, хотя даже то что есть очень любопытно.Под катом я достаточно поверхностно расскажу про аппарат, а если зайдет - напишу уже более глубокую техническую статью или отвечу на вопросы. Читать далее

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

Безопасен ли Телеграмм, так ли это? Как доказать безопасность мессенджера На фоне борьбы за первенство мессенджеров, особенно в последнее время когда Whats Up так скомпрометировал себя, Телеграм стал заявлять себя как единственный независимый и безопасный мессенджер.Павел Дуров уже опубликовывал критический пост и заявил что исходники клиентского ...

[Перевод] О наблюдаемости микросервисов в Kubernetes Вам нужны наблюдаемые микросервисы, но вы еще не знаете, как их реализовать с помощью Kubernetes? Ну что ж… возможно это именно та статья, которую вы искали.Во-первых, давайте разберемся, что такое наблюдаемость. Этот термин возник в инженерии систем управления и был определ...

Как дойти до CQRS, если у тебя PHP Недавно я посмотрел доклад «Как перестать бояться CQRS». Вроде бы простая идея, но есть нюансы. Так и появился этот выпуск.CQRS vs CQS (не перепутай) Читать далее

Ни туда, ни обратно Хотел я написать комментарий к статье «Германия или Туда и Обратно», да получился он настолько развернутым, что решил написать изложить свои мысли в отдельную статью.Начнем с того, что тема отъезда и приезда коснулась меня самого лично, о своем опыте я писал некоторое время ...

Ежедневно около 10-15% программ в магазинах мобильных приложений размещается с нарушением авторских прав При помощи собственного сервиса по мониторингу нарушений в сети Интернет “Gorodissky IP Security”, специалисты юридической фирмы «Городисский и Партнеры» в режиме реального времени отслеживают появление новых мобильных приложений, пишет «Бизнес FM Калининград». По ...

[Из песочницы] Нужно ли нам озеро данных? А что делать с хранилищем данных? Это статья перевод моей статьи на medium — Getting Started with Data Lake, которая оказалась довольно популярной, наверное из-за своей простоты. Поэтому я решил написать ее на русском языке и немного дополнить, чтобы простому человеку, который не является специалистом по раб...

Hi-tech на железной дороге: математически обоснованная логистика при помощи «Навигатора» Привет, Хабр! Меня зовут Дмитрий Крупенин, я руковожу продуктовой разработкой в Первой грузовой компании (ПГК). Сегодня хотел бы рассказать о разработанном нами продукте для оператора вагонов железных дорог. Он называется "Навигатор", а его основная задача - повышение эффект...

[Перевод] Дзен Go Оценивая свою работу, я недавно много размышлял о том, как мне писать хороший код. Учитывая, что никто не интересуется тем, как писать плохой код, возникает вопрос: как узнать, что ты написал на Go хороший код? Если есть какая-то шкала между хорошо и плохо, то как понять, ...

Эффективное тестирование верстки Тестировать полезно. Тесты позволяют в автоматическом режиме безопасно рефакторить код и гарантируют его работу. Тесты – это живая документация: если информация в Wiki или в Confluence может устареть, то тесты всегда актуальны. Также многие крутые практики связаны с тестиров...

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

Основы программирования смарт-контрактов TON (FreeTON) Перед тем как мы начнем писать свой токен, а затем систему смарт-контрактов, давайте проведем краткий обзор важных элементов смарт-контрактов для FreeTON. Читать далее

iresine, нормализация данных на клиенте Нормализация. От нее мы или страдаем или пишем собственное решение с множеством проверок на существование сущности в общем хранилище. Попробуем разобраться и решить эту проблему! Читать далее

4 года в Нидерландах Я пишу эту статью в основном для себя: чтобы высказаться и переосмыслить вещи, происходящие в моей жизни. А публикую потому, что не нашел, не прочитал или проигнорировал что-то такое, когда готовился к переезду.А еще тут много про деньги. Читать далее

Всемогущий FFmpeg: скриншаринг в WebRTC Когда мы пишем статьи о своем сервере в комментариях очень часто находится читатель, который говорит:"И зачем такой огород городить? Все это одной FFmpeg командой делается!" Читать далее

Пишем паническую кнопку под андроид (Часть 2) Заглядываем под капот, решаем проблемы и баги. Как все устроенно и что используется - ответы тут! С вами Алексей и сегодня речь пойдет именно от этом.. Читать далее

Написанные компьютерами статьи признали уникальными Китайское новостное агентство China News Service написало материал, в котором поделилось информацией о том, что суд в Шэньчжэне официально постановил, что статьи, созданные при помощи искусственного интеллекта, должны считаться уникальными и защищаться авторским правом.

Визуальное автотестирование сайтов с помощью Codeception Автоматические end-to-end тесты хороши тем, что позволяют сымитировать действия пользователя на сайте. Мы можем запрограммировать в скрипте теста действия типа открыть страницу, нажать на кнопку, ввести данные в поля ввода, нажать галочки и радиокнопки, отправить форму, и жд...

Метеостанция на максималках Про метеостанцию на Хабре писали не раз и не два, и наверное не с десяток раз. И вот настало моё время. Решил с вами поделиться своей.  Читать далее

История про Гену, Чебурашку и тестирование производительности реактивного приложения, работающего на Raspberry Pi - Чебуршка, нам нужно начать поставки нашей новой системы по мониторингу и управлению апельсиновыми плантациями через три месяца, а данных, какую максимальную нагрузку сможет поддерживать наша система - нет! Да и в стабильности работы нашей системы продолжительное время мы н...

[Перевод] Как написать собственное свойство CSS Благодаря Paint API из состава Houdini можно не ждать выхода новых возможностей CSS. Шаг за шагом автор этого материала показывает, как написать новое свойство CSS для анимации с фрагментацией. Делимся материалом, пока у нас начинается курс по Frontend-разработке. Читать дал...

[Из песочницы] Пишем свой плагин для VueJS. Как проект на VueJS трансформировать в расширение для браузера? Вступление В этой статье мы с вами напишем свой собственный плагин для проектов на VueJS, который трансформирует проект в расширение для браузера. Узнаем как изменять правила сборки webpack и генерировать дополнительную структуру файлов и папок. Расширения для браузеров час...

Docs as Code: введение в предмет В последние несколько лет в среде технических писателей все больше на слуху концепция Docs as Code. Если вы раньше не сталкивались с этим термином, он обозначает подход к разработке технической документации с использованием тех же инструментов и процессов, что и написание ко...

Запуск Adobe Flash в Chromium браузере после 12 января 2021 В сети все еще существует какое-то количество страниц, написанных с использованием веб-фреймворка Adobe Flex, а также языка Action Script. Для того, чтобы переписать их на современный лад, многие будут рады продолжить пользоваться инструментами разработчи...

[Из песочницы] Делаем модальные окна для сайта. Заботимся об удобстве и доступности Я занимаюсь вёрсткой и программированием сайтов. Почти в каждом макете, который я верстал, были модальные окна. Обычно это формы заказа звонка в лендингах, уведомления о завершении каких-то процессов, или сообщения об ошибках. Вёрстка таких окон сначала кажется простой задач...

[Перевод] Я перехожу на JavaScript После того, как я 5 лет писал на Go, я решил, что мне пора двигаться дальше. Go хорошо послужил мне. Вероятно, это был лучший язык, которым я мог бы пользоваться столько времени, но теперь настал момент оставить Go. Не могу сказать, что я насмотрелся на ограничения и пробле...

[Перевод] Сняли забавный фильм, сценарий для которого написал GPT-3 В Солиситорах (Solicitors), новом короткометражном фильме, снятым парой студентов-старшекурсников Университета Чапмана, все начинается с женщины, сидящей на диване и читающей книгу. В дверь раздается стук. Она встает, открывает дверь и обнаруживает за ней потного, дерганного...

[Перевод] Введение в обработку изображений в Python при помощи Pillow Бывает такой заходишь на почту и видишь очередную подборку статей, которые никогда не прочитаешь, но тут так сошлись звезды, что и открыл статью, и прочел, и придумал, где на практике пригодится. А теперь хочу поделиться статьей с Хабром, чтобы если кому-то нужен будет прост...

Рекурсивный алгоритм представления Цекендорфа Спасибо добрым участникам Хабра, за то, что пригласили писать посты и получать на них фидбек.Сегодня я бы хотел осветить тему представления чисел с помощью ряда Фибоначчи (теорема Цекендорфа) и разумеется написать простенькое REST API c использованием Mongo DB алгоритм с пом...

[recovery mode] Хочешь заработать миллион? Всем известна фраза Рона Хаббарда «…хочешь заработать миллион — создай свою религию», которую он выдал в 1950 году. Тогда он создал ещё одну деструктивную секту, можно это было в 60-х в США — которая до сих пор пытается утвердиться в мире, как религия. Хотя, сорри, друзья. ...

Как писать в блог, чтобы привлекать больше читателей: 9 простых советов Как придумывать заголовки и в какое время публиковать посты? Делимся отрывком из книги «Пишут все! Как создавать контент, который работает», которая учит писать увлекательные тексты для развития бизнеса или личного бренда.

Как потепление климата в российских городах влияет на наше здоровье? Почему влияние изменения климата на здоровье людей, живущих в России важно понимать любому культурному человеку (и я пишу об этом на Хабре, а не в научном отчете)? Да просто потому, что в дискуссиях об изменении климата мы частенько оперируем несколькими стандартными метеоп...

(не)Безопасный дайджест: пароли по дефолту, персданные в подарок и зарплата для фишеров Начинаем год с новой подборки «классических» и нетривиальных ИБ-инцидентов, о которых писали зарубежные и российские СМИ в январе. В сегодняшнем выпуске сплошь звезды: ООН, РЖД, Nissan, Vodafone. Читать далее

Monitoring as Code на базе VictoriaMetrics и Grafana Приветствую всех любителей Infrastructure as Code.Как я уже писал в предыдущей статье, я люблю заниматься автоматизацией инфраструктуры. Сегодня представляю вашему вниманию вариант построения GitOps для реализации подхода Monitoring as Code. Читать далее

Создание Python-обвязки для библиотек, написанных на C/C++, с помощью SIP. Часть 1 Иногда во время работы над проектом на языке Python возникает желание использовать библиотеку, которая написана не на Python, а, например, на C или C++. Причины для этого могут быть разные Во-первых, Python — язык замечательный, но в некоторых ситуациях недостаточно быстрый....

Учимся квантовому программированию на Python с помощью примеров. Доклад Яндекса Сегодня любой желающий может воспользоваться методами квантового программирования, написать простой код на Python и запустить его на реальном квантовом вычислителе. Ришат Ибрагимов rishat_ibrahimov разобрал основы квантовых вычислений на примерах с кодом, показал, как запуск...

C++ в Практикуме. Как обучить студентов плюсам, не отпугивая Качественное образование — это не просто формальный диплом именитого вуза или парочка сертификатов о пройденных курсах. Это прежде всего новые навыки и уверенное желание применять их на практике. Такое возможно, если человек на самом деле хорошо учился и если его хорошо учил...

[Из песочницы] Авторизация пользователя при помощи Starlette + Vue.js Вступление Задача — создать пример авторизации пользователя с использованием фреймворков Starlette (https://www.starlette.io/) и Vue.js *, который был бы максимально комфортным разработчикам Django для «миграции» в асинхронный стек. Почему Starlette? В первую очередь скор...

[Перевод] Создание CI/CD-цепочки и автоматизация работы с Docker Я написала мои первые сайты в конце 90-х. Тогда приводить их в рабочее состояние было очень просто. Был Apache-сервер на каком-нибудь общем хостинге, на этот сервер можно было войти по FTP, написав в браузерной строке нечто вроде ftp://ftp.example.com. Потом надо было ввести...

sqlite-gui: еще один редактор SQLite для Windows Всё начиналось как простое средство для выполнения запросов к SQLite базе с сохраняемой историей запросов и кода в редакторе, написанное по старинке на WinAPI. Потихоньку оно обросло функционалом, и, если бы я с самого начала знал во что это выльется, то не взялся бы. Читать...

[Из песочницы] Календарь IPO 2019-2020: от Lyft и Levi’s до акций Coursera и SpaceХ Привет! Я Даша Офицерова, я автор и редактор. А ещё я веду телеграм «Инвесторка», где рассказываю о триатлоне и вине, и заодно о покупке акций на внебиржевом рынке. В 2019 году я зашла в 20 IPO, в 2020 году — в 21 IPO, а ещё в 10 pre-IPO за этот и прошлый год. Если эти абб...

Ускоряем загрузку больших объёмов в PostgreSQL, используя COPY from STDIN binary ...К сожалению Qt драйвер для постгреса не поддерживает функционал, необходимый для быстрой загрузки. Поэтому я написал свою библиотеку на С++ для этого, а теперь хочу с Вами поделиться этим прекрасным методом добавления и самой библиотекой. Читать далее

Контрибьютим в Swift Знакомо, узнали? Каждый раз когда вы пытались объявить опциональное замыкание @escaping в Swift компилятор ругался и писал непонятную ошибку @escaping attribute only applies to function types. Мне это не нравилось, и я решил это исправить. Теперь компилятор Swift 5.3 вместо...

[Перевод] Go: распространенные антипаттерны Программирование — это искусство. Мастера своего дела, создающие потрясающие работы, могут ими гордиться. То же самое относится и к программистам, которые пишут код. Чтобы достичь вершин мастерства, творцы постоянно ищут новые подходы к работе и новые инструменты. Так пост...

[Перевод] Решение Fizzbuzz при помощи теоремы Эйлера FizzBuzz — это известная задачка на программирование, которую обычно дают в технической части собеседований. Она формулируется примерно так: Напишите функцию, выводящую список целых чисел от 1 до 100, но вместо каждого числа, кратного 3, она должна выводить «Fizz», а вмест...

«Умный» дом (Xiaomi, Aqara), взгляд простого пользователя 5 лет спустя В данном материале не будет обсуждения прошивок, как сделать "правильно", и как можно с помощью синей изоленты, клея и вентилятора превратить умный чайник в стиральную машину :) Это рассказ простого пользователя о том, как он видит свой «умный» дом по прошествии 5 лет эксплу...

Dramatiq как современная альтернатива Celery: больше нет проблем с версиями и поддержкой Windows Использование Dramatiq как очередь задач и простой пример асинхронной задачи. Читать далее

[Из песочницы] Пишем драйвер для ноутбука for fun and profit, или как закоммитить в ядро даже если ты дурак С чего всё началось Начнём с постановки проблемы. Дано: один ноутбук. Новый ноутбук, геймерский. С RGB-подсветкой. Вот такой примерно ноутбук: Картинка взята с lenovo.com Есть ещё программа к этому ноутбуку. Программа как раз этой подсветкой и управляет. Одна только проб...

Balloon Fight: перенос с VS system на NES Итак, для начала хочется отметить, что хотя я и пишу в песочницу, это уже не первый мой текст на Хабре. Когда-то я писал how to для блога зарубежных ретроигроделов, а поскольку они зарубежные, статьи приходилось переводить на английский. И я был немного удивлен, обнаружив з...

[Перевод] Профессионально обрабатываем исключения в Python Одним из недостатков гибких языков, таких как Python, является предположение, что если что-то работает, то скорее всего оно сделано правильно. Я хочу написать скромное руководство по эффективному использованию исключений в Python, правильной их обработке и логировании. Читат...

Принимаем и декодируем передачи SSTV с МКС Привет, Хабр. Как было написано в недавнем анонсе, с 24 по 31 декабря производится передача изображений формата SSTV с МКС. Передача идет в радиолюбительском диапазоне на частоте 145.800 МГц и принять её может любой желающий. Посмотрим, как это работает и как такой сигнал мо...

Зарплаты в ИТ. А может все-таки… По мотивам статей Минусы от высокой зарплаты у IT-специалистов в России и «Рост зарплат в IT это плохо? Вы же шутите, да?». Хотел сначала написать просто в комментарий, но потом понял, что интересных мыслей/параллелей вроде бы наберется на небольшую (надеюсь) заметку. Читат...

Работа с очень длинными числами на C++ Недавно я решил написать свою собственную реализацию длинной арифметики для C++. Делал просто для себя, ибо эта тема мне кажется довольно интересной. Поставил перед собой следующие задачи: Читать далее

SSE, нотификации, Node.js и при чём тут C#? Вписавшись в очередной провальный заранее стартап, мне прилетела задача: нужны уведомления на сайте. Ладно - сказал я себе. Открываю любимую IDE и начинаю писать очередной микросервис.До этого я никогда не занимался уведомлениями, но был осведомлен, что есть для этого нескол...

[Перевод] Простое ускорение Java с помощью Quarkus и JHipster К старту курса о разработке на Java делимся переводом вводной статьи о Quarkus — "родной" для Kubernetes Java-платформе для создания высокопроизводительных веб-, бессерверных (serverless) и нативных приложений (оптимизированных для используемых микропроцессоров). В ней испол...

«Живые» интерактивные логи: визуализация логов в Voximplant Kit Мы продолжаем обновлять Voximplant Kit с помощью JointJS. И рады сообщить о появлении «живых» логов (live logs) звонков. Насколько они живые и опасны ли для простых юзеров, читайте под катом. Читать дальше →

Как Magento 2 взаимодействует с Vue Storefront Привет! Меня зовут Павел и я занимаюсь бэкенд разработкой. Как уже писал AndreyHabr, многие из наших проектов основаны на стеке Adobe Magento 2 (для краткости далее я буду называть ее M2) в качестве бэкенда и Vue Storefront (VS) в качестве фронтенда. Я не буду подробно оста...

Как не пережить аварию: вредные советы Казалось бы, такое простое действие: взять да восстановиться из бекапа, если где-то сломалось. Текущий уровень развития софта позволяет это cделать буквально в несколько кликов - и вы восхитительны. Возможно, даже никто не заметит, что была какая-то авария.Но нет! Нет препят...

[Перевод] Отправка электронных писем с помощью Spring Отправка электронных писем — одна из базовых функций, которая может понадобиться в любом приложении. Из этой статьи вы узнаете, как отправлять электронные письма с помощью Spring. Для отправки электронных писем вам потребуются данные SMTP-сервера. В качестве примера вы ...

[Перевод] Перевод вводной статьи от разработчиков D-BUS Это вводная статья о технологии межпроцессного взаимодействия D-Bus, написанная его разработчиками. Дан краткий обзор ключевых моментов технологии. Рекомендуется читать перед изучением спецификации. Читать далее

Чем разработчик от кодера отличается Самый плохой разработчик — тот, который всё делает по ТЗ. А самый лучший код — не написанный.«Моя задача — писать код, я разработчик!» — да, это очень удобная позиция. Но людям, которые не только программируют, но ещё и общаются с коллегами, организуют собственную работу и п...

[Перевод] Почему using namespace std; это плохо То, что написано ниже, для многих квалифицированных C++ разработчиков будет прекрасно известной и очевидной вещью, но тем не менее, я периодически встречаю using namespace std; в коде различных проектов, а недавно в нашумевшей статье про впечатления от высшего образования бы...

YouTube вводит платные аплодисменты. Какие изменения ждут нас в 2021 Крупнейшая видеоплатформа мира YouTube продолжает развиваться и релизит все больше инструментов для создателей контента, обычных пользователей и рекламодателей.YouTube рассказал о планах и нововведениях на 2021 год, о чем в феврале написал Techcrunch. В статье раскрываем инф...

Менеджер приложений для Windows Mobile Это очередная статья из цикла о том, как я работаю с устаревшими устройствами, добавляя им больше возможностей и упрощая взаимодействие. Однако в этот раз я не стал брать чужие разработки и заставлять их работать, а написал своё собственное приложение, поскольку аналогов для...

Как ускорить приложение за счёт PHP-FPM (няшим FPM conf) Привет. Сегодня хочу поговорить о том, как ускорить приложение через конфигурирование PHP-FPM.Сейчас самый популярный (из тех с которыми я сталкивался) стек на котором поднимается PHP приложение это веб сервер nginx и процесс-менеджер php-fpm. Я хочу поднять просто...

Vue 3: CompositionAPI + Typescript эксперименты В прошлой статье меня упрекнули, что я при живом Vue 3 пишу про "устаревший" Vue 2. Отговорившись тем, что Vue 3 еще не production-ready, я понемногу начал его смотреть и изучать. И поскольку я заядлый любитель типизации и различных фичей с сахарком, то рассматривать Vue 3 с...

Прокачиваем скрипты симуляции HDL с помощью Python и PyTest Все делают это. Ну ладно, не все, но большинство. Пишут скрипты, чтобы симулировать свои проекты на Verilog, SystemVerilog и VHDL. Однако, написание и поддержка таких скриптов часто бывает довольно непроста для типично используемых Bash/Makefile/Tcl. Особенно, если необходим...

[Из песочницы] Самодельный автопилот на одноплтаном компьютере (SBC) Tinker board и Arduino DUE Идея постройки автопилота появилась примерно 2 года назад. Хотелось создать полностью автономный аппарат способный добраться из точки А в точку Б с возможностью ухода от столкновений и облёта преград, способного преодолевать зоны глушения или отсутствия спутникового сигнал...

Что происходит, когда вводишь url, или как работает интернет Об этом спрашивают на собеседованиях. Структурированное понимание этого может помочь вам, даже если вы давно строите сложные архитектурные процессы или кодите 20-ый год подряд. Я — программист уже много лет, последние пару из которых пишу на Go в Каруне. Работа работой, а вн...

Modern Reverse Engineering: TTD Обратная разработка сегодня это достаточно трудоемкий процесс в первую очередь потому, что в период с 2000х по 2020 годы вышло в свет много языков программирования, которые ставили перед собой задачу стать интуитивными и простыми для изучения, безопасными и в то же время эфф...

Векторные языки — SQL интерпретатор в 100 строк В предыдущей статье я описал векторные языки и их ключевые отличия от обычных языков. На коротких примерах я постарался показать, как эти особенности позволяют реализовывать алгоритмы необычным образом, кратко и с высоким уровнем абстракции. В силу своей векторной природы та...

Stealthwatch Cloud. Быстрое, удобное и эффективное решение для облачных и корпоративных инфраструктур Не так давно я писал про мониторинг Netflow/IPFIX и про Cisco StealthWatch — аналитическое решение, которое позволяет детектировать такие события, как сканирования, распространение сетевых червей, шпионское ПО, нелегитимные взаимодействия и различного рода аномалии. О расс...

Путь из COBOL в Java: пишем транспилятор за сутки Приветствую, Дорогие Друзья. Продолжаем цикл статей, освещающий деятельность (бурную) нашей некоммерческой организации. Как и обещал — переходим от простого (логирование) к более сложному: метапрограммирование. Читать дальше →

Жанровая меломания нейросетей Пишете музыку, но внезапно настиг творческий кризис? Или вам хочется получить треки уровня royalty-free, потыкав несколько слайдеров в Colab ноутбуке? Вы не готовы получать PhD в нейронных сетях и разбираться с теорией музыки, а попробовать себя в роли нейросетевого музыкант...

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

Nginx. Фазы обработки запроса. If is Evil? Самое страшное зло в Nginx - это if в location. Об этом написано много, в том числе на nginx.com. Процитируем кусочек:The only 100% safe things which may be done inside if in a location context are:- return ...; - rewrite ... last;Казалось бы, если использовать конструкцию в...

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

Процесс создания игровой 3D модели Hard Surface Решил я тут написать небольшую (огромную) статью, о том как я делаю игровые модели. В общем начал я делать это оружие, и пришла такая мысль, что можно попробовать описать весь процесс, вдруг кому-то пригодиться. Это не только моя первая статья, ещё и моя первая работа в каче...

[Перевод] Sysbench и распределение случайных величин Перевод статьи подготовлен специально для студентов курса «Базы данных». То, что вы, возможно, не знали о генерации случайных чисел в sysbench Sysbench — это популярный инструмент для тестирования производительности. Первоначально он был написан Петром Зайцевым в начале ...

Популярные задачи для собеседований бэкенд-разработчиков на Go и их решения Я живу в Ташкенте, и когда учился в университете — начал учить Python, чтобы писать ботов. Боты — это узбекский хлеб, у нас на них построено вообще все. Например, никто не делает приложения для заказа еды, все только в мессенджерах. Я учил язык по статьям из интернета —...

Плюсы интеграции Xiaomi Gateway 3 в Home Assistant Первая версия компонента XiaomiGateway3 для Home Assistant вышла 4 месяца назад, и с тех пор много всего изменилось. В прошлой статье я писал про создание компонента. А в этой статье расскажу, почему это решение так заинтересовало сотни пользователей. Читать далее

(не) Безопасный дайджест: псевдоутечки, налоговый дипфейк и атака на сыр Привет! Традиционно собрали «классические» и нетривиальные ИБ-инциденты минувшего месяца – и здесь «призрачно все». В апреле СМИ писали про утечки, которых не было, атаки, за которыми «никто не стоит», флеш-рояль шифровальщиков и баг, ломающий судьбы.  Читать далее

Web Cryptography API: пример использования Доброго времени суток, друзья! В этом туториале мы рассмотрим Web Cryptography API: интерфейс шифрования данных на стороне клиента. Данный туториал основан на этой статье. Предполагается, что вы немного знакомы с шифрованием. Что конкретно мы будем делать? Мы напишем прос...

Автоматизация из первых рук: что такое платформа ServiceNow и как мы ее используем Привет, Хабр! Продолжаем рассказывать о собственных кейсах, задачах, проблемах и способах их решения. Сегодня поговорим о платформе ServiceNow и о том, как мы с ее помощью управляем инцидентами. ServiceNow — это практически универсальный комбайн, который может пригодить...

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

MikroTik Скрипт: Уведомление о успешном входе на устройство или простой парсер журнала MikroTik Разбираем скриптом внутренний журнал событий MikroTik отбирая уведомления вход/выход пользователей на устройство. Отправляем события на почту или Telegram. Написать свой скрипт меня сподвигло желание упростить монструозные скрипты, которые можно найти по этому запросу в инте...

[Из песочницы] AI на минималках: пишем свой Сокобан и учим компьютер его решать В этой статье я расскажу как написать свою реализацию известной игрушки Сокобан, а также алгоритм для её решения с нуля. Заодно применю на практике некоторые шаблоны проектирования и принципы SOLID. Весь код расположен по адресу Читать дальше →

Сколько на самом деле вакансий на Python в веб-разработке (на примере Москвы) В Коммунарке начинается осень, значит пришло время пересмотреть Бегущего (теперь уже два), открыть бутылочку Амаретто и написать следующую статью про всеми любимый Python. В данном случае поговорим о том, сколько на самом деле у нас вакансий на Python для веб-разработчиков. ...

Ролики-мислиды: почему они работают? Если в ролике об игре показан геймплей, которого в рекламируемой игре на самом деле нет, — перед вами ролик-мислид. Вам наверняка встречались такие! За счёт чего они работают и приносят желаемое разработчикам и издателям? Мы попытались докопаться до сути и найти ответы на эт...

ІТ термины на примере процесса выращивания картошки. Часть вторая Два года назад я написал статью ІТ термины на примере процесса выращивания картошки, собравшая огромное количество позитивных комментариев и просмотров. С тех пор появился отдельный персонаж - Картофанчик, который продолжает рассказывать просто об ИТ. Проект оригинально веде...

[Перевод] Обучение и оценка модели с Keras Это руководство охватывает обучение, оценку и прогнозирование (выводы) моделей в TensorFlow 2.0 в двух общих ситуациях: При использовании встроенных API для обучения и валидации (таких как model.fit(), model.evaluate(), model.predict()). Этому посвящен раздел «Использова...

Даже один в поле воин: азы юнит-экономики Как гласит народная мудрость, дурак учится на своих ошибках, а умный на чужих. Меня зовут Вадим (@Sirion), я увлекаюсь математикой и люблю наблюдать, как из хаоса рождаются сложные теории. И в этой статье я хочу рассказать, чему научились умные люди на крахе доткомов. Эта эк...

Выбор элементов recylerView при помощи dataBinding'а Реализация SelectionHelper'а для RecyclerView с использованием dataBinding Читать далее

Сложности работы с ANTLR: пишем грамматику Ruby В «Ростелеком-Солар» мы разрабатываем статический анализатор кода на уязвимости и НДВ, который работает в том числе на деревьях разбора. Для их построения мы пользуемся оптимизированной версией ANTLR4 – инструмента для разработки компиляторов, интерпретаторов и трансляторов...

Соревнования по программированию на платформе All Cups Привет, мир! Сегодня мы поговорим про спортивное программирование с Дмитрием Санниковым, CTO образовательных проектов Mail.ru Group и руководителем платформы All Cups. Статья написана по мотивам интервью для подкаста «Пятиминутка PHP». Читать далее

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

Тех-баттл Cybertank Отличная возможность померься профессиональными навыками, пообщаться и просто весело провести время. Напиши бота, который разгромит армию противника и принесёт победу твоей команде. 10 команд разработчиков напишут ботов для управления танками в игре, ...

Мониторинг пет-проектов на коленке: Netdata, Monitoror, N8N Привет, я Паша из Ozon. В рабочее время занимаюсь тестированием поиска, а по вечерам надеваю маску инди-разработчика. И моя самая частая задача — написать скрипт → залить его на сервер → периодически мониторить, что сервер доступен. Эта статья как раз и будет строиться вокру...

Абстрактные 3D-фракталы всех сортов на C++ Привет, Хабр!Под фракталами понимают фигуры, особенность которых — подобие самим себе. В рамках курсовой работы по C++ мы написали приложение, шустро отрисовывающее 3D-фракталы и позволяющее их вращать, приближать-отдалять, изменять параметры, записывать видео и не только. В...

[Перевод] Использование JSON в Kibana поиске При поиске из Kibana вы обычно вводите фактическую строку запроса в верхнюю панель, как мы видели это в уроке. Если строки запроса недостаточно для того, что вам нужно, у вас также есть возможность написать JSON в этой строке.Вы можете записать JSON-объект, который вы бы при...

[Перевод] Алгоритм быстрого и простого объёмного рендеринга Недавно я написал небольшой ShaderToy, выполняющий простой объёмный рендеринг, а затем решил опубликовать пост с объяснением его работы. Сам интерактивный ShaderToy можно посмотреть здесь. Если вы читаете с телефона или ноутбука, то рекомендую посмотреть эту быструю версию....

[Перевод] Как протестировать блокноты Jupyter с помощью pytest и nbmake Файлы блокнотов Jupyter, в смысле количества одного из самых быстрорастущих типов файлов на Github, предоставляют простой интерфейс для итераций при решении визуальных задач, будь то анализ наборов данных или написание документов с большим объёмом кода. Однако популярность б...

Мое исследование: «Для чего играют в соревновательные онлайн-игры?» Вместо введения Каждую из своих работ я стараюсь посвящать интересным для меня темам — IT, компьютерным играм и новым медиа. Как вы понимаете, большинство профильных журналов не всегда заинтересованы в моих изысканиях — им подавай маркетинг и социологию, а потому мне прихо...

[Из песочницы] Пишем простую игру на python Сегодня мы создадим всем известную игру камень, ножницы, бумага. В этом нам поможет ЯП python и библиотека tkinter, но если вы не знаете что это такое, советую почитать данную статью. Первое, что нам нужно, это начальная структура, окошко, у меня оно будет выглядеть так: f...

Дайте две или уязвимость защиты многостраничных PIC18 Как простыми средствами прочитать защищенную прошивку из микроконтроллеров PIC18, что для этого нужно. И как избежать "недозащиты" результатов разработки (только для PIC18). Читать далее

Еще один способ установки и использования Docker в Windows 10 В этой статье мы подготовим окружение для запуска контейнеров в Windows 10 и создадим простое контейнеризированное приложение .NET Читать далее

Простая нейронка без библиотек и многомерных массивов Руководство? Гайд? В общем описание моего опыта создания простой, а главное понятной любому новичку нейросети :) Читать далее

CRTP: Пример на паттерне «Мост» CRTP - сложный снаружи, простой внутри паттерн, позволяющий заменить механику абстрактных классов и переопределения поведения функций на другой способ предоставления интерфейса. Читать далее

Различия индексов MySql, кластеризация, хранение данных в MyIsam и InnoDb Как устроены индексы в MySql, чем отличается индексирование в двух наиболее популярных движках MyISAM и InnoDb, чем первичные ключи отличаются от простого индекса, что такое кластерные индексы и покрывающие индексы, как с помощью них можно ускорить запросы. Вот как мне кажет...

О, игрушки! Давайте писать игрушки Интервью с разработчиками игр для компьютеров БК-0010 ASP Corp.Я продолжаю публиковать интервью с разработчиками игр и добрался до советских компьютеров БК-0010. Надеюсь, захабренным это будет интересно. Полная расшифровка интервью доступна на сайте, ниже нарезка самых интер...

Карьерные уровни в Wargaming Platform Мы хотим расти не только внутри в компании, но чтобы за её пределами это имело какой-то смысл. Наши руководители хотят простых инструментов и переговоров, чтобы как-то выдерживать диалоги на тему «Хочу роста!» или «Хочу еще +X денег!» А компания в то же самое время хочет раз...

6 хороших практик по HTML и CSS Можно легко найти хорошие практики по любой технологии, но, к сожалению, по HTML и CSS это сделать не так просто. Недолго думая, я написал свой список из 6 кейсов, когда вы можете сделать удобный или не удобный интерфейс для пользователя только через HTML и CSS. Читать далее

Растровый эффект для Atari 65XE Еще в январе 2020 года я начал подготовку к участию в Forever 2020 demoparty. Тема компо была объявлена ROBO, поэтому я решил написать простую работу для Atari 65XE. Когда интро было готово, я решил добавить растровый эффект. Увы, из-за отмены проведения Forever, часть интр...

Клонированные переменные Как-то попалось интересное (для меня), хотя и довольно давнее обсуждение языков программирования, где упоминался и язык PL/1. В конце концов, как всегда и бывает на таких форумах, все стороны остались при своем мнении, и тогда один из участников предложил написать на разных ...

Работа с причинно-следственной диаграммой (CEDAC) в 3DLean Существует множество подходов работы с задачами, достижения целей, где в одной стороне директивные практики, где решение навязывается сверху и неохотно выполняется исполнителями, а в другой исполнители сами вовлекаются в процесс, ищут способы и тестируют их. Вот CEDAC – один...

FigmaExport: как автоматизировать экспорт UI-Kit из Figma в Xcode и Android Studio проекты Если вы iOS- или Android-разработчик и дизайн вашего проекта разрабатывается в Figma, то скорее всего вы сталкиваетесь с проблемами при экспорте ресурсов: цвета выгрузить нельзя, а иконки и картинки экспортировать неудобно. В этой статье я расскажу, как можно облегчить себ...

Выводы, которые я сделал, помогая стартапу для секс-чатов повысить конверсию Не так давно я писал о закрытии моего агентства UXhot. Но до того, как это случилось, нам довелось поработать над юзабилити одного интересного стартапа. Читать далее

PvP-шутер без даунтаймов: архитектура, аварийные режимы и сервера с рубильником Мы уже рассказывали, почему первая версия архитектуры игры не была идеальной. Pixel Gun 3D изначально был прототипом в новом для команды жанре PvP-шутер. Хотели протестировать идею, чтобы собрать фидбек от игроков, но популярность игры начала расти достаточно быстро — писать...

Масштабирование микросервисов Spring Boot Давайте представим, что мы уже написали наше Spring Boot приложение, и оно успешно работает на протяжении некоторого времени. И теперь мы понимаем, что для того, чтобы справиться с возросшей нагрузкой и повысить доступность, нам необходимо запустить несколько новых инстансов...

Пишем программу для компьютера ALTAIR 8800 1975г выпуска Привет, Хабр.В истории вычислительной техники существуют определенные события, повлиявшие на ход истории. Одним из таких моментов было появление первого массового персонального компьютера. В те годы компьютеры использовались лишь учеными и инженерами на больших предприятиях....

Памятка и туториал по HTTP-заголовкам, связанным с безопасностью веб-приложений Доброго времени суток, друзья! В этой статье я хочу поделиться с вами результатами небольшого исследования, посвященного HTTP-заголовкам, которые связаны с безопасностью веб-приложений (далее — просто заголовки). Сначала мы с вами кратко разберем основные виды уязвимостей ...

Пишем расширение для MediaWiki В рунете я почти не встречал материалов о том, как писать расширения для MediaWIki. Основной стартовой точкой был и остается официальный сайт платформы, но там процесс расписан не очень дружелюбно по отношению к новичкам. Попробуем же это исправить!В этой статье я покажу, ка...

Заметки по API Aliexpress. Экспорт заказов в Bitrix24, RetailCRM, amoCRM Хочу поделиться опытом автоматизации экспорта заказов из Aliexpress в несколько CRM. Приведенные примеры написаны на PHP, но библиотеки для работы с Aliexpress есть и для других языков. Структура запросов и ответов аналогична. Если перед вами стоит задача интеграции Aliexpr...

Фоторамка на Flutter своими руками Привет! Меня зовут Игорь, я работаю Frontend-директором в компании Wrike. В этой статье хочу поделиться историей создания моего пет-проекта и рассказать, как я сделал электронную фоторамку и написал для нее софт на Flutter, столкнувшись по пути со всеми возможными сложностям...

[Перевод] Triton: Open Source язык для ядер Deep Learning Подобный Python Triton уже работает в ядрах, которые в 2 раза эффективнее эквивалентных реализаций Torch. А ядра матричного умножения FP16, сравнимые производительностью с cuBLAS, на Triton займут менее 25 строк. Как утверждает автор, многие программисты не могут написать та...

Самодельные библиотеки ассемблера FASM Здесь я немного расскажу о библиотеках strnum.inc и myMSVlib.dll, которые я сам сделал. Они могут кому-то пригодится. Я уверен что написал не без ошибок. Все ниже перечисленные функции сохраняют состояние регистров, кроме регистра eFLAGS. Исходный код прилагается. Все функци...

Перевод числа в строку с помощью FPU Картинка для привлечения внимания. Читать далее

[Из песочницы] Аналитика для Telegram-ботов, написанных на Python На данный момент бум на создание телеграмм-ботов начал сходить, но тема их создания не теряет актуальности. Написано множество библиотек для облегчение взаимодействия с Telegram Bot API, но после создания бота я так и не нашёл скрипта(библиотеки) для получения статистики бот...

[Перевод] Пишем оператор Kubernetes с нуля В этой статье мы подробно рассмотрим, как создать собственный оператор Kubernetes с нуля. Операторы — это такие программные расширения, которые используют кастомные ресурсы (kind), чтобы управлять приложениями. Подробности читайте в официальной документации. Возьмем самый п...

Мой переезд в Испанию. 1,5 года спустя Полтора года назад мы с женой переехали в Испанию (первая часть).И сейчас, когда прошел период "розовых пони", я бы хотел рассказать о том как оно вообще.Disclaimer: все написанное далее — личный опыт и мое субъективное, которые могут не совпадать с вашим личным опытом и мне...

FizzBuzz по-сениорски - Добрый день, я на интервью на позицию старшего разработчика.- Здравствуйте, давайте начнем с небольшого теста, пока я ваше CV смотрю. Напишите программу, которая выводила бы числа от 1 до, скажем, миллиарда, притом если число кратно трем, то вместо числа выводится Fizz, ес...

«Образование для образованных». Проработка книги На неделе прочитал книгу "Образование для образованных 2020", написанную Левенчуком А.И. Впечатление о ней у меня сложилось двоякое. Статья будет полезна людям, желающим её прочитать. Дальше я расскажу, чего ожидать от прочтения, а чего не стоит. Читать далее

Архитектура в Django проектах — как выжить Думаю, ни для кого не секрет, что в разговорах опытных разработчиков Python, и не только, часто проскальзывают фразы о том, что Django это зло, что в Django плохая архитектура и на ней невозможно написать большой проект без боли. Часто даже средний Django проект сложно подде...

Эмулятор классического рынка Каждый раз, когда я читаю что-либо об экономике, я постоянно пропускаю момент между “да, конечно, это всё очевидно” и “почему? как вы это получили?”. Обычно это связано с тем, что примеры, которые можно привести из реальной жизни, либо элементарные, либо настолько сложные...

Отлаживаем ядро из командной строки с bpftrace Это очередная статья из цикла «BPF для самых маленьких» (0, 1, 2) и первая из серии практических статей про трассировку Linux современными средствами. Из нее вы узнаете о программе и языке bpftrace — самом простом способе погрузиться в мир BPF с практической точки зрения, да...

Telegram Bots vs Google Forms Google forms отличный инструмент для решения простых организационных задач, например, сбор информации для регистрации людей на небольшое мероприятие. Но что если мы попытаемся решить эту задачу по другому? Например через telegram.  Читать далее

Powershell настоящий язык программирования. Скрипт оптимизации рутины в техподдержке Работая в компании IT-аутсорса в качестве руководителя 3 линии поддержки, задумался, как автоматизировать подключение сотрудников по RDP, через VPN к серверам десятков клиентов.Таблички с адресами, паролями и прочими настройками серверов, конечно, хорошо, но поиск клиента и ...

Первый Компьютерный ЕГЭ 2021 Всем привет! В этом году я закончил 11 класс и сдавал первый Компьютерный ЕГЭ. Знаю, что довольно поздно пишу статью об этом, но все равно хотелось бы высказать пару мыслей об экзамене и о своем опыте. Хочу рассказать о самом ЕГЭ по информатике, его изменениях, подготовке и ...

Трансгуманизм. Философия, фантастика или реальность? Он нем писал Тимоти Лири, гуру ЛСД. Его предвидел Гордон Мур, основатель Intel. Фридрих Ницше рыдал бы взахлеб, зная, во что превратится идея о сверхчеловеке. Как трансгуманизм стал повседневностью, что стоит за изнанкой философии, и насколько далека от нас идея искусственно...

[recovery mode] Ищем дубликаты фотографий с помощью Perl За 20 лет у меня скопилось несколько тысяч фотографий: праздники, свадьбы, рождение детей, и прочее, прочее... Понятно что снималось всё это на разные цифровики, присылалось почтой, сливалось через ICloud и GDrive, FTP, самба и т.п. По итогу всё это превратилось в дикий хаос...

Создаем свою инспекцию для IDEA В статье показано, как быстро можно сделать свою полноценную инспекцию для IDEA для языка Java. В инспекции будем проверять, что переопределены методы equals, hashСode для классов, используемых в качестве ключа в HashMap. Писать будем на Kotlin. Читать далее

[Перевод] Как сделать ваш код на Python быстрым и асинхронным с Sanic Всем привет, в этой статье я расскажу о создании простых асинхронных проектов на фреймворке Sanic. Читать далее

[Перевод] Terraform, моно-репозитории и compliance as code Всем привет. OTUS открыл набор в новую группу по курсу «Инфраструктурная платформа на основе Kubernetes», в связи с этим мы подготовили перевод интересного материала по теме. Возможно, вы один из тех, кто использует terraform для Infrastructure as a Code, и вам интересно...

Метод наипростейшей стенографии. Алфавит и шрифт для неё Многих отпугивает слово «стенография» и есть от чего, так как под этим подразумевается сложная система, которую не только длительно надо изучать, но и постоянно применять, чтобы был от этого толк. Я же предлагаю вам ознакомиться с наипростейшим методом записи русской устной ...

О мотивации: ЗП. СМ. И далее по списку Привет! Меня зовут Полина. Я работаю в Parallels HR-ом (звучит не по-русски и часто вызывает аллергию у хабровчан). Мне очень понравился вот этот захабренный текст. Он честный, написан с юмором, на понятном русском языке. А главное ─ в нем нет пафоса. Но, как мне показалос...

Читать не надо слушать: как работает распознавание речи ВКонтакте Прочитать текстовое сообщение — быстрее, чем прослушать голосовое. Ещё по тексту удобнее искать и уточнять детали. Воспринимать числа, адреса, номера телефонов и подобную информацию тоже проще в написанном виде. С другой стороны, записать голосовое зачастую удобнее, чем напе...

Пишем «калькулятор» на C#. Вычисление значения, производная, упрощение, и другие гуси Привет! Калькулятор у нас почему-то ассоциируется с чем-то, что должен написать каждый новичок. Возможно потому, что исторически компьютеры с той целью и создавались, чтобы считать. Но мы будем писать непростой калькулятор, не sympy конечно, но чтобы умел базовые алгебраиче...

[Перевод] Как написать квестовую RPG Чистый лист — челлендж не только для художников, но и для геймдизайнеров. Здорово просто следовать за вдохновением в разработке игр, но иногда его нет и спасает методология. Перевели статью, где автор по шагам разбирает процесс создания квестовой RPG — с чего начать, как не ...

Простой прием для управления прокрастинацией Попробую поделиться советом, как можно немного осознать свое состояние и выработать полезный навык. Все написанное основано только на личном опыте, желании им поделится и подчерпнуть из обратной связи полезное. Читать дальше →

[Перевод] Переход с Vue-CLI и Webpack на Vitejs Веб-приложение Qvault, в котором размещаются все мои курсы по кодированию, представляет собой одностраничное приложение, написанное на Vue 2, с планами перехода на Vue 3 в ближайшее время​. Тем временем я обнаружил новое классное инструментальное приложение под названием Vit...

[Перевод] Эмуляция компьютера: интерпретатор CHIP-8 Меня, по ряду причин, всегда завораживала эмуляция. Программа, которая выполняет другую программу… Мне эта идея кажется невероятно привлекательной. И у меня такое ощущение, что тот, кто напишет подобную программу, не пожалеет ни об одной минуте потраченного на это времени....

Формальные грамматики на службе мобильного клиента В повседневной жизни мы пользуемся готовыми интерпретаторами и компиляторами — и редко кому придёт в голову написать их самостоятельно. Во-первых, это же сложно, во-вторых — зачем. В Surf мы написали собственный интерпретатор и используем его на клиенте мобильного приложени...

Какие алгоритмы разработчики Яндекса реализовывают каждый день Споры о том, нужно ли разработчикам писать алгоритмический код на собеседованиях, бесконечны. В поддержку положительного ответа я уже публиковал рассказ об алгоритмических секциях с написанием кода в Яндексе и примерами задач, которые там можно встретить. Теперь я хочу разви...

Детекция аномалий на снимках с БПЛА Medium postОсенью мы с друзьями участвовали в хакатоне DIGITAL SUPERHERO от организаторов хакатона ИТС и СЦ, о котором я писал в статье. Хакатон проходил с 18 по 23 сентября 2020 года. Мы выбрали задачу Распознавание аномалий (объектов и инцидентов) на фотоматериал...

8 фич, которые разгрузили нашу техподдержку Как вы представляете себе среднестатистического сотрудника поддержки? Нервный, задерганный, с красными глазами. Он разрывается между письмами в аутлуке, мессенджером и телефонными звонками. Всем в срочном порядке требуется его помощь. Сегодня я расскажу, как упростить ж...

Flutter, Dart — локальная база в сотни раз более быстрая чем SQLite или Shared Preferencies Примерно месяц назад общаясь с одним разработчиком приложения на Flutter встала проблема торможения обработки маленьких (в десятках тысяч) массивов данных на телефоне юзера. Многие приложения предполагают обработку данных на телефоне и, далее, их синхронизацию с бэкендом. На...

Monitorix - за минуту развёртываем мониторинг Linux сервера Мне нужен был достаточно простой мониторинг на сервере, и не хотелось долго возиться с его настройкой.В итоге удалось его установить и настроить буквально за 2 минуты: Читать далее

[Перевод] Перевод: Как MS SQL Server выполняет запросы. Часть 1 Если вы разработчик, работаете над приложением, которое взаимодействует с SQL Server, и вам интересно, что в действительности происходит, когда вы «выполняете» запрос из своего приложения – что ж, я надеюсь, эта статья поможет лучше писать код запросов, а также может стать о...

Робот-газонокосилка, часть 2. Определение высоты травы В первой части мы переделали бензиновую газонокосилку в самоходную электрическую с помощью деталей от б/у гироскутера: двух мотор-колес, основной платы и аккумулятора. И добавили возможность управлять газонокосилкой с телефона через Wi-Fi.В этой части газонокосилка научится ...

Как мы сэкономили 2000 USD на трафике из Amazon S3 с помощью nginx-кэша Эта небольшая история — живое свидетельство того, как самые простые решения (иногда) могут оказаться очень эффективными. В одном из проектов руководство взяло курс на оптимизацию бюджета на инфраструктуру. В результате анализа всех статей расходов стало очевидным, что заметн...

Обход брандмауэра (firewall) в Dr.Web Security Space 12 Данная статья написана в рамках ответственного разглашения информации о уязвимости. Хочу выразить благодарность сотрудникам Dr.Web за оперативное реагирование и исправление обхода брандмауэра (firewall).В этой статье я продемонстрирую обнаруженную мной возможность обхода бра...

IDA Pro: работа с библиотечным кодом (не WinAPI) Всем привет, При работе в IDA мне, да и, наверняка, вам тоже, часто приходится иметь дело с приложениями, которые имеют достаточно большой объём кода, не имеют символьной информации и, к тому же, содержат много библиотечного кода. Зачастую такой код нужно уметь отличать от ...

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

АМА с Хабром #20. Тестируем новый WYSIWYG У меня есть причины не любить аббревиатуру WYSIWYG. Во-первых, я до сих пор не могу сходу её написать — всё время сначала проговариваю про себя расшифровку (What You See Is what You Get) и только потом пишу. Во-вторых, она ужасно читается, «визивиг» или, что ещё хуже, «висив...

Делаем IPsec VPN туннель между Cisco FTD и Mikrotik Эта заметка написана для того, чтобы облегчить путь тем, кто столкнется с проблемой после меня. Задача кажется тривиальной, но как обычно, в процессе вылезли проблемы, которые решать пришлось методом долгого изучения манов и бесконечных перенастроек. В интернете почему то оч...

[Из песочницы] Игра для программистов FuncBall Многие, как и я, любят футбольные симуляторы и многие увлекаются программированием. Когда-то, в далёком 2004 году, наигравшись в ФИФУ я подумал, что было бы неплохо совместить два моих увлечения в одной игре, в которой игроки управлялись бы не вручную, а написанным для них с...

[Перевод] Жестокая правда будней программиста: 8 наблюдений Несколько лет я писал код, а мне за это платили. За это время я узнал о некоторых неприятных вещах, касающихся работы программиста. Мне всегда хотелось написать об этом. Надеюсь, вы понимаете, что я рассказываю вам всё это не для того, чтобы вас расстроить. Я считаю эту стат...

[Перевод] Объединяем функции логическими операторами в C++ В преддверии старта занятий в новом потоке группы «Разработчик С++» подготовили перевод интересного материала. Большинство алгоритмов STL в C++ используют всего лишь одну функцию для выполнения некоторой работы над коллекцией. Например, чтобы извлечь все четные числа из ко...

Как мы «вырастили» и победили читеров в своем онлайн-шутере Часто сижу на форумах читеров, не потому что нравится, а просто разработчику PvP-шутера всегда нужно быть в тонусе. Некоторые из взломщиков в прямом смысле слова выросли на моих глазах вместе с проектом. Вспоминал эти истории после очередного апдейта в проекте и захотелось и...

Пандас и другие для толстых данных В этой заметке я расскажу о паре простых приемов, полезных при работе с данными, не помещающимися в память локальной машины, но все еще слишком мелкими чтобы называться Большими. Следуя англоязычной аналогии (large but not big), будем называть эти данные толстыми. Речь идет ...

Пишем прошивку под TI cc2530 на Z-Stack 3.0 для Zigbee реле Sonoff BASICZBR3 с датчиком ds18b20 Предполагается, что читатель уже имеет начальные знания языка C, что-то знает о Zigbee, чипе cc2530, методах его прошивания и использования, а также знаком с такими проектами, как zigbee2mqtt. Если нет — подготовьтесь или сходите почитать на https://myzigbee.ru и https://w...

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

Лазер лечит! Как ведущий проктолог страны избавляет пациентов от деликатных заболеваний Чаще всего у людей слово «лазер» ассоциируется со словом «точность». Совершенно правильное определение, особенно когда совершенная технология попадает в опытные руки. Суть метода можно объяснить так: лазер — это воздействие предельно концентрированной мощной энергии, пр...

Айдентика личного бренда для самых маленьких Помимо основной работы в ИТ-компании КРОК, я также веду кружок спортивного программирования в вузе, у которого даже есть свой паблик. Так вот, порой ведешь блог, и кажется, что надо бы и аватарку красивую поставить, и как-то украсить страничку, картинки к постам в одном стил...

[Перевод] Как мы выпускаем исправления к ПО в GitLab Мы в GitLab обрабатываем исправления ПО двумя способами — «ручками» и автоматически. Читайте далее о работе release manager по созданию и доставке важных обновлений с помощью автоматического развертывания на gitlab.com, а также исправлений для пользователей, которые работаю...

[Из песочницы] Можно ли научить обезьяну программировать? Ждёт ли нас поколение специалистов-бабуинов Если 100 обезьян, яростно набирающих текст, в конечном итоге напишут сонет Шекспира, то сколько приматов потребуется, чтобы написать код? Читать дальше →

Автоматизация рутины в DotA 2 или читы? Привет, в этой статье будут рассматриваться легальные способы получить преимущество перед противником с помощью таких простых средств, как NodeJS, Electron и React, при этом обходя бан стороной. На эксперименты меня вдохновила другая статья Визуализация времени возрождения Р...

Keycloak интеграция со Spring Boot и Vue.js для самых маленьких Вы больше не можете создать сервер авторизации с помощью @EnableAuthorizationServer, потому что Spring Security OAuth задеприкейтили, а проект Spring Authorization Server всё ещё экспериментальный? Выход есть! Напишем авторизацию своими руками.....

[Перевод] Протоколы, а не Платформы: технологический подход к свободе слова — Часть 2 Протоколы спешат на помощь Читать далее

[Из песочницы] Пишем спецификацию под Nvidia Kepler (бинарники CUDA, версия языка sm_30) для Ghidra Для обычных процессорных языков уже написано довольно много спецификаций для Ghidra, однако для графических ничего нет. Оно и понятно, ведь там своя специфика: предикаты, константы, через которые передаются параметры в том числе, и другие вещи, унаследованные от шейдеров. Кр...

[Перевод] Управление зависимостями в Node.js Управление зависимостями — это часть повседневной работы Node.js-программиста. Сегодня мы поговорим о разных подходах к работе с зависимостями в Node.js, и о том, как система загружает и обрабатывает зависимости. Писать Node.js-приложения можно так, чтобы абсолютно весь код...

YARL: как Яндекс построил распределённый Rate Limiter с нулевым влиянием на время ответа сервисов Yandex Rate Limiter (далее просто YARL) — это сервис лимитирования нагрузки для распределённых сервисов. Его особенность в том, что он способен работать с миллионами квот, имея при этом очень низкие накладные расходы на проверку квоты. Если совсем кратко, это система распред...

(не) Безопасный дайджест: хакер-инсайдер, шпионы в Google и мегаслив паспортов Собрали «классические» и нетривиальные ИБ-инциденты, о которых писали в зарубежных и российских СМИ. Август запомнился мстителем, раскрывшим темные дела хакерской группировки, сливом ПДн от Wildberries и утечкой, затронувшей всех – всех! – клиентов T-Mobile. А еще разоблачен...

Стимул для изменений: как борьба с «яблочниками» отразилась на крупнейшей стриминговой платформе Недавно мы писали о противостоянии Apple и Spotify, в рамках которого компании продолжают «мериться» размерами роялти для музыкантов. Сегодня продолжим тему — на повестке антимонопольное разбирательство и новые платные продукты. Читать далее

TDD в микроконтроллерах. Часть 2: Как шпионы избавляют от зависимостей В предыдущей статье мы начали освещать тему эффективности применения методологии TDD для микроконтроллеров (далее – МК) на примере разработки прошивки для STM32. Мы выполнили следующее: Определили цель и инструменты разработки. Настроили IDE и фреймворк для написания тесто...

Книга «Программируй & типизируй» Привет, Хаброжители! Причиной многих программных ошибок становится несоответствие типов данных. Сильная система типов позволяет избежать целого класса ошибок и обеспечить целостность данных в рамках всего приложения. Разработчик, научившись мастерски использовать типы в пов...

Решил 50 задач и ответил на вопрос — Python или JavaScript? Привет, друзья! Я — JavaScript-разработчик. Код пишу в основном на React (иногда на Vue), немного на TypeScript, немного на Node, немного знаю SQL, но... со мной работает много людей, которые пишут код на Python вокруг много разговоров про Python повсюду преподают Python ...

CGTN: Как Китай «плавает по бескрайнему океану» вместе со всем миром ПЕКИН, 1 июня 2021 г. /PRNewswire/ — «Океан, по которому мы плаваем с ветром, безграничен», — это строчка из китайской поэмы, написанной 1000 лет назад. Это древнее изречение, которое означает, что для путешествующих ради встречи с друзьями не существует географических...

Как тестировщики написали свою мобильную ферму для IOS Привет, Хабр! Меня зовут Руслан, я — автотестировщик в QA-агентстве «Кавычки». Из этого можно понять, что мы в агентстве занимаемся только тестированием во всех его проявлениях, а меня зовут Руслан. Отлично, идем дальше. Когда какая-то проблема начинает сильно докучать, то д...

Генераторы на корутинах C++ Я уже пару лет как развлекаюсь написанием различных программ на C++ с использованием корутин. Но до сего момента это были асинхронные приложения. Я активно использовал co_await, но ни разу еще мне не понадобился co_yield. И вот, после трех дней вынужденного ничегонеделанья в...

Клиент-серверный IPC на Python multiprocessing Статья отражает личный опыт разработки CLI приложения для Linux.В ней рассмотрен способ выполнения привилегированных системных вызовов процессом суперпользователя по запросам управляющей программы через строго описанный API.Исходный код написан на Python для реального коммер...

Особенности портирования сложного модульного ПО написанного на Delphi под ОС Linux Данное повествование не предназначено для разработчиков, которые не знают что такое Delphi и не умеют на нём программировать. Просьба людей, не имеющих дела с данными средствами разработки, не комментировать статью и не травмировать и без того расшатанные нервы дедушек, упор...

Сила композиции Функциональное программирование может отпугивать сложностью и непрактичностью: «Я далек от всех этих монад, пишу на обычном C#, в докладе про функциональщину ничего не пойму. А если даже напрягусь и пойму, где мне потом это применять?» Но когда объясняет Скотт Влашин, все ...

WinUI 3 — Новая эра разработки под Windows В календаре 8 марта, а я пишу эту статью. Почему? - Потому, что WinUI 3 - это важно!В этой статье:- WinUI 3 - это не просто новая версия библиотеки пользовательских компонентов. Это изменит разработку ПО под Windows и не только.- Как менялась разработка графических интерфейс...

TDD есть опиум для народа. Так ли хороша технология, как ее описывают адепты? Привет, Хабр! Меня зовут Владимир, я работаю программистом в компании Quadcode. Вот уже почти полтора десятилетия я при помощи доброго десятка языков программирования разрабатываю приложения - от простых, вроде маленького плагина для Emacs, до сложных распределенных систем. ...

Добыча (подъем) кислорода из атмосферы Земли Этот пост написан в продолжение поста о "Добыча (подъем) водорода из атмосферы Урана", и описывает следующий этап доставки на низкую опорную орбиту земли (НОО) реактивной массы, но сперва хотелось бы дать пояснения по маневрированию КА на первом этапе. Читать далее

std::move vs. std::forward Несмотря на то, что материалов на тему move-семантики и идеальной передачи в Интернете предостаточно, вопросов типа «что я должен здесь использовать: move или forward?» не становится меньше или мне просто «везет» на них. Поэтому и решено было написать эту статью. Предполагае...

Как я оседлала лошадку тревожной прокрастинации, и что из этого вышло Бывают такие задачи, которые становятся камнем преткновения, и затыкают запланированное течение дел до такой степени, что формируется что-то похожее на водопад. Другие задачи потоком хлещут поверх затора, но сам камень не сдвигается.Таким камнем стала для меня эта статья. Я ...

Аура «Чёрного Зеркала»: бывшая соцсеть Яндекса поможет написать так, чтобы ответили В социальном сервисе "Аура" появится функция анализа первого сообщения с запросом на чат. Чтобы можно было начать переписываться с пользователем в "Ауре", он должен одобрить запрос, прочитав приветственное сообщение. Это более демократичная форма помощи роботов людям: в ран...

[Из песочницы] Пишем ОС на Rust. Настройка среды. Бинарник для «голого» железа Настройка среды. "Голый" бинарник, или Исполняемый файл без main() Первый шаг в написании своей ОСи — создание бинарника, не зависящего от стандартных библиотек, это делает возможным запуск кода без ОС — мы же пишем свою. Оригинал блога разрабатывается на GitHub. З...

Можете написать Deadlock на Camunda BPM? А я могу Некоторое время назад я писал про успешную миграцию с IBM BPM на Camunda, и теперь наша жизнь полна счастья и приятных впечатлений. Camunda не разочаровала, и мы продолжаем дружбу с этим BPM-движком. Но, увы, Camunda может преподносить и неприятные сюрпризы, из-за которых ...

OpenGL примитивы в стиле RAII Добрый день, хабра юзеры. Я давно не писал и возможно кто-то заждался статей от меня — конечно же нет. Так как свободного времени стало чутка поболее, а мой GitHub совершенно пуст, я решил написать свой клон Mein kampf Minecraft. С большой вероятностью, я задокументирую это...

Прогресс shell-operator и addon-operator: хуки как admission webhooks, Helm 3, OpenAPI, хуки на Go и многое другое Shell-operator и addon-operator — Open Source-проекты компании «Флант» для администраторов Kubernetes, представленные в апреле 2019 года. Первый призван упростить создание K8s-операторов: для этого с ним достаточно писать простые скрипты (на Bash, Python и т.п.) или любые би...

10 советов молодожёнам, написанных в 1920 году, но актуальных до сих пор Эти простые истины, наверное, никогда не устареют.

Цена жизни дизайнера или сколько стоит графический дизайн? Не размытый ответ для дизайнеров и заказчиков. Ценообразование будет осознанным, честным и главное оправданным.Чтобы не брать цифры с потолка и не писать в поисковую строку «сколько стоит дизайн упаковки?», нужно отталкиваться от обоснованных, конкретных цифр. От куда взять ...

Коротко об одном из стандартов формата токена PKCS#15 Много статей написано про стандарты API между токенами и программным обеспечением. Однако, стандартизация формата самих токенов, как правило, несправедливо обойдена стороной. В данной статье кратко описан один из стандартов формата токена PKCS#15 (Public Key Cryptography sta...

Электросамокат — не только средство передвижения Простая доработка электросамоката на примере модели Kugoo M5, для возможности небольших перевозок. Возможно раздельное использование двух доработок.Начали. Читать далее

PostgreSQL Antipatterns: «слишком много золота» Иногда мы пишем SQL-запросы, мало задумываясь над тем фактом, что сначала они должны быть по сети как-то доставлены до сервера, а затем их результат - обратно в клиентское приложение. Если при этом на пути до сервера присутствует еще и пулер соединений типа pgbouncer, дополн...

Автоматизация тестов на Go + Allure Привет всем. Меня зовут Таня. Я автоматизирую тесты на Go уже около года, до этого занималась 4 года автоматизацией на Java.В этой статье расскажу:- Как писала интеграционные тесты на Go + Allure- С какими проблемами столкнулась- С какими библиотеками и инструментами работа...

[Перевод] Почините бесплатный AWS, пока никто не пострадал Я стараюсь не писать тексты для рассылки на эмоциях. И сейчас тоже пытаюсь не скатиться в эмоции. В конце концов, про неполадки с программой Free Tier у AWS разговоры идут уже целое десятилетие. Это едва ли можно назвать неотложной проблемой. Но я целый день хожу под впечат...

[Из песочницы] NodeJS Бот для Телеграм с обработкой математических выражений Начало работы Сначала создаём каталог где будет храниться сам бот. Здесь инициализируем npm. npm init Используемые модули В разработке я буду использовать TypeScript и библиотеку SlimBot. Читать дальше →

Как WCF сам себе в ногу стреляет посредством TraceSource Не так часто удается написать что-то интересное про проблемы, связанные с параллельным программированием. В этот же раз "повезло". Из-за особенностей реализации стандартного метода TraceEvent произошла ошибка с блокировкой нескольких потоков. Хочется предупредить о существую...

Начало коллекционирования ошибок в функциях копирования Уже несколько раз замечал, что программисты допускают ошибки в простых функциях копирования данных. Эта тема потребует в будущем ещё много времени для изучения и подбора материала, чтобы написать основательную статью. Но захотелось поделиться парой примеров, недавно замечен...

Как выглядят интервью дизайнеров и UX-специалистов в топовых ИТ-компаниях В нашем блоге мы много пишем о карьере в сфере ИТ, но обычно раскрываем темы, связанные с поиском работы инженеров и программистов. Сегодня же речь пойдет о том, как устроен процесс собеседований дизайнеров в топовых ИТ-компаниях – уровня FAANG (Facebook, Amazon, Apple, Netf...

Интервальное голодание и паттерны продления жизни Lifext Интервальное голодание — паттерн питания в котором регулируются циклы с едой и без нее. Этот паттерн питания сейчас стал довольно популярным и, так как Lifext методика изначально уделяла большое внимание паттернам питания, то мы решили написать подробный разбор и перевести и...

[recovery mode] DevOps: автоматизация инфраструктуры на примере Terraform, docker, bash, prometheus exporters, Gitlab и WireGuard Всем привет.Есть такие люди, которые работают с облачной инфраструктурой и не используют автоматизацию, потому что это долго, нужно вникать, а им надо фичи пилить. Накликали что-то там в UI, подключились по ssh, поставили всякого с помощью apt и т.д. и конфигурационные файлы...

За что банит Apple(и Google) У платформодержателй мобильных сторов множество причин для блокировок. Если напрямую с этим не сталкиваться, то, кажется, что все просто - не нарушай описанные правила и все будет отлично. На деле не все блокировки легко предугадать простым следованием гайдлайнов. Читать дал...

Моделирование дома в SketchUp и перенос его в Unity 3D На прошлом уроке мы затронули тему самостоятельного создания объектов для игр. В т.ч. была упомянута программа SketchUp, которую мы часто использовали, для создания простых строений. Сегодня, мы создадим здание в SketchUp и перенесем его в Unity. Читать далее

[Перевод] Моржовый оператор в Python Моржовый (walrus) оператор, появившийся в Python 3.8, дает возможность решить сразу две задачи: присвоить значение переменной и вернуть это значение, поэтому порой можно написать код короче и сделать его более читаемым, и он может быть даже более эффективным с точки зрения в...

REAL-EL CE-150 – подключит к интернету через USB Type-C REAL-EL CE-150 – недорогой металлический адаптер, при помощи которого пользователь может подключить свой ноутбук, планшет либо смартфон к интернету через порт USB Type-C. Очень простой и удобный формат, не требующий установки дополнительного программного обеспечения или каки...

[Перевод] Создаем GAN с помощью PyTorch Генеративно-состязательные сети (Generative Adversarial Networks — GAN), предложенные Goodfellow и др. в 2014 году, произвели революцию в области создания изображений в компьютерном зрении — никто не мог поверить, что эти потрясающие живые изображения на самом деле создаются...

Как бесплатно перенести свои любимые треки в Spotify, используя Javascript Все любители музыки в России с нетерпением ждали выхода Spotify на наш рынок. Когда наконец это случилось, перед пользователями встала проблема переноса музыки из других сервисов. Лично у меня за годы накопилась огромная коллекция музыки на разных платформах: Яндекс.Музыка, ...