Социальные сети Рунета
Четверг, 21 октября 2021

[Из песочницы] UX-исследование ДБО: наш опыт, ошибки и открытия Привет. Я Денис Элиановский, дизайн-директор в JTC и руководитель в Opium Pro. Мы работаем в очень узких сегментах рынка IT, связанных с финансами и документооборотом. Вы точно ещё не слышали об этих компаниях и сегодня мало что о них узнаете, ведь эта статья про UX-исследов...

Архитектура S3: 3 года эволюции Mail.ru Cloud Storage Storage Corridor by St-Pete Всем привет! Я Mons Anderson, архитектор платформы Mail.ru Cloud Solutions, расскажу, как мы построили наше S3-хранилище, как оно работает, какие решения оказались удачными, а какие стоило изменить, если бы мы начали такой же проект с нуля сейчас...

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

Краткий обзор операторов PostgreSQL для Kubernetes, наш выбор и опыт Всё чаще от клиентов поступают такие запросы: «Хотим как Amazon RDS, но дешевле»; «Хотим как RDS, но везде, в любой инфраструктуре». Чтобы реализовать подобное managed-решение на Kubernetes, мы посмотрели на текущее состояние наиболее популярных операторов для PostgreSQL (...

Рисуем светом: длинная выдержка на Android Всем привет, меня зовут Дмитрий и я Android-разработчик компании «MEL Science». Сегодня я хочу рассказать, как можно реализовать поддержку длинной выдержки на смартфонах, да так, чтобы получающуюся картинку можно было наблюдать прямо в процессе создания. А для заинтересовавш...

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

Сколько стоит сделать ролик об игре своими силами Предположим, у вас есть игра и команда, которая её разрабатывает. Вам нужен ролик о своей игре и вы пока не решили, делать его своими силами или отдать на аутсорс. Давайте посмотрим, как может сложиться ситуация, если вы выберете первое: создать ролик самостоятельно. Из э...

Red Hat сделала бесплатным свой дистрибутив RHEL Отличные новости, %username%! Компания Red Hat сделала бесплатным свой корпоративный дистрибутив RHEL. Правда, есть ряд правил, выполнив которые, этим дистрибутивом можно пользоваться безвозмездно, то есть даром (вы тоже читаете это голосом Совы из мультика про Винни-Пуха?)...

Самодельный стратостат Допустим, вы интересуетесь космосом, но космос для вас недоступен. Выше 10км не подняться, а посмотреть "что там?" очень хочется. По классификации NASA — нижняя граница космоса начинается на 100км от поверхности Земли. Эта статья будет не совсем про космос, но про...

Ещё одна статья «Как я сдавал PMP». Online. Лайфхаки Привет! Меня зовут, Дмитрий, и я сдал экзамен PMP в 2020 г., онлайн. В своей статье я хочу поделиться субъективным мнением про методику подготовки к экзамену и тех мелочах, которые я хотел бы знать до начала подготовки. Без воды. Статья не содержит неэтичных способов подго...

Одноглазый глубиномер Недавно вышла интересная статья от FaceBook о том как можно делать неплохой 3D с монокулярных камер. Статья не очень применимая на практике. Но по качеству картинки завораживает.Посмотрев на это я решил сделать небольшой рассказ о том что в статье твориться, куда современные...

Можно ли сделать деревянный стеллаж без инструмента используя только отвертку и 3D-принтер? Легко!. Приветствую! Я хочу поделиться с вами очередной своей разработкой, которая позволяет сделать надежную, крепкую мебель и при этом без необходимости иметь инструмент, пылить в доме/квартире и собрать её буквально за один день. Эта статья для аудитории Хабра, которая любит DI...

SwiftUI по полочкам: Анимация. Часть 1 Недавно мне попалась свежая статья, в которой ребята пытались воспроизвести интересный концепт средствами SwiftUI. Вот что у них получилось: Я с интересом изучил их код, но испытал некоторое разочарование. Нет, не в том смысле, что они что-то сделали неправильно, вовсе...

Доступность — это не так просто Привет, Хабр! В предыдущей статье я рассказывал о простых случаях проблем с доступностью, исправив которые можно сделать свой сайт или web-приложение гораздо доступнее. Я упоминал о правиле 80/20 и писал о проблемах, которые при наименьших затратах дают наибольший результа...

1000 и 1 пост: с Днём рождения, Хабр ❤ 26 мая — День рождения Хабра. А ещё вышла наша 1000-ая публикация, которой могло бы не быть, если бы Хабр не был тем, который он есть. В этой статье мы расскажем о нашем пути и о наших выводах, которые удалось сделать за 4 года ведения блога. Но это ниже, под катом. А здесь ...

[Перевод] Всегда старайтесь быть н̶е̶заменимым Есть хорошая жизненная философия, которой можно придерживаться на рабочем месте, — это «постоянно быть готовым увольняться» («always be quitting»). Это не значит думать о том, чтобы уйти с работы. Но вести себя так, как будто вы можете уйти в кратчайшие сроки. Парадоксально,...

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

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

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

Никогда такого не было и вот опять. Почему нужно использовать self-hosted VPN. Релиз Amnezia Вот и пришло время для релиза VPN-клиента, родившегося благодаря хакатону DemHack, и выращенного при поддержке РосКомСвободы, PrivacyAccelerator и Теплицы социальных технологий. Спустя полгода с того момента, как идея была впервые озвучена, мы презентуем готовый продукт — б...

Охранный дроид на парковке, виртуальный диван в пустой комнате: возможности AR в экосистеме Huawei Привет, Хабр! Закон Мура действует не только на процессоры, но и на людей, которые ими пользуются. Ещё недавно им было достаточно карты и указателя, а теперь нужна картинка с камеры и прыгающая в нужном направлении лиса. Усложняются сценарии, а за ними и требования: пользова...

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

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

14 практических советов по использованию Tableau Всем привет, меня зовут Меркурьев Михаил, я продуктовый аналитик в ManyChat. Год назад мы решили использовать Tableau как основной BI инструмент в компании и столкнулись с рядом проблем, касающихся того, что нужно наладить эффективную работу с инструментом для аналитиков, ме...

Как я делал нейросеть для оценки картинки с простеньких веб-камер Наверняка многие, кто пытался сделать свою первую нейросеть, проходили на Kaggle челленж Cat vs Dog, в котором нужно научить компьютер отличать картинку с кошкой или собакой на дата-сете из 25 тысяч заранее размеченных изображений. Примерно с таким «Kaggle-опытом» я взял...

[Перевод] Сотовый телефон с дисковым номеронабирателем Перевод статьи с сайта самодельщицы Джастин Хопт Поскольку я получила неимоверное количество запросов от людей, желающих купить дисковый сотовый телефон, у себя на сайте я выложила набор для его сборки, где есть только всё самое «сложное» (напечатанный корпус с кнопками и...

Это мог быть очередной JavaScript-фреймворк Прошлым летом, в процессе подготовки статьи для Хабра, я не поленился упаковать свой шаблон для бэкэнд-приложений на Node.js в npm-пакет, сделав из него cli-утилиту для быстрого старта. Никаких надежд на то, что этим пакетом будет пользоваться кто-то, кроме меня, не было изн...

Опрос: «А вы бы отдали своего ребёнка в IT?» Вы бы посоветовали своему сыну или дочери пойти работать в IT? Считаете ли, что через 10-15 лет эта отрасль всё ещё будет на волне? Сделала ли работа в IT счастливым вас, сделает ли счастливым вашего ребенка? Моей старшей дочери 22 года. Она доучивается на физтехе и работае...

[Из песочницы] Повелители DOOM: как два парня создали культовый шутер и раскачали индустрию видеоигр Привет хабросообщество! Сегодня хочу рассказать вам о книге, которую можно было запросто пропустить и лишить себя возможности погрузиться в интересную историю. Читать дальше →

Я есть root. Получаем стабильный shell Давайте представим, что мы получили бэк-коннект в результате эксплуатации RCE-уязвимости в условном PHP-приложении. Но едва ли это соединение можно назвать полноценным. Сегодня разберемся в том, как прокачать полученный доступ и сделать его более стабильным. Это третья част...

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

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

[Из песочницы] Как скрестить Excel c интерактивным веб-приложением Не секрет, что Excel довольно мощный инструмент для работы с числовыми табличными данными. Однако средства, которые предоставляет Microsoft для интеграции с ним, далеки от идеала. В частности, сложно интегрировать в Excel современные пользовательские интерфейсы. Нам нужно бы...

Задумчивая Авалония В AvaloniaUI, как и в любом другом качественном инструменте куча возможностей. Но к сожалению, в отличие от веба для нее не сделали (пока что) в большом количестве различные анимации загрузок и прочих специфических штук. В данной статье я хочу еще немного познакомить вас со ...

SmartTraits или добавляем «множественное» наследование в C# Один из наших клиентов, приверженец технологий php, жаловался что с переходом на C# и стек .Net лишился одной из своих любимых возможностей – использовать в своих скриптах traits и что он хотел бы добавления подобной функциональности в продукт разрабатываемый для его компа...

Веб-архив: импортозамещение Понадобилось найти старую версию одного сайта. В Wayback Machine (https://archive.org/web/) версии от нужной даты не оказалось, и я решил поискать альтернативные архивы интернетов. В основном находились сервисы, реализующие идею «вы нам дайте URL, а мы его заархивируем» (тип...

Предельная скорость USB на STM32F103, чем она обусловлена? У данной статьи тяжёлая история. Мне надо было сделать USB-устройства, не выполняющие никакой функции, но работающие на максимальной скорости. Это были бы эталоны для проверки некоторых вещей. HS-устройство я сделал на базе ПЛИС и ULPI, загрузив туда «прошивку» на базе проек...

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

[Перевод] Практика использования спецификации CSS Scroll Snap Часто ли у вас возникало желание воспользоваться какой-нибудь возможностью CSS, позволяющей, без лишних усилий, создать элемент-контейнер, поддерживающий прокрутку? CSS, что очень хорошо, даёт нам такую возможность. Я, когда только начинал заниматься фронтенд-разработкой, по...

[Перевод] Что же такого особенного в IAsyncEnumerable в .NET Core 3.0? Перевод статьи подготовлен в преддверии старта курса «Разработчик C#». Одной из наиболее важных функций .NET Core 3.0 и C# 8.0 стал новый IAsyncEnumerable<T> (он же асинхронный поток). Но что в нем такого особенного? Что же мы можем сделать теперь, что было невозмо...

[Перевод] Создание Minecraft за одну неделю на C++ и Vulkan Я поставил перед собой задачу воссоздания с нуля Minecraft за одну неделю с помощью собственного движке на C++ и Vulkan. Меня вдохновил на это Hopson, который сделал то же самое при помощи C++ и OpenGL. В свою очередь, его вдохновил Шейн Бек, которого вдохновила Minecraft, и...

Как «готовить» nullable reference types с добавлением appsettings.json В данной статье хочу поделиться своими размышлениями о том, можно ли на современном C# писать код, безопасный от NullReferenceException. Этот зловредный тип исключения не говорит разработчику, в каком конкретно месте у него null. Конечно, от отчаяния можно?.начать?.писать?.о...

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

[Перевод] Индикатор на лобовом стекле для автомобиля на Arduino и ELM327 Некоторое время назад мне удалось немного посидеть за рулём C6 Corvette, оснащённого индикатором на лобовом стекле (ИЛС или HUD) – и мне это очень понравилось. Возможность видеть скорость и обороты двигателя, не отрывая глаз от дороги, делает вождение приятнее. И с тех по...

Введение в TLS для п̶р̶а̶к̶т̶и̶к̶о̶в̶ Патриков (часть 1) Как вы, возможно, уже знаете, это Патрик. Он морская звезда, а значит, можно, не оскорбляя его, сказать, что руки у него растут из одного места. Еще Патрик очень практичный и сразу забывает всё, что ему не нужно – но если что-то ему нужно, он хочет это знать (потому что ему ...

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

Power Automate VS Logic Apps. Особенности Logic Apps Добрый день всем! В прошлой статье, посвященной изучению Power Automate и Logic Apps мы рассмотрели некоторые возможности использования Power Automate. В данной статье я бы хотел остановиться на некоторых сценариях использования Logic Apps и ряде отличий от Power Automate. К...

Jinja2 в мире C++, часть третья. «Теперь ты в конане» С момента публикации предыдущей части прошло больше полутора лет, была реализована большая куча фичей, сделано несколько релизов, но не об этом пойдёт речь. Пару дней назад в жизни библиотеки произошло важное событие: она была добавлена в основной репозиторий conan'а (conan...

[Из песочницы] Способы реализации API-сервера на Golang с автогенерацией кода и документации Я бы хотел в этой статье рассказать вам о том как можно быстро и просто сделать веб сервер на языке Golang с документацией к нему. И о том какие есть подходы и инструменты для их реализации Сегодня мы разберем эти готовые инструменты: swagger-api/swagger-codegen go-swagger/...

Как реализовать интеграцию с ЕСИА на Java без лишних проблем Долгое время основным способом идентификации граждан был обычный паспорт. Ситуация изменилась, когда в 2011 году по заказу Минкомсвязи была внедрена Единая система идентификации и аутентификации (ЕСИА), ― она позволила распознавать личность человека и получать о ней данные в...

[Из песочницы] О проблемах транслятора Python и переосмысление языка — Сколько нужно архитекторов, чтобы реализовать язык программирования? — Сто. Один будет писать реализацию, а 99 — говорить, что могут сделать лучше. В этой статье я хочу затронуть не столько сам язык, сколько детали реализации CPython и его стандартной библиотеки, которые г...

Оконные функции с «форточкой» или как пользоваться фреймом Всем привет. 26 февраля в OTUS стартовали занятия в новой группе по курсу «MS SQL Server разработчик». В связи с этим я хочу поделиться с вами своей публикацией про оконные функции. Кстати, в ближайшую неделю еще можно записаться в группу ;-). Оконные функции прочно вошл...

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

Переключение контекста и простой вытесняющий планировщик для CortexM С каждым годом курсовые для моих студентов становятся все объемнее. Например, в этом году одним из заданий была разработка метеостанции, ведь только ленивый не делает метеостанции, а студенты они по определению не ленивые, поэтому должны её сделать. Её можно быстро накидат...

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

PostgreSQL: Серверное программирование на «человеческом» языке (PL/Perl, PL/Python, PL/v8) Postgres знаменит своей расширяемостью, что относится и к поддержке процедурных языков (PL). Никто не может похвастаться языком списком языков такой длины, а потенциально этот список и вовсе не ограничен: для того, чтобы подключить язык к серверу, не требуется сверхусилий. М...

Зачем же роботу ограничиваться сбором мячей для гольфа? Есть же еще и теннис Краткая история как мы делаем свой стартап, что мы покажем во Флориде, а так же что делать, если нужна indoor навигация с высокой точностью? Мы сделали робота для сбора мячей для гольфа. Делаем его уже чуть больше года. Это лето для нас было очень плодотворным. Мы много тест...

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

LabVIEW NXG 5.0 — Основы и Блок-Диаграмма Это первая статья из небольшого цикла о графическом языке программирования G, который используется в LabVIEW. Язык этот пока не очень популярен — по индексу TIOBE на май 2020 года LabVIEW находится на сороковом месте аккурат между Julia и Haskell. Выпуск LabVIEW Community Ed...

[Из песочницы] ConfigureAwait: часто задаваемые вопросы Привет, Хабр! Представляю вашему вниманию перевод статьи «ConfigureAwait FAQ» автора Стивен Тауб. Async/await добавили в .NET более семи лет назад. Это решение оказало существенное влияние не только на экосистему .NET — оно также находит отражение во многих других языках...

Лебедь, рак и ваш API Как сделать так, чтобы ваши API не разбежались. В этой статье хочу рассказать, что такое OpenAPI и зачем он может быть нужен. Читать дальше →

Как реализовать игнор заблокированных пользователей в группах Telegram? UPD: благодаря помощи Tkachov эта статья всё-таки превратилась из просьбы о помощи в работающую инструкцию. В комментариях он дал работающий код для создания игнора в десктопном клиенте Телеграм. Я на всякий случай расположу объяснение в конце статьи. Далее статья продолжа...

[Перевод] Старый и новый CSS. История веб-дизайна Я увлеклась веб-дизайном и разработкой в конце 90-х. Чёрт побери, как это было давно. И как это было ужасно. Я имею в виду, что сделать сайт и опубликовать его представляло хитрое дело, а заказчиков можно было пересчитать по пальцам. Мне казалось, что большинство разработчи...

Как мы сетапили монорепозиторий с SSR и SPA для Otus.ru В начале 2017 года в KTS поступила задача - реализовать платформу для онлайн-образования Otus.ru.От нас требовалось как можно быстрее собрать портал, на котором можно было бы посмотреть информацию о курсах. Сделать MVP нужно было как можно быстрее, а современные фронтенд-фре...

[Из песочницы] Как я при помощи Google сделал OPC2WEB клиент Я работаю инженером АСУТП и немного увлекаюсь программированием: при помощи Гугла и Stack Overflow делал несколько калькуляторов на HTML и javascript, делал бота для телеграма на php, даже немного программировал на c# по работе. В этот раз задача была куда интереснее и сложн...

История платформы Highload.Fun для соревнований в оптимизации кода Привет Хабр! Сегодня я хочу рассказать о платформе, где люди соревнуются в том, кто больше сможет сэкономить тактов CPU для решения задач. Её история началась весной 2021 года, после очередного HighLoad Cup'а от Mail.ru. Мне очень нравится этот конкурс, но, к сожалению, он п...

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

[Из песочницы] Как собирать проекты в Jenkins, если нужно много разных окружений На Хабре много статей о Jenkins, но мало где описывается пример работы Jenkins и докер агентов. Все популярные инструменты сборки проектов типа Drone.io, Bitbucket Pipeline, GitLab, GitHub actions и другие, могут собирать все в контейнерах. Но как же Jenkins? На сегодняшний...

Touch slider на JavaScript Когда я начинал изучать JavaScript, мне очень хотелось понять как работают и делаются слайдеры, которые можно перелистывать свайпами или мышью, но материалов с хорошим объяснением именно того, что мне надо, я не нашел. Через какое-то время мне удалось сделать нечто подобное....

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

Шифрование TLS-трафика по алгоритмам ГОСТ-2012 c Stunnel В этой статье я хочу показать, как настроить Stunnel на использование российских криптографических алгоритмов в протоколе TLS. В качестве бонуса покажу, как шифровать TLS-канал, используя алгоритмы ГОСТ, реализованные в криптоядре Рутокен ЭЦП 2.0. Но для начала давайте вооб...

[Перевод] Git, я хочу все отменить! Команды исправления допущенных ошибок Git — удобная, но довольно сложная система. Сложность, прежде всего, в том, что по невнимательности можно допустить ошибку, которую затем сложно или вообще невозможно исправить. Документация Git предоставляет описание множества команд, которые дают возможность исправить о...

[Из песочницы] Typescript Compiler API: возьми управление компилятором в свои руки В разработке приложений на Typescript всегда есть этап сборки проекта. Обычно для этого используются системы сборки и автоматизации workflow, такие как webpack или gulp, обвешанные достаточным количеством плагинов, либо процесс сборки размазывается в командах package.json ...

О маркировках дисков замолвим слово Технологии записи на оптические диски были мейнстримом достаточно долго и породили множество сопутствующих технологий, в том числе LightScribe и LabelFlash. Указать на диске его содержимое? Нарисовать картинку и затем выжечь ее лазером? Нет проблем. А сейчас расскажу, как э...

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

Давайте сделаем переиспользуемый компонент tree view в Angular Я разрабатываю несколько Angular-библиотек, поэтому люблю делать простые и легко переиспользуемые решения для разработчиков. Недавно один из подписчиков в Твиттере спросил меня, как сделать компонент, который выводил бы его данные в виде иерархического дерева — tree view.&nb...

[Перевод] Разбираемся с not в Python В этой статье из серии про синтаксический сахар в Python я займусь на первый взгляд очень простым синтаксисом, но на самом деле, чтобы разобраться в механике его работы, нужно погрузиться вглубь на несколько слоев. Мы будем говорить о not.Определение звучит на...

Автоматизированная сборка Delphi-приложения Автоматизированная сборка Delphi-приложения Я довольно часто сталкивался с тем, что разработчики на Delphi (можно сказать традиционно) компилируют свои приложения "ручками", что далеко не production-решение, а со стороны выглядит кустарщиной и "делаем на-колен...

Сертификации в Agile. Пара слов для HR и для коллег-разработчиков Я хочу сразу оговориться что не преследую цели ни пропагандировать сертификации для IT, ни предавать их анафеме. Этот выбор каждый должен сделать для себя. Но как бы то оно ни было — сертификации существуют, сертификации придается значение «за рубежом», и в резюме сотруднико...

Let's Encrypt перевел серверы БД на AMD EPYC Внутреннее устройство 2U-сервера Dell PowerEdge R7525. Два серебристых прямоугольника посередине — процессоры AMD EPYC 7542. Сверху и снизу от них планки оперативной памяти по 64 ГБ каждая. На левом краю фотографии — 24 диска NVMe, такое возможно только на EPYC Let's Encr...

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

[Перевод] Классификация изображений на Android с помощью TensorFlow Lite и сервиса Azure Custom Vision Классификация изображений позволяет нашим приложениям Xamarin распознавать объекты на фотографиях. Все более и более распространенной становится возможность сделать фотографию и распознать ее содержимое. Мы можем наблюдать это в наших банковских приложениях при внесении мо...

Превращаем FX3-устройство в анализатор шины USB 2.0 Обычно для своих статей я выбираю или учебную тему, или какую-то проблему, а дальше – если тему, то раскрываю её, а если проблему, то соответственно, решаю. Но в рамках цикла про работу с FX3, все темы, какие хотел, я раскрыл. Из тех, что лежат на поверхности, не раскрыта те...

Моделируем поведение Quartus-проекта на Verilog в среде ModelSim В прошлой статье мы сделали достаточно сложный модуль. Разумеется, я вставил в тело статьи уже отлаженный результат. Но мне показалось, что достаточно странно, когда автор говорит «делай, как я», но при этом не показывает очень важного процесса. Давайте я покажу, как вообще ...

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

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

Пишем Grafana reverse proxy на Go Очень хотелось назвать статью «Proxy-сервис на Go в 3 строчки», но я выше этого. В действительности так и есть, основную логику можно уместить в трёх строках. Для нетерпеливых и тех, кто хочет увидеть самую суть: proxy := httputil.NewSingleHostReverseProxy(url) r.Header.Se...

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

[Перевод] Реализация epoll, часть 4 Это — последний материал из серии четырёх статей (часть 1, часть 2, часть 3), посвящённой реализации epoll. Тут речь пойдёт о том, как epoll передаёт события из пространства ядра в пользовательское пространство, и о том, как реализованы режимы срабатывания по фронту и по уро...

Распространение сферического коня в вакууме по территории РФ Привет от ODS. Мы откликнулись на идею tutu.ru поработать с их датасетом пассажиропотока РФ. И если в посте Milfgard огромная таблица выводов и научпоп, то мы хотим рассказать что под капотом. Что, опять очередной пост про COVID-19? Да, но нет. Нам это было интересно именно...

Псс, парень, не хочешь сделать модуль для Flipper Zero? У Flipper Zero на боку есть отверстия GPIO под стандартную гребенку 2.54 мм, к которым выведены ноги микроконтроллера. Там есть аппаратный SPI, I2C, UART и много другой периферии, доступной в нашем чипе STM32. Эти контакты можно использовать для подключения к сторонним уст...

MikroTik: L2VPN = EoIP + WireGuard (часть 1) Как позиционируют WireGuard это быстрый VPN нового поколения, в котором реализована современная криптография. Он изначально разрабатывался как более простая и удобная альтернатива существующим VPN. Ну что, давайте протестируем данный протокол на примере Mikrotik. Возьмем вер...

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

Новый сайт для популярного медиа за 2 месяца Давным-давно в далекой-далекой галактике появился проект The Bell, построенный на WordPress. Постепенно проект рос и развивался, добавлялись всевозможные галочки и тоглеры, накручивались фичи. Технический долг копился и тащил The Bell на тёмную сторону, а новые хотелки уже в...

Зачем ноутбуку два дисплея? Советы по использованию ASUS ScreenPad Plus Привет, Хабр! Уверен, вы уже слышали о наших новых ноутбуках с двумя экранами: ASUS ZenBook Duo UX482 и ASUS ZenBook Pro Duo UX582. В этой статье я сделаю упор не на сами ноутбуки, о них уже сказано достаточно, а на возможности второго дисплея. Я расскажу, как сделать свою р...

Боремся с таймаутами при использовании USB 3.0 через контроллер FX3, возникающими при определенных условиях Итак, в блоке из предыдущих трёх статей, мы рассмотрели, как можно изменить идеологию, принятую в первой версии комплекса Redd, заменив двухпроходную прокачку потоковых данных (сначала в буферное динамическое ОЗУ, а уже затем – в PC через интерфейс USB 2.0) на однопроходную ...

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

[Перевод] Улучшаем allOf и anyOf в CompletableFuture И снова здравствуйте. В преддверии старта курса «Разработчик Java» подготовили для вас перевод полезного материала. В CompletableFuture есть два метода, дизайн которых меня удивляет: CompletableFuture#allOf CompletableFuture#anyOf В этой статье мы посмотрим, что с ними ...

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

[Перевод] Разработка REST-серверов на Go. Часть 7: GraphQL Перед вами — седьмая (заключительная) часть серии статей о разработке REST-серверов на Go. В предыдущих статьях мы занимались, в основном, различными подходами к разработке REST API для простого приложения, автоматизирующего управление задачами. Сегодня мы исследуем кое-что ...

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

База данных на SharedPreferences — Android Kotlin Для хранения большого количества информации в Android используется DataBase (SQLite, FireBase и т. п.), а для простого хранения настроек SharedPreferences. Вопрос, можно ли использовать SharedPreferences как своего рода Базу Данных и как это сделать? Статья написана об учеб...

DOOM Watch на ESP32. Часть 1 Попробовав разработку с готовыми модулями ESP32 захотелось сделать что-то маленькое и нативное. Решил сделать часы. Сначала подумал о ESP32-PICO-D4. Поскольку в ней только 4Mb flash под программу, решил сделать полноценную версию с расширением да 16Mb flash и 8Mb SRAM. Что б...

Временные ограничения для внешних интерфейсов ПЛИС Здравствуйте. В данной статье я хочу по возможности максимально просто и понятно рассказать о том, как рассчитываются временны́е ограничения (timing constraints) на синхронные интерфейсы ПЛИС. Просто — не значит коротко, но зато простыми словами, которые вы сможете легк...

Список задач vs Календарь — сравнение инструментов управления задачами В этой статье я сравню 2 популярных инструмента для управления задачами — список задач и календарь. Сразу отмечу, что ни один инструмент не гарантирует чудесного выполнения ваших задач. Однако и списка и у календаря есть свои сильные стороны, в том числе и в контексте мотива...

Поиск автовладельцев в Instagram: от хвостов китов до автомобилей К нам в рекламную группу Dentsu Aegis Network часто приходят компании-рекламодатели с запросом изучить и проанализировать их целевую аудиторию. И сделать это необходимо быстро и точно. Предположим, у нас есть клиент из автопрома, который хочет найти владельцев авто, а потом...

Хочу в геймдев: 27 ответов от 8 профи Это материал для джунов, которые хотят устроиться в геймдев. Восемь директоров дают советы: с чего начать, как вести себя на собеседовании, как на собеседованиях оценивают кандидатов, что делать, если нет нормального портфолио, нужно ли высшее образование, есть ли стажировки...

Как построить надежное приложение на базе Event sourcing? Привет! В этой статье я хочу рассказать, как из модного микросервисного приложения можно сделать рабочую, управляемую систему с помощью трех проверенных годами методик: на примере проекта внутренней performance-based рекламы Joom. Читать дальше →

Разработка логического анализатора на базе Redd – проверяем его работу на практике В прошлой статье мы сделали аппаратуру, реализующую логический анализатор на базе комплекса Redd. Статья разрослась так, что рассмотрение программной поддержки мы отложили на потом. Пришла пора разобраться с тем, как мы будем получать и отображать данные, которые анализатор ...

[Перевод] Сделайте свое приложение масштабируемым, оптимизировав производительность ORM Перевод статьи подготовлен в преддверии старта курса «Backend-разработчик на PHP». Привет! Я Валерио, разработчик из Италии и технический директор платформы Inspector.dev. В этой статье я поделюсь набором стратегий оптимизации ORM, которые я использую, разрабатывая серв...

Двойственная природа требований к программному обеспечению Некоторое время назад я обозревал искажение применяемых методик в производстве программного обеспечения. Углубившись в частность (применение DDD) мне хотелось намекнуть читателю на то, что идя на поводу у совиного менеджмента можно не выполнить свой долг инженера. Недавняя г...

Необычные задачи по физике развивающие научное мышление (для школьников) Возможно вы уже читали мои статьи: Научные мультфильмы, что показывать детям без вреда для них? Простые опыты с ребенком дома Как мы для музея науки сделали самую большую катушку Тесла в Украине Как сделать мощную лестницу Иакова из трансформатора от микроволновки своими р...

[Из песочницы] Решение проблемы обеспечения доступности модального окна для людей с ограниченными возможностями Всем привет! В этой статье я бы хотел рассказать как реализовать доступное модальное окно, без использование аттрибута «aria-modal». Читать дальше →

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

Российское приборостроение: вертели мы ваш дизайн на пальцах Или как понять, что ваш дизайн уже пора выкинуть, и как сделать новый — Нужно делать как нужно, а как не нужно делать не нужно! Фраза из интернетов Это статья о промышленном дизайне в приборостроении: почему вы без него не обойдётесь; что делать и кого искать, если вы вс...

3D-аркада в браузере: как мы сделали игру на React + Redux Привет, Хабр! В не такие уж далёкие годы, на первом курсе «программистского» факультета, мне нравилось задавать товарищам по учёбе вопрос: «Зачем вы вообще пошли сюда учиться?» Точной статистики ответов я, конечно, не вёл, но доподлинно помню: больше половины хотели делать и...

«UML. Взгляд со стороны» или «Как UML удерживает аналитиков в прошлом» Изображение с www.uml.org Статья посвящена UML и особенностям его применения в настоящее время. Немного исторических сведений, совсем немного, только основные моменты: UML зародился в 90-х годах как результат работы по создания языка объектно-ориентированного моделировани...

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

Кейс: Какой видеоредактор нужен для ведения своего канала на Ютубе Допустим вы уже созрели для заведения Ютуб-канала, и хотите начать делать свой канал и сшибать бабло. Тематику выбрали, даже ролики начали снимать. Теперь встаёт вопрос, какой видеоредактор выбрать чтобы редактировать видео.   Для чего нужно вообще редактирования видео?...

[Перевод] Подключение геймпада к Raspberry Pi Автор статьи, перевод которой мы сегодня публикуем, Эрик Гебельбекер, недавно собрал робота, основанного на одноплатном компьютере Raspberry Pi. Он хочет сделать так, чтобы роботом можно было бы управлять, пользуясь геймпадом. А для этого геймпад нужно подключить к Raspberry...

Новостной агрегатор за две недели 18 ноября Telegram запустил соревнование по кластеризации данных: Data Clustering Contest. Нужно было за две недели сделать свой новостной агрегатор. Ограничения, которые были установлены в этом соревновании отпугнули кучу людей, но не меня и моих коллег. Я расскажу от том, ...

[Перевод] Как заставить руководство проникнуться техническим долгом «Руководство не даёт мне заняться рефакторингом legacy-кода!» Знакомая ситуация? Раздражает жутко. Большинство разработчиков рано или поздно сталкивается лбами с менеджером, который совершенно не заинтересован в том, чтобы совершенствовать уже готовое. То нужно реализовать ...

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

Разработка простейшего логического анализатора на базе комплекса Redd В прошлой статье цикла мы потренировались сохранять данные из потокового интерфейса в память средствами DMA. Пришла пора сделать какую-то полезную поделку, используя полученные навыки. Очень полезная при удалённой отладке вещь — анализатор. Вообще, при работе с комплексом ск...

Введение в программирование: заготовка игры-платформера на SDL в 300 строк C++ Этот текст предназначен для тех, кто только осваивает программирование. Я читаю лекции по C++ на первом курсе местного университета, и в качестве практикума предлагаю запрограммировать любую игру (не выношу проектов типа "софт бронирования книг в местной библиотеке"...

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

5 символов 1920-х, которые спустя 100 лет поднялись в облака Всего один полновесный год остается до начала новых «ревущих» двадцатых. Тем не менее, условности ради, давайте сделаем вид, что появление еще одной «двойки» в календаре подводит итог «десятым». В прошлом веке 20-е ознаменовались завершением I мировой войны, становлением С...

[Из песочницы] Рационализируем процесс письма в блочной тетради Вася Пупкин пишет в данный момент: излагает свой поток мыслей в блочной тетради. Но тут у Васи приключилась беда: страница кончилась. И причем на правой странице разворота, что очень неприятно. Это означает, что если Васе для того чтобы написать следующую порцию своей мысли,...

Как из одной базы данных сделать 10 разных, храня только инкременты: обзор решения История очень простая: есть большая продуктовая база данных. Она нужна пяти-шести командам разработки, тестировщикам и другим командам. Можно сделать штук 10 разных инстансов + БД, но обычно это дорого и долго. Гораздо лучше взять одну мастер-базу и хранить её инкременты для...

5 малоизвестных возможностей JSON.stringify() Доброго времени суток, друзья! В этой небольшой заметке я хочу рассказать вам о некоторых редко используемых возможностях JSON.stringify(). Возможно, они окажутся вам полезными. JSON.stringify() часто используется при отладке для преобразования объекта или обычной стро...

ML собеседование не в Яндекс: делаем нормально Наверное как и большая часть Хабра я вчера проглядел эту статью — "Собеседование в Яндекс: театр абсурда :/". Она занятная и чего уж таить греха, я чувствовал такие же "нотки", когда ходил в Яндекс на собеседование на роль… менеджера несколько лет назад....

Сниппеты. Как сделать процесс работы с документацией проще Привет, Хабр! Меня зовут Павел Лесюк. Я тестировщик нативных мобильных приложений. В своей предыдущей статье я привел список инструментов, которые могут использоваться тестировщиками и некоторыми другими специалистами для повышения продуктивности своей работы. В новой сери...

Пара слов о спецификациях Всем доброго времени суток! Удивительно, но упоминание о шаблоне "Спецификация" в контексте php встречается крайне редко. А ведь с его помощью можно не только избежать комбинаторного взрыва методов репозитория, но и улучшить переиспользование кода. Я же в свою очер...

SOHO UPS в маленьком корпусе и своими руками. Менее чем за 1500 руб Хотите обеспечить бесперебойное питание своим устройствам, но при этом не сильно потратиться? Именно такой своей разработкой я и хотел с вами поделиться. Все мы переживаем, когда устройства внезапно отключаются «по питанию» и не зря. Большая часть нештатного отключения эле...

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

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

Что делать, если поймал HardFault? Что делать, если поймал HardFault? Как понять, каким событием он был вызван? Как определить строчку кода, которая привела к этому? Давайте разбираться. Всем привет! Сложно найти программиста микроконтроллеров, который ни разу не сталкивался с тяжелым отказом. Очень часто он...

[Из песочницы] Функциональные опции на стероидах Привет, Хабр! Представляю вашему вниманию перевод статьи Functional options on steroids от автора Márk Sági-Kazár. Функциональные опции — это парадигма в Go для чистых и расширяемых API. Она популяризирована Дейвом Чейни и Робом Пайком. Этот пост о практиках, которые появ...

[Перевод] Как избавиться от разрыва кадров и задержки ввода в играх Разрыв кадров (screen tear) или задержка ввода (input lag)? Использовать ли vsync? Очень долгое время в мире игр для PC это был вопрос «или-или». Можно добиться или картинки без разрыва кадров, или низкой задержки ввода. Но невозможно получить и то, и другое. Или можно? От...

[Перевод] Linux-контейнеры в паре строчек кода В продолжение прошлой статьи о KVM публикуем новый перевод и разбираемся, как работают контейнеры на примере запуска Docker-образа busybox. Эта статья о контейнерах является продолжением предыдущей статьи о KVM. Я бы хотел показать, как именно работают контейнеры, запустив D...

[Из песочницы] Сказ о том, как я настраивал Azure AD B2C на React и React Native Часть 1 (Туториал) Предисловие Мы разрабатываем кросс платформенное ПО и перед нами возникла задача — «Сделать общую систему авторизации». Нужно было сделать общую БД пользователей для трех приложений, но при этом у каждого приложения была какая-то своя отличительная черта. Так же у нас ест...

Укрощение Горыныча 2, или Символьное исполнение в Ghidra С удовольствием и даже гордостью публикуем эту статью. Во-первых, потому что автор — участница нашей программы Summ3r of h4ck, Nalen98. А во-вторых, потому что это исследовательская работа с продолжением, что вдвойне интереснее. Ссылка на первую часть. Добрый день! Прошлого...

Поворотная камера на raspberry pi zero c web-интерфейсом(DIY) Родилась идея сделать бюджетную web камеру, используя доступные ингредиенты. Желательно, чтобы у нее был готовый web-интерфейс, чтобы можно было управлять ею удаленно, вращая в разные стороны, чтобы можно было настройки менять, чтобы делать фото-/видео-, скачивать записанн...

Дизайн: Фриланс vs Офис Много лет длится битва между дизайнерами с фриланса и дизайнерами из офисов. Миллионы копий было сломано, сотни доказательств о преимуществах той или иной стороны приведено и столько же опровергнуто. Эта статья будет полезна вам, если вы, например, начинающий дизайнер, котор...

История трансформации из продукта в проект и обратно (на примере Добродела в Московской области) С момента запуска Добродела в Московской области прошло ровно 5 лет. За эти пять лет простой проект превратился в продукт. И Правительство Московской области в форме простой неисключительной лицензии передало его Ульяновской области. Ссылка на новость тут. Но давайте посмотр...

Как переместить меню «Пуск» в предварительной версии Windows 11 Если вы хотите, чтобы меню «Пуск» в Windows 11 располагалось на привычном месте слева, это можно сделать. В операционной системе Windows 11 есть множество изменений в интерфейсе. В том числе это панель задач с расположением элементов по центру, включая «Пуск». В Microsoft ре...

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

Про кластер серверов 1С Кластер — это разновидность параллельной или распределённой системы, которая: 1. состоит из нескольких связанных между собой компьютеров; 2. используется как единый, унифицированный компьютерный ресурс Gregory F. Pfister, «In search of clusters». Дано: есть бизнес-прило...

Как малый бизнес не становится бизнесом на примере стоматологической клиники Одна из тех вещей, которые точно не стоит делать в этой жизни второй раз — это развивать малый бизнес до среднего. Кто это проходил, знает, что это потраченные пять–десять лет жизни. Если у вас есть нужные навыки и вы понимаете процессы работы своего бизнеса, то можно начи...

Мой опыт разработки на языке Nim Привет, Хабр! Уже довольно давно я пишу свой игровой фреймворк — такой pet project для души. А так как для души нужно выбирать что-то, что нравится (а в данном случае — на чём нравится писать), то выбор мой пал на nim. В этой статье я хочу поговорить именно про nim, про его...

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

TS Total Sight. Средство сбора событий, анализа инцидентов и автоматизации реагирования на угрозы Добрый день, в прошлых статьях мы познакомились с работой ELK Stack. А теперь обсудим возможности, которые можно реализовать специалисту по ИБ в использовании данных систем. Какие логи можно и нужно завести в elasticsearch. Рассмотрим, какую статистику можно получить, наст...

Основы deep learning на примере дебага автоэнкодера, часть №1 Если почитать обучение по автоэнкодерам на сайте keras.io, то один из первых посылов там звучит примерно так: на практике автоэнкодеры почти никогда не используются, но про них часто рассказывают в обучалках и народу заходит, поэтому мы решили написать свою обучалку про них:...

Переход на Swift UI и React Native: как за 3 месяца запустить новое приложение, быстро набравшее популярность Всем привет!На связи Дима Бобылев, CTO СберМаркета. В своей первой статье я рассказывал про взрывной рост нашего сервиса и какие неприятности с нами случились. ​​Знайте, мы не только выжили, но и продолжаем расти дальше и берем новые вызовы. Сегодня хочу поделиться исто...

Под капотом сортировок в STL Стандарт С++ почти никогда не указывает, как именно должен быть реализован тот или иной std алгоритм. Дается только описание того, что на входе, что на выходе и асимптотические ограничения по времени работы и памяти. В статье я постарался прикинуть, какие математические алг...

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

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

Swagger в RBK.money — про наши внешние API Хочешь сделать что-то полезное и рабочее — сделай его так, чтобы другие люди могли этим полноценно пользоваться, нормально это ревьювить, да и вообще вспоминать тебя добрым словом, а не темной стороной своего словарного запаса. Для этого, кроме того, чтобы просто хорошо дела...

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

Материальный дизайн. Создание анимаций в Kivy Приветствую всех любителей и знатоков языка программирования Python! В этой статье я покажу, как работать с анимациями в кроссплатформенном фреймворке Kivy в связке с библиотекой компонентов Google Material Design — KivyMD. Мы рассмотрим структуру Kivy проекта, использован...

[Перевод] Подсчет запросов: Базовое тестирование производительности на Django Всем привет. Мы подготовили перевод еще одного полезного материала для студентов курса «Web-разработчик на Python», который стартовал вчера. Очень часто можно услышать о методах тестирования, таких как TDD, и о том, как тестировать бизнес-логику приложения. Однако тестиро...

[Перевод] Простой, но умный ход, применяемый в zsh и fish для решения проблемы пропущенного символа перевода строки Сегодня я хочу рассказать о том, как командные оболочки zsh и fish обнаруживают пропущенные символы перевода строки и выделяют соответствующие места в выводе программ, делая это в условиях, когда модель программирования Unix не даёт им возможности исследовать то, что выводят...

[Перевод] Разбираемся с launchMode Android Activity: standard, singleTop, singleTask и singleInstance Перевод статьи подготовлен специально для студентов продвинутого курса по Android разработке. Activity — это одна из самых ярких концепций в Android (самой популярной мобильной операционной системе с хорошо продуманной архитектурой управления памятью, которая отлично реал...

13 заметок о 3D печати, после 3 лет владения 3D принтером Эта статья будет, прежде всего, интересна тем, кто как сталкивался непосредственно с 3D печатью, то есть является владельцем 3D принтера, а также тем, кто только собирается влиться в ряды 3D печатников и раздумывает о покупке своего принтера. В рамках этой статьи я хочу из...

Фреймворконезависимый фронтенд GoF, Чистая архитектура, Совершенный код — настольные книги «true программиста». Но в мире фронтенда многие идеи из этих книг недоступны. По крайней мере сходство с реальным миром найти очень сложно. Может быть современный фронтенд опережает время? Может быть «функциональное...

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

Новый .NET клиент для Snowflake Всем привет! В этой статье я расскажу, как я сделал свой собственный .NET клиент для работы со Snowflake, чем он лучше официальных библиотек, как устроен и как им пользоваться. Читать дальше →

[Из песочницы] О декодировании протокола погодных датчиков Oregon Scientific Лет десять назад как-то по случаю я купил простенькую погодную станцию Oregon Scientific BAR208HG. Радовала она домочадцев достаточно долго, и продолжает радовать до сих пор. Мне же со временем стало не хватать её функционала и захотелось расширить свои возможности наблюдени...

[Перевод] Диалоги подтверждения: советы зарубежных коллег и собственный опыт Изображение из блога компании Miro Киннерет Ифра, эксперт в разработке микротекстов для UI и автор книги «Microcopy: The Complete Guide», в своей статье даёт рекомендации, как сделать диалоги подтверждения краткими, предельно ясными и не раздражающими, а значит – более пол...

[Перевод] Как эффективно применять React Context В статье Как управлять состоянием React приложения без сторонних библиотек, я писал о том как сочетание локального состояния и контекста (React Context) поможет вам упростить управление состоянием при разработке приложения. В этой статье я продолжу эту тему - мы поговор...

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

Запускаем свой RTMP сервер для стриминга Иногда YouTube или Twitch не подходят как стриминговая платформа — скажем, если вы пилите портал с вебинарами или контентом 18+, нарушаете авторские права или хотите максимально отгородить свою трансляцию от остального интернета. У них есть много альтернатив как в виде сер...

Страшилки на Хэллоуин от веб-разработчиков В преддверии Хэллоуина фуллстек-разработчик Уэс Бос в своём Твиттере попросил других программистов поделиться своими ужасными историями о вебдеве. Вот некоторые из них... @DimitroffPeter: Моя первая работа и первый вклад в продакшен. Мне нужно починить клиент-серверную у...

Как выглядит zip-архив и что мы с этим можем сделать. Часть 3 — Практическое применение Продолжение статьи Как выглядит zip-архив и что мы с этим можем сделать. Часть 2 — Data Descriptor и сжатие. Дорогие читатели, я снова приветствую вас на передаче Нетрадиционное программирование на PHP. Для понимания происходящего рекомендую ознакомиться с предыдущими двумя...

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

Что меняется, когда у вас малый бизнес, а не самозанятость — пример клиники В прошлом посте я рассказывал, как выглядит тот самый отвратительный период, когда вы пять-десять лет топчетесь на месте либо устраиваете себе самозанятость под видом бизнеса. И, как я говорил, в стоматологии (и много где ещё) лучше пропустить этот период и сразу же открыв...

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

[Из песочницы] Image Processing изображений из космоса для CG Приветствую! Меня зовут Тим, я CG артист, режиссёр и автор научно-популярного проекта SGR A. В этой статье я хотел бы рассказать как создаю текстуры космических тел как для своих проектов, так и для кино, используя реальные снимки космических аппаратов. Большое красное пят...

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

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

[Перевод] Вставка реальных объектов в Unity с помощью Meshroom Из этой статьи вы узнаете, как использовать фотограмметрию для фотосканирования и вставки объектов реального мира в проекты Unity при помощи Meshroom. В контексте 3d-моделей фотограмметрия — это процесс создания 3D-моделей из отсканированных объектов. Вам нужны реалистичн...

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

[Из песочницы] Многопоточность на Node.js. Event Loop Инфа будет полезна JS-разработчикам, которые хотят глубоко понимать суть работы с Node.js и Event Loop. Вы сможете осознанно и более гибко управлять потоком выполнения программы (web-сервера). Эту статью я составил по материалам своего недавнего доклада для коллег. В конце с...

[Из песочницы] Как использовать несколько языков программирования и не сойти с ума Привет, Хабр! Представляю вашему вниманию перевод статьи «How to use multiple programming languages without losing your mind» автора Bart Copeland. Сопливое нытьё про FSF и Red HatКароч, тема такая: я им написал, а они не ответили. Ну ладно бы Массивсофт, который вообще ник...

[Перевод] Symfony и Гексагональная архитектура В данной статье мы коротко пройдемся по теории и на практике разберемся как перевести любое Legacy приложение на гексагональную архитектуру. Повествование будет в контексте фреймворка Symfony и PHP 7.4, но синтаксис приведенных примеров настолько прост что вы без труда пойм...

Как мы решили оптимизировать картинки — а в процессе переделали сайт, админку и подход к интерфейсу Рассказывает технический директор «Медузы» Борис Горячев. Наш основной продукт — сайт — постоянно обрастает новыми функциями, но из-за этого постепенно становится более тяжелым и неповоротливым. Поэтому наш технический отдел время от времени занимается тем, чтобы сделать ег...

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

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

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

Мониторинг Apache Ignite. Сделали правильно Мы сделали 2 подсистемы внутри Apache Ignite. В статье расскажу про их архитектуру: Как сделали подсистему метрик и подсистему system view. Что сделано и что собираемся сделать? Читать дальше →

[Перевод] Резервирование констант и Git hooks на C# Позвольте мне рассказать вам историю. Жили-были два разработчика: Сэм и Боб. Они вместе работали над проектом, в котором была база данных. Когда разработчик хотел внести в неё изменения, он обязан был создать файл stepNNN.sql, где NNN — некоторое число. Чтобы избежать конфли...

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

Code review в Gitlab CE: если Merge request approvals нет, но очень хочется Одной из самых нужных функций, которой нет в бесплатной версии GitLab, является возможность голосования против обнуления репозитория контролировать Merge request (MR), используя обязательный code review. Сделаем минимальный функционал сами — запретим Merge, пока несколько...

Освободи свой Android — алаверды О чём это? Данная статья написана в качестве продолжения статьи Освободи свой Android. Зачем? Очень просто — та статья очень подробно и хорошо описывает, как перешить смартфон на LineageOS. Но она просто требует продолжения о том, как потом с этим перешитым смартфоном жить. ...

«Объясняю каждую строчку» — разработка видеоигры в прямом эфире Э-ге-гей! Кто хочет узнать, как делаются видеоигры? Ладно, я угораю. Уж где-где, а тут публика должна быть в курсе. Тем не менее, как насчёт увидеть процесс создания игры? Полностью. С первой до последней строчки. ВСЁ. Вообще ВСЁ. Не просто увидеть, даже поучаствовать, если...

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

Сделай свой бейдж: Shitty Add-On не против OFFZONE До третьей международной конференции по практической кибербезопасности OFFZONE 2020 остался всего 71 день. У организаторов кипит работа, но и участникам есть чем себя занять в ожидании. В сегодняшнем посте мы расскажем о фишке, которая позволит посетителям OFFZONE обеспечить...

ANYKS Spell-checker Здравствуйте, это моя третья статья на хабре, ранее я писал статью о языковой модели ALM. Сейчас, я хочу познакомить вас с системой исправления опечаток ASC (реализованной на основе ALM). Да, систем исправления опечаток существует огромное количество, у всех есть свои сил...

[Из песочницы] Home видео для Selenium aka WebDriver. Или чем записать экран, если у вас есть java, поломанные тесты и немного времени Решили мы на работе автоматизировать тесты для нескольких своих веб приложений. И кроме информации, когда упали тесты, захотелось еще и увидеть, как выглядела страница на этот печальный момент. Я уже давно не брал в руки шашки и Selenium, поэтому пришлось немного покопатьс...

[Перевод] Что прячет Энцелад в темных водах своего океана? Энцелад — один из 82 известных нам спутников Сатурна. Около 10 лет назад учёные NASA назвали Энцелад наиболее пригодным для жизни местом во всей Солнечной системе. Оказалось, что глубоко под поверхностью этого спутника, под его ледяной коркой, могут скрываться океанические т...

Создание группы доступности AlwaysON на основе кластера Failover Группы доступности AlwaysOn — мощное решение, дающее возможность для администраторов баз данных, реализовать очень высокий уровень доступности (HA, high availability) с помощью кластерных технологий. Документация Microsoft не для всех ясная и понятная, что приводит к ошибкам...

Компания MSI совместно с сетью магазинов BRAIN запустила масштабную Trade-in компанию для видеокарт Компания MSI даёт прекрасную возможность сделать апгрейд для своего ПК! C 12 мая по 1 июня приходи в любой магазин BRAIN на территории Украины, бери с собой свою старую видеокарту NVIDIA и гарантировано получи скидку до 3000 грн на любую видеокарту AMD RX 5*** серии в исполн...

Blue-Green Deployment на минималках В этой статье мы с помощью bash, ssh, docker и nginx организуем бесшовную выкладку веб-приложения. Blue-green deployment — это техника, позволяющая мгновенно обновлять приложение, не отклоняя ни одного запроса. Она является одной из стратегий zero downtime deployment и лучше...

Электронная книга своими руками на STM32H750 от А до Э В этой статье я хочу поделиться опытом разработки электронной книги с использованием недорогого контроллера STM32H750VB, распространенных дискретных компонентов и относительно недорогого дисплея E-Ink. Статья будет большой, так как приведены будут все процессы от постановки...

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

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

Разработка системы аутентификации на Java+Tarantool Системы аутентификации есть везде. Пока вы скучаете в лифте по пути с седьмого этажа на первый, можно успеть проверить баланс в приложении банка, поставить пару лайков в Instagram, а потом проверить почту. Это минимум три системы аутентификации. Меня зовут Александр, я прог...

Онбординг разработчиков «Я прихожу на работу, мне дают ноутбук, показывают рабочее место, выдают задачу, а дальше сиди и делай сам. Спустя пару месяцев я должен знать всё о компании, но, на самом деле, я помню только сделанные задачи. Кому задавать вопросы? А можно подойти к директору? Где туалет?»...

Как я графику в Гномах улучшал Гномы (Diggles: The Myth Of Fenris) - одна старенькая игра из 2001, которая мне ну очень нравилась (и нравится до сих пор). Недавно вышел её релиз на gog, и меня снова охватило теплое чувство ностальгии.Как и у любой старой игры, графика смотрится размыто на новых мониторах ...

Умный кран на Arduino (счетчик ресурса фильтра) Ребята всем привет! Я счастлив представить вам свой очередной проект. Это самый масштабный проект, который я вынашивал больше 5 лет и воплощал в жизнь несколько месяцев. Старался сделать все симпатичным, компактным и что самое главное полезным. Те у кого есть фильтр на кухне...

Кастомный скроллбар в Angular После вступления Edge в доблестные ряды Chromium-браузеров кастомизация скроллбаров через CSS отсутствует только в Firefox. Это здорово, но кроме Firefox у CSS-решения есть масса ограничений. Посмотрите, какую черную магию приходится применять для плавного исчезновения. Чтоб...

[Из песочницы] Симуляция ПИД-регулятора температуры Поискал я статьи на данном ресурсе на тему ПИД-регуляторов. Много статей. И с объяснением принципов работы таких регуляторов. И с алгоритмами подбора параметров. И с реализацией на конкретных железках и программах. Не увидел одного — симуляции ПИД-регуляторов на моделях, с т...

[Перевод] Заметки о Unix: одновременное редактирование нескольких файлов в Vim Недавно мы завершили перевод последней нашей машины на новый клиент для Let’s Encrypt. В ходе работы нужно было поменять пути к выгружаемым TLS-сертификатам во всех конфигурационных файлах, где они использовались. На многих компьютерах был лишь один конфигурационный файл, но...

[Из песочницы] Редизайн приложения — взгляд изнутри Mobius bike — это сервис по прокату велосипедов и самокатов, разработанный для Таллина (на данный момент запланировано расширение географии). Гипотеза первого релиза — «приложение по прокату велосипедов, будет востребовано на рынке Европы». В декабре 2019 была пересмотре...

Пишем Ретровейв на Angular Web Audio API существует уже давно, и про него есть немало статей. Поэтому про сам API много говорить не будем. Расскажем, что Web Audio и Angular могут стать лучшими друзьями, если их правильно познакомить. Давайте сделаем это! Читать дальше →

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

[Из песочницы] Jungle town: как мы хотели изменить мир к лучшему, создавая детскую игру История нашей игры началась в 2016 году с покупки приставки Apple TV. Это был очень желанный девайс, на котором я обнаружил несколько игр, в том числе детских. Одна из них была от знаменитой студии, и она настолько мне понравилась, что я сказал своей супруге и музе: «Дорог...

[Перевод] Попробуем выдвинуть аргументы против Rust Недавно я прочитал статью c критикой Rust. Хотя в ней было много правильных вещей, она мне не понравилось — слишком многое там очень спорно. В целом, я вообще не могу рекомендовать к прочтению никакой статьи с критикой Rust. Это нехорошо, ведь важно обсуждать недостатки, а ш...

Записки пентестера: карантин, удаленные сотрудники и как с этим жить На фоне всеобщего карантина и перехода на удаленку некоторые коллеги по цеху начали усиленно набрасывать нагнетать – мол, вокруг уже куча хакнутых компаний. Я же хочу поговорить о том, что можно сделать в короткие сроки, чтобы взломать вас было куда сложнее. Читать дальше ...

Я сделаю свою «умную» колонку… «with blackjack and hookers!» Я сделаю свою «умную» колонку… «with blackjack and hookers!»Привет всем. В данной статье я расскажу историю как мы с двоюродным братом сделали свою «умную» колонку-голову робота Бендера из Футурамы. Читать далее

Применение CQRS & Event Sourcing в создании платформы для проведения онлайн-аукционов Коллеги, добрый день! Меня зовут Миша, я работаю программистом. В настоящей статье я хочу рассказать о том, как наша команда решила применить подход CQRS & Event Sourcing в проекте, представляющем собой площадку для проведения онлайн-аукционов. А также о том, что из эт...

Django Rest Framework для начинающих: создаём API для записи и обновления данных (часть 1) Продолжаем изучать Django Rest Framework с точки зрения новичка. Мы уже разобрали создание REST API для получения данных из БД, включая отдельную статью о работе сериалайзера. В этой статье расскажу, как с помощью сериалайзера проверить поступившие данные для записи в БД. В...

Почему я сделал личный проект учёта трат на Git+JS Здравствуйте, господа, в этой статье я поделюсь опытом создания приложения учёта трат, в частности отвечу на следующие вопросы: Зачем мне приложение учёта трат? Почему это личный проект? Почему проект на Git+JS? 1. Зачем мне приложение учёта трат? Как и многие другие люди...

[Перевод] 5 дел, которые можно сделать для того, чтобы подготовиться к приходу Vue 3.0 В 2019 году популярность фреймворка Vue невероятно сильно выросла. Количество еженедельных загрузок Vue удвоилось: в прошлом году это было 600 тысяч, а теперь это 1.2 миллиона. Долгожданная третья версия Vue, следующая итерация фреймворка, должна выйти где-то в первом кварта...

Видеоурок Теплицы: простой и удобный менеджер заметок Google Keep Мы сделали два скринкаста по менеджеру заметок Evernote. Приложение – хорошее, но для тех, у кого нет возможности потратить на изучение программы даже двадцать минут, а менеджер заметок все-таки иногда бывает нужен, Вова Ломов сделал скринкаст про приложение, на изучение ко...

Разработка производительной модели обработки данных для Cassandra В DataStax работают над созданием производительной модели данных для Apache Cassandra. В чём заключается эта работа и как её делать правильно, на конференции Cassandra Day Russia 2021 рассказал Артём Чеботко, Solutions Architect в DataStax. Речь пойдет о разработке производ...

[Из песочницы] Капча для codeigniter 4 Добрый день! Несмотря на заголовок статьи, в ней будут представлены общие методы и функции, которые я использовал для создания своей капчи, которые можно применить и в других фреймворках с минимальными правками. Некоторые функции и подходы основываются на материалах поста Ра...

[Из песочницы] SwiftUI по полочкам Каждый раз, когда в языке программирования появляется новый Фреймворк, рано или поздно, появляются люди, которые изучают язык именно с него. Вероятно так было и в IOS разработке во времена появления Swift: поначалу он рассматривался как дополнение к Objective-C — но я этого ...

API, ради которых наконец-то стоит обновиться с Java 8. Часть 3 Какие есть причины переходить на новые версии Java? Кто-то это сделает из-за новых языковых возможностей вроде выражений switch, блоков текста или записей. Кому-то понадобятся новые интересные возможности вроде модулей или низкопаузных сборщиков мусора. Кто-то это сделает пр...

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

АКБ 12 вольт для шлифмашинки.     Осенью прошлого года, здесь , я "хвастался"  своей шлифовальной машинкой.  Важным недостатком у нее было отсутствие собственного блока питания - я использовал для работы аккумуляторы от шуруповерта.Решение вполне приемлемое, но иногда это вызывало некоторый дискомфорт.В ...

Будучи фрилансером. Мой путь, борьба и рекомендации Жизненный опыт даёт нам радость только тогда, когда мы можем передать его другим. А. Моруа Я работаю фрилансером уже на протяжении 14 лет. Я начинал, когда эта сфера, в том числе IT-фриланс, еще не были так развиты, по крайней мере, в России. Уходить на удаленную работу еще...

Covid-19: что будет с бизнесом в России [и когда всё это закончится] Сделали выжимку из прогноза McKinsey&Company по развитию мировой экономики (и России в частности) в контексте влияния коронавируса. К чему готовиться российскому бизнесу, кому и как надолго затянуть пояс — под катом. Читать дальше

Режим «Картинка в Картинке» в iOS 14 оказался лучше, чем в Android Apple обычно не называют «первой», когда речь идет о внедрении определенных функций в ее операционные системы, особенно iOS. Поэтому многим кажется, что по сравнению с Android Apple отстала, и когда она добавляет новые функции в iOS, преданные поклонники операционки от Goog...

Роутинг для iOS: универсальная навигация без переписывания приложения В любом приложении, состоящем более чем из одного экрана, существует необходимость реализовать навигацию между его компонентами. Казалось бы, это не должно быть проблемой, ведь в UIKit есть достаточно удобные компоненты-контейнеры вроде UINavigationController и UITabBarContr...

[Перевод] Точки входа в Python Многие думают, что точки входа это такие инструкции в setup.py, которые позволяют сделать пакет доступным для запуска из командной строки. Это, в целом, верно, но возможности точек входа не ограничиваются этим. Ниже я покажу как можно реализовать систему плагинов для пакета...

[Перевод] Используйте парсинг вместо контроля типов В 2019 году была написана потрясающая статья Parse, don’t validate. Я крайне рекомендую изучить её всем программистам (а также недавнее дополнение к ней Names are not type safety). Её основная идея заключается в том, что существует два способа проверки валидности входящих ...

Кто такой СТО и каковы его задачи? Личный опыт и мнение технического директора Привет, Хабр! Меня зовут Игорь Десятников, я Chief Technical Officer в компании Neuro.net. Несколько раз встречал на Хабре статьи с попыткой рассказать о роли СТО, об эволюции этой должности при расширении компании и т.п. С некоторыми вещами согласен, с другими — нет. Се...

Very simple real time operating system: что это и зачем нужно? В своей предыдущей статье я вскользь упомянул, что использую в проекте операционную систему реального времени собственной разработки vsrtos, которая по внешнему API похожа на FreeRTOS. Так зачем же нужно было ее разрабатывать, и когда стоит сделать выбор в ее пользу вместо F...

[Перевод] Напишем и поймем Decision Tree на Python с нуля! Часть 1. Краткий обзор Привет, Хабр! Представляю вашему вниманию перевод статьи "Pythonで0からディシジョンツリーを作って理解する (1. 概要編)". 1.1 Что такое Decision Tree? 1.1.1 Пример Decision Tree Например, у нас есть следующий набор данных (дата сет): погода, температура, влажность, ветер, игра в гольф. В ...

Современная сборка 2020 для frontend. Gulp4 Начало Посмотрев на календарь, я понял, что уже 2020, а посмотрев на свою сборку, которая была с 2018 года, я понял, что пора её менять. В этой статье мы разберем структуру проекта, плагины (минимальный набор функционала) и их новые возможности, которые добавились за такое б...

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

Разворачивание Minecraft сервера под linux В моей прошлой статье я рассказывал, как быстро развернуть свой Minecraft сервер из образа под Windows. И очень многие, справедливо заметили, что Windows не очень годится для разворачивания такого типа сервера. А PowerShell через RDP — это какое-то ненормальное извращение....

[Перевод] Неоморфизм с помощью SwiftUI. Часть 1 Салют, хабровчане! В преддверии старта продвинутого курса «Разработчик IOS» мы подготовили еще один интересный перевод. Неоморфный дизайн — это, пожалуй, самый интересный тренд последних месяцев, хотя, по правде говоря, Apple использовала его в качестве своего дизайнерског...

Интеграция Huawei Mobile Services со второй попытки Android-разработчики и продакты всей галактики ломают голову над одним важным вопросом — “Нужно ли делать интеграцию HMS?”. В это статьей мы расскажем, как у нас получилось затащить поддержку Huawei Mobile Services в регулярных релизах, пусть и со второй попытки. Здесь ...

STM32 Чать 2: Инициализация Программирование — это разбиение чего-то большого и невозможного на что-то маленькое и вполне реальное. Всем привет, для начала я хотел бы поблагодарить модераторов за то что пропустили мой первый (отвратительный) пост, и передать привет маме! А так же я хотел бы поблагода...

Методы организации DI и жизненного цикла приложения в GO Есть несколько вещей, которыми можно заниматься вечно: смотреть на огонь, фиксить баги в легаси-коде и, конечно, говорить о DI — и всё равно нет-нет, да и будешь сталкиваться со странными зависимостями в очередном приложении. В контексте языка GO, впрочем, ситуация чуть слож...

FAST VP в СХД Unity: как это работает Сегодня речь пойдет об интересной технологии, реализованной в СХД Unity/Unity XT, – FAST VP. Если вы впервые услышали о Unity, то по ссылке в конце статьи можно ознакомиться с характеристиками системы. В проектной команде Dell EMC я работал над FAST VP более года. Сегодня хо...

[recovery mode] О стартапах и стартаперах Сейчас очень модно говорить о стартапах и молодых стартаперах, бизнесменах до 30 лет, попавших в поле зрения Форбс. Об инновационных проектах, нацеленных перевернуть мир. Видимо, пришло время и для меня осознать, что такое стартап, что такое собственный проект, и каким мо...

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

Как я делал систему оптического трекинга Дело было в далеком 2015 году. В продаже только появились очки виртуальной реальности Oculus DK2, рынок VR игр быстро набирал популярность. Возможности игрока в таких играх были невелики. Отслеживалось всего 6 степеней свободы движений головы — вращение (инерциалкой в очка...

Сравнение российской рэп сцены используя R и техники Text Mining. Эпизод 2 R. Text Mining. Rap. Episode 2 Данная статья является продолжением материала «Сравнение российской рэп сцены используя R и техники Text Mining. Noize Mc and Kasta vs Pharaoh and Morgenshtern» и сейчас я постараюсь детально проанализировать творчество Нойз Мс и Оксимирона. Од...

Нишевый контент: как 10% статей дают 61% конверсий из блога Раньше у нас был блог и читатели. Теперь у нас есть блог, читатели и клиенты из блога. Свою роль здесь сыграли нишевые статьи. Это статьи, где реклама продукта упакована в решение определенной проблемы в узкой нише. Рассказываем, как мы их делаем и сколько клиентов они нам ...

[Перевод] Лучшие стратегии разработки фронтенда в 2022 году Эта статья специально написана так, чтобы ставить перед читателями неоднозначные задачи, вызывать у них противоречивые чувства и давать им пищу для размышлений. Речь здесь пойдёт о множестве свежих идей, о которых вы, вероятнее всего, пока не слышали. Я сделаю всё, что в мо...

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

Утраченный потенциал подсистемы Windows для Linux (WSL) Если вы несколько лет вообще не следили за Windows 10 и не знаете, что происходит, то пропустили одну вещь — очень горячей темой для разработчиков стала подсистема Windows для Linux, она же WSL. Среди программистов очень часто её обсуждают. Действительно, потрясающе интере...

Кастомизация компонентов Ant Design и оптимизация бандла The Archivist by juliedillon Я Иван Копенков, ведущий фронтенд-разработчик в Mail.ru Cloud Solutions, в статье расскажу, какие есть подходы к кастомизации компонентов UI-библиотеки Ant Design, как это сделали мы, а так же покажу, как удалось полностью избавиться от неисполь...

Современные стандарты идентификации: OAuth 2.0, OpenID Connect, WebAuthn Пускать или не пускать? Вот в чем вопрос… Сейчас на многих сайтах мы видим возможность зарегистрироваться или войти с помощью соцсетей, а некоторые сайты предлагают использовать внешние ключи безопасности или отпечатки пальцев. Что это? Стандарты с хорошо проработанной безо...

MEV: DeFi transaction ordering for profit and fun Эта статья про один из новых, серьезных вызовов для DeFi проектов - MEV. Его аналоги в предыдущей финансовой реальности, волнуют лишь малое число узких специалистов, имещих закрытый, приоритетный доступ к серверам бирж. В DeFi доступ к "финансовым API" есть у любого пользова...

Covid-19: зачем мы сидим на карантине, и ответы на другие вопросы Привет Хабр. Изначально я не планировал публиковать здесь статью про коронавирус, аналитики на хабре уже более чем достаточно. Однако, читая разные местечковые форумы и соцсети, я с удивлением обнаружил сколько достаточно вредных мифов гуляет в сети, и что обычные люди, не ...

[Перевод] Объяснение легковесных потоков в 200 строк на Rust Объяснение легковесных потоков в 200 строк на Rust Легковесные потоки (ligthweight threads, coroutines, корутины, green threads) являются очень мощным механизмом в современных языках программирования. В этой статье Carl Fredrik Samson попытался реализовать рантайм для легков...

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

VPS на Linux с графическим интерфейсом: запускаем сервер VNC на Ubuntu 18.04 Некоторые пользователи арендуют относительно недорогие VPS с Windows для запуска сервиса удаленных рабочих столов. То же самое можно сделать и на Linux без размещения в датацентре собственного железа или аренды выделенного сервера. Кому-то нужна привычная графическая среда ...

Хочу больше годных профстатей, Хабр Листая страницы Хабра, поймал себя на мысли, что я воспринимаю Хабр  как новостную ленту в социальной сети. То есть как нечто, что прямого отношения лично ко мне не имеет и касается меня очень  косвенным путем. Нечто полуразвлекательное-полупознавательное.Ну, судит...

[Перевод] Проигрыватель для очень медленного воспроизведения видеофайлов Карантин — это как раз то время, когда можно сделать особенный «домашний кинотеатр», который украсит интерьер. В декабре 2018 года Брайан Бойер опубликовал статью о создании проигрывателя для очень медленного воспроизведения видеоклипов (Creating a Very Slow Movie Player). ...

Как сделать цветные тени в Android с градиентом и анимацией На презентации новых макбуков обратил внимание на картинку процессора: переливающиеся цветные тени на темном фоне. Давайте нарисуем на Android такие-же Читать далее

Изучаем VoIP-движок Mediastreamer2. Часть 10 Материал статьи взят с моего дзен-канала. В прошлой статье мы сделали дуплексное переговорное устройство, выполняющее обмен звуковым сигналом через дуплексную RTP-сессию. В этой статье мы научимся писать фильтры и добавим сделанный своими руками фильтр в сделанное своими рук...

Разработка сложных компонентов: деливерим быстро, поддерживаем легко Всем привет, меня зовут Роман Пятаков! Я техлид во фронтенд-команде Lamoda. И сегодня хочу поговорить с вами о разработке сложных компонентов. Lamoda — это технически сложный продукт, которым пользуются 10 миллионов пользователей ежемесячно, насчитывающий более 100 внутрен...

Нейросеть — обучение без учителя. Метод Policy Gradient Доброго времени суток, Хабр Настоящей статьей открываю цикл статей о том, как обучать нейронные сети без учителя. (Reinforcement Learning for Neuron Networks) В цикле планирую сделать три статьи по теории и реализации в коде трех алгоритмов обучения нейронных сетей без учи...

[Перевод] Использование VueJS вместе с Django Перевод статьи подготовлен в преддверии старта курса «Web-разработчик на Python». Введение Сейчас я работаю над очень интересным проектом. И в нем все сложно, потому что сам проект очень масштабный, а я занимаюсь им один в свободное время, при этом работая полный рабочий ...

Telegram бот на Firebase В основном, про Firebase рассказывают в контексте создания приложений под IOS или Android. Однако, данный инструмент можно использовать и в других областях разработки, например при создании Telegram ботов. В этой статье хочу рассказать и показать насколько Firebase простой и...

Продвинутая Helm-шаблонизация: выжимаем максимум Стандартной Helm-библиотеки и привычных подходов к написанию Helm-чартов обычно хватает для автоматизации несложных приложений. Но когда количество и сложность Helm-чартов растут, то минималистичных Go-шаблонов и неоднозначной стандартной Helm-библиотеки быстро перестаёт х...

Исследуем бинарные форматы на примере байткода .class файла Если вас не пугает картинка выше, если вы знаете чем отличается big-endian от little-endian, если вам всегда было интересно как "устроены" бинарные файлы, значит эта статья для ВАС! Читать дальше →

[Перевод] HTTP-заголовок Feature-Policy и контроль поведения веб-страниц в браузерах Существует одна совершенно бесподобная методика, позволяющая держать производительность веб-проекта под контролем. Она заключается во внедрении в процесс разработки механизмов, результаты работы которых хорошо заметны. Эти механизмы нацелены на то, чтобы всегда напоминать пр...

API, ради которых наконец-то стоит обновиться с Java 8. Часть 1 На сегодняшний день Java 8 является самой популярной версией Java и ещё довольно долго будет ей оставаться. Однако с тех пор уже выпущено пять новых версий Java (9, 10, 11, 12, 13), и совсем скоро выйдет ещё одна, Java 14. В этих новых версиях появилось гигантское количество...

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

Еще один сайт для изучения слов. Зачем? Я пробовал Anki, Cram, Memrise, Drops, Quizlet и сотню других приложений для запоминания слов. Я не нашел ничего, чем бы мне было приятно пользоваться. В итоге я сделал своё (сайт, а не приложение) и пользуюсь им уже 1.5 года. Не идеально, но есть свои плюсы. Читать далее

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

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

Как мы сделали оффлайновый SMS-локатор/трекер Сейчас начинается самый продуктивный сезон сбора грибов. В этой статье я расскажу о технически успешной попытке сделать "оффлайновый" SMS-локатор, и о том, почему проект "не взлетел". И о том, при чём тут грибы :)Начну издалека. С пяти лет я начал ходить в лес, чуть позже - ...

[Из песочницы] Унификация визуальных компонентов. Часть 1. Стили Данная статья будет, прежде всего, полезна разработчикам, которые не работают с готовыми наборами компонентов, такими как, material-ui, а реализуют свои. Например, для продукта разработан дизайн, отражающий то, как должны выглядеть кнопочки, модальные окна и т.п. Чтобы гра...

Как мы сделали автопилот для сельхозкомбайна на видеоаналитике первыми в мире Вот и весь комплект, если есть CAN-шина. Всего пять лет назад не было нормально работающих нейросетей для того же определения препятствий и краёв стеблестоя, поэтому не было и видеоаналитики. Были «слепые» GPS-методы, которые на практике оказались далеко не лучшими и сильн...

Молекулярная биология. Houdini. NVIDIA 3080. Коронавирус vs иммуноглобулины Ссылка на наш роликЭто мой второй текст на Хабре. Он плавно вырос из первой статьи «Молекулярная биология и Houdini летом двадцатого».Мы закончили наш новый (второй) ролик 12 апреля 2021 года, в День космонавтики. Дата получилась случайной — я очень хотел закончить работу в ...

[Перевод] Использование возможностей TypeScript в JavaScript без написания TypeScript-кода Я — большой любитель TypeScript. По возможности я стараюсь использовать этот язык в своих проектах. TypeScript даёт разработчику отчёты об ошибках и проверку типов в JavaScript и TypeScript-коде. Кроме того, тот, кто пишет на TypeScript, может пользоваться удобными возможнос...

Тахометр + температура двигателя на Arduino для МиниМото Купил я сыну в прошлом сезоне его первый мотоцикл. Радости не было предела. Катались мы катались, всё хорошо, но т.к. на минибайках нет ни спидометра, ни тахометра, ничего, пришла идея это исправить. Есть конечно же в продаже готовые варианты, но весь интерес в том, чтобы п...

Как мы формируем консолидированную отчетность 25 компаний, 9 стран, 6 функциональных валют… Систему и процедуры подготовки отчетности легко можно было сделать сложными и дорогими. Но мы нашли простое с технической точки зрения решение, которое очень нравится нашим пользователям, а особенно специалистам по подготовке ко...

[Из песочницы] Моделирование меандровой инвертированной-F антенны – это просто Приветствую, эта статья посвящена моделированию меандровой инвертированной-F антенны (англ. Meander inverted-F antenna, MIFA) в программе Ansys HFSS. Пошаговая инструкция проектирования антенны. Сделай свою MIFA! Читать дальше →

Вы часто используете null? А он у нас в спецификации В нынешнее время для большинства разработчиков стали очевидными минусы использования null как возвращаемых типов или передачи их как аргумента.Младшие разработчики даже если не понимают, то обычно следуют "чистому коду" (прочитав книжку Роберта Мартина). Поэтому код с возмож...

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

[Перевод] Синтезатор мелодий Nokia Composer в 512 байтах Немного ностальгии в нашем новом переводе — пробуем написать Nokia Composer и сочинить собственную мелодию. Кто-то из читателей пользовался стареньким Nokia, например, моделями 3310 или 3210? Вы должны помнить его прекрасную функцию — возможность сочинять собственные рингтон...

Добавление своих полей в отчет Pytest Столкнулся с задачей модификации html-отчета при работе с pytest, в результате чего нашёл удобное для своей задачи решение, хочу им поделиться — возможно кому-то пригодиться. * Все картинки кликабельны Читать дальше →

Как мы сделали миграцию пользовательских данных с нативного приложения на Flutter Всем привет! Меня зовут Дмитрий Андриянов, я Flutter-разработчик в Surf. В этой статье я расскажу про бесшовную миграцию данных при установке новой версии приложения, написанного на Flutter, поверх предыдущей версии, написанной на нативе. Это решение реализовано моим коллег...

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

Кремниевая долина в Москве. Вся правда и новости В этой статье я постараюсь разобраться есть ли жизнь на Марсе в московской «Кремниевой долине» и постараюсь максимально подробно разобрать всю информацию с точки зрения московского инженера. Поговорим о Сколково, Сириусе и (внезапно) Huawei. Местами статья может походить на...

Что такое Immutable Infrastructure Меня зовут Никита, я системный инженер в компании SEMrush. И в этой статье я расскажу вам, что такое Immutable Infrastructure, какие у этого подхода есть преимущества и недостатки и как мы его используем в компании. Если вы ни разу не слышали такое словосочетание, то усажив...

Разбираем атаки на Kerberos с помощью Rubeus. Часть 2 Всем привет! Это вторая часть статьи про возможности инструмента проведения атак на протокол Kerberos — Rubeus. Первую можно прочитать тут. В этот раз мы рассмотрим, как с помощью данного инструмента возможно реализовать следующие атаки:
 — Overpass The Hash/Pass The Key...

Первое сравнение камер Huawei Mate 40 Pro+, Samsung Galaxy Note20 Ultra и iPhone 11 Pro Max Во время сегодняшнего анонса смартфонов Mate 40 демонстрировались сравнительные фото, сделанные Mate 40 Pro+, Samsung Galaxy Note20 Ultra и iPhone 11 Pro Max в одинаковых условиях. Судя по ним, Mate 40 Pro+ превосходит конкурентов по детализации снимков (в том числе на ...

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

Подробная инструкция по изготовлению сплит клавиатуры на основе ATmega32U4. Аналог Iris / Jiran своими руками Моя самоделка Перед изготовленияем своей клавиатуры я наметил следующие цели: 1. Максимально возможный тактильный комфорт. 2. Добиться того, чтобы совершенно не было необходимости смотреть на клавиатуру при работе, чтобы она никоим образом не отвлекала внимание на себя, что...

[Из песочницы] Делаем игру Слоты внутри title сайта Приветствую, в этой статье мы сделаем игру «Слоты» внутри названия сайта(пример, TitleRun). Механика игры будет очень простая. нажимаешь на кнопку — получаешь случайные слоты, если все слоты совпадают — выигрываешь. Читать дальше →

Простой UDP hole punching на примере IPIP-туннеля Доброе время суток! В этой статье хочу рассказать как я реализовал (еще один) скрипт на Bash для соединения двух компьютеров, находящимися за NAT, с использованием технологии UDP hole punching на примере ОС Ubuntu/Debian. Читать дальше →

[Перевод] Функция, которую мне хотелось бы видеть в Git: группы коммитов Почти все любят Git. Я тоже. Он работает, он эффективен, в нём изумительная модель данных, и в нём есть все возможные инструменты. За 13 лет использования не было случая, чтобы я не находил в Git нужный мне инструмент. До недавнего времени. Но сначала давайте поговорим о Gi...

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

[Из песочницы] База данных на ScriptableObject c системой сейва/загрузки Введение В каждой игре есть данные, с которыми работают гейм-дизайнеры. В рпг — это база данных айтемов, в матч-3 — стоимость в кристаллах инструментов из магазина, в экшенах — количество хп, на которое лечит аптечка. Для хранения таких данных существует много способов — кт...

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

Django Rest Framework для начинающих: создаём API для чтения данных (часть 1) Меня зовут Стас Гаранжа, я выпускник курса «Python-разработчик» в Яндекс.Практикуме. Я хочу помочь начинающим разработчикам, которые приступили к изучению Django Rest Framework (DRF) и хотят разобраться, как устроен этот фреймворк. Я готовлю цикл статей, в которых расскажу о...

[Из песочницы] Логирование в микросервисной среде .Net на практике Логирование является очень важным инструментом разработчика, но при создании распределённых систем оно становится камнем, который нужно заложить прямо в фундамент вашего приложения, иначе сложность разработки микросервисов очень быстро даст о себе знать. В .Net Core 3 доба...

Миру нужны фуллстек-крафстсмены Спор «фуллстек против узкой специализации» вечный. Но одно дело — спорить в комментах, а совсем другое — создать собственную компанию и проверить экстремальный подход на практике. Антон Кекс пошел по этому пути: стал сооснователем компании Codeborne, где разработкой занима...

Рецепты PostgreSQL: шаблонизатор mustach Для приготовления шаблонизатора mustach нам понадобится postgres и mustach. Можно также воспользоваться готовым образом. Зачем нужен шаблонизатор в базе? Ну, во-первых, если шаблонизатор в базе, то и сами шаблоны тоже должны быть в базе. А зачем нужно хранить шаблоны в базе...

1 CPU 1 Гб – а я хочу мониторинг, как у больших дядей Я обожаю читать на хабре статьи про то, как устроены системы больших интернет-компаний. Кластеры SQL-серверов, монг и редисов. Тут у нас кластер ELK собирает трейсинг, там – сборка логов, здесь балансер выдает входящим запросам traceID и можно отслеживать, как запрос ходит...

[recovery mode] Математика, красота, любовь — история одной валентинки Было время был я влюблен и было мало денег. Хотелось сделать какой-то необычный подарок девушке на день святого Валентина и этим подарком стала вот такая программа, работу которой вы видите на первом видео. Скоро 14 февраля и может кого-то из вас эта статья вдохновит сделат...

Как описать 100 Gitlab джоб в 100 строк В продолжение предыдущей статьи про инструменты деплоя в Kubernetes, хочу рассказать вам про то как можно использовать Jsonnet для упрощения описания джоб в вашем .gitlab-ci.yml Дано Есть монорепа, в которой: 10 Dockerfiles 30 описанных деплоев 3 окружения: devel, staging...

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

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

Студенты пишут Uart драйвер для STM32F411 Доброго здравия всем! Сегодня я хочу вам рассказать, как постепенно студенты учатся разрабатывать ПО для микроконтроллера на примере драйвера UART на STM32F411. Код и архитектуру с небольшими моими изменениями и доработками я попытаюсь привести здесь. Сразу отмечу, что все...

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

[Перевод] «Давайте использовать Kubernetes!»: как получить 8 проблем Это перевод вводной статьи об использовании Kubernetes: «Let’s use Kubernetes!» Now you have 8 problems Если вы используете Docker, то следующим логичным шагом будет Kubernetes, известный как K8s. Именно так вы обеспечиваете эксплуатацию своих продуктов, верно? Ну, возможн...

Видеолекции: unix way Карантин – чудесное время, чтобы чему-нибудь научиться. Однако, как вы понимаете, чтобы кто-то чему-то научился, кто-то должен учить. Если у вас есть презентация, с которой вы хотите выступить перед миллионной аудиторией, снискав мировую славу, то эта статья – для вас. Здес...

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

Почему lsFusion, а не 1С? Предыдущая статья “Почему не 1С?” вышла больше года назад и вызвала достаточно живой интерес (совсем немного не дотянула до 100к просмотров и 2к комментариев). Впрочем, как и ожидалось, у многих возник резонный вопрос: “Если не он, то кто?” Безусловно, как многие поняли, т...

Готовый шаблон для тестирования с использованием Spring Представляю вам — готовый шаблон для тестирования с использованием Spring. Введение Цель этой статьи показать, что писать автотесты со Spring проще нежели на чистой Java. Так же хочу продемонстрировать, насколько Java + Spring упрощает жизнь тестировщикам. Для кого эта ...

Logstash + ClickHouse + Grafana: Как сделать Logger для логов ИБ умнее и эффективнее? В этой статье постараемся рассказать, как на базе всем доступного open-source можно построить эффективный Logger, поддерживающий интеграцию со всеми SIEM системами, и как можно модернизировать уже существующий Logger с помощью алгоритмов машинного обучения, сделав его умнее ...

Адаптивная балансировка нагрузки или как повысить надёжность микросервиса Привет, меня зовут Геннадий, я работаю в Ozon, занимаюсь разработкой backend-сервисов. Избыточностью компонентов, кластеризацией или балансировкой уже никого не удивишь в наши дни. Это очень важные и нужные механизмы. Но так ли они хороши? На сколько они защищают нас от возм...

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

[Перевод] Пишем приложение на Flutter в связке с Redux Привет всем! В этой статье я хотел бы показать вам, как создать Flutter приложение, используя Redux. Если вы не знаете, что такое Flutter, то это — SDK с открытым исходным кодом для создания мобильных приложений от компании Google. Он используется для разработки приложений...

FLYING BEAR GHOST 5 | Откидной держатель филамента Всем привет!В этой статье хочу рассказать о том, как я сделал откидной держатель филамента на боковой стороне GHOST 5.Для тех кто не любит текст вот ссылка на видеоЗачем это все?Все очень просто. Я расставил принтеры на стеллаже в 2 яруса. Сделал подсветку над каждым этажом....

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

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

Опыт написания игры на TypeScript и WebGL или сказ о том, как backend-щик в современный frontend окунулся Доброго времени суток всем хаброжителям. Хочу рассказать вам о том, как я вернулся в любительский геймдев спустя 3+ года, кардинально сменив инструмент (а попутно — и свое мировоззрение), и что из этого вышло. Под катом вас: Краткая диспозиция всех фактов в начале пути. Как...

[Из песочницы] Koin – это Dependency Injection или Service Locator? Введение В Android-разработке для DI традиционно используют Dagger 2, очень мощный фреймворк с кодогенерацией. Но есть проблема: новичкам сложно его использовать. Сами принципы DI просты и понятны, но Dagger усложняет их. Можно жаловаться на поголовное падение грамотности пр...

Intel NUC как пропуск в Unity3D Пост-призер новогоднего NUCо-конкурса Intel. В этой статье я бы хотел рассказать о своём знакомстве с данным устройством и как это компактное чудо позволило мне заниматься своим любимом делом. Все началось в начале 2019 года, когда в нашей конторе резко пропали заказы и можн...

HarmonyOS 2.0 выйдет на часах, планшетах и ПК Компания Huawei в последнее время не очень хорошо себя чувствует, так как санкции и запреты со стороны США сделали свое дело. Теперь китайская компания достаточно активно работает над своими собственными технологиями и операционной системой, ведь только так можно выпускать с...

RFID эмулятор Эмулятор карт EM Marine Наверняка каждому из нас, кто хоть раз бывал в обычных офисах, было интересно, как же функционируют эти бесконтактные пропуска. В данной статье мы разберёмся с принципом работы бесконтактных карт и сделаем эмулятор буквально из трёх радиодеталей. Ч...

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

Сравнение Nylon от Hi-tech plast и Bestfilament Итак в этой статье пойдет рассказ о двух разных видов Nylon от всем известного Bestfilament и начинающих ребят с Hi-tech plast. Поступил мне заказ на изготовление шестерни на мясорубку, ничего необычного, стандартная шестерня. Клиент попросил как всегда попрочнее материал, я...

Обратная связь или 1 to 1, как не допустить ошибки Данная статья была написана специально для студентов курса «IT-Recruiter» от OTUS. Автор статьи: Елена Ленсу. Все говорят, что обратная связь важна и что нужно быть корректными друг к другу, но давайте разберемся, зачем это нужно. Встречи один на один являются важным ин...

Как я сделал девайс для Korn, Limp Bizkit, Drowning Pool и других рокеров, собрав все продуктовые ошибки Привет, Хабра!Сегодня одолела ностальгия и хочу рассказать, как делал устройства для музыкантов — педальки-контроллеры, наделяющие музыкальный процессор Digitech Whammy новыми возможностями. Устройства мало кому нужны, но кому нужны — то позарез)Этот проект мне очень дорог, ...

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

О неизменном: история 9 места Russian AI Cup 2019 Меня зовут Андрей Рыбалка, я участвую в Russian AI Cup под ником lama и я снова расскажу вам, как не выиграть макбук. Благо, я в этом человек опытный — вот этими вот руками не выиграл уже целых 7 штук. Итак, задачей этого года был платформер/2D-шутер, для которого нужно был...

Hisense обновили свою линейку, сделав ТВ еще более крутыми Да-да, брендовые телевизоры «Hisense» и «Toshiba» уже можно приобрести на территории России! Мы решили ответить на этот интригующий вопрос сразу, чтобы вам спокойнее читалось и картинки смотрелось! Погнали! Читать полную статью

Google в итоге купила компанию Fitbit, но антимонопольное расследование продолжается Вчера компания Google объявил, что приобретение Fitbit наконец завершено. Объявление сделал Рик Остерло (Rick Osterloh), старший вице-президент Google по устройствам и сервисам. Остерло подчеркивает, что приобретение компании, производящей носимые устройства, «все...

[Перевод] Все придумано до нас: современные VR-технологии базируются на идеях 60-х годов прошлого века Технологии виртуальной реальности развиваются очень быстро. Сейчас уже никого не удивишь видеоочками или VR-игрой. За последние несколько лет было реализовано множество технологических новшеств. Тем не менее, большинство базовых идей виртуальной реальности появились не се...

7 Кругов SPM или как сделать модульное приложение на Swift Package Manager Думаю, многие разработчики сталкивались с задачей, когда нужно разбить проект на модули. В этой статье нет информации о том, как решать циклические зависимости или выделять по слоям функционал, подразумевается, что это уже реализовано. Цель статьи — описать проблемы с которы...

От комментария на Хабре к уязвимости в антивирусе Dr. Web Относительно недавно на хабре появилась статья «Стилер паролей в антивирусном ПО Avira Free Antivirus» от пользователя Veliant. Автор обнаружил, что в стандартной поставке упомянутого антивируса присутствует компонент, который позволяет простым образом извлечь пароли из хран...

Мы разобрали новую «Капсулу». Знаем, сколько микрофонов, и как она работает В конце января была представлена «Капсула» — умная колонка с ассистентом «Маруся». С 22 апреля ее можно купить. Мы делали полный обзор функционала новинки, но всегда интересно, что внутри. По просьбе Hi-Tech Mail.ru я разобрал «Капсулу» и описал свои впечатления. Мне всегд...

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

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

Dagaz: История с персистентностью Любая достаточно развитая технология неотличима от магии. Артур Кларк   — Я больше не хочу быть сравнением… Сделайте меня метафорой. Чайна Мьевиль Работа над большим проектом похожа на метроидванию. Решая частные проблемы, мы открываем новые возможности. Со временем, э...

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

На что способен недорогой Лазерный гравер? (часть 2) Ребята всем привет! Эта статья является прямым продолжение статьи Зачем нужен Лазерный Гравер дома?!Мое знакомство с лазерными технологиями продолжается и в этой статье я расскажу вам где еще мне удалось применить Лазерный гравер и какие материалы поддаются обработке.Перед н...

Как перестать бояться и полюбить 1-wire Мне очень нравится протокол 1-wire своей простотой и удобством для применения в системах «умный дом». Недавно я писал программную эмуляцию одной микросхемы и погрузился во внутренности этого протокола. Чтобы накопленные знания могли принести пользу не только мне, я решил нап...

Как администратору Microsoft Teams обезопасить себя и того парня Всем привет! В этой статье поговорим о том, почему важно следить за корректностью настроек Teams и как сделать его максимально безопасным. В конце статьи расскажем о решениях для аудита и управления настройками MS Teams, которые помогут реализовать концепции, описанные ниже....

Прогнозирование временных рядов с помощью AutoML Хабр, привет! В лаборатории моделирования природных систем Национального центра когнитивных разработок Университета ИТМО мы активно исследуем вопросы применения автоматического машинного обучения для различных задач. В этой статье мы хотим рассказать о применении AutoML для...

Поднимаем свой полноценный игровой Minecraft сервер с мини-играми. Часть 2. Устанавливаем карту для лобби сервера После публикации первой части статьи по установке своего Minecraft сервера, ко мне обратился один читатель Хабра. В письме он написал, что по неосторожности показал мою статью своим детям и ему пришлось пообещать сделать все, как написано. Теперь я, как отец двух детей, пр...

Самые необычные виды хостинга: домашний компьютер, Raspberry Pi и чужие серверы Веб-сервер на Raspberry Pi Чтобы выложить информацию в открытый доступ, необязательно покупать аккаунт у хостинг-провайдера. Существует много альтернативных вариантов, в том числе бесплатных. Есть бесплатные хостинги для текста, картинок и файлов, начиная с Github Pages. ...

Как работает менторство До какого-то момента самый быстрый способ профессионального роста – это выделяться компетенцией. То есть быть крутым специалистом, который в одно лицо может всё. Это очень комфортная и приятная позиция, потому что вы отвечаете только за себя, не несёте огромных расходов ка...

[Перевод] Всё, что нужно знать о Progressive Web App (PWA) PWA — прогрессивные веб-приложения. Предупреждение. Эта статья не проспонсирована PWA. Все взгляды и мнения в статье принадлежат только её автору. Progressive Web App или PWA — лучший способ для разработчиков заставить свои веб-приложения загружаться быстрее и быть более...

Дата-центр в космосе: плюсы, минусы и возможность реализации такого проекта Космос притягивает взгляды не только обычных людей, которые любуются звездами, наблюдают за Луной и размышляют о бесконечной пустоте. Он также привлекает внимание бизнеса — в первую очередь, телекоммуникационных компаний. На низкой орбите Земли уже находятся более 1500 спу...

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

Как прикрутить SQL к чему угодно при помощи Apache Calcite Сделать свою собственную SQL-базу данных или запускать SQL-запросы в NoSQL-базе данных — кажется, это очень непростая задача.  А если мы говорим о распределенной БД, то сложность возрастает многократно. Но, к счастью, Apache Calcite — фреймворк с открытым кодом — поможе...

Логи в Kubernetes (и не только) сегодня: ожидания и реальность Шёл 2019 год, а у нас всё ещё нет стандартного решения для агрегации логов в Kubernetes. В этой статье мы хотели бы, используя примеры из реальной практики, поделиться своими поисками, встречаемыми проблемами и их решениями. Однако для начала оговорюсь, что разные заказчи...

Удаляем своё местоположение в любой фотографии на Mac Мы уже писали о том, как отключить передачу метаданных с геолокацией на iPhone или вовсе удалить эти данные с фото. Разумеется, все это можно сделать и на компьютере. Для начала нужно определить, есть ли в ваших фотографиях информация о месте их съемки. Для этого сдела...

Методы без аргументов — зло для неизменяемых объектов, и вот как его полечить Привет! Идея в том, что бы использовать ленивые кешируемые свойства везде, где в обычном случае мы бы использовали процессорно тяжелые методы без аргументов. А статья — как это задизайнить и и зачем. Несмотря на то, что я должен сделать оговорку, Дис...

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

[Перевод] Индексируем миллиарды текстовых векторов При извлечении информации часто возникает задача поиска подобных фрагментов текста. В контексте поиска запрос может быть сгенерирован пользователем (например, текст, который пользователь вводит в поисковом движке) или самой системой. Часто нам нужно сопоставлять входящий за...

Отложенные ретраи силами RabbitMQ Меня зовут Алексей Казаков, я техлид команды Клиентских коммуникаций в ДомКлике. В этой статье я хочу поделиться с вами «рецептом», который позволил нам реализовать отложенные ретраи при использовании брокера сообщений RabbitMQ Читать дальше →

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

11 игр, на которые стоит обратить внимание после анонсов на E3 2021 В ночь с воскресенья на понедельник в ходе пары сессий на E3 2021 разработчики представили более 80 игр. Анонсы, как обычно, сопровождались демонстрацией трейлеров. Издатели и разработчики давали интервью во время Future Games Show и PC Gaming Show, подробно рассказывая о н...

[Перевод] Минимальный размер контента в CSS grid Иногда, когда вы пишете компонент, то вдруг замечаете странную полосу горизонтальной прокрутки. Снова и снова вы пытаетесь исправить положение, только чтобы позже понять, что причина в чём-то другом. Сколько раз так было? В этой статье я растолкую хитрую проблему, которая мо...

Не дай теплу пропасть: как и для чего дата-центры используют «мусорное» тепло Оборудование, установленное в дата-центрах, выделяет большое количество тепла, которое нужно куда-то отводить. Способов сделать это немало. Чаще всего тепловая энергия просто «выбрасывается», ее никак не используют. При этом дата-центры, по разным данным, потребляют 3-5% о...

Подготовка к Ludum Dare Мероприятие Ludum Dare, регулярно проводимое 2 раза в год (а чуть ранее 3 раза в год) скоро не за горами и уже сейчас, за несколько недель до старта, можно настраиваться на нужный лад, обмениваться планами и идеями на грядущий 46-ой LD (официальная дата на сайте — 18-21 апре...

Камера против эвакуаторов, угонщиков, дачных «гостей» Есть понимание, что видеокамера, доступная по цене и функционально несложная поможет решить некоторые вопросы как автолюбителей, так и дачников. В статье не будет затрагиваться этическая сторона вопроса продукта формата DIY (сделай сам) и кому он больше пригодится — нару...

[Перевод] Какую кибердеку я бы хотел сделать для себя Перевод статьи из блога AbcLinuxu В 2016 году я создал сабреддит /r/cyberDeck. Отчасти потому, что меня вдохновила статья о создании кибердеки, а отчасти из-за нескольких обсуждений в IRC, в которых я принимал участие, и поскольку мне кажется, что эта идея – нечто большее, ...

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

[Из песочницы] Raspberry Pi и модем SIM7600E 4G HAT Добрый день всем. В этой статье я хотел бы рассказать о своем опыте использования 3G-модема SIM7600X, который можно подключать к Raspberry Pi. Статья может оказаться полезной тем из вас, кому необходимо использовать Raspberry автономно, в условиях отсутствия WIFI-сети. Пара...

ВКонтакте снова выкладывает KPHP Привет! Сейчас будет дежавю. Мы снова выложили на GitHub наш PHP-компилятор — KPHP. Он проделал большой путь, и чтобы рассказать о нём, сначала телепортируемся на шесть лет назад. Поясню для тех, кто не в теме: платформа ВКонтакте изначально была написана на PHP. Со времене...

[Перевод] Самые маленькие Arduino для ваших мини-проектов + примеры самих проектов Если вам нужны маленькие Arduino-платы для DIY-проектов, эта статья как раз кстати. Вы хотите создать носимый девайс на базе Arduino, но оригинальная плата слишком большая? Или есть на примете другой проект, для которого нужна маленькая плата с большим количеством возможнос...

Подробно о потухшем ядерном реакторе в Окло В моем блоге на Хабре я стараюсь избегать рассмотрения «уникальных» феноменов, которые не с чем сравнить – и, соответственно, сложно или невозможно вывести какие-то закономерности, сделать выводы. Единственным исключением была, пожалуй, статья о вулкане Кудрявый – больше на ...

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

[Перевод] Как в Smarkets улучшили мониторинг для своих Kubernetes-кластеров Прим. перев.: автор этой статьи — ведущий инженер по инфраструктуре в Smarkets, что позиционирует себя как «одну из самых прибыльных [по доходам на каждого сотрудника] компаний в Европе». Работая с большой и чувствительной к мониторингу инфраструктурой на базе Kubernetes, ин...

Смерть Кощея в списке рекомендаций (можно ли сделать уютным и безопасным Ютюб?) Вступление коротко: хочу рассказать про онлайн плеер Ютюб для Андроида с локальными плейлистами, каналами и рекомендациями. Вступление развернутое: Некоторое время назад я столкнулся ровно с такой проблемой, как и автор замечательного приложения Channel Whitelist, и определ...

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

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

7 фразовых глаголов с take и 30 их значений. На первый взгляд все просто, но на второй — нет В одном из прошлых материалов мы рассказали вам о фразовых глаголах, в которых есть слово get. Статья была принята очень хорошо, поэтому мы решили сделать еще одну. На этот раз с глаголом take.Мы насчитали минимум 65 фразовых глаголов и их значений с take — и не исключено, ч...

SamsPcbGuide, часть 14: Технологии — Микроразварка и технология Chip-On-Board В этой самоизоляционной статье я расскажу о разварке проволочных микровыводов (англ. wire bonding). В контексте печатных плат речь пойдёт о технологии монтажа кристаллов на печатную плату (англ. chip-on-board, COB). Обязательно смотрите видео по ссылкам, микроразварка — это ...

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

Математика верстальщику не нужна 2: Матрицы, базовые трансформации, построение 3D и фильтры для картинок В прошлый раз мы говорили о графиках и траекториях для покадровых анимаций, а сегодня речь пойдет про матрицы. Мы разберемся с тем, как строятся базовые трансформации в CSS, SVG и WebGL, построим отображение 3D-мира на экране своими руками, попутно проводя параллель с таки...

WebAuthn в реальной жизни В сентябре 2019 года команда Почты Mail.ru поддержала технологию WebAuthn. Мы стали первым в мире сервисом электронной почты, который реализовал возможность входа в аккаунт с использованием электронных ключей вместо паролей. Сейчас эта возможность доступна всем нашим пользов...

[Из песочницы] Почему бы не сделать свой Lisp для веба? Вот есть JavaScript — прекрасная вещь. И прекрасная она по большей части потому, что дебаггер и отладочные инструменты встроены в каждый Браузер. Без дебаггера и инспектора DOM-дерева было гораздо тяжелее что-либо разрабатывать на JavaScript. Вот я и решил запилить свой Lisp...

PVS Studio.VS.Статический анализ GCC 10. Независимый минитест После появления переводной статьи про Статический анализ в GCC 10, и ожидаемой реакции присутствующих здесь представителей разработчика коммерческого статического анализатора PVS-Studio, у меня возник вопрос: «Почему же представители отказываются проверить свой продукт на та...

Что нужно знать о сертификации для ITSM-специалистов в 2021-м Любому, кто занимается ИТ-услугами и стремится развиваться в ITSM, нужно регулярно освежать профильные знания и навыки. Отрасль быстро меняется: появляются новые технологии, инструменты и лучшие практики. Оптимальный способ усвоить всё это системно и закрепить — пройти обуче...

Как обучить нейронную сеть DeepPavlov на ноутбуке с использованием GPU В этой статье я хочу поделиться своим опытом использования данной open-source библиотеки на примере реализации одной задачи с парсингом файлов PDF/DOC/DOCX содержащих резюме специалистов. Здесь я также опишу этапы реализации инструмента для подготовки датасета. После чего м...

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

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

Современное SEO: AMP-истории Да, вот такой гибридный, русско-английский заголовок получился… Поэтому давайте сразу кое-что проясним. Итак, если SEO широко известный (в узких кругах) термин, то AMP — ещё не столь. Accelerated Mobile Pages был анонсирован Google в 2015 г. (см. статью в Википедии), как и...

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

Какие навыки нужны для создания iOS-приложения? Доклад Яндекса Мобильному разработчику нужно обладать понятным набором навыков. Рассказывать о них нужно в контексте конкретных задач, которые возникают по ходу создания и публикации приложения. Артур Антонов работает iOS-разработчиком в отделе машинного перевода Яндекса. В своём докладе д...

[recovery mode] TOP12 междисциплинарных научных открытий 2019 года Спойлер! В статье возможно самое интересное из мира науки за 2019 год. Но это не точно. Коротко о нас — мы белоруские научные скауты, молодость которых еще только разбивается о гранит реальности. Мы проводим те научные мероприятия, которые считаем нужными и потому что можем...

ABBYY NeoML 2.0: Python и многое другое Прошел почти год с тех пор, как мы опубликовали на GitHub библиотеку для машинного обучения NeoML. О чем, конечно же, была статья на Хабре. Мы обещали поддерживать и развивать ее. Свое обещание мы сдержали, и на днях свет увидела вторая версия библиотеки! С первой версии ...

[Перевод] PuppetConf 2016. Kubernetes для сисадминов. Часть 1 Я системный администратор, занимаюсь компьютерами, и сегодня мы поговорим о Kubernetes. Я постараюсь глубже окунуться в тему, рассмотрев, какие проблемы сисадмин может решить с помощью этого приложения, и также затрону некоторые моменты эксплуатации Puppet, которая вроде как...

[Из песочницы] Что нового ждать от AMD? Всем привет, меня зовут Илья и я интересуюсь компьютерным железом. И мне очень стало интересно, а что же выйдет в 2020-ом году. Я очень долго ползал по интернету и наткнулся на данную таблицу с сайта http://www.3dcenter.org/. Скажу сразу, что я отношусь ко всем компаниям, вы...

Как управлять FM-вещанием через iPhone Кто сейчас вообще слушает радио? Может показаться, что в современном мире не осталось места для радио, однако мы сумели отыскать несколько кейсов его реального использования и немного поиграли с этим: В этой статье мы хотели бы рассказать, как не будучи радиотехниками, мож...

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

Жизнь лида аналитики или «я рассчитывала, что ты сама это сделаешь» К моей прошлой статье был такой комментарий: «Или порой встречаешь ответственных людей с честными глазами, обсуждаешь план работ, создаёшь договоренности. И… люди потом ничего не делают, или затягивают процесс, или делают непонимающий взгляд. И ты стоишь и думаешь кто из н...

[Из песочницы] Новый взгляд на code style Как знания нейропсихологии могут помочь программисту в стилизации кода? До того как заняться программированием, я очень долго и глубоко изучал нейропсихологию. Впоследствии, эти знания помогли мне добиться высоких результатов в разработке, за короткий промежуток времени. В...

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

[Перевод] Как самый недооценённый контрибьютор спасал язык Rust от смерти Дэйв Херман, самый недооценённый контрибьютор Rust Автор оригинала — Брайан Андерсон. Он тоже имеет отношение к работе над языком Rust. Понятно, что в своей статье он будет хвалить этот язык, но важнее другое: он раскрывает внутреннюю кухню проекта. Андерсон рассказывает п...

[Перевод] Умирающая звезда гаснет на глазах у телескопа Хаббл Два радикально различных изображения туманности Скат, сделанные космическим телескопом им. Хаббла с разницей в 20 лет. Изображение слева было сделано камерой для наблюдений в широком диапазоне волн №2 в марте 1996 года. На нём видна центральная звезда туманности, находящаяс...

Ремесло и успех в IT С интересом читаю статьи про бизнес в IT, хотел поддержать в комментариях автора Так ли просто организовать свой бизнес ИТ-специалисту, но потом понял, что хочу высказаться более развёрнуто. Представлюсь как на встрече анонимных алкоголиков. Я — IT-ремесленник. Из 27 лет ст...

[Перевод] Расширение возможностей Raspberry Pi с помощью загрузочного NVMe-диска Возможности подсистемы хранения данных одноплатного компьютера Raspberry Pi можно расширить, подключив к нему NVMe-диск. Такие диски обычно подключают к PCIe, что даёт им потенциальную возможность считывать и записывать данные на скорости более 3000 Мб/с. Я уже слышу слова ...

Анонсы Microsoft про экзамены и сертификаты За 3 прошедших месяца Microsoft сделала 3 крупных анонса: MCSA, MCSD, MCSE с июля 2020 года (конец финансового года в Microsoft) вместе со всеми предыдущими экзаменами, кроме новых Role-based, прекращают своё существование. Почти все предыдущие Azure Role-based экзамены у...

Вчём разница между лазером 2,5 ватт и 180 мВт оптической мощности - с точки зрения разрешения луча при гравировке? Итак слева картинка сделана при помощи мощного лазера, а справа при помощи более слабого лазера. Причем у мощного лазера было выставлено ограничение по мощности и использован пиксельный режим (в программе LaserGRBL он обозначен "Сглаживание 1 bit"), так как в векторном режим...

Nix: Что это и с чем это употреблять? Привет, Хабр! Мы в Typeable хотели опубликовать небольшой цикл статей о том, как Nix нам помогает (и немного мешает) в разработке. Но, проведя немножко времени в поисках похожего материала здесь, с удивлением обнаружили, что на Хабре нет толкового введения в Nix, на которое...

[Из песочницы] Расширенный HTML В этой статье хотел бы рассказать немного про библиотеку, первую версию которой я создал еще в конце прошлого года. Суть очень простая — расширить возможности языка HTML, чтобы можно было без JavaScript'а писать простые и рутинные вещи: отправка формы в json формате, загрузк...

MQTTv5.0: Обзор новых функций. Часть 2 Всем привет! Приведенный ниже материал является продолжением статьи о функционале, добавленном в новой версии MQTTv5.0. Если вы уже успели ее изучить, то для вас не составит труда заметить, что большинство новых функций базируется на понятии свойств, которые можно добавлят...

[Перевод] Что покупать для глубокого обучения: личный опыт и советы использования GPU Перевод статьи Тима Деттмерса, кандидата наук из Вашингтонского университета, специалиста по глубокому обучению и обработке естественного языка Глубокое обучение (ГО) – область с повышенными запросами к вычислительным мощностям, поэтому ваш выбор GPU фундаментально определи...

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

[Из песочницы] Docker-образ для раздачи Single Page Application Single-page Application (SPA) – это набор статических JavaScript и HTML файлов, а так же картинок и других ресурсов. Поскольку они не изменяются динамически, опубликовать их в интернете очень просто. Для этого существует большое количество дешёвых и даже бесплатных сервисов,...

Умный аналитик – глупый разработчик vs. глупый аналитик – умный разработчик Или как понять, когда остановитьсяКак-то раз мой коллега, лид разработки, после затяжного спора о том, что должно быть в системной спецификации, подошел ко мне и спросил:— Скажи, а зачем нам вообще нужны аналитики?— И действительно, зачем? – подумал тогда я и написал заявлен...

[Перевод] Оптимизация кода на Python с помощью ctypes Перевод статьи подготовлен специально для студентов курса «Разработчик Python». Внимание: код в этой статье лицензирован под GNU AGPLv3. Я написал это руководство, поскольку не смог найти такого, которое будет объединять в себе все полезное о ctypes. Надеюсь, эта статья ...

[Перевод] Работаем с двухмерной физикой в JavaScript Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи Martin Heinz «Implementing 2D Physics in JavaScript». Давайте немного развлечемся, создавая двухмерные симуляции и визуализации в JS. Создание реалистичной анимации физических процессов может казать...

Хюгге для разработчиков, или как я съездила на KotlinConf Хабр, привет! Меня зовут Мария, и я программист. Пишу под Android и несколько лет делала это на Java — на фоне универских плюсо́в она мне казалась очень удобной. Но прогресс не стоит на месте, и, придя полтора года назад в Яндекс.Деньги, я познакомилась с молодым языком Ko...

MyApp extends Holiday Я уверен, что среди уважаемой аудитории найдутся те, кто меня поймет. Дело в том, что во всем изобилии популярных библиотек и фреймворков для веб-фронтэнда, лично мне, не нравятся, практически, все альтернативы. В каждом из вариантов я нахожу для себя существенные минусы, к...

Keyboa: клавиатуры на максималках для ботов в Telegram Боты - одна из особенностей Telegram, сделавших мессенджер столь популярным. А его встроенные клавиатуры дают разработчикам большую свободу взаимодействия с пользователями.Keyboa помогает создавать встроенные клавиатуры любой сложности для ботов, разработанных на базе pyTele...

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

Волейбол глазами компьютера В прошлой статье я рассказал о своих подходах по распознаванию волейбольного мяча в игре. Задача сама по себе интересная и развивать ее можно в нескольких направлениях. Вариант 1 — продолжать исследования (в комментах к прошлой статье мелькали страшные слова SORT, YOLO итд...

Учимся работать с USB-устройством и испытываем систему, сделанную на базе контроллера FX3 В двух предыдущих статьях мы сделали USB 3.0 систему на базе контроллера FX3. Пришла пора научиться работать с нею из своих программ для PC. Ну, и попутно понять, насколько получившаяся система пригодна для практического применения. Действительно ли ширины канала хватает на ...

Игры с Wifi на ESP32 На мысль сделать карманный инструмент для анализа WiFi сетей меня подтолкнула статья https://habr.com/ru/post/477440/. Спасибо им за идею. Мне как раз было нечем заняться. Вся работа была выполнена в рамках хобби с целью получения удовольствия и расширения своих знаний в об...

[Из песочницы] Как разместить статический сайт с помощью Yandex.Cloud Object Storage Привет, Хабр! В этой статье, я расскажу как легко и просто разместить статический сайт с помощью технологий Яндекса, а именно Object Storage. В конце у вас будет размещенный в сети сайт, который будет доступен по внешней ссылке. Эта статья будет полезна, если вы Начинающий ...

Функциональное программирование на TypeScript: паттерн «класс типов» Предыдущие статьи цикла: Полиморфизм родов высших порядков В предыдущей статье я рассказал, как можно в TypeScript эмулировать полиморфизм родов высшего порядка. Давайте же теперь посмотрим, какие возможности это даёт функциональному программисту, и начнем мы с паттерна «...

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

Kotlin Native. Работаем с потоками с корутинами и без. Ч1 Всем доброго дня! С вами Анна Жаркова, ведущий мобильный разработчик компании Usetech. Совсем недавно компания JetBrains выпустила preview новой модели управления памятью. Это отличный повод сделать подробный ее разбор на практике, а также сравнить с моделью, используемой в ...

[Перевод] Концепции, лежащие в основе Web Audio API Доброго времени суток, друзья! В этой статье объясняются некоторые концепции из теории музыки, на основе которых работает Web Audio API (WAA). Зная эти концепции, вы сможете принимать взвешенные решения при проектировании аудио в приложении. Статья не сделает вас опытным ...

Главный редактор российского Inc Игорь Романов покинет издание «У меня было чёткое видение того, каким я хочу сделать журнал. В прошлом году стало понятно, что реализовать задуманное не получится».

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

[Перевод] 25 лучших репозиториев GitHub для разработчиков Python Согласно опросу разработчиков на StackOverflow в 2020 году*, Python — один из самых любимых языков в мире. Что еще более интересно, Python — это язык, который разработчики больше всего хотят попробовать в своей работе. Если вы один из тех, кто использует Python и хочет прока...

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

Курс тестировщика пройден. А дальше что? Привет! На курсе «Инженер по тестированию» в Практикуме мы хотим не только обучить человека нужным навыкам, но и помочь выпускнику состояться в профессии. Поэтому у нас есть отдельное направление трудоустройства. Мы рассказываем, почему важно выбрать подходящую вакансию и ко...

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

[Из песочницы] Используем passwordstore.org — менеджер паролей в стиле KISS Всем привет. В этой статье я хотел бы поделиться своим опытом настройки и использования pass — менеджера паролей для Linux и не только, примечательного своей простотой, использованием уже присутствующих в системе инструментов и возможностью работать исключительно из консоли....

[Перевод] Почему Context — это не инструмент «управления состоянием» TL;DR Context и Redux — это одно и тоже? Нет. Это разные инструменты, делающие разные вещи и используемые в разных целях. Является ли контекст инструментом «управления состоянием»? Нет. Контекст — это форма внедрения зависимостей (dependency injection). Это транспортный м...

Как Qt сделал студента [человеком] Данная статья в большей степени автобиографическая, душевный пересказ интересного периода жизни. Выражаясь фигурально, можно назвать это одой Qt. Надеюсь, что статья будет интересна всем, в особенности студентам и начинающим разработчикам — возможно, кто-то увидит в ней себя...

Исправь код, продай техническую фигню, покрути рулетку на Russian Python Week 2020 Рефакторинг — сложная вещь. У каждого разработчика свои критерии хорошего, плохого и красивого кода. Из-за двух строк можно развернуть холивар на две страницы комментариев на Хабре. Почему бы тогда не сделать «Битву рефакторинга»? Мы и сделаем — с 14 по 18 сентября на Russia...

Пробрасываем порт UART из Linux в Windows через SSH-соединение Не так давно в нашем сервисе All-Hardware произошло знаковое событие. Если раньше порт UART был подключён только к терминалу внутри браузера, то теперь можно установить в Windows специальный драйвер, через который этот порт будет проброшен в вашу локальную систему. Теперь ра...

Какие у Вкусвилла есть telegram-боты и зачем они нужны Telegram предоставляет возможность делать ботов быстро, удобно и подключать их к своим внутренним системам, создавая множество подвязок, триггеров и шаблонов. Активируешь Botfather-а и просто следуешь инструкциям, самое сложное обычно касается именно работы со внутренними си...

Простой service discovery в Prometheus через Consul Закон Парето (принцип Парето, принцип 80/20) — «20 % усилий дают 80 % результата, а остальные 80 % усилий — лишь 20 % результата». WikipediaПриветствую тебя, дорогой читатель! Моя первая статья на Хабр посвящена простому и, надеюсь, полезному решению, сделавшим для меня сбор...

HowToCode — Адаптация системного подхода к разработке для React и TypeScript Наверное, каждый программист рано или поздно начинает задумываться о качестве своего кода. И, скорее всего, я не ошибусь, если скажу, что добрая половина разработчиков им вечно недовольна. Мне мой код тоже нравился редко: функции, казалось, можно было бы делать и покороче, л...

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

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

История одного переключения У нас в агрегации локальной сети было шесть пар коммутаторов Arista DCS-7050CX3-32S и одна пара коммутаторов Brocade VDX 6940-36Q. Не то, чтобы нас сильно напрягали коммутаторы Brocade в этой сети, они работают и выполняют свои функции, но мы готовили полную автоматизацию н...

Домашка по арифметике Лёшенька, Лёшенька, сделай одолжение! Выучи Алёшенька таблицу умножения ! Агния Барто Сначала задачка для первоклассника. Дано некоторое положительное число. Нужно умножить на него другое число, заранее неизвестное. Вопрос, как посоветуют это сделать благородные доны ??? ...

Как я стримил семинар и при этом со мной даже разговаривали студенты Текущая обстановка вносит коррективы в образовательный процесс. Сам я в течение уже трёх лет являюсь преподавателем кафедры "Прикладной математики и искусственного интеллекта" в Московском Энергетическом Институте. На кафедре я веду не только семинары и лабораторны...

[Перевод] Машины уже опережают людей в тестах на чтение; но понимают ли они прочитанное? Инструмент под названием BERT способен обогнать людей в тестах на чтение и понимание. Однако он же демонстрирует, какой путь ещё нужно пройти ИИ Осенью 2017 года Сэм Боумен, вычислительный лингвист из Нью-Йоркского университета, решил, что компьютеры до сих пор ещё не очен...

Что интересного показал марсоход Perseverance в первые дни на Марсе? Марсоход Perseverance сделал несколько интересных фотографий. Займемся их изучением? Марсоход Perseverance успешно опустился на поверхность Красной планеты. Он пока не приступил к проведению исследований, потому что перед этим NASA нужно проверить его работоспособность. К сч...

[Из песочницы] Есть ли жизнь после Windows или куда развиваться виндовому системному администратору/инженеру в 2020 году? Вступление 2019 год медленно, но верно подходит к своему логическому завершению. IT-отрасль продолжает активно развиваться радуя нас большим количеством новых технологий и попутно пополняя наш словарный запас новыми определениями: Big Data, AI, Machine Learning (ML), IoT, 5...

[Из песочницы] Postman — Автотестирование метрики в AppMetrica 1. Введение Недавно встала задачка периодически проверять, все ли события в мобильном приложении работают корректно, передаются ли в AppMetrica. Подробности интеграции я опущу, имеется в виду, что она уже есть в МП. Для проверки нашел два варианта: через web интерфейс че...

Приходит ПМ и говорит, что надо на завтра чай через 3 минуты Ты говоришь, что чайник только 5 будет закипать. ПМ настаивает, что клиент очень просит и это нам крайне важно, ты под натиском прогибаешься и решаешь что-то думать. Кидаешь пакетик в чайник, заливаешь водой и ждешь когда вода покоричневеет. Четко понимаешь, что надо будет н...

Review- или динамические окружения. Теория и практика в Kubernetes Статья посвящена так называемым review-окружениям, реализуемым в рамках кластеров Kubernetes. Ранее эта тема затрагивалась, например, в нашем докладе «Лучшие практики CI/CD с Kubernetes и GitLab», но не была там основной темой, поэтому раскрывалась не во всех деталях. Попроб...

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

[Перевод] Webpack: руководство для начинающих Доброго времени суток, друзья! Представляю вашему вниманию перевод статьи «Webpack: A gentle introduction» автора Tyler McGinnis. Перед изучением новой технологии задайте себе два вопроса: Зачем нужен этот инструмент? Какие задачи он выполняет? Если вы не можете отв...

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

[Из песочницы] Сервисно-ориентированный state management c lamp-luwak Благодаря тому, что React предоставляет удивительные возможности по работе с отображением, можно сосредоточиться только на организации логики приложения и семантике кода, описывающего работу с данными. Т.е. выбирая state management библиотеку, происходит выбор стилистики буд...

Как энергетик изучал нейросети и обзор на бесплатный курс «Udacity: Intro to TensorFlow for Deep Learning» Всю свою сознательную жизнь, я был энергетиком (нет, сейчас речь не идет о напитке с сомнительными свойствами). Я никогда особо не интересовался миром информационных технологий, да и даже матрицы я вряд ли на листочке смогу перемножить. Да и не нужно мне это было никогда, ...

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

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

Создание браузерных 3d-игр с нуля на чистом html, css и js. Часть 2/2 В данной статье мы продолжим создавать трехмерную браузерную игру лабиринт на чистом html, css и javascript. В предыдущей части мы сделали простой 3-мерный мир, реализовали движение, управление, столкновения игрока со статическими объектами. В этой части мы будем добавлять г...

NSX Advanced Load Balancer – умный автомасштабируемый балансировщик нагрузки. Часть 1: архитектура и особенности В этом посте я хочу рассказать о системе балансировки нагрузки VMware NSX Advanced Load Balancer (by Avi Networks), или NSX ALB. Чуть больше года назад компания VMware купила компанию Avi Networks, и тогда же система балансировки сменила название с Avi Vantage на NSX ALB, но...

PostGIS + JPA. Погружение в детали и тонкости для чайников Привет. Сегодня я расскажу о работе с геоданными в PostgreSQL и немного о том, как это сделать в своем Java/Kotlin-приложении.Допустим, есть прикладная задача: написать приложение, которое находит ближайший к текущему местоположению магазин с мороженным. Для человека, которы...

[Из песочницы] Как принимать решения и приоритизировать задачи при создании продукта Основное занятие product-менеджера – принятие решений по тому или иному вопросу. В этой статье мы поговорим, на основе чего принимаются решения, как формируется пул гипотез для этих решений, и какие инструменты лучше применять. Два основных блока: Откуда взять идею (фидб...

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

BpfTrace — наконец, полноценная замена Dtrace в Linux Бывает, что системы глючат, тормозят, ломаются. Чем больше система, тем сложнее найти причину. Чтобы узнать, почему что-то работает не так, как ожидалось, исправить или предотвратить будущие проблемы, нужно посмотреть внутрь. Для этого системы должны обладать свойством наблю...

[Из песочницы] Что такое Unity Asset Store и как на нем зарабатывать? Доброго времени суток, Habr! Я являюсь паблишером Asset Store уже 4 года и хочу поделиться с вами своим опытом. Расскажу вам что такое Unity Asset Store глазами программиста и что нужно знать для создания ассета. Итак, что же такое этот Unity Asset Store? Это магазин в котор...

Прокачай свой CLI Сейчас многие фреймворки имеют в своем арсенале CLI (Command Line Interface) и ангуляр – не исключение. Впервые с CLI-утилитами я столкнулся, когда пробовал EmberJS и тогда мне это показалось очень удобным инструментом, который довольно сильно экономил мое время. Но, к сожал...

[Из песочницы] Создание Discord-бота на Python. Часть 1 Версии, которые стоят у автора Версия Python: 3.8.2 Версия discord.py: 1.3.3 Приветствую, хабровчане и другие пользователи интернета. Сегодня я начну цикл статей, посвящённых созданию Discord-бота с помощь...

[Перевод] Retro Apple: цифровая камера Quicktake100 В 1994 году фотография была довольно трудоемким делом. Для начала необходимо было вставить пленку в катушку, либо картридж в камеру, потом только сделать фотографию и только догадываться как получился снимок. Что бы увидеть картинку нужно было достать пленку с фотоаппарата и...

[Из песочницы] Очереди сообщений в PostgreSQL с использованием PgQ Очереди сообщений используются для выполнения: отложенных операций, взаимодействия сервисов между собой, «batch processing» и т.д. Для организации подобных очередей существуют специализированные решения, такие как: RabbitMQ, ActiveMQ, ZeroMQ и тд, но часто бывает, что в ни...

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

[Из песочницы] Разбор UI/UX на примере прототипа в Figma и основные принципы Кому адресована статья В данной публикации я хочу помочь начинающим и «не очень» бизнес-аналитикам, менеджерам проектов, владельцам продуктов, желающим сделать свой первый сайт и всем-всем, кому надо сделать макет сайта или приложения, а он не знает с какой стороны подступит...

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

Магия 2-х строк на Lua или как донести исходные заголовки HTTP Authorization header-авторизации до web-сервиcа Статья будет полезна тем: кому необходимо задействовать несколько видов авторизации в одном запросе к серверу; кто хочет открывать сервисы мира Kubernetes/Docker в общий интернет, не задумываясь о способах защиты конкретного сервиса; думает, что всё уже кем-то сделано, ...

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

[Перевод] 5 визуализаций, который помогут улучшить Data Story Статья переведена в преддверии запуска курса «Разработчик Python». Сторителлинг – один из важнейших навыков для специалистов, которые занимаются анализом данных. Чтобы доносить идеи и делать это убедительно, нужно простраивать эффективную коммуникацию. В этой статье мы поз...

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

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

Пишем свою стратегию для виртуального скролла из Angular CDK Привет! В Angular CDK в седьмой версии появился виртуальный скролл. Он отлично работает, когда размер каждого элемента одинаков, — причем прямо «из коробки». Мы просто задаем размер в пикселях и указываем, к какому элементу нужно прокрутить контейнер, сделать ли это плавно, ...

Игра на WebAssembly, часть 2: уровни и опыт, админка В предыдущей статье получилось сделать прототип игры с вопросами. Но не получилось сделать это полноценно на WebAssembly. В этот раз предлагаю конвертировать этот прототип, сделав с него полноценное WebAssembly приложение, а так же добавить к нему атрибуты большинства игр — ...

Как я не съездил в Лондон, но поучаствовал в London DevOps Enterprise Summit С 23 по 25 июня 2020 года в Лондоне прошла очередная DevOps Enterprise Summit. «В Лондоне» можно написать в кавычках, так как пандемия сделала свое дело и конференция прошла в онлайн-формате. В нём здесь есть и плохое (нетворкинг всё-таки очень сильно страдает), и хорошее:...

Халява кончилась: YouTube убрал режим «картинка в картинке» в Safari Одним из главных нововведений iOS 14 стала функция «картинка в картинке», для многих это вообще самая полезная фишка во всем обновлении. Ранее данная функциональность была доступна только на iPad, однако экраны айфонов растут с такой скоростью, что в Apple решили расширить ...

[Перевод] Unison: настройка и автоматизация двусторонней синхронизации каталогов на двух серверах Getty Images/iStockphoto Проблему синхронизации каталогов на двух серверах с операционными системами семейства Linux на борту можно решить проще, если использовать специализированные инструменты. Давайте посмотрим, как это можно сделать с помощью Unison. Читать дальше &rar...

Как сделать бота, который превращает фото в комикс. Часть вторая. Обучение модели ⇨ Первая часть И снова здравствуйте! Как вы могли заметить, праздники несколько подкосили график выхода статей. Думаю, многие за это время успели если не полностью обучить свою модель, то хотя бы поэкспериментировать с различными наборами данных. 1. Ставим дистрибутив 2. ...

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

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

LabVIEW NXG — Основы работы с Передней Панелью — Контролы и Индикаторы Это вторая статья-туториал по LabVIEW NXG, в которой мы рассмотрим основы работы с передней панелью (Front Panel). Представим себе, что мы оказались в Америке, в отеле установлен кондиционер, но регулятор температуры там снабжён шкалой в градусах Фаренгейта. Мы хотим выстав...

Как мы искали неработающие датчики на «УРАЛХИМЕ» (первый проект Data Lake) «УРАЛХИМ» делает удобрения. № 1 в России — по производству аммиачной селитры, например, входит в топ-3 отечественных производителей аммиака, карбамида, азотных удобрений. Выпускаются серные кислоты, двух-трёхкомпонентные удобрения, фосфаты и многое другое. Это всё создаёт ...

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

[Перевод] Запускаем командную строку Linux на iOS А вы знали, что можно запустить командную строку Linux на устройстве iOS? Возможно, вы спросите: «Зачем мне пользоваться текстовыми приложениями на iPhone?» Справедливый вопрос. Но если вы читаете Opensource.com, то, вероятно, знаете на него ответ: пользователи Linux хотят...

Расшифровка CAN шины на VW Polo sedan Сегодня мы поговорим о методах расшифровки данных CAN шины на примере автомобиля VW Polo Sedan 2019 года выпуска. В интернете такие статьи часто называют Хаками CAN шины, но мне такое название не по душе. В статье описаны методики поиска нужных данных в CAN шине автомобиля...

Как мы делали инструмент для QA, а сделали для всего техотдела Как-то очень давно наш отдел автоматизации внутренних процессов посетил админ (ops) с идеей помочь нашим тестировщикам. Основная идея был упростить деплой т.к. было очень неудобно писать ручные curl запросы к gitlab'у с кучей меняющихся параметров. Так заставили нас наша ком...

Изготовление печати в домашних условиях. Обзор лазера NEJE 30W. Ребята всем привет!Сегодня в этой статье покажу вам как с помощью лазера NEJE 30W (актуально и для любых других лазеров) в домашних условиях я сделал печать!Заходя вперед хочу заметить, что остался очень доволен результатом. Не смотря на то что это мой первый опыт.Как всегда...

Некоторые возможности утилиты UVtools по изменению слоев нарезки. Добрый день, коллеги!Как обещал – продолжу про UVtools. Предыдущая статья – https://3dtoday.ru/blogs/pl32/o-tom-kak-sdruzhit-prusaslicer-s-lcd-printerami-pri-pomoshchi-odnoy-utility, в ней адрес для скачивания утилиты.Как только вы открываете файл, у вас появляется примерно ...