Социальные сети Рунета
Пятница, 19 апреля 2024

Введение в IDAPython На русском языке (и на Хабре, в частности) не так много статей по работе с IDAPython, попытаемся восполнить этот пробел. Для кого. Для тех, кто уже умеет работать в IDA Pro, но ни разу не писал скрипты на IDAPython. Если вы уже имеете опыт написания скриптов под IDAPython, ...

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

Паскаль играет в Go. Реализация методов и интерфейсов в любительском компиляторе If I could export one feature of Go into other languages, it would be interfaces. — Russ Cox Мой предельно простой компилятор Паскаля уже становился предметом двух публикаций на Хабре. Со времени их написания язык обзавёлся всеми недостающими средствами, положенными станд...

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

Объяснение: почему wc на Haskell оказался «быстрее» аналога на С После недавних статей (№10xd34df00d, №2chapuza, №3picul) сравнивающих скорость работы реализаций упрощенной утилиты wc у меня оставался только один вопрос — Как простая реализация на Haskell оказалась быстрее [простой реализации на C ?! Читать дальше →

Zephyr в embedded: опыт использования на STM32F7-Discovery История о моем опыте использования операционной системы реального времени (ОСРВ) Zephyr для устройства на базе микроконтроллера STM32F7-Discovery. В статье: Что такое Zephyr и при чем тут Linux? Запуск проекта на STM32. Интересные моменты по работе с драйверами. Фишки этой...

[Из песочницы] Отладка и программирование микроконтроллеров stm32f303, atmega328 через любой интерфейс, как через jtag Данная статья посвящена моему первому open source проекту “repl”(ссылка на репозиторий внизу). Идея данного проекта заключается в том, чтоб позволить программисту микроконтроллеров отлаживать программу в микроконтроллере через любой его интерфейс, при этом чтобы отладка не с...

[Перевод] Низкоуровневое программирование STM32: от включения питания до «Hello, World» В этом материале я хочу рассказать о том, как писать программы для микроконтроллеров (Microcontroller Unit, MCU) Cortex-M, вроде STM32, используя лишь набор инструментов ARM и документацию, подготовленную STMicroelectronics. У некоторых читателей может появиться вопрос о том...

Киоск Raspberry Pi для графического интерфейса на Kivy Привет, Хабр! Хочется поделиться опытом настройки Raspberry Pi 3B+ в качестве киоска с GUI на базе библиотеки Kivy для Python 3. Почему именно Kivy? Просто мы уже имеем продукт, разработанный на Python, нам бы хотелось добавить к нему графический интерфейс. Стоит отметить, ...

[Из песочницы] Почему Rust должен стать функциональным языком программирования Привет, Хабр! Начав изучение Scala, я сразу столкнулся с тем, что функциональная реализация простейшего алгоритма быстрой сортировки работает радикально медленней и потребляет существенно больше памяти, чем аналогичная императивная реализация. При этом никто не спорит, что ...

n8n. Автоматизация ИБ со вкусом смузи Всем давно очевидна польза тотальной автоматизации, в том числе, и в области информационной безопасности. В условиях большого кадрового дефицита как никогда актуальна идея снятия рутинной рабочей нагрузки как со специалиста по информационной безопасности, так и со специалист...

WSL --install: добавлена нативная установка дистрибутивов в Windows 10 Insiders Preview build 20246 Мы добавили автоматическую установку дистрибутивов в wsl --install в Windows 10 Insiders Preview build 20246! Это означает, что установка WSL теперь проще, чем когда-либо, так как теперь, когда вы запускаете wsl --install, все необходимые компоненты, которые вам нужны для WS...

Автоматизация ввода в SecureCRT с помощью скриптов У сетевых инженеров часто возникает задача, выполнить copy/past определенных фрагментов из блокнота в консоль. Копировать приходиться обычно несколько параметров: Username/Password и что-либо еще. Ускорить этот процесс позволяет использование скриптов. НО задачи написание ск...

Дополняя SQL. Часть 2. Оптимизация работы со строками и открытия файлов Публикую на Хабр оригинал статьи, перевод которой размещен в блоге Codingsight. Что будет в этой статье? Это вторая статья в цикле о жизни разработчиков IDE для баз данных. Ее структура будет похожа на первую. Как и в первой я расскажу о проблемах с которыми мы сталкивались...

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

Почему появились асинхронные веб-сервера? Всем привет. На связи Владислав Родин. В настоящее время я являюсь руководителем курса «Архитектор высоких нагрузок» в OTUS, а также преподаю на курсах, посвященных архитектуре ПО. Помимо преподавания, как вы могли заметить, я занимаюсь написанием авторского материала для б...

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

Очередная статья: STM32 для начинающих Всех приветствую! Это моя первая статья на Хабре, поэтому прошу не кидаться тяжелыми предметами. Заранее спасибо. Начнем с предыстории. Когда-то мне пришлось перейти на микроконтроллеры ARM фирмы ST. Это было связано с тем, что PIC и AVR уже не хватало и хотелось новых при...

[Из песочницы] EBlink — GDB сервер для ARM Cortex-M микроконтроллеров В сети не много информации о появившемся несколько лет назад GDB сервере EBlink. Этим постом постараюсь исправить ситуацию. EBlink поддерживает большинство моделей микроконтроллеров STM32 (серии F0, F1, F2, F3, F4, F7, H7, L0, L1, L4, G0 и G4), а также EFR32. Он интересен те...

Краткие заметки embed-программиста: дублирование секции в памяти микроконтроллера Начальные условия Есть устройство на базе микроконтроллера (для примера будет взят stm32f405rgt6). При включении оно настраивает свою периферию на основе предпочтений пользователя или настроек по-умолчанию. Пользователь может менять настройки во время работы устройства (как ...

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

Опыт создания web-приложения с Pony ORM Привет, Хабр! Недавно передо мной встала задача написать на Python web-приложение для разделения счёта в ресторане между участниками трапезы. Так как нужна DB для хранения данных о заказах и пользователях, встал вопрос выбора ORM для работы с базой. Разработка велась на Flas...

Скрипты для калибровки шагов экструдера. Изучаем G Code на практике для начинающих и не только выпуск № 2 Всем привет всем доброго времени суток и приятного чтения. Для тех, кто не знаком с этой процедурой кратко поясню. Калибровка шагов экструдера нужна для того что бы принтер во время печати выдавливал требуемое количество пластика – не больше и не меньше. В прошивке установле...

Простая самодельная VGA видеокарта Насколько мне известно, довольно многим интересно подключить микроконтроллер к обычному монитору и попробовать что-либо вывести на экран. В этой статье пойдёт речь о создании простейшей VGA-видеокарты на базе микроконтроллера atmega168-20. Читать дальше →

Снова про шаблоны C++ в микроконтроллерах Идея использования шаблонов языка C++ для программирования контроллеров не является чем-то новым, в сети доступно большое количество материалов. Кратко напомню основные преимущества: перенос значительной части ошибок из runtime в compile-time за счет строгого контроля ти...

[Из песочницы] Использование контроллера Arduino для прерываний В данной стать я приведу пример использования arduino контроллера для вызова прерываний программы на C#. Стоит отметить, что в WindowsForms присутствует элемент Timer который включается и выполняет код через определенный промежуток времени. Я решил реализовать подобное...

[Перевод] Пол Грэм про Java и «хакерские» языки программирования (2001) Это эссе явилось развитием бесед с несколькими разработчиками на тему предвзятого отношения к Java. Это не критика Java, а скорее, наглядный пример «хакерского радара». Со временем, хакеры развивают нюх на хорошие — или же плохие — технологии. Полагаю, может оказаться инт...

За кулисами жизни модератора Stack Overflow Недавние статьи на Хабре про опыт пользования StackOverflow сподвигли меня на написание статьи, но с позиции модератора. Сразу хочу отметить, что речь пойдёт о Stack Overflow на Русском. Мой профиль: Suvitruf. Сначала хотелось бы рассказать о причинах, побудивших меня участв...

[Перевод] В bash безобидная с виду конструкция [[ $var -eq 42 ]] умеет выполнять и произвольный код Знали ли вы о том, что следующий bash-скрипт способен выполнять произвольный код, который предоставит ему пользователь в ответ на запрос скрипта о вводе данных? Читать дальше →

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

Можно ли писать скрипты на C++? Недавно пришлось мне опять/снова погрузиться в чудесный мир программирования Linux скриптов. В принципе, дело не очень хитрое, но поскольку мне попадаются такие задачи не часто, то каждый раз изучаю заново. Знаю точно, что завтра многое забуду и через месяц опять буду гугл...

[Перевод] Примеры GraphQL на Java для начинающих [со Spring Boot] В этой статье мы рассмотрим пример GraphQL на Java и создадим простой сервер GraphQL со Spring Boot. Таким цыпочкам тоже нравятся примеры GraphQL на Java со Spring Boot! GraphQL — это язык запросов для API, который позволяет клиентам запрашивать ограниченное множество данны...

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

«Как зеницу ока...» или делаем простенькую охранную систему на базе микроконтроллера (Canny или Arduino) и Raspberry PI Во время подготовки статьи, про распознавание микроконтроллеров с помощью TensorFlow и OpenCV мне одновременно на глаза попались Craftduino, Canny 3 tiny и Raspberry PI, после чего я решил, что будет здорово еще раз объединить их в одной статье. Я долго думал, о чем писать, ...

Настройка CI/CD скриптов миграции БД с нуля с использованием GitLab и Liquibase Добрый день, уважаемые читатели. Совсем недавно мне пришлось осваивать новую для себя область CI/CD, настраивая с нуля доставку скриптов миграции базы данных в одном из проектов. При этом было тяжело преодолеть самый первый этап "глаза боятся", когда задача вроде бы ясна, а ...

[Перевод] Python.org рекомендует: Программирование для НЕпрограммистов Предлагаем вашему вниманию подборку материалов от python.org о том, с чего начать первые шаги в программировании. Если Вы никогда не занимались программированием раньше, эти материалы для вас. Данные туториалы не предполагают, что у вас есть какой-то опыт. (Если у вас уж...

[Из песочницы] С++, метапрограммирование и регистры микроконтроллера Привет, Хабр! Вот уже несколько лет все свои проекты для линейки микроконтроллеров stm32 я делаю на C++. За это время у меня накопилось некоторое количество материала, который может быть интересен другим разработчикам. Во избежание лишних вопросов: я использую связку QtCre...

[Из песочницы] STM32MP1: U-Boot, Buildroot, Arch Linux и немного Debian Привет, Хабр! Некоторое время назад компания STMicroelectronics выпустила интересные процессоры серии STM32MP1. Когда у меня наконец-то дошли руки до отладочной платы на основе этого процессора, я с некоторым удивлением обнаружил, что для нее отсутствуют какие-либо сборки н...

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

[Из песочницы] Разбираемся с WebKit в 1С, на примере интеграции TinyMCE в управляемую форму в УТ 11.4 Многие уже знают, что в релизе платформы 8.3.14.1565, браузер Internet Explorer был заменен на Web-Kit, это на самом деле большой шаг вперед, но я уверен, многим, как и мне, пока не совсем понятно, что к чему. Возник опыт использования web-kit в 1С, вызова JS из 1С и вызова ...

Непрохождение вызова по номеру 112 на телефоне Xiaomi Redmi Note 5 Я использую (уже довольно старый) телефон Xiaomi Redmi Note 5 и хочу рассказать о том, почему этот телефон (и, возможно, некоторые другие) может довести до трагических последствий. Примерно месяц назад потребовалось позвонить 112, но вместо ответа оператора я услышал, что н...

Swift.assert — жизнь после релиза Как часто вы используете Swift.assert() в вашем коде? Я, честно, использую довольно часто (Если это плохая практика, то, пожалуйста, напишите в комментариях — почему это плохо?). В моем коде часто можно встретить, например, такой вызов: Swift.assert(Thread.isMainThread) Не ...

[Из песочницы] Почему не стоит начинать карьеру в маленькой не-IT компании Привет! Последние 2 месяца я отработал в небольшой компании. Это был мой первый опыт работы программистом в компании, и я хочу поделиться проблемами, с которыми столкнулся, и выводами из них. Надеюсь, этот пост сбережёт начинающим специалистам время и нервы. Читать дальше...

Установка BLTouch на TwoTrees Sapphire Pro и настройка прошивки Marlin В этом посте постараюсь описать процесс установки датчика BLTouch на принтер TwoTrees Sapphire Pro.В целом у принтера Sapphire Pro от TwoTrees достаточно неплохие характеристики, однако, для упрощения печати, ему необходимо провести небольшую модернизацию.Первой модернизацие...

JavaScript библиотека Webix глазами новичка. Часть 2. Работа с формами Я начинающий front-end разработчик. Сейчас я учусь и стажируюсь в одной минской IT компании. Изучение основ web-ui проходит на примере JS библиотеки Webix и я хочу поделиться своим скромным опытом и сохранить его в виде небольшого учебного пособия по этой интересной UI биб...

Архитектурный шаблон MVI в Kotlin Multiplatform, часть 2 Это вторая из трёх статей о применении архитектурного шаблона MVI в Kotlin Multiplatform. В первой статье мы вспомнили, что такое MVI, и применили его для написания общего для iOS и Android кода. Мы ввели простые абстракции, такие как Store и View, а также некоторые вспомо...

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

Как переиспользовать код с бандлами Symfony 5? Часть 5. Конфигурация Поговорим о том, как прекратить копипастить между проектами и вынести код в переиспользуемый подключаемый бандл Symfony 5. Серия статей, обобщающих мой опыт работы с бандлами, проведет на практике от создания минимального бандла и рефакторинга демо-приложения, до тестов и ре...

[Перевод] Осторожнее с редактированием bash-скриптов Предположим, я написал такой bash-скрипт с названием delay.sh. Как думаете, что он делает? #!/bin/bash sleep 30 #rm -rf --no-preserve-root / echo "Time's up!" Похоже, он ожидает 30 секунд, а затем выводит сообщение на экран. Здесь никаких фокусов — он делает именн...

[Из песочницы] Использование QubesOS для работы с Windows 7 На Хабре не так много статей, посвященных операционной системе Qubes, а те, что я видел мало описывают опыт применения. Под катом надеюсь это исправить на примере использования Qubes в качестве средства защиты (от) среды Windows и, попутно, оценить количество русскоговорящих...

Как «раскирпичить» STM32 Здравствуйте! Меня зовут Дмитрий Руднев. В этой публикации я поделюсь своим горьким опытом. В современной разработке широко используются микроконтроллеры STM32. Они обладают неплохим соотношением цена/производительность, вокруг них сложилась развитая «экосистема». Для прош...

Моя первая печать миниатюр Приветствую уважаемого читателя!Настало время похвастать своими первыми шагами в 3d-печати. Собственно для миниатюр, прежде всего, я принтер и взял.Довольно простой мне показалась печатать тушек космодесанта с крылатым черепом на груди, её и выбрал для начала. МодельPhoton w...

[Из песочницы] Кроссплатформенный многопоточный TCP/IP сервер на C++ Как-то раз встала задача по написанию простого и быстрого многопоточного TCP/IP сервера на C++ и при этом, чтобы работал из под Windows и Linux без требования как-либо изменять код за пределами класса самого сервера. Ранее, на чистом C++ без библиотек вроде Qt, Tcp-сервер не...

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

Виртуальная АТС. Часть 1: Простая установка Asterisk на Ubuntu 20.04 Из-за перехода на удаленку в небольших компаниях часто возникают проблемы с телефонной связью. Обычно такие фирмы сидят в арендованных офисах, а услуги телефонии им оказывает бизнес-центр. О подключении сотрудников из дому придется позаботиться самостоятельно: самый недоро...

[Перевод] Реализация алгоритма Минимакс на примере игры «Крестики-Нолики» Недавно я написал непобедимую игру «Крестики-Нолики». Это был интересный и поучительный проект, который многому меня научил. Если у вас есть желание посмотреть результат — это можно сделать здесь. Для того чтобы сделать игру непобедимой, было необходимо создать алгоритм, ...

[Из песочницы] Бот Telegram для пиццерии на Python с помощью telebot Вступление На Хабре уже есть статья о Telegram боте, написанном на Python с помощью telebot. Признаться, свое знакомство с чат-ботами в недавно разблокированном мессенджере я начинал с этой статьи. Моя писанина — это дополнение, включающее в себя работу с Inline кнопками и б...

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

Удалённое включение скриптов Mikrotik из Telegram v 2.0 Всех с прошедшим праздником. Данная тема является более лучшей версией того, что я писал в далеком 2016 тут. В целом принцип работы не изменился, с той лишь разницей, что теперь он отрабатывает мгновенно без задержек. Закидываем скрипт в Mikrotik, меняем BotID и ChatID на ...

[recovery mode] Установка Zimbra 9 OSE от Zextras на CentOS 8 С выходом Zimbra Collaboration Suite 9 Open-Source Edition список поддерживаемых операционных систем пополнился операционной системой CentOS 8. Данная операционная система основана на коммерческом дистрибутиве RHEL, разрабатываемым компанией Red Hat и является наиболее свеже...

Какой язык программирования учить в 2020-м? Статей с подобными заголовками существует уже множество. Но в них постоянно какая-то дичь! Смотрите, Google ещё до основных результатов советует такое: HCL, Карл! Язык, который не просто очень далёк от «Самых Популярных», но ещё и создан для конфигурации, так что его вообще...

Быстрая установка директа на Flying bear ghost 5. Вот теперь то, что надо. Всем доброго времени суток.Тем, у кого уже стоит 5-й медведь или кто заказал его на распродаже скажу, что установить на него директ оказалось чуть ли не проще, чем на эндер. Посему быстренько покажу как это было.Для установки не пригодится ничего, кроме распечатанного крепле...

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

[Из песочницы] Путь в программисты (С++) Привет. С вами я. Мне нравилось боксировать и бегать на дальние дистанции, и думал я только о спорте, но выучился на моряка. Работал в авиации, а стал программистом С++ в 29. Расскажу, как так получилось. О программировании к октябрю 2017 я знал ровно столько, сколько сейча...

Хабрастатистика: как Хабр пережил самоизоляцию Привет, Хабр. Заканчивается первая половина 2020 года, можно подвести некоторые статистические итоги, тем более что по понятным причинам, они обещают быть интересными. Появились новые темы для обсуждения, многие стали работать из дома, любопытно посмотреть, как это сказалос...

Как построить ракетный ускоритель для скриптов PowerCLI  Рано или поздно любой системный администратор VMware доходит до автоматизации рутинных задач. Начинается все с командной строки, потом идет PowerShell или VMware PowerCLI. Допустим, вы освоили PowerShell чуть дальше запуска ISE и использования стандартных командлетов из мод...

Cucumber и BDD. Пишем UI-автотесты на iOS Привет, Хабр! В данной статье-мануале я хочу рассказать о базовых функциях такого фреймворка как Cucumber и его применение для создания ui авто тестов на мобильных iOS устройствах.Я ставлю перед собой задачу сделать описание максимально простым и понятным для большинства чит...

Haproxy — программирование и конфигурирование средствами Lua Сервер Haproxy имеет встроенные средства для выполнения скриптов Lua.Язык программирования Lua для расширения возможностей различных серверов используется очень широко. Например, на Lua можно программировать для серверов Redis, Nginx (nginx-extras, openresty), Envoy. Это впо...

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

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

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

Установка простого приложения (например Superset) в microk8s используя metallb и helm Snaps являются кросс-дистрибутивными, независимыми и простыми в установке приложениями, упакованными со всеми их зависимостями для запуска во всех основных дистрибутивах Linux. Snaps безопасны — они ограничены и не ставят под угрозу всю систему. Они работают под разными уров...

[Перевод] О нет! Моя Data Science ржавеет Привет, Хабр! Предлагаем вашему вниманию перевод интереснейшего исследования от компании Crowdstrike. Материал посвящен использованию языка Rust в области Data Science (применительно к malware analysis) и демонстрирует, в чем Rust на таком поле может посоперничать даже с Nu...

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

Размещение кучи FreeRTOS в разделе CCMRAM для STM32 При разработке одного девайса на базе STM32F407 столкнулся с проблемой нехватки оперативной памяти. Назначение самого девайса не принципиально, но важно, что изначальный код писался для десктопной системы и его нужно было просто портировать на микроконтроллер под управлением...

Эффективная работа из дома: общее и личное Моё домашнее рабочее место Да, о работе из дома есть уже миллион текстов, в том числе и на Хабре. Но многие советы из них вроде «оденьтесь по-офисному, и тогда будет рабочий настрой» для меня выглядят слишком обобщающими. Люди разные, и одним формальная одежда действительно...

[Перевод] Bluetooth Low Energy: подробный гайд для начинающих Создание кастомного сервиса и тем более клиента Bluetooth Low Energy – прогулка по граблям с завязанными глазами. По крайне мере так было для меня 4 года назад, когда я только начинал работать с BLE-устройствами. Сейчас почти каждый мой проект предусматривает использование э...

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

[Из песочницы] Работа с китайской АЦП Hx711 Причина написания этого поста заключается в желании разобраться с модулем 24 разрядного дельта сигма преобразователя АЦП на основе микросхеме Hx711. Сам преобразователь собран в виде готового модуля по схеме включения рекомендованного производителем (????). Замечания о работ...

[Из песочницы] Автобэкапы сетевого оборудования и хранение их в системе контроля версий Уточнение: решение настроено для D-Link DFL, cisco 29xx и WatchGuard Firebox, но подходит для всего, что умеет делать бэкапы при подключении по ssh и/или заливать их по расписанию/событию на ftp/tftp сервер. Всё началось с того, что мой знакомый программист спросил: «А поч...

Книга «Android. Программирование для профессионалов. 4-е издание» Привет, Хаброжители! Познакомьтесь с возможностями программирования Android на языке Kotlin! Множество примеров приложений с четкими объяснениями ключевых концепций и API позволят легко разобраться в самых трудных задачах. Эта книга посвящена прикладным методам разработки ...

CSI Linux: linux-дистрибутив для кибер-расследований и OSINT В начале этого года вышел в свет очередной линукс-дистрибутив для проведения кибер-расследований и OSINT под именем CSI Linux Investigator. Читать дальше →

[Из песочницы] Простая машина состояний для VueJS Недавно я наткнулся на интересное обсуждение на Full Stack Radio — Bulding Better UI Components with State Machines. Речь шла о том, что концепция машины состояний может помочь при разработке компонентов Vue. Я начал просматривать готовые решения, но они оказались не столь...

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

[Перевод] Чем программирование сегодня отличается от программирования 20 лет назад? Я увидел этот вопрос на Quora и начал писать ответ. Но ответ получился слишком большим, так что я превратил его в эту статью. Вот часть изменений в случайном порядке, которые я заметил в программировании за последние 20 лет: Многие концепции, которые были лишь теоретически...

[Из песочницы] Первые шаги в Spring, Rest API, акцент на PUT в связке с фронтендом Немного о себе: На данный момент я студент Skillbox и прохожу курс “Java-разработчик”. Не в коем случае не реклама, рассказываю немного о себе. Начал учить джаву с мая 2019 года, до этого немного самостоятельно изучал HTML, CSS и JS. Собственно, подтолкнуло меня на написани...

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

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

[Из песочницы] Пример SPA «Простые заметки» на Mithril.js Mithril.js — непопулярный инструмент для создания клиентских веб приложений. На Хабре практически нет публикаций по этой теме. В этой заметке я хочу показать, как можно сделать небольшое приложение на Mithril. Приложение будем делать по мотивам вот этой публикации (перевод)...

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

Honeypot vs Deception на примере Xello На Хабре уже есть несколько статей про технологии Honeypot и Deception (1 статья, 2 статья). Однако, до сих пор мы сталкиваемся с непониманием разницы между этими классами средств защиты. Для этого наши коллеги из Xello Deception (первый и пока единственный российский разраб...

Настроили мониторинг. Что дальше? Всем привет! Меня зовут Мазеин Михаил, я занимаюсь бекенд-разработкой в ManyChat. Одна из моих задач — анализ и повышение качества нашего продукта через системы мониторингов, алармов и сопутствующих процессов. Я на своем опыте убедился в том, что выстроить мониторинг — недо...

Xamarin.Forms. Личный опыт использования В статье речь пойдет о Xamarin.Forms на примере живого проекта. Кратко поговорим о том, что такое Xamarin.Forms, сравним с похожей технологией WPF, увидим, как достигается кроссплатформенность. Также разберём узкие места, с которыми мы столкнулись в процессе разработки, и до...

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

Эксперимент: как научиться создавать популярные тексты на английском (и почему англоязычный Хабр так мало читают) Я много лет занимаюсь маркетингом, написанием текстов, при этом увлекаюсь английским и использую его в работе. В русскоязычном интернете в целом не так и много статей о контент-маркетинге и продвижении бизнеса в США. А те что есть часто просто рассказывают как надо делать ...

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

Делаем модем: передаем цифровые данные по воздуху с помощью OFDM и GNU Radio Привет, Хабр. Данный текст можно считать продолжением статьи "Разбираем звук Dial-up модема", в которой разбирался метод установки связи между модемами. Сегодня мы пойдем дальше, и посмотрим на практике как передаются данные, для чего создадим простую реализацию м...

Солнечная электростанция на балконе. Личный опыт Привет Хабр. Эта статья является продолжением экспериментов с солнечными панелями в городской квартире, первые опыты делались три года назад, но затем из-за переезда все пришлось свернуть и распродать. Однако опыт, как известно, не пропьешь, и было решено с учетом полученно...

Как находить небесные объекты по звездными картам Stellarium при помощи телескопа Всем привет! Возможно читателям ресурса Хабр окажется интересным. Данная статья призвана дать некоторые пояснения к пользованию звездными картами, генерируемыми приложением для смартфонов и планшетов Stellarium. Так же в статье изложен реальный опыт поиска слабосветящихся об...

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

Чекалка: ваш личный Hosttracker (и не только) Чекалка - простой инструмент на Go, позволяющий без написания скриптов или привлечения внешних сервисов надежно организовать мониторинг здоровья IT подсистем и алертинг в мессенджеры.Все что нужно - любой хостинг, или бесплатные тарифы Heroku/AWS и т.д. Читать далее

Обзор возможностей Qt Creator 4.12 и QBS 1.16 для программирования микроконтроллеров Здравствуйте, товарищи программисты «железячники» и все кто им сочувствует. Я хотел бы продолжить обзор возможностей IDE Qt Creator в связке с системой сборки QBS в части программирования микроконтроллеров. Ранее я уже писал про улучшения в предыдущих версиях QtC 4.10 и QB...

[Из песочницы] Как не сдохнуть на проекте или 5 лайфхаков В моем опыте аналитика за почти 7 лет (хоть он и не очень большой на самом деле) было много разных интересных историй, но самый забавный момент — это когда я оказалась в патовом проекте, который нельзя было не сдать, но туда свалились все беды: и смена заказчика, и распредел...

[Перевод] Go глазами Rust-программиста: первые впечатления В преддверии старта курса «Разработчик Golang» подготовили перевод интересного материала. А каким было ваше первое впечатление от Go? На протяжении последних нескольких недель мне довелось использовать Go в работе. Я впервые использовал Go на более-менее крупном и серьезно...

Разработка веб-сайта на паскале (backend) В этой статье я расскажу о том, зачем, почему и как я начал делать сайты на паскале: Delphi / FPC. Вероятно, «сайт на паскале» ассоццируется с чем-то вроде: writeln('Content-type: text/html'); Но нет, всё гораздо интереснее! Впрочем, исходный код реального сайта (почти ве...

JavaScript библиотека Webix глазами новичка. Часть 3. Модули, диаграммы, древовидные таблицы Я — начинающий front-end разработчик. Сейчас я учусь и стажируюсь в одной минской IT компании. Изучение основ web-ui проходит на примере JS библиотеки Webix и я хочу поделиться своим скромным опытом и сохранить его в виде небольшого учебного пособия по этой интересной UI б...

Wrike: 5 лет с OKR Тема OKR (Objectives and Key Results) сейчас становится все более популярной в бизнесе. Во многих компаниях рассматривают возможность внедрить у себя эту методологию. Мы в Wrike перешли на OKR в 2015 году, и на тот момент это была достаточно новая и малоизученная тема, по кр...

[Из песочницы] Как GitLab помогает делать бэкапы больших хранилищ NextCloud Привет, Хабр! Сегодня я хочу рассказать о нашем опыте автоматизации резервного копирования больших данных хранилищ Nextcloud в разных конфигурациях. Я работаю СТО в «Молния АК», где мы занимаемся конфигурационным управлением IT систем, для хранения данных используется Nextcl...

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

Установка SKR v1.4 (не турбо) + TMC2208 (UART) на Ender 3 с родным дисплеем     Мой первый пост. И рассчитан он для начинающих печатников (коим я и являюсь), обладателей очень популярного Creality Ender 3. Писк моторов (ночью очень раздражает) и желание печатать водорастворимым филаментом для поддержек, сподвигло на апгрейд, с условием сохранения ро...

Парсинг сайта кинотеатра на Golang Всем привет, в этой статье мы рассмотрим небольшой пример кода, написанный для сбора данных с сайта на популярном сегодня языке программирования Go. Эта статья будет особенно интересна тем, кто много слышал о Go, но пока еще не попробовал его самостоятельно. Для одного из...

Быстрее, выше, сильнее: Clear Linux — самый быстрый дистрибутив для x86-64? На днях ресурс Phoronix опубликовал результаты тестов скорости работы разных дистрибутивов Linux на системе с Core i9 10980XE. Тестирование проводилось со сборками Clear Linux 33540 (самая новая на момент теста), Clear Linux 31480 (конец 2019 года), Endeavour OS Rolling,...

Тридцать топовых интервью за последнее время: разработка, дизайн, научпоп и лайфстайл На новогодних праздниках ваша дорогая редакция совмещала приятное с полезным и читала интервью, которые выходили на Хабре за последние годы. Отобрали 30 штук, а теперь делимся с вами — это прям самый сок и вообще крутота! Разговоры на любой вкус: об игровой разработке, ред...

[Из песочницы] Самый простой алгоритм для создания Филворда (Часть 1) Привет, Хабровцы. В этой статье я хочу поделиться с вами немного своим опытом и показать вам мой простой алгоритм, который я придумал для создания Филворда. Под «Филвордом» я буду иметь ввиду эту многим знакомую игру. В игре есть поле размером обычно NxN заполненное словами...

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

Книга «Программирование на Rust» Привет, Хаброжители! Официальный гайд по языку программирования Rust поможет вам создавать более быстрое и надежное программное обеспечение. Высокоуровневая эргономика и низкоуровневое управление часто противоречат друг другу, но Rust бросает вызов этому конфликту. Авторы ...

Программирование Modbus RTU Master на примере Simatic S7-1200 и ПЧ Sinamics V20 Давно хотел рассказать про тонкости программирования обмена по протоколу Modbus RTU в случае, когда контроллер (в нашем случае S7-1214) выступает RTU Master'ом. Недавно меня попросили помочь с обменом между ПЛК и частотным преобразователем Sinamics V20, ну и почему бы не нап...

[Из песочницы] StegoPy — Инструмент LSB-стеганографии на Python Предисловие В последнее время я заметил, что людям на моем форуме стала интересна тема стеганографии различных текстов в изображениях, mp3-файлах и видео. И тут у меня возникла идея написать свой скрипт для стеганографии текста в изображениях. Скажу сразу прежде я ни разу не...

JavaScript библиотека Webix глазами новичка. Часть 4. Работа с данными. CRUD Я — начинающий front-end разработчик. Сейчас я учусь и стажируюсь в одной минской IT компании. Изучение основ web-ui проходит на примере JS библиотеки Webix и я хочу поделиться своим скромным опытом и сохранить его в виде небольшого учебного пособия по этой интересной UI б...

jsqry — лучше, чем jq В своей прошлой статье на Хабре я писал про библиотеку Jsqry, которая предоставляет простой и удобный язык запросов (DSL) к объектам JSON. С тех пор прошло много времени и библиотека тоже получила свое развитие. Отдельный повод для гордости — библиотека имеет 98% покрытие ко...

[Из песочницы] Подключение OLED дисплея ssd1306 к STM32 (SPI+DMA) В данной статье будет описан процесс подключение oled дисплея с контроллером ssd1306 разрешением 128x64 к микроконтроллеру stm32f103C8T6 по интерфейсу SPI. Также мне хотелось добиться максимальной скорости обновления дисплея, поэтому целесообразно использовать DMA, а програм...

Не плачь, девчонка! Ответ автору с vc.ru на письмо о Хабре Я давний участник Хабра — обычный читатель и корпоративный автор. Для меня Хабр — это хорошо знакомая, изученная, родная и не враждебная среда, поэтому каждый раз я удивлённо читаю доводы участников «кармасрачей» и обхожу их стороной, потому что писать комментарии на 5000 зн...

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

12 лет с МКБ F41.2. То, что нас не убивает, делает сильнее… и лучше Привет всем. У меня депрессивное-тревожное расстройство. Вот уже 12 лет. 5 полноценных эпизодов. 4 ремиссии. МКБ F41.2 — эти цифры легко запоминаются… уже на первом эпизоде. Пусть это прозвучит странно, но я знаю, что такое ад на земле. И те, кто хоть раз проходил среднюю и...

Пишем шеллкод под Windows на ассемблере В этой статье я хочу показать и подробно объяснить пример создания шеллкода на ассемблере в ОС Windows 7 x86. Не смотря на солидный возраст данной темы, она остаётся актуальной и по сей день: это стартовая точка в написании своих шеллкодов, эксплуатации переполнений буферо...

Разработка приложений и Blue-Green deployment опираясь на методологию The Twelve-Factor App с примерами на php и docker Для начала немного теории. Что такое The Twelve-Factor App? Простыми словами, это документ призванный упростить разработку SaaS приложений, помогает тем что, осведомляет разработчиков и DevOps инженеров о проблемах \ практиках которые чаще всего встречались в разработке со...

[recovery mode] Первый русский программист 13 декабря — день памяти русского ученого и изобретателя, чьим желанием было подарить человечеству программирование и сделать это бескорыстно, без прибыли и славы. Его желание сбылось — мир получил программирование, а его имя оказалось в тени. Однако негоже держать светильни...

«Спасите Конкорд» или репортаж с испытаний российской радиолокационной системы поиска посторонних предметов на ВПП Это фото скромного аэродрома «Орловка» (код ИКАО: UUTO) в Тверской области — на самом деле очень символично. Впервые в истории Россия присоединяется к клубу технологических лидеров, способных проектировать и выпускать радиолокационные системы для мониторинга ВПП на наличие...

[Перевод] Автоматизируем установку WordPress с NGINX Unit и Ubuntu Есть множество материалов по установке WordPress, поиск в Google по ключевым словам "WordPress install" выдаст порядка полумиллиона результатов. Но тем не менее фактически среди них весьма мало годных руководств, по которым можно установить и настроить WordPress и...

[Перевод] Мой ответ тем, кто полагает, что значение TDD преувеличено Однажды я разговорился с разработчиком из компании-клиента о программном обеспечении. Мне стоило бы понять то, что разговор пошёл куда-то не туда, когда собеседник сказал о том, как нам, разработчикам ПО, повезло: «Мы обманом заставляем организации платить нам за, как кажетс...

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

Книга «Head First. Изучаем Go» Привет. Хаброжители! Go упрощает построение простых, надежных и эффективных программ. А эта книга сделает его доступным для обычных программистов. Основная задача Go — эффективная работа с сетевыми коммуникациями и многопроцессорной обработкой, но код на этом языке пишется ...

Как получить по индексу элемент из бинарного дерева за приемлемое время? Привет, Хабр! Полгода назад я задумался, как можно было бы получить элемент из бинарного дерева за O(log(N)). Ответ пришёл довольно быстро — Lazy Propagation. Но реализовать это в коде я поленился. Сейчас надо сдавать дипломный проект в университете, поэтому я занимаюсь чем...

WebRTC через Kurento: опыт тестирования и внедрения В этой статье я поделюсь опытом работы с технологией WebRTC и медиасервером Kurento на этапе тестирования и внедрения. Расскажу с какими проблемами я столкнулся и как их решил. Я не расскажу о том как разработать приложение с нуля, но приведу много полезных ссылок. Уверен, ...

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

Перенос всех баз данных MS SQL Server на другую машину Недавно возникла необходимость переноса всех БД (>50 на одном экземпляре SQL Server) из dev-окружения на другой экземпляр SQL Server, который располагался на другом железе. Хотелось минимизировать ручной труд и сделать всё как можно быстрее. Disclaimer Скрипты написаны д...

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

[Из песочницы] Знакомство с effector-dom на примере списка задач Многим уже известен стейт-менеджер effector, кто-то его уже не только смотрел, но и использует в проде. С конца осени его автор активно разрабатывает девтулзы для эффектора, и в процессе этой работы у него получилось написать очень интересную библиотеку для рендера приложени...

[Из песочницы] Создание Discord-бота, используя библиотеку discord.js | Часть №1 Введение В этой статье я подробно расскажу о том, как работать с библиотекой discord.js, создать своего Discord-бота, а также покажу несколько интересных и полезных команд. Сразу хочу отметить, что я планирую сделать ряд подобных статей, начиная с простых команд, заканчивая...

Делаем страницу на React с базой сотрудников при помощи Airtable и Quarkly Слышали про такой инструмент, как Airtable, но не знали, с чего начать? Тогда приглашаем в мир визуального программирования построения БД! Этим постом мы начинаем цикл обучающих статей, в которых будем давать практические примеры работы с нашим инструментом Quarkly. В этом у...

OctoPrint включение принтера и печать по расписанию. Замена штатной платы в связке с Raspberry Pi и управлением по OctoPrint вдохнула в мой бюджетный Ender 3 PRO новую жизнь, а мне подарила новые впечатления. Рано или поздно задался вопросом, а как в этой связке настроить печать по расписанию. Ночью, даже при новых тихих драйв...

Как улучшить ваш API сервис на node.js. Часть 1 Сейчас доступно приличное количество материалов по написанию API на node.js. Большинство из них в виде туториалов и демо-примеров в документациях. Этого достаточно, чтобы быстро разобраться и написать что-то свое. Но в них редко найдутся детали, почему это делается именно та...

Стало известно, почему PlayStation 5 на старте окажется предпочтительнее Xbox Series X Чем ближе конец 2020 года, тем больше в сети появляется информации о новом поколении консолей — именно на рождественские праздники текущего года должны прийтись старты продаж как Xbox Series X, так и PlayStation 5. К слову, на этот раз источником утечек стал тематический рес...

Что не так с Хабром Ловлю себя на мысли, что все меньше и меньше читаю Хабр специально, теперь чаще просто из поиска попадаю или в рекомендациях выскакивает. Начал думать — почему? Ведь раньше были и подписки и прочее. Пришел к такому выводу: Очень длинные статьи, при этом часто очень замудр...

Шпаргалка по визуализации данных в Python с помощью Plotly Plotly — библиотека для визуализации данных, состоящая из нескольких частей: Front-End на JS Back-End на Python (за основу взята библиотека Seaborn) Back-End на R В этой простыне все примеры разобраны от совсем простых к более сложным, так что разработчикам с опытом будет...

Дипфейк видео по одному кадру пример работы First Order Motion Model Можно ли из одной фотографии сделать целый фильм? А записав движения одного человека, заменить его на другого в видео? Безусловно, ответ на эти вопросы, крайне важен для таких сфер как кинематограф, фотография, разработка компьютерных...

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

Управление репутацией: руководство по убиванию бизнеса на примере компании Основит Сегодня не мог пройти мимо ситуации и не поделиться очень интересным примером, который будет полезен многим руководителям бизнеса. Речь пойдет о конфликте профессионального сообщества с производителем, а именно о строителях и компании Основит. Как? Откуда? Почему этот приме...

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

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

[Перевод] Смешиваем OpenJDK и NodeJS: межъязыковые взаимодействия и вертикальная архитектура Привет, Хабр! Давно вынашивали мысль обсудить с вами тему GraalVM, откладывали, пока не нашли, наконец, сегодняшнюю статью, тематика которой серьезно выходит за рамки разбора конкретной виртуальной машины. Автор Майк Хёрн (Mike Hearn) ни много ни мало излагает целую парадиг...

Мониторинг бизнес-процессов Camunda Привет, Хабр. Меня зовут Антон и я техлид в компании ДомКлик. Создаю и поддерживаю микросервисы позволяющие обмениваться данными инфраструктуре ДомКлик с внутренними сервисами Сбербанка. Это продолжение цикла статей о нашем опыте использования движка для работы с диаграмм...

Android. Surface Дисклеймер Данная статья предназначена для начинающих андроид разработчиков с небольшим опытом работы с видео и/или камерой, особенно тех кто начал разбирать примеры grafika и кому они показались сложными — здесь будет рассмотрен похожий код с упрощенным описанием основных ш...

[Из песочницы] STM32 + CMSIS + STM32CubeIDE Здесь я расскажу как создать минимальный проект на CMSIS с использованием «родной» IDE для микроконтроллеров STM – STM32CubeIDE. Возможно STM32CubeIDE и обладает рядом недостатков, но у нее, на мой взгляд, есть несколько преимуществ – таких как проприетарность и бесплатнос...

[Перевод] 50 лет Паскаля В начале 1960-х в мире доминировали языки Фортран (Джон Бэкус из IBM) для научного и Кобол (Жан Саммет из IBM и Министерство обороны) для коммерческого применения. Программы писались на бумаге, затем перфорировались на картах, после чего результатов их выполнения ждали цел...

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

[Из песочницы] Двухфакторая аутентификация VPN/Mikrotik – просто и масштабируемо Здравствуйте! На написание данной статьи меня побудило прочтение аналогичного содержания статьи пользователя nkusnetsov. По количеству просмотров видно, что сообществу интересна данная тема. Поэтому я решил поделиться с вами собственным решением, которое было ранее реализо...

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

Как превратить любой скрипт в Telegram-бота Если вам нужен простенький Telegram bot, способный выполнять скрипты (написанные на любом языке) и отвечать текстом и картинками, то вам под кат. Там вы найдёте рассказ о бот-движке, который делает то, что вам надо. Читать дальше →

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

Тостер, Мой круг и Фрилансим становятся частью Хабра Сервисы Хабра прекращают работу под отдельными брендами и становятся самостоятельными проектами внутри бренда Хабра, образуя связанную линейку сервисов для IT-специалистов.   Читать дальше →

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

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

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

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

[Перевод] Руководство Google по стилю в C++. Часть 1 Часть 1. Вступление … Часть 8. Именование Часть 9. Комментарии … Все мы при написании кода пользуемся правилами оформления кода. Иногда изобретаются свои правила, в других случаях используются готовые стайлгайды. Хотя все C++ программисты читают на английском легче, чем на...

5 самых известных проектов, написанных на Golang О языке программирования Golang, созданном корпорацией Google, на Хабре рассказывали много и подробно, так что мы не будем в очередной раз обсуждать достоинства этого инструмента. Лучше поговорим об известных проектах, которые написаны на Go — они являются доказательством...

Amazon Go: магазин без касс — личный опыт О проекте «магазинов самообслуживания» Amazon Go начали говорить в середине десятых. Даже пост на Хабре был. Но одно дело — читать описания, и другое — узнать из первых рук, как это: зайти в магазин без кассиров, набрать товаров и that's it, как пишет Amazon на своём сайте. ...

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

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

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

Angular для Vue разработчиков Сейчас во фронтенде среди фреймворков есть три явных лидера: Angular, React и Vue. Думаю, мы можем судить о любви разработчиков к проекту по количеству звезд на GitHub. На момент написания данной статьи у Vue уже 161 тысяча звезд, на втором месте находится React с 146 тысяча...

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

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

[Из песочницы] Бакалавриат в США: Нетрадиционный путь в топ-вузики Прочитала я пару статей на хабре после того как прошла по ссылке со стороннего ресурса и мне как-то грустно стало так как я сама учусь в топ-университете в США и знаю нескольких из России. habr.com/ru/post/469275 habr.com/ru/post/230789 Однако, моя история не совсем станд...

Назад к истокам: рулим компьютером прямо из MBR Разворачивал в очередной раз Linux-образ на USB-drive (почему-то им оказался Manjaro, но это совсем другая история), и в голову пробрались странные мысли: BIOS увидел флешку, а дальше-то что? Ну да, там MBR, скорее всего GRUB и… А раз в MBR затесался чей-то кастомный код, зн...

Поиск ошибки FDCAN, которой нет Всегда работа с CAN была простой, но что-то пошло не так (в устройстве на КДПВ)… В последнее время мне часто удается использовать микроконтроллер STM32H750VB, и вот в одном устройстве понадобилось задействовать шину CAN, но первая же попытка, которую я предпринял показала в...

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

[Из песочницы] 3 года программирования вслепую. Часть 1 Всем доброго времени суток! Хочу поделиться своим опытом из разряда «Войти в IT». Тем более, что он происходил в полностью невизуальном режиме. О незрячих людях в нашем обществе знают мало, а о незрячих программистах еще меньше. И эта статья предлагает проследить за тем, как...

Подробный гайд по настройке Smart Filament Sensor от Bigtreetech Доброго времени суток коллеги!Добавляю пост по настройке Smart Filament Sensor от Bigtreetech, пишем комментарии, дополнения обсуждаем!Возможно этот пост поможет кому-нибудь справиться с установкой этого датчика, так как я в свое время намучался с ним!Информация по установке...

Осенняя сессия вопросов Хабру. AMA #22 Огромного размера чейнджлог Хабра оказался передо мной перед последней пятницей месяца. Но глаза боятся, а руки делают: текстовый скальпель почикал всё «системное» и оставил лишь то, на что можно обратить внимание — ознакомиться можно под катом. Ну а в комментариях традицион...

Как сбросить вес, не занимаясь спортом? Личный опыт Привет, Хабр! По моим наблюдениям, всех людей можно разделить на три категории: счастливчиков с нормальным телосложением, худых, кто не знает как бы поправиться, и полных, кто не знает как бы похудеть. Мне угораздило попасть в третью категорию, и всю взрослую жизнь мой вес ...

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

Разгоняем портал ДО на основе Moodle (решение проблем узких мест) В последнее время все острее встает вопрос об обучении онлайн, во время пандемии, так и в связи с переходом в онлайн всего и вся. На сайте Хабр есть материалы по установке базовой системы на основе moodle. В данной заметке хотелось бы поделиться некоторым опытом настройки с...

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

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

Как бросить школу и перевести ребенка на удалёнку Привет, Хабр! На днях моя дочь закончила 6й класс полностью в удалённом формате. Сразу несколько моих друзей обратились за обратной связью, потому что также задумываются о переводе детей на подобный формат обучения. Пандемия внесла свои корректировки в привычный и давно из...

Холст + любовь = сердце Доброго времени суток, друзья! На дворе 14 февраля — День святого Валентина или День всех влюбленных. Об этом знают все (что, кто-то не знает?). Однако не все знают (полагаю, на Хабре таких немного), что 14 февраля 1946 года научному миру и всем заинтересованным был про...

Mail.ru Group создаст для «Сухого» цифровую платформу предиктивной аналитики Цифровая платформа даст возможность централизованно собирать, обрабатывать и анализировать данные как с производственного оборудования, так и информацию о производственных процессах из информационных систем на предприятиях ПАО "Компания “Сухой”". Накопл...

ESP32 и файловая система SPIFFS SPIFFS – (Serial Peripheral Interface Flash File System) файловая система флеш-памяти, подключаемой по последовательному периферийному интерфейсу. Простыми словами: есть микроконтроллер ESP32 (рисунок 1), у него есть встроенная перезаписываемая энергонезависимая NOR-память,...

[Перевод] 5 JavaScript-библиотек для работы со строками Работа со строками может оказаться непростым делом из-за того, что она подразумевает решение множества разноплановых задач. Например, для простого приведения строки к «верблюжьему» стилю понадобится несколько строк кода: function camelize(str) {   return str.replace(/(?:^\w...

Управление LCD и OLED дисплеями на AVR-ассемблере Сразу предупреждаю, что не собираюсь разводить холивары насчет преимуществ AVR-ассемблера перед С/Arduino, или даже перед BASCOM-AVR и MikroPascal for AVR — каждый инструмент уместен в своей области. У ассемблерного подхода в ряде случаев имеются свои преимущества — в основн...

Программный контроллер интерфейса на STM32 Проблема обратной совместимости, вероятнее всего, будет всегда. В области разработки электроники порой приходится поддерживать устройства 30-летней давности (а иногда и старше). В таких аппаратах иногда всё собрано на логике, без каких-либо программируемых элементов. Кроме т...

Что такое Windows PowerShell и с чем его едят? Часть 3: передача параметров в скрипты и функции, создание командлетов Во второй части цикла рассматривались основы языка программирования PowerShell, а сейчас стоит разобраться с использованием написанного на нем кода для задач администрирования. Самый очевидный способ это сделать — запустить сценарий. Кроме него существует возможность созда...

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

Как научиться разработке на Python: новый видеокурс Яндекса Осенью прошлого года в московском офисе Яндекса прошла первая Школа бэкенд-разработки. Мы сняли занятия на видео и сегодня рады поделиться на Хабре полным видеокурсом Школы. Он позволит вам научиться промышленной разработке на Python. Авторы лекций — опытные разработчики в Я...

Оптимизация C++: совмещаем скорость и высокий уровень. Доклад Яндекса Что влияет на скорость работы программ на C++ и как её добиться при высоком уровне кода? Ведущий разработчик библиотеки CatBoost Евгений Петров ответил на эти вопросы на примерах и иллюстрациях из опыта работы над CatBoost для x86_64. Видео доклада ...

[Из песочницы] Ubuntu — не лучший настольный Linux Захотев перейти на Linux дома или на работе, люди обычно ставят Ubuntu, Mint, Fedora, порой даже Debian. И очень зря не пробуют Manjaro Linux — на мой взгляд, этот дистрибутив удобнее Убунты (которая уже де-факто — Default Linux), и даже удобнее Минта. Manjaro — производна...

Главные технологии десятилетия по версии Хабра Команда Хабра составила рейтинг из 10 технологий и устройств, которые изменили мир и повлияли на нашу жизнь. За пределами первой десятки остались еще около 30 крутых вещей — о них коротко в конце поста. Но самое главное — нам хочется, чтобы в составлении рейтинга поучаство...

Web Sip клиент на основе JsSIP + FreePBX У FreePBX есть Web Sip клиент. Мне было интересно как он работает. Начав изучать технологию WebRTC я наткнулся на 3 библиотеки — это JsSIP, его fork SIP.js, а также sipml5. JsSIP и SIP.js не удалось запустить с первого раза, не хватало опыта. А вот sipml5 оказался самым про...

[Из песочницы] Моя реализация кольцевого буфера в NOR flash Предыстория Есть торговые автоматы собственной разработки. Внутри Raspberry Pi и немного обвязки на отдельной плате. Подключены монетоприёмник, купюроприёмник, банковский терминал… Управляет всем самописная программа. Вся история работы пишется в журнал на флешке (MicroSD), ...

Почему много оперативной памяти — это хорошо Не так давно Samsung представила Galaxy S20, минимальная модификация которого оснащена 8 ГБ ОЗУ, а максимальная предлагает 16 гигабайт. Новый Xiaomi Mi 10 также предлагает 8 гигабайт оперативной памяти. Но зачем же смартфонам так много памяти? На этот вопрос я и попытаюсь о...

Белые методы в SEO, которые работают в 2020 На нашем рынке основные поисковые системы — Яндекс и Google. Мы должны оптимизировать наш сайт так, чтобы именно он находился по интересующим нас запросам на первых местах. Это и называют находиться в топе в поисковиках. ...

[Перевод] Руководство по версиям и возможностям Java Здесь есть все, что вам нужно знать о различных версиях и функциях Java. Java 8, Java 11, Java 13 — какая разница? Вы можете использовать это руководство, чтобы найти и установить последнюю версию Java, понять различия между дистрибутивами Java (AdoptOpenJdk, OpenJDK, Oracl...

Игры от Илона Маска для детей 8-14 лет (играем всем Хабром в комментах) Илон Маск сделал школу Ad Astra «для своих», а недавно команда этой школы стартовала онлайн-школу за $7500 (занятия онлайн раз в неделю). Там я нашел несколько игр, которые показались мне очень интересными. А давайте всем Хабром поиграем? Пишите свои ответы в опросах и ...

Security Week 32: уязвимость в GRUB2 29 июля компания Eclypsium опубликовала исследование новой уязвимости в загрузчике Grub2, массово используемом в системах на базе Linux — от ноутбуков и IoT-устройств до серверов. Суть уязвимости довольно простая: ошибки при обработке текстового конфигурационного файла grub....

[Перевод] Провал ERP проекта (Liqui Moly, Отто и им подобным посвящается) Привет, Хабр! После того, как несколько моих коллег независимо друг от друга прислали линк к этой статье, мне подумалось, что, возможно, она будет полезна и для тех, кто не говорит по-немецки. Посему предлагаю Вашему вниманию перевод статьи из немецкой версии журнала CIO от...

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

CES 2020, IBM и первое настоящее коммерческое применение нового квантового компьютера План статьи: 1. Инфоповод – неожиданное заявление IBM на CES 2020. 2. А что же мы ожидали? 3. Технология квантовых компьютеров IBM развивается быстрее планов (в действительности – нет). 4. Возникновение новых отраслей прямо сейчас. 5. Мы угадали момент, вот наши книги для в...

Habr vs Medium: сколько можно заработать опубликовав 9 статей на Medium.com Привет Хабр. Наверное многие авторы, публикующие статьи на русскоязычных ресурсах, хотя бы раз задумывались о публикации своих текстов в англоязычном сегменте интернета. Мне тоже стало интересно узнать, как это работает и какой отзыв аудитории можно получить. Я пишу статьи ...

Печатаем ABS от Solid filament. В прошлом году связался со мной представитель магазина top3dshop и предложил взять их филамент на тесты. Под Новый Год пришла упаковка филаментов под брендом Solid. Первой была попытка взять в работу катушку нейлона, но пластик оказался недосушенным и был отправлен на полку ...

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

[Перевод] Мой второй год в качестве независимого разработчика Иллюстрация Лорейн Йоу. Суслик-талисман языка Go адаптирован из работ Рене Френч Два года назад автор этой статьи Майкл Линч (Michael Lynch) уволился с должности инженера-программиста в Google, чтобы начать собственный бизнес (см. статью «Почему я ушёл из Google и начал ра...

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

Umka. Жизнь статической типизации в скриптовом языке В своё время посты на Хабре и Reddit о статически типизированном скриптовом языке Umka вызвали весьма активную дискуссию. Прошедшие полтора месяца позволили мне избавиться от некоторых заблуждений, развить язык и дать чуть более вразумительные ответы на вопросы публики. ...

Что скрывается за VestaCP Вряд ли сейчас кому-то может прийти в голову мысль написать свою панель управления сервером: интернет давно прикипел к ISP, cPanel, Plesk и десятку их аналогов. Все «взрослые» панели умеют примерно одно и то же, различаясь лишь интерфейсом, уровнем поддержки и специфически...

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

Декодируем сигнал метеоспутника NOAA в 50 строчек кода Привет, Хабр. Продолжим тему декодирования различных видов радиосигналов. Одним из интересных форматов, разработанных еще в прошлом веке, является APT (Automatic Picture Transmission). Он используется для передачи изображений Земли из космоса, и что для нас гораздо более ин...

«Раз, два, три – ёлочка гори!» или мой первый взгляд на контроллер CANNY 3 tiny «Новый год» это мандарины, оливье, выходные и конечно же подарки. Как вы, уже наверняка догадались я неожиданно стал обладателем микроконтроллера CANNY 3 Tiny. Правда я особо DIY электроникой не увлекаюсь и последний раз сам пытался что-то подключить к контроллеру почти сем...

Курс «SMM Профессионал» онлайн Пройдите бесплатно вводный урок онлайн. Расскажем, как устроен SMM-маркетинг, о его влиянии на карьеру и проекты, и как проходит обучение. Курс SMM — Social Media Marketing Specialist Diploma — разработан в Дублине. Именно здесь...

Курс SMM Профессионал Пройдите бесплатно вводный урок онлайн. Расскажем, как устроен SMM-маркетинг, о его влиянии на карьеру и проекты, и как проходит обучение. Курс SMM — Social Media Marketing Specialist Diploma — разработан в Дублине. Именно здесь, в ...

Three.js и геометрия При использовании для отображения в браузере библиотеки ThreeJS в качестве первого примера обычно выступает куб или какой-либо другой простейший объект, и он создается при помощи предустановленных специальных классов BoxGeometry или SphereGeometry. Затем обычно рассматривает...

[Перевод] Как устроен Selenium: Эпизоды 3 — 5 Салют, хабровчане. Сегодня мы продолжаем серию переводов, приуроченных к запуску курса «Java QA Engineer». Эпизод 3 — isDisplayed В результате диалога, произошедшего в последние выходные января 2020 года, который был посвящен одной из проблем в Selenium, где кто-то сказал ...

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

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

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

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

[Перевод] Основы работы с Shader Graph в Unity Шейдер — это небольшая программа, содержащая инструкции для GPU. Она описывает способ вычисления экранного цвета для определённого материала. Хотя у Unity есть Standard Shader, иногда требуется реализовать эффект, на который не способен стандартный шейдер. Раньше для этог...

Коронавирус COVID-19: только факты, без паники Паника — худшее, что может случиться во время пандемии. Хабр всегда был и остается местом, где людям важны факты, а не домыслы. Факты такие: коронавирус оказался заразным и в некоторых случаях — смертельным. Государства избирательно закрывают границы, авиакомпании отменяют р...

Полевые исследования концепции «Documentation as code» Всем привет! Меня зовут Денис Олейник, я работаю техническим директором в 1Service. В нашей компании мы достаточно много времени уделяем работе с требованиями. По мере обретения опыта мы стали осознавать, что инструменты, обычно используемые при разработке программных проду...

Как добавить кодек в FFmpeg FFmpeg — это грандиозный Open Source проект, своего рода мультимедийная энциклопедия. С помощью FFmpeg можно решить огромное число задач компьютерного мультимедиа. Но все-таки иногда возникает необходимость в расширении FFmpeg. Стандартный способ — это внесение изменений в к...

3.Elastic stack: анализ security логов. Дашборды В прошлых статьях мы немного ознакомились со стеком elk и настройкой конфигурационного файла Logstash для парсера логов, в данной статье перейдем к самому важному с точки зрения аналитики, то что вы хотите увидеть от системы и ради чего все создавалось — это графики и табл...

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

[Перевод] «Культурный код: секреты чрезвычайно успешных групп и организаций» — заметки из книги Я прослушал книгу "Культурный код" Даниела Койла ("The Culture Code: The Secrets of Highly Successful Groups" by Daniel Coyle) после прочтения отрывка, который оставил впечатление «вот оно!» Вся книга оказалась на том же уровне, что и вступление. Она пол...

Графический процессор SoC Apple A12Z Bionic оказался быстрее GPU Ryzen 5 4500U и Core i7-1065G7 Тест однокристальной платформы Apple A12Z Bionic дает представление о том, насколько мощными будут компьютеры Mac на базе процессоров на архитектуре Arm. Графический процессор A12Z Bionic в тесте OpenCL обошел по производительности встроенные GPU APU Ryzen 5 4500U и CPU...

Хабр Конкурс: победители конкурса идей В конце прошлого года мы провели ребрендинг — все наши проекты стали частью Хабра. О таком событии нельзя не рассказать, поэтому за пост-анонс взялись сразу двое — я и Deniskin. В итоге мы не смогли решить, чей пост будем публиковать, поэтому разместили оба: раз и два. П...

Бот в telegram, который следит за доменом Привет жителям Хабра. В попытках изучения PHP и долгих раздумьях, пришла в голову мысль, для практики написать какого-нибудь бота на PHP, без использования фрэймворков. Выбор пал на бота, который будет получать информацию о жизни домена (whois), затем доставать оттуда дату...

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

Немного про устройство современного радио на примере HackRF One Приветствую, Habr! Некоторое время назад в поле моего зрения очень часто попадало множество статей, видеороликов о теме SDR трансиверов. Тема представляет интерес и сегодня. Большой популярностью среди радиолюбителей и других, разного рода, «технарей» пользуются устройства H...

Node.js в 2020: Выйди и зайди нормально За последние 5 лет Node.js очень изменился, но знания о платформе у сообщества остались на уровне 2013-2015 годов, все те же подходы, все те же проблемы. Сообщество плохо следит за новыми возможности, а если и узнает про них, то это не влияет на написание ежедневного кода. ...

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

Я не понимаю, что хочу. Как пользователю сформулировать требования к CRM «Когда кто-то трогает крестик, должен плакать персиковый медвежонок»*, — это, пожалуй, самое милое требование из тех, что мне приходилось встречать (но, к счастью, не реализовывать). Оно было сформулировано сотрудницей с 12 годами опыта работы в одной компании. Вы поняли, чт...

Сравнение динамики котировок двух акций на python на примере привилегированных и обычных акций Сбербанка Здравствуйте, сегодня хотел бы рассказать про мой опыт анализа акций сбербанка. Порой они показывают немного разную динамику — мне стало интересно проанализировать движение их котировок. В данном примере мы будем скачивать котировки с сайта Финама. Ссылка для скачивания обы...

WhatsApp и Instagram могут скоро заблокировать После проигранного дела о нарушении патентов, приложения Facebook вроде WhatsApp и Instagram вскоре могут оказаться заблокированными, по крайней мере, в Германии.  На Facebook подала в суд Blackberry. Компания утверждала, что в приложениях WhatsApp, Facebook Messe...

STM32 Часть 3: Первый Проект Мы наблюдаем общество, которое все больше зависит от машин, но при этом использует их все неэффективнее. — Douglas Rushkoff Эта фраза должна служить мотивацией для каждого программиста. Ведь именно вы решаете как машина использует свои ресурсы. Но как и с начала времен, чел...

Распределённая команда и тимлид на удалёнке Привет, меня зовут Григорий. Я работаю тимлидом распределённой команды в Positive Technologies. Это мой рассказ, как я стал лидом распределённой команды, с какими проблемами сталкивался, как их решал и какой опыт получил. Мотивами к написанию статьи стали два факта: во-первы...

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

Дружим STM32 с LCD дисплеем 1604 по I2C шине (библиотека HAL) Привет, Хабр! В этой статье я хотел бы рассказать о своем опыте подключения LCD дисплеев к микроконтроллеру STM32 с использованием библиотеки HAL по I2C шине. Подключать буду дисплей 1602 и 2004. Они оба имеют припаянный I2C адаптер на основе чипа PCF8574T. Отладочной пл...

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

IntelliJ IDEA: Structural Search & Replace Современные IDE — очень мощные инструменты, способные помогать разработчику в самых разных ситуациях. Но обратной стороной этой мощности является то, что большинство функций находится в тени — об их наличии мало кто подозревает. Простой пример одной...

Похмелье 8 марта: ещё одна статья на Хабре о женщинах в ИТ «Если, по-вашему, женщина может быть кузнецом, то почему бы мужчине не быть педикюршей? Она кует, он пилит, прекрасная пара!» К/ф «Берегите женщин» Я читаю Хабр года так с 2009-го. Последние несколько лет накануне 8 марта случается вал публикаций, спецпроектов, мегапостов и...

[Перевод] Теперь я понял, почему почти никто не шифрует свою почту Шифрование электронной почты — трудная и болезненная процедура. Недавно я сам понял, насколько. Одна моя знакомая, очень продвинутая в сфере информационной безопасности, прислала мне свой открытый ключ PGP и попросила перейти на шифрование. Нет, она не из АНБ или ЦРУ, прос...

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

Битва двух якодзун, или Cassandra vs HBase. Опыт команды Сбербанка Это даже не шутка, похоже, что именно эта картинка наиболее точно отражает суть этих БД, и в конце будет понятно почему: Согласно DB-Engines Ranking, две самых популярных NoSQL колоночных базы — это Cassandra (далее CS) и HBase (HB). Волею судеб наша команда управления...

STM32MP1 — ядра + Linux = идеальный микроконтроллер По роду своей деятельности занимаюсь разработкой различных приборов: измерительных, управляющих, контролирующих и т.п. В подавляющем большинстве устройство делится на 2 части: Требующий больших ресурсов микроконтроллера и не требующий жесткого реального времени графически...

Обзор работы «Learnability Can Be Undecidable» Эта статья является моим вольным пересказом работы Learnability can be undecidable, Shai Ben-David, et al. Недавно на Хабре вышла статья Машинное обучение столкнулось с нерешенной математической проблемой, которая является переводом одноименного обзора в Nature News статьи Ш...

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

[Перевод] Как работает Spring Boot Auto-Configuration Глубокое погружение в мир аннотации Spring Boot @Conditional с проработанными примерами реализаций классов доступа к БД Mongo и MySQL. В моем посте «Почему Spring Boot?» было рассмотрено создание Spring Boot приложения, из которого вы едва ли сможете понять, что происходит з...

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

Как проверить навыки программирования на Python? Задачи от Яндекса Хакатон в Школе бэкенд-разработки В 2019 году нам потребовалось автоматизированно проверить умение писать Python-код у сотен разработчиков. Так мы отбирали будущих студентов для Школы бэкенд-разработки. Это не то же самое, что предложить решить задачу на листе бумаги, как ...

Как Хабр взаимодействует с госорганами и другими заявителями. Transparency report за все годы Привет, Хабр! Наконец-то представлюсь — меня зовут Алексей Шевелёв и в Хабре я руковожу отделом по работе с пользователями (куда входит фидбек через форму обратной связи по всем проектам), попутно являясь Комьюнити Менеджером. И так получается, что с некоторой периодичностью...

K8S Multicluster Journey Привет, Хабр! Мы представляем команду платформы компании Exness. Ранее наши коллеги уже писали статью про Production-ready images for k8s. Сегодня мы хотим поделиться опытом миграции сервисов в Kubernetes. Читать дальше →

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

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

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

Так ли страшна Exynos 990? Разница с SoC Snapdragon 865 при обычном использовании минимальна Мы уже не раз убеждались в том, что SoC Exynos 990 однозначно хуже Snapdragon 865, а это значит, что смартфоны Samsung линейки Galaxy A20 на основе первой хуже аналогичных на основе второй. Но тут есть важный нюанс. Основная проблема Exynos 990 — нагрев, троттлин...

[Из песочницы] Как развивались комментарии к коду с 1940-х до 2020 года А никак они не развивались. С самых первых языков программирования и по сей день комментарии коду — это всего лишь статичный текст (за некоторыми исключениями, о которых я расскажу). Ну а что там еще можно улучшить или придумать — спросите вы. Давайте поразмышляем на эту...

Гайд для фрилансеров: самые частые вопросы по работе ИП В ноябре мы задумали собрать большой пост с ответами на вопросы о том, как жить, если ты индивидуальный предприниматель (ИП). Мы попросили пользователей Хабра набросать нам вопросы из серии «хотели знать, но боялись спросить». Получился отличный список. Ответить на вопросы ...

CreateRemoteThread для Linux В WinAPI есть функция CreateRemoteThread, позволяющая запустить новый поток в адресном пространстве другого процесса. Её можно использовать для разнообразных DLL-инъекций как с нехорошими целями (читы в играх, кража паролей, и т. д.), так и для того, чтобы на лету исправить ...

.NET nanoFramework — платформа для разработки приложений на C# для микроконтроллеров .NET nanoFramework — это бесплатная платформа с открытым исходным кодом, основанная на .NET и предназначена для малых встраиваемых устройств, микроконтроллеров. С ее помощью можно разрабатывать различные устройства для Интернета вещей, носимые устройства, научные приборы, ...

Потрошим Windows 10. Легкий способ собрать свой дистрибутив Windows Для подписчиковСборка собственных дистрибутивов ОС — любимое развлечение линуксоидов. Считается, что пользователи Windows лишены столь привлекательной возможности проводить свободное время. Но это не так: существуют способы как минимум выпилить из дистрибутива Windows 10 лиш...

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

[Перевод] Python. Язык, на котором просто мыслить Привет, Хабр! У нас возможен предзаказ долгожданного второго издания книги "Простой Python". Перевод первого издания вышел в 2016 году и по сей день остается в числе бестселлеров. Поскольку мы убеждены, что Python — лучший язык программирования для начинающих, ...

[Перевод] Вызов принят: OpenBSD на ноутбуке Хотелось бы поделиться, может быть и не самым новым, но отчасти познавательным и местами увлекательным, опытом установки на ноутбук операционной системы не из мейнстрима (т.е. не Windows или Linux) для хоть сколько-нибудь полноценной работы в наше (развращённое) время. Начал...

[Перевод] Вы правда знаете о том, что такое массивы? Там, где я тружусь, от веб-разработчиков ожидают знания PHP и JavaScript. Я, проводя собеседования, обнаружил, что достаточно задать всего один простой вопрос для того чтобы узнать о том, насколько глубоко разработчик понимает инструменты, которыми пользуется каждый день. Во...

Миллиард операций в базе данных за 0.3 секунды. Не сравнивайте OLTP с OLAP, а QuestDB с PostgreSQL Очень часто за свой 15летний опыт работы разработчиком ПО и тимлидом я сталкиваюсь с одним и тем же. Программирование превращается в религию — редко кто пытается внедрять технологии на основе разумного выбора, аргументированно, с учетом ограничений, возможностей переносимост...

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

[Перевод] Ассемблер RISC-V для начинающих Если вы не знаете ни одного ассемблера, или, возможно, не имеете большого опыта кодинга как такового, то ассемблер RISC-V может быть одним из лучших вариантов для того, чтобы погрузиться в эту тему. Конечно, материалов по ассемблеру x86 гораздо больше. Больше людей, которые ...

Идеальный инструмент для работы с СУБД без SQL для Node.js или Все, что вы хотели знать о Sequelize. Часть 2 Представляю вашему вниманию руководство по Sequelize. Sequelize — это ORM (Object-Relational Mapping — объектно-реляционное отображение или преобразование) для работы с такими СУБД (системами управления (реляционными) базами данных, Relational Database Management System, RD...

[Из песочницы] Запускаем браузерные тесты с Cucumber и Selenoid в Gitlab CI c Allure отчетом Cucumber – это инфраструктура тестирования, позволяющая преодолеть разрыв между разработчиками ПО и бизнес-менеджерами. Тесты пишутся на простом языке управляемой поведением разработки (BDD) в стиле Given, When, Then (условия, операция, результат), которой понятен любому пол...

Симуляционное моделирование механической системы средствами визуального программирования Scilab\Xcos Вместо предисловия. Эта небольшая по объему работа была экстренно выполнена с учебными и демонстрационными целями около года назад на базе уже разработанной ранее модели струны. Как водится, потом полежав энное время без дела, недавно она попалась мне на глаза. Что такое S...

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

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

Анонс AOC CU34G2X и CU34G2: сверхширокие изогнутые мониторы для геймеров Компания AOC выводит на российский рынок новые изогнутые игровые мониторы линейки AOC CU34G2. Среди представленных новинок оказались монитор AOC CU34G2X с высокой частотой обновления 144 Гц и CU34G2 с более скромными 100 Гц. Подробнее об этом читайте на THG.ru.

VKWave — фреймворк для разработки ботов ВКонтакте Привет, Хабр! Сегодня я хочу рассказать о замечательной библиотеке для разработке ботов ВКонтакте с помощью языка программирования Python. VKWave VKWave — это фреймворк для разработки ботов ВКонтакте, написанный с помощью asyncio. Основные цели проекта — дать возможность ра...

Отечественный микроконтроллер К1986ВК025 на базе процессорного ядра RISC-V для приборов учета электроэнергии Добро пожаловать в эпоху RISC-V! Решения на базе открытого стандарта системы команд RISC-V всё чаще появляются на рынке. Уже в серийном производстве микроконтроллеры от китайских коллег, интересные решения предлагает Microchip с FPGA на борту. Растет экосистема ПО и средст...

[Перевод] Рейт лимиты с помощью Python и Redis В этой статье мы рассмотрим некоторые алгоритмы рейт лимитов на основе Python и Redis, начиная с самой простой реализации и заканчивая продвинутым обобщённым алгоритмом контроля скорости передачи ячеек (Generic Cell Rate Algorithm, GCRA). Для взаимодействия с Redis (pip in...

[Из песочницы] Наука vs IT. Как я бросил исследования ради разработки Привет, Хабр. Меня зовут Михеев Илья, я back-end разработчик в компании FINCH. Сегодня я расскажу о том, как простые люди попадают в IT, почему в «Сбере» на «Каширке» все плохо, а заодно расскажу почему молодые ученые уходят в IT. Думаю, что последняя тема больная для мног...

[Перевод] Опциональная цепочка, объединение с null, и как они меняют наш подход к написанию кода Автор фото — Miguel Á. Padriñán. Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи Sam Sedighian «Optional Chaining, Null Coalescing and How They Will Change the Way You Write Code». Опциональная цепочка, объединение с null, и как они меняют подхо...

Бывший главред TJ о письмах из ФСБ: будет история «Дуров 2.0», но хедлайнером станет Хабр Вчера бывший главный редактор TJournal, Никита Лихачёв, запостил в своём телеграм-канале пару длинных аудиосообщений, почти подкаст, где рассказывает, что он думает о реестре ОРИ, письмах в крупные интернет-сервисы из ФСБ и место Хабра во всей этой истории. Знаю, на Хабре бо...

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

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

Статическая подписка с использованием шаблона Наблюдатель на примере С++ и микроконтроллера Cortext M4 Всем доброго здравия! В преддверии Нового года хочу продолжить рассказывать про использование С++ на микроконтроллерах, на этот раз попытаюсь рассказать про использование шаблона Наблюдатель (но далее я буду называть его Издатель-Подписчик или просто Подписчик, такой вот ка...

[Перевод] Почему разработчики влюбляются в функциональное программирование? Функциональное программирование (ФП) существует уже лет 60, но до сих пор оно всегда имело достаточно узкую сферу использования. Хотя компании, меняющие мир, вроде Google, полагаются на его ключевые концепции, средний современный программист знает об этом феномене очень мало...

BIGTREETECH SKR PRO V1.1 и концевики. Вообще я не писатель, а читатель больше. Но вчера столкнулся с проблемой о которой хочу сообщить народу.Это схема подключения концевиков к плате.Местом подключения выводов микроконтроллера является анод светодиода, который катодом сидит прямо на земле. Это значит, что потенц...

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

C2x: будущий стандарт C Я ловлю в далёком отголоске, Что случится на моём веку. («Гамлет», Борис Пастернак)Признаться, пишу на чистом C я не так уж и часто и за развитием языка уже давно не слежу. Но тут произошло два неожиданных события: С вернул себе звание популярнейшего языка программирования ...

Немного SQL алхимии О популярной библиотеке SQLAlchemy для работы с разными СУБД из Python было написано довольно много статей. Предлагаю вашему вниманию обзор и сравнение запросов с использованием ORM и SQL подходов. Данное руководство будет интересно прежде всего начинающим разработчикам, пос...

Когда и как автомобили становились безопаснее День автомобилиста только через пару месяцев, но я все же рискну. Нашла на YouTube ролик с громким обещанием «75 минут — и ты будешь пристегиваться». Пристегивалась я и так, а ролик оказался интересным, про историю инженерной мысли, но на целый 1 час 15 минут. Времени у ...

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

Почему мой NVMe медленнее SSD? В данной статье мы рассмотрим некоторые нюансы подсистемы ввода-вывода и их влияние на производительность. Пару недель назад я столкнулся с вопросом, почему NVMe на одном сервере медленнее, чем SATA на другом. Посмотрел в характеристики серверов и понял, что это был вопрос...

Выпуск#33: ITренировка — актуальные вопросы и задачи от ведущих компаний Привет! У кого какой день карантина? Побочная сила коронвариуса — он убил все остальные новости. А все остальные новости, как известно, плохие, так что это хорошая новость. В общем, мы посовещались и решили на этой неделе предложить задачки на тему… вирусов. Спокойно, зар...

Stm32 + USB на шаблонах C++. Продолжение. Делаем CDC Продолжаю разработку полностью шаблонной библиотеки под микроконтроллеры Stm32, в прошлой статье рассказал об успешной (почти) реализации HID устройства. Еще одним популярным классом USB является виртуальный COM-порт (VCP) из класса CDC. Популярность объясняется тем, что обм...

Используем Cura для печати на SLA Photon Оговорюсь сразу  что статья была первично была опубликована на хабре, решил что тут тоже может кого заинтересовать и решил продублировать...Как это бывает, решил изучить новые технологии 3д печати и купил себе 3D SLA принтер Photon, но его софт а именно слайсер (AnyCubic Pho...

[Перевод] Установка и правильная настройка Docker на Windows Subsystem Linux (WSL) Предварительные требования Прежде чем начать, убедитесь, что ваша система имеет примерно следующую конфигурацию: Windows 10 Version 1803 Build 1734 и выше Ubuntu for WSL 16.0.4 LTS или что-то в этом роде (ваша версия может немного отличаться) Важно, чтобы версия и сборка ...

React Native для самых маленьких. Опыт мобильной разработки Однажды, в одной продуктовой команде захотели разработать мобильное приложение, чтобы проверить гипотезу востребованности продукта и его удобства для пользователей. И то, что в команде не было мобильных разработчиков, не помешало. Два фронтенд-разработчика взяли React Native...

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

20 SEO-мифов, которые должны умереть в 2020 Хабр читают не только разработчики, и не только люди связанные с IT, некоторые из моих клиентов иногда кидали мне ссылки на Хабр, и среди них были такие, которые совсем далеки от IT. Поэтому в этой статье будет максимально простым языком объясняться некоторые аспекты SEO. К ...

[Перевод] PEP 257 на русском. (Соглашение о Docstrings) Привет, Хабр. Бывают моменты, когда тебе хочется максимально погрузиться в язык и понять все его тонкости. В случае Python один из лучших способов это сделать — читать на официальном сайте документацию и PEP-ы. В своё время я этого не делал, поскольку не мог понять многих «т...

(Не)очередной MQTT телеграм бот для IoT Всем привет! Сегодня хочу поделиться опытом разработки универсального телеграм бота для получения информации и управления IoT устройствами посредством протокола MQTT. Почему (не)очередной? Потому что это не просто бот с двумя захардкоженными кнопками для управление лампочк...

[Перевод] Советы и хитрости IntelliJ IDEA: 1. Сравнение файлов и папок От переводчика: В блоге Войтеха Рузички по программированию имеется 13 постов с тегом IDEA. Один из был переведен и опубликован на Хабре — Лучшие плагины IntelliJ IDEA. Он оказася довольно популярен и я решил попробовать перевести и другие посты об IDEA. Надеюсь будут полезн...

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

[Из песочницы] Кодогенерация в Go на примере создания клиента к БД В данной статье хотелось бы рассмотреть вопросы кодогенерации в Golang. Заметил, что часто в комментариях к статьям по Go упоминают кодогенерацию и рефлексию, что вызывает бурные споры. При этом на хабре статей по кодогенерации мало, хотя она применяется довольно много где в...

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

Курс «SMM Профессионал» Пройдите бесплатно вводный урок онлайн. Расскажем, как устроен SMM-маркетинг, о его влиянии на карьеру и проекты, и как проходит обучение. Курс SMM — Social Media Marketing Specialist Diploma — разработан в Дублине. Именно здесь...

Использование механизмов криптографических токенов PKCS#11 на платформе Android Подошло время задействовать криптографические механизмы PKCS#11 и на платформе Android. Кто-то может сказать, что нет аппаратных токенов для Android. Но, если это и так, то это только временное явление. Но уже сегодня можно поставить программный токен или использовать облач...

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

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

Создаем структуру простого мультиплатформенного бота Регистрация пользователей на мероприятия, автоматический поиск ответов в базе, общение с техподдержкой, обмен контактами — все это часть функций нашего бота Leader-ID. Он «живет» на трёх платформах: VK, Facebook Messenger и Telegram, при этом логика его работы пишется один р...

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

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

Решаем практические задачи в Zabbix с помощью JavaScript Тихон Усков, инженер команды интеграции Zabbix Zabbix — кастомизируемая платформа, которая используется для мониторинга любых данных. С самых ранних версий Zabbix у администраторов мониторинга была возможность запускать различные скрипты через Actions для проверок на целевы...

Убийства и анализ данных Привет, Хабр. Меня зовут Алексей Кнорре, и я криминолог, аспирант в UPenn и аффилированный научный сотрудник в ЕУСПб. Подумал, что сейчас, после месяцев карантина, самое время рассказать о преступности. Неясная экономическая ситуация, рост безработицы, ухудшение общественно...

АМА с Хабром #15. Новогодний и самый короткий выпуск! Чат Обычно это бывает в последнюю пятницу каждого месяца, но в этот раз — в последний вторник года. Но суть не поменяется — под катом будет список изменений на Хабре за месяц, а также предложение позадавать вопросы команде Хабра. Но так как именно вопросов традиционно будет немн...

Как мы работаем с логами (сбор, хранение, анализ при помощи Graylog) Всем привет! В этой статье мы хотим поделиться нашим опытом использования полезной платформы Graylog, которая ежедневно помогает собирать, надежно хранить и анализировать логи с десятков серверов, окутанных заботой нашей поддержки :)Это первая часть статьи, в которой мы расс...

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

[Из песочницы] Топ 5 причин, почему мне нравятся пользовательские свойства CSS Привет, Хабр! Представляю вашему вниманию перевод статьи «My top 5 reasons why I like CSS custom properties», автора Stas Melnikov Спецификация пользовательских свойств CSS навсегда изменила мой взгляд на веб-разработку. Именно поэтому я хочу написать, почему мне нравятся п...

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

[Перевод] Путь к Global Talent Visa в UK В мае 2021го я получил Talent Visa от правительства Великобритании, с одобрения Tech Nation как Exceptional Talent. В этой статье я хотел бы задокументировать свой путь к ней. Быть может это поможет кому-то еще. На Хабре уже была отличная статья на эту тему. Моя статья предс...

Автоматизация задач администрирования API VMware vSphere с использованием Ansible В предыдущей статье мы рассмотрели взаимодействие с VMware с помощью Python. В этой же обсудим взаимодействие с VMware с помощью Ansible. Ansible — система управления конфигурациями, написанная на языке программирования Python с использованием декларативного языка разметки ...

Жизнь и работа в условиях национального карантина Вступление Не думаю, что сегодня большой новостью будет то, что в Италии карантин, который распространяется на всю территорию страны. Данный пост пишется из Эмилии Романьи, точнее её второй части, и в нем будет только моё субъективное видение того, что творится в стране и ре...

Сборка приложения среды arduino средствами CI github Немного имея по работе дело с CI/CD (gitlab ce), не так давно на github наткнулся на actions, и решил попробовать, что же это за зверь такой. Собирать JS или какие то другие решения не очень интересно было, поэтому решил протестировать сборку Arduino скетча для esp8266, ...

Стоит ли уменьшать разрешение экрана смартфона? Стоит ли уменьшать разрешение экрана смартфона? Функция, позволяющая понизить на программном уровне разрешение экрана, существует на рынке уже несколько лет. Многие при покупке смартфона сразу же решают переходить с 3K-разрешения на FullHD. Самыми популярными устройствами с ...

[Из песочницы] OSCP — мой опыт Что это за четыре буквы и кому это вообще надо? Я не буду описывать курс PWK и OSCP экзамен, простой запрос «OSCP review» выдаст вам кучу обзоров, описание формата, рекомендации и структуру курса. Просто поделюсь своим собственным опытом, как я сделал это и какие решения при...

WSL эксперименты. Часть 2 Привет, Хабр. В преддверии старта курса «Administrator Linux. Professional» публикуем продолжение статьи про WSL эксперименты, которую написал наш эксперт — Александр Колесников. Настало время для продолжения экспериментов с подсистемой WSL; первую часть статьи можно посм...

Германия, или Туда и Обратно — 2 В первой статье цикла я описал свой переезд в Германию с семьей. Обосновались мы в красивом и благородном городе — Висбадене. Именно тут Достоевский прокутил все свое состояние. Казино в Висбадене Я же в принципе не азартен, поэтому намеревался просто пожить в Европе. По...

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

[Перевод] Архитектурный шаблон MVI в Kotlin Multipaltform, часть 1 Около года назад я заинтересовался новой технологией Kotlin Multiplatform. Она позволяет писать общий код и компилировать его под разные платформы, имея при этом доступ к их API. С тех пор я активно экспериментирую в этой области и продвигаю этот инструмент в нашей компани...

Раскрыты характеристики мобильного APU Ryzen 7 5700U. Частота выше, чем у Ryzen 7 4800U Мобильный гибридный процессор AMD Ryzen 7 5700U, недавно засветившийся в ноутбуке Acer, на этот раз отметился в базе данных Geekbench в составе какого-то ноутбука HP. Благодаря этому подтверждены характеристики APU. Как и можно было прогнозировать, Ryzen 7 5700U ок...

[Из песочницы] Синхронизация пользователей Zimbra Collaboration OSE на основе Active Directory 1. Предпосылки Настраивая сервер zimbra столкнулся с проблемой синхронизации пользователей по группе в Active Directory (AD). Если мы создаем нового пользователя в AD, то он нормально добавлялся, но если мы делаем доступ к почтовому серверу по группе, то первый раз все польз...

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

[Перевод] Руководство по возможностям Java версий 8-14 Здесь есть все, что вам нужно знать о различных версиях и функциях Java. Java 8, Java 11, Java 13, Java 14 — какая разница? Вы можете использовать это руководство, чтобы получить практическую информацию о том, как найти и установить последнюю версию Java, понять различия ме...

Как я искал нормальный RDP-клиент и нашел целых три Remote Desktop Protocol — один из самых распространенных протоколов для удаленного управления, потому что он используется для работы с операционными системами Windows, которые часто незаменимы в корпоративной среде. Естественно, самый распространенный способ подключения к ...

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

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

Debian: простое превращение i386 в amd64 Это краткая статья о том, как без переустановки организовать 64-x битную архитектуру на вашем 32-х битном Debian/Deabian-based дистрибутиве (который вы могли по-невнимательности загрузить вместо 64bit). * Ваше железо должно изначально поддерживать amd64, магию творить никто...

Нетривиальные анимации в SwiftUI Идея На WWDC 2019 была представлена SwiftUI — технология коренным образом влияющая на создание UI в приложениях для экосистемы Apple. Нам в Distillery стало интересно в ней разобраться чуть глубже, чем это подано в примерах от Apple. В идеале нужно было запилить какой-нибудь...

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

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

Как человеческая моча может помочь в строительстве зданий на Луне? Луна — один из самых вероятных объектов Солнечной системы, где уже в скором времени может полноценно обосноваться человек. Хотя земной спутник расположен на довольно близком от нас расстоянии, современные технологии позволяют нам транспортировать на лунную поверхность...

Ох уж этот медленный C/C++ Это небольшое подведение итогов на пост “Быстрее, чем C++; медленнее, чем PHP” Неблагодарное дело — «спорить» в комментариях, поэтому формулирую несколько мыслей в отдельный пост. Автор утверждал тут, тут, и еще много где, что у него большой стаж и богатый опыт в программир...

Интеграция в проект LVGL графической библиотеки для микроконтроллеров LVGL — Light and Versatile Graphics Library также известная как LittleVGL. Библиотека поддерживает большое количество микроконтроллеров, таких как STM32, ESP32 и другие. Мне пока удалось запустить полноценную демо программу на ESP32 и STM32f429 Discovery. Библиотека открыт...

[Из песочницы] Поиск работы в Германии продакт менеджером и не только. Часть 1/5. Почему Германия? Виза для поиска работы Всем привет, меня зовут Тимофей. Мне 43 года, последние 20 из которых я провел в IT — сначала разработчиком, а затем менеджером проектов и бизнес девелопером. Всю жизнь прожил в Новосибирске, но в прошлом году решился на эмиграцию, в качестве страны назначения выбрав Германи...

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

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

Как работать с API Google Таблиц (Google Sheets API v4) на языке R с помощью нового пакета googlesheets4 Электронные таблицы по-прежнему остаются довольно популярным инструментом для работы с данными, а среди различных процессоров электронных таблиц наиболее популярными являются Google Таблицы. Во-первых, это бесплатный инструмент, во-вторых, функционал Google Таблиц достаточно...

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

Соревнование от Яндекс.Такси: разбор бэкенд-трека чемпионата по программированию Вручение призов участникам трека бэкенда Мы завершаем серию разборов второго чемпионата по программированию. В последние недель мы опубликовали разборы трёх треков: по ML, фронтенду и мобильной разработке. Осталось разобрать трек по бэкенду. Он оказался самым популярным: 26...

Веселые уроки WinCC OA. Установка WinCC OA под Debian и перенос прикладного проекта Скачивая недавно с сайта winccoa.com установщик последнего патча версии 3.17, с некоторым удивлением, постепенно перешедшим в ликование, обнаружил, что список поддерживаемых дистрибутивов Linux расширился и до Debian. Дело в том, что посмотреть на работу системы в ОС, отличн...

Перезагрузка текстур OpenGLESv2 через DMABUF В этой статье я хочу рассказать, как просто можно обновлять текстуры OpenGLES через DMABUF. Поискал по Хабру и к своему удивлению не обнаружил ни одной статьи на эту тему. В Хабр Q&A тоже ничего такого не нашел. И это для меня немного странно. Технология появилась довол...

[Из песочницы] Что такое Flutter и почему вы должны изучать его в 2020 году Привет, Хабр! Представляю вашему вниманию перевод статьи: "What is Flutter and Why You Should Learn It in 2020" автора Gaël Thomas. Что такое Flutter? Flutter — бесплатный и открытый набор средств разработки мобильного пользовательского интерфейса, созданный компанией Google...

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

Скрапинг Avito без headless-браузера Недавно на хабре вышла статья Скрапинг современных веб-сайтов без headless-браузеров, и в комментариях было высказано мнение, что без headless-браузера не выйдет получить номер телефона из объявления на "авито" или "юле". Хочу это опровергнуть, ниже скрипт на python размером...

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

Фанат переделал игры Link: The Faces of Evil и Zelda: The Wand of Gamelon 1993 года под современные ОС Link: The Faces of Evil и Zelda: The Wand of Gamelon — две приключенческие видеоигры, разработанные Animation Magic и выпущенные Philips Interactive Media для приставки Philips CD-i 10 октября 1993 года в США и 25 декабря 1993 года в Европе. Разработчик-любитель решил переде...

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

[Из песочницы] Как переиспользовать код с бандлами Symfony 5? Часть 1. Минимальный бандл Поговорим о том, как прекратить копипастить между проектами и вынести код в переиспользуемый подключаемый бандл Symfony 5. Серия статей, обобщающих мой опыт работы с бандлами, проведет на практике от создания минимального бандла и рефакторинга демо-приложения, до тестов и ре...

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

[Из песочницы] Angular: понятное введение в NGRX Цель этой статьи — дать чистое и ясное представление о ngrx. Для этого я объясню, что нужно знать и понимать о ngrx, а затем мы увидим это в действии с простыми и понятными примерами кода. Вот список тем, которые мы будем обсуждать в этой статье: Что такое ngrx Преимущес...

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

Какой язык программирования быстрее работает, проще изучается, легче пишется и вообще всех прекрасней на свете? В преддверии дня разработчика мы решили поднять извечный вопрос: «Какой язык программирования самый лучший?» Читать дальше →

[Из песочницы] О команде ракетчиков, которые смогут Немного о себе Так случилось, что я после школы поступил учиться в Московский авиационный институт (МАИ) на 601 кафедру, аэрокосмический факультет. Учился я проектированию космических аппаратов и разгонных блоков. С 2004 года я пошёл работать в проектный отдел КБ «Салют» (ФГ...

[Перевод] JavaScript: область видимости простыми словами Доброго времени суток, друзья! Область видимости — важная концепция, определяющая доступность переменных. Данная концепция лежит в основе замыканий, разделяя переменные на глобальные и локальные. В этой статье я постараюсь простыми словами объяснить, что такое область ви...

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

[Перевод] Как подготовиться к интервью в YCombinator Один из первых наборов YC. Когда я готовился к интервью зимнего класса 2018 года, я пересмотрел все доступные источники по теме и провел около 20 практических интервью с выпускниками YCombinator. Ниже собрано воедино все, что я узнал. Это руководство – моё личное видение,...

[Перевод] Реверс-инжиниринг антиблокировщика рекламы BlockAdBlock Если вы пользуетесь блокировщиками рекламы, то могли встречать BlockAdBlock. Этот скрипт обнаруживает ваш блокировщик и не пускает на сайт, пока вы его не отключите. Но мне стало интересно, как он работает. Как антиблокировщик обнаруживает блокировщики? А как на это реагирую...

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

Kubernetes в переводе на детский CNCF — созданная при фонде The Linux Foundation международная организация, занимающаяся развитием и продвижением Open Source технологий, которые используются для построения и функционирования инфраструктур, предназначенных для запуска облачных приложений. Но это вы, наверн...

Памятка по безопасной работе с корпоративной email-корреспонденцией Составил небольшую памятку, надеюсь, она окажется полезной для вас и ваших коллег в противодействии социальной инженерии и фишингу. Читать дальше →

Let vs where в Ocaml/Haskell Языки Ocaml и Haskell ведут родословную из языка ISWIM, описанного в знаменитой статье Питера Лендина "The next 700 programming languages". В ней автор, отталкиваясь от языка LISP, создаёт новый язык программирования и, в частности, вводит ключевые слова let, and и where, ко...

Истории аварий с Patroni, или Как уронить PostgreSQL-кластер В PostgreSQL нет High Availability из коробки. Чтобы добиться HA, нужно что-то поставить, настроить — приложить усилия. Есть несколько инструментов, которые помогут повысить доступность PostgreSQL, и один из них — Patroni. На первый взгляд, поставив Patroni в тестовой среде...

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

Принцип DRY на примере Laravel Рассмотрим простой модуль, отвечающий за добавление новых пользователей. И на его примере увидим, какие возможности открывает применение принципа DRY. Для меня принцип DRY (Don't Repeat Yourself) всегда воплощался в двух основных определениях: Дублирование знаний — все...

[Из песочницы] Ввод данных в STM32F4xx с параллельного АЦП через DCMI Известно, что семейство микроконтроллеров STM32F4xx, имея на борту достаточно производительные ядра, вполне подходящие для «не мясорубочных» задач ЦОС не имеют полноценного интерфейса ввода данных с простейшей параллельной шины в режиме «pipe-line» (clk-data). «Покурив» «dm0...

16 советов по разработке для андроид на языке Kotlin. Часть 2 Всем привет. В преддверии старта базового курса по Android-разработке, продолжаем делиться полезным материалом. Перед прочтением этих советов вам желательно ознакомиться с документацией Kotlin и самостоятельно изучить язык на сайте try.kotlinlang.org. Поскольку эти советы...

Opium.Fill — цветовая схема глазами программиста Привет. Сегодня покажу вам цветовую схему, которой пользуюсь последние 2 года. Она была придумана, чтобы на проблемном проекте избавиться от огромного количества переменных в CSS. А потом оказалось, что эти принципы можно применить почти к любому проекту. В общем, попробу...

Как работает сканер лица в современных смартфонах? Как работает сканер отпечатков пальцев в смартфоне? Не так давно пользователи Pixel 4 сделали небольшое открытие, установив кастомные приложения камер. Они позволяют переключиться на инфракрасную камеру устройства и взглянуть на мир совсем по-другому. А всё благодаря открыто...

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

[Из песочницы] 9 ключевых алгоритмов машинного обучения простым языком Привет, Хабр! Представляю вашему вниманию перевод статьи «9 Key Machine Learning Algorithms Explained in Plain English» автора Nick McCullum. Машинное обучение (МО) уже меняет мир. Google использует МО предлагая и показывая ответы на поисковые запросы пользователей. Netflix...

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

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

Евгений Усвицкий: «Все в мире знают, где можно взять свободно геоданные — только в OSM» Евгений Усвицкий — прикладной лингвист в лаборатории робототехники Сбербанка, который занимается диалоговыми системами и учит роботов разговаривать на естественном языке. Помимо этого он является владельцем домена openstreetmap.ru и первым россиянином, работавшим в штате Гу...

[Перевод] Практическое руководство по HashiCorp Consul — Часть 1 Это часть 1 из серии 2 частей практического руководства по HashiCorp Consul. Эта часть в первую очередь ориентирована на понимание проблем, которые решает Consul и как он их решает. Вторая часть больше ориентирована на практическое применение Consul в реальном примере и буд...

Зачем нужна библиотека приложений в iOS 14 Помимо виджетов, одной из главных фишек iOS 14 стала библиотека приложений (App Library). Это новая функция, которая автоматически группирует все приложения на iPhone. Больше не нужно самостоятельно создавать папки, и у вас не будет 10-15 рабочих столов с приложениями, кото...

Как писать музыку на Python — помогут три тематические библиотеки (для специалистов разного уровня) Продолжаем тему музыкального программирования — ранее мы говорили о языках Csound, SuperCollider и Pure Data, а сегодня рассказываем Python и библиотеках FoxDot, Pippi и Music-Code. Читать дальше →

Введение в язык запросов Cypher Язык запросов Cypher изначально разработан специально для графовой СУБД Neo4j. Целью Cypher является предоставить человеко-читаемый язык запросов к графовым базам данных похожий на SQL. На сегодня Cypher поддерживается несколькими графовыми СУБД. Для стандартизации Cypher бы...

Первый взгляд на Titan Quest: Legendary Edition на Андроид Студия HandyGames наконец-то выпустила полное издание легендарной Titan Quest: Legendary Edition. В нем нам обещали оптимизацию под все устройства и все имеющиеся дополнение, так что ценник для игры оказался не маленьким – 1690 рублей. Тем не менее, запустить Titan Quest: Le...

100 теоретических вопросов по JavaScript Доброго времени суток, друзья! Представляю вашему вниманию список из первых 100 вопросов по основам JavaScript из этого репозитория с краткими ответами и ссылками на «Современный учебник по JavaScript» Ильи Кантора (JSR) и MDN. Также в конце имеются ссылки на статьи для п...

CLIENT SERVICE FORUM 2021 VI Всероссийский форум по клиентскому сервису Шок от потрясений 2020 года пройдет и то, что казалось немыслимым перейдет в разряд повседневного. За это время многие компании приобрели бесценный опыт тактических антикризисных действий – те, кто смогли быстро сориентироваться и поддержать клиентов в сложившихся обстоятель...

Обзор смартфона BQ Aurora SE 5732L На днях мы делали подборку смартфонов Xiaomi, прикидывая, какие смартфоны этого бренда можно взять в различных ценовых диапазонах. Удалось найти модель, стартующую от 5700 рублей. Но она настолько бестолковая, что её предлагаем взять только от отчаяния. Сегодняшнее устройс...

Ультразвуковая система определения координат 2.0 Ультразвуковая система определения координат 2.0 О чем эта статья: Эта статья описывает принципы работы моей системы определения координат, и мой опыт её изготовления. Данная статья не является инструкцией по изготовлению навигационной системы, ибо это не так просто, чтобы о...

GoLang и OpenCV (OpenVino && Cuda) Всем доброго времени суток. На хабре (да и вообще в интернете) уже не мало статей о работе с OpenCV на Go. Готовый код — это конечно интересно, а более подробную информацию об установке драйверов приходится собирать по кусочкам — постараюсь объединить все нужные телодвижени...

Поднимаем свой инстанс Webogram с проксированием через nginx Привет, Хабр! Недавно я попал в ситуацию, в которой необходимо было работать внутри корпоративной сети с неполным доступом к интернету и как вы можете догадаться по заголовку — Telegram в ней был заблокирован. Уверен, что данная ситуация знакома многим. Я вполне могу обход...

DAG’и без напрягов: наш опыт использования метаданных при работе с Apache Airflow Apache Airflow – простой и удобный batch-ориентированный инструмент для построения, планирования и мониторинга дата-пайплайнов. Ключевой его особенностью является то, что, используя Python-код и встроенные функциональные блоки, можно соединить множество различных технологий,...

Собираем простейшую ZigBee-сеть, программируем под Mbed, общаемся через MQTT Собираем простейшую ZigBee-сеть, программируем под MBed, общаемся через MQTT Эта статья — большой учебный практикум начального уровня по использованию XBee-модуля в связке с микроконтроллером, имеющим на борту Mbed OS. Стек XBee реализует ZigBee-стандарт и подходит для задач...

Движок, скриптовый язык и визуальная новелла — за 45 часов Приветствую. Так получилось, что уже три года подряд в качестве подарка на Новый год определенным людям я делаю игру. В 2018-ом году это был платформер с элементами головоломки, о котором я писал на хабре. В 2019-ом — сетевая RTS для двух игроков, о которой я ничего не писа...

Make «udalenka» great again: как перевести всю компанию на удаленную работу в 4 этапа В то время как коронавирус шагает по планете, на рынке ценных бумаг лидирует туалетная и целые страны закрывают на карантин, все больше компаний вынуждены переводить сотрудников на удаленную работу. Мы в RUVDS не стали исключением и решили поделиться с Хабром своим опытом ор...

Ozon go school: Как не нужно проводить отбор Go School Как вы знаете, в середине мая Ozon объявил о запуске школы программирования на языке Go. Обещали следующее: бесплатное обучение возможность получить знания по реальной разработке на Go от Ozon возможность получить работу в Ozon Чтобы попасть в школу, нужно было:...

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

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

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

Huawei заплатит за лучшие снимки, созданные на ее ... Huawei запустила конкурс NEXT-IMAGE 2020, который проводится компанией ежегодно. Цель — показать, что снимки и видео, снятые на смартфоны Huawei способны удивлять. В рамках конкурса будут выбраны лучшие работы, созданные простыми пользователями при помощи мобильны...

Конкурент Samsung Galaxy Note10 может остаться без стилуса? Несколько дней назад стало известно о том, что смартфон Samsung Galaxy A81 станет доступной альтернативой планшетофону Samsung Galaxy Note10, так как он будет оснащен стилусум и более скромной аппаратно начинкой. Теперь же появились качественные изображения Samsung Gal...

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

Какой могла оказаться Sony PlayStation 5, но оказалась Xbox Series X Активную кампанию по продвижению своей игровой приставки следующего поколения Sony начала ближе к концу 2019 года. До этого поклонникам бренда оставалось лишь мечтать и фантазировать.  Теперь пользователь социального новостного ресурса Reddit нашёл в сети к...

Kotlin Multiplatform. Работаем с многопоточностью на практике. Ч.1 Доброго всем времени суток! С вами я, Анна Жаркова, ведущий мобильный разработчик компании «Usetech» Я давно занимаюсь не только нативной разработкой (как iOS, так и Android), но и кросс-платформенной. В свое время я очень плотно писала на Xamarin (iOS, Android, так и Forms...

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

Первый взгляд: как устроена новая корпоративная почтовая система Mailion от МойОфис Почти четыре года назад мы начали проектировать принципиально новую распределенную почтовую систему Mailion, которая предназначена для корпоративных коммуникаций. Наше решение построено на Cloud Native микросервисной архитектуре, способно работать с более чем 1 000 000 поль...

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

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

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

[Перевод] Инструмент для отслеживания DNS-запросов: dnspeep Недавно я создала небольшой инструмент под названием dnspeep, который позволяет понять, какие DNS-запросы отправляет ваш компьютер и какие ответы он получает. Всего мой код занял 250 строк на Rust. В этой статье я расскажу о коде, объясню, для чего он нужен, почему в нём воз...

Загрузка и обработка изображений в .NET Core В этой статье я хочу рассказать о своём опыте реализации механизма загрузки изображений в .NET Core приложении с последующим их ресайзом и сохранением в файловой системе. Для обработки изображений я использовал кроссплатформенную библиотеку ImageSharp от Six Labors. Существу...

Как работает Object Tracking на YOLO и DeepSort Object Tracking — очень интересное направление, которое изучается и эволюционирует не первый десяток лет. Сейчас многие разработки в этой области построены на глубоком обучении, которое имеет преимущество над стандартными алгоритмами, так как нейронные сети могут аппроксимир...

[Из песочницы] vuex + typescript = vuexok. Велосипед, который поехал и обогнал всех Доброго времени суток. Как и многие разработчики, я в свободное от работы время пишу свой относительно небольшой проект. Раньше писал на react, а на работе используется vue. Ну и что бы прокачаться во vue начал пилить свой проект на нем. Сначала всё было хорошо, прямо-таки ...

Как создать RESTful API на Symfony 5 + API Platform для проекта на MODX Из этого урока Вы узнаете как можно быстро создать RESTful API для любого сайта на любой CMS, MODX — это только пример. Для создания API я буду использовать: https://symfony.com/ https://api-platform.com/ Читать дальше →

Nvidia тизерит видеокарту для игры Cyberpunk 2077: лимитированное издание RTX 1080 Ti Super? Nvidia подтвердила планы по выпуску лимитированной серии видеокарт для игры Cyberpunk 2077. И не исключено, что это окажется ограниченное издание пока не анонсированной RTX 1080 Ti Super. Подробнее об этом читайте на THG.ru.

[Из песочницы] Адаптивное разбиение кривых Безье 2-го и 3-го порядка Уже год как я сменил работу на новую. В этой статье я хочу поделиться опытом, накопленным на прошлом месте. Здесь рассмотрены методы аппроксимации кривых Безье, а также обработка исключительных случаев, при которых простые алгоритмы показывают себя не очень хорошо. Все, ком...

Скрипты для помощи в калибровке стола. Изучаем G Code на практике для начинающих и не только выпуск № 1 Всем привет всем доброго времени суток и приятного чтения. Давно уже собирался познакомится поближе с G-кодом, но как-то не приходило в голову для чего это мне нужно, а изучение ради изучения не интересовало. Нужна была какая-нибудь практическая задача решение которой облегч...

Learn Jetpack Compose By Example: учим Jetpack Compose на примерах Jetpack Compose переосмыслил то, как разрабатывается UI для Android-приложений, и внедрил принципы декларативного программирования в разработку интерфейсов. На него сильно влияют существующие веб и мобильные фреймворки, такие как React, Litho, Vue и Flutter. В этом репозитор...

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

Складной флагман Samsung Galaxy Fold 2 похож на Huawei P40 Pro+ на новых рендерах В Сети появились новые рендеры перспективного флагмана Samsung с гибким экраном – Galaxy Fold 2, и на них модель очень похожа на представленный вчера Huawei P40 Pro+. Это если акцентировать внимание на тыльной панели и оформлении блока основной камеры. Все дело в...

По следам DevConf и CfgMgmtCamp или что можно узнать съездив спикером на 2 международные конференции за 2 недели Это был первый опыт выезда на заграничные конференции и сразу спикером, интересный опыт скажу я вам. Вот скажи мне в школе кто-нибудь, что я буду выступать да еще и на английском — ни за что бы не поверил. Так выглядят в бездушных цифрах конференции:  225 заметок с высту...

[Из песочницы] Вступление в работу с возвратом пользователя: советы для Hooked-модели Всем привет! Я — Сергей, R&D officer в Genesis. В этом тексте хочу поделиться своими знаниями и опытом по созданию привычки использования продукта, рассказать о том, как это влияет на прибыльность бизнеса и почему предпринимателей встречают по возврату. Читать дальше &...

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

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

Современный Web-UI для SVN в 2020 году cSvn — это web-интерфейс к Subversion репозиториям. Основу cSvn представляет CGI-скрипт написанный на языке С. В мае 2020 года был опубликован релиз очередной версии Apache Subversion 1.14.0. В свете этого события, был создан новый, современный web-интерфейс для просмотра S...

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

[Перевод] Отложенное завершение pod'а при его удалении Задержка выключения pod’а в Kubernetes Это третья часть нашего пути (прим. пер. — ссылка на первую статью) к достижению нулевого времени простоя при обновлении Kubernetes-кластера. Во второй части мы сокращали время простоя, которое возникло из-за принудительного завершения...

Геймерская GeForce RTX 3060 продемонстрировала низкую скорость, обходя RTX 2060 всего на 19% в AoS Разница в производительности оказалась несущественной

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

К вопросу зачем и какие нужны принтеры (конц эпохи FDM) Вот сегодня была такая заметка https://3dtoday.ru/blogs/semy3d/v-kakoy-otrasli-luchshe-vsego-ispolzovat-3d-printer-picaso-i-pochemuУже после этого как там немного пообщались, мой товарищ вышел на связь и попросил изготовить нужную ему приспособу.И прислал фотку рисунка чего ...

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

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

do {Yoga} while (болит спина) Вступление Это обыкновенная история про самого обыкновенного IT-шника, которая, тем не менее, может быть интересна людям различных профессий. Статья не про то, как я добился успеха в той или иной IT-дисциплине, будь то программирование, администрирование или дизайн. Моя исто...

Эксперименты с микроконтроллерами в Jupyter Notebook Jupyter Notebook — любимый инструмент-среда для data scientist'ов, аналитиков, инженеров, математиков, студентов и даже для нас — самых обычных ученых в экспериментальной физике. Этот инструмент предназначен для работы с интерпретируемыми языками и удобного графического пре...

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

Знакомство с Debezium — CDC для Apache Kafka В своей работе я часто сталкиваюсь с новыми техническими решениями/программными продуктами, информации о которых в русскоязычном интернете довольно мало. Этой статьей постараюсь восполнить один такой пробел примером из своей недавней практики, когда потребовалось настроить...

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

[Перевод] Product Discovery 101 для Product-менеджера Перевод статьи подготовлен в преддверии старта новой группы по курсу "Product Manager IT-проектов". Так что же такое Product Discovery? Product Discovery – это процесс выяснения того, что же в конечном итоге предстоит создать. Он отражает ваше видение, дает бол...

9 ошибок при установке Windows 10 и способы их исправить Убедитесь, что с диском всё в порядке, а дистрибутив системы корректно записан на флешку.

Отладка микроконтроллеров ARM Cortex-M по UART Часть 2 В прошлой статье я рассказывал про прерывание DebugMon и регистры с ним связанные. В этой статье будем писать реализацию отладчика по UART. Читать дальше →

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

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

Sony PlayStation 5 потеряет своё превосходство перед Xbox Series X к выпуску В сети уже не первый раз появляется информация, что игровая приставка нового поколения Sony PlayStation 5 на данный момент обеспечивает большую производительность, чем Xbox Series X. Тем не менее, это временное явление.  Об этом сообщил на форуме NeoGAF пол...

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

FOSS News №1 — обзор новостей свободного и открытого ПО за 27 января — 2 февраля 2020 года Всем привет! Это мой первый пост на Хабре, надеюсь будет интересен сообществу. В Пермской группе пользователей Linux мы увидели нехватку обзорных материалов по новостям свободного и открытого ПО и решили, что неплохо бы каждую неделю собирать всё самое интересное, чтобы п...

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

Сергей и «программирование лучше секса» Небольшая зарисовка-комментарий к статье «Программирование лучше секса» Самодостаточная, можно читать без ознакомления с оригиналом. — Сергей, можно вопрос? Сергей, не отвлекаясь от экрана… — Ну, задавайте. — Объясните, почему вы ТАКОЙ? Почему вам важнее написать эту ...

Как лазеры и сенсоры помогают сохранить нервы судьям Привет, Хабр! Оценить выступление спортсмена – задача, которая с каждым годом не становится проще. Увеличиваются скорости, усложняются программы, появляются новые элементы и их связки. Сравните хотя бы выступления фигуристов или гимнастов в Лондоне, Рио, Ванкувере или Сочи ...

Простой робот на МК esp8266 c micropython Привет, Хабр! Эта статья описывает процесс апгрейда самоходной платформы на базе МК esp8266 с micropython, до простейшего робота, оснащённого сканирующим ультразвуковым датчиком препятствий, мигающим светодиодом, кнопкой «старт/стоп», а также встроенным веб-сервером, в рамк...

Whonix: руководство для начинающих Whonix — это дистрибутив Linux на основе Debian, который разработан для обеспечения повышенной безопасности и конфиденциальности. Высокая анонимность достигается средствами VirtualBox и Tor. Whonix снижает угрозу от распространенных векторов атак, сохраняя при этом удобство...

[Из песочницы] Типобезопасная работа с регистрами без оверхеда на С++17: value-based метапрограммирование С++, благодаря своей строгой типизации, может помочь программисту на этапе компиляции. На хабре уже довольно много статьей, описывающих как, используя типы, добиться этого, и это прекрасно. Но во всех, что я читал, есть один изъян. Сравним с++ подход и си подход с использова...

Разработка плагинов для Zabbix Agent 2 На последнем Zabbix Summit 2019 вместе с выходом Zabbix 4.4 был анонсирован новый Zabbix Agent 2, ключевая фишка которого — возможность написания плагинов к нему на языке Go. И многие сразу стали спрашивать: а как же, собственно, эти плагины писать, как они устроены? Где взя...

[Перевод] Простая хэш-таблица для GPU Я выложил на Github новый проект A Simple GPU Hash Table. Это простая хэш-таблица для GPU, способная обрабатывать в секунду сотни миллионов вставок. На моём ноутбуке с NVIDIA GTX 1060 код вставляет 64 миллиона случайно сгенерированных пар ключ-значение примерно за 210 мс и...

[Из песочницы] Spring Boot vs Spring MVC vs Spring — Как они сравниваются? Spring Boot vs Spring MVC vs Spring — Как они сравниваются? Spring, Spring Boot, Spring MVC, везде есть слово “spring”! Давайте пройдемся где и когда вы можете применять каждый из этих инструментов В этой статье, вы увидите обзоры: Spring, Spring MVC, и Spring Boot, узнает...

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

Кратко о том, как научить МФУ Brother сканировать в Windows Server Эта даже не статья, а заметка о том, как в среде Microsoft Windows Server использовать сетевые функции сканера МФУ Brother. Речь пойдет о полноценной установке драйвера устройства. Будет рассмотрен пример с Brother MFC-L2700DRN. Официально функция сканирования поддерживает...

[Перевод] Как создать свой первый open source проект на Python (17 шагов) Каждый разработчик ПО должен знать как создать библиотеку с нуля. В процессе работы Вы можете многому научиться. Только не забудьте запастись временем и терпением. Может показаться, что создать библиотеку с открытым исходным кодом сложно, но Вам не нужно быть потрепанным ж...

«Утечка» базы специалистов Хабр Карьеры Сначала в телеграм-каналах, а потом и на Хабре появилась информация об утекших данных пользователей с сайта Хабр Карьеры. Считаем нужным дать более развёрнутый комментарий, а также рассказать о том, как устроены настройки приватности на сервисе. Утечка Читать дальше →

Почему «angina» — это не «ангина», а «resin» — не «резина», или Ложные друзья переводчика У немцев, которые изучают английский как второй язык, очень распространен анекдот. Английское слово «become» и немецкое «bekommen» очень похожи по написанию и звучанию. Но означают разное. «Become» — «становиться, превращаться», а «bekommen» — «получить, найти». Немец пер...

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

И целого байта мало… (Часть #1) Дамы, господа, сегодня отличный день! Скорее всего вы помните, что существует такая форма компьютерного искусства как «демосцена», но если слышите это слово впервые — просто прочитайте тематический хаб и теги на Хабре, а так же пару популярных статей по этому вопросу. Од...

[Из песочницы] Flask-DJ: Django (mvc) структура для проекта на flask Всем привет! Когда я впервые столкнулся с Flask, у меня сразу возник вопрос по построению архитектуры проекта. Прочитав пару статей на Хабре (https://habr.com/ru/post/275099/ и https://habr.com/ru/post/421887/), я вспомнил свой опыт создания проектов на Django, и решил сде...

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

O Tilling-wm в 2-х словах Немного расскажу о моем опыте использования тиллинговых менеджеров окон, а также рассмотрим кратко плюсы и минусы, которые я нашёл за 3 месяца использования. Читать дальше →

[Из песочницы] IoT шлюз Ethernet-RS485 на базе STM32 Привет, Хабр!Данный пост посвящён DIY разработке Ethernet-RS485 шлюза. Цель данного шлюза – обеспечение централизованного управления нодами Mysensors со стороны контроллера умного дома.Недавно меня таки достали провода, дюпоны, навесная пайка и т.п. и было принято давно оття...

Статическое тестирование безопасности опенсорсными инструментами Уязвимости в своём коде хочется находить как можно быстрее, а значит нужно автоматизировать этот процесс. Как именно автоматизировать поиск уязвимостей? Существует динамическое тестирование безопасности, существует статическое — и у обоих свои преимущества и недостатки. Сег...

[Перевод] Алан Кей: История SmallTalk (Аннотация и Введение) У меня есть цель — разобраться в том, что же происходило в 60-70-е годы в Xerox PARC и в окрестностях, как так вышло, что несколько коллективов инженеров, работая рука об руку, создали невероятные технологии, которые определили наше настоящее, а их идеи будут определять буду...

Systemd, интерактивные скрипты и таймеры Введение При разработке под linux возникают задачи создания интерактивных скриптов, выполняемых при включении или завершении работы системы. В system V это делалось легко, но с systemd вносит коррективы. Зато оно умеет свои таймеры. Читать дальше →

Как переиспользовать код с бандлами Symfony 5? Часть 6. Тестирование Поговорим о том, как прекратить копипастить между проектами и вынести код в переиспользуемый подключаемый бандл Symfony 5. Серия статей, обобщающих мой опыт работы с бандлами, проведет на практике от создания минимального бандла и рефакторинга демо-приложения, до тестов и ре...

Физика для мобильного PvP шутера и как мы подружили её с ECS Всем привет! В этой статье мы расскажем про личный опыт работы с физическими движками для мультиплеерного шутера и главным образом сфокусируемся на взаимодействии физики и ECS: на какие грабли мы наступили в процессе работы, чему научились, почему остановились на конкретных ...

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

Прошивка BTT для MKS TFT32, добавлен Config.ini     Хорошее и давно ожидаемое мной лично обновление прошивки BIGTREETECH-TouchScreenFirmware.Наконец то добавлен конфигурационный файл config.ini, теперь все настройки можно делать внутри этого файла без пере-компиляции всей прошивки. Файл кидается в корень SD и при загрузке...

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

Автоматизация тестирования ПО QIWI-терминалов Привет, Хабр! Сегодня поговорим на специфическую тему: автоматизация тестирования ПО для терминалов самообслуживания QIWI. В теме автоматизации тестирования есть области, которые исхожены вдоль и поперек несколько раз, например, тестирование веб-сервисов. Для таких област...

Книга «Изучаем Python: программирование игр, визуализация данных, веб-приложения. 3-е изд.» Привет, Хаброжители! Мы выпустили третью версию #1 Best Seller in Python Programming Amazon — популярного в мире руководства по языку Python. Вы сможете не только максимально быстро его освоить, но и научитесь писать программы, устранять ошибки и создавать работающие прило...

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

Решение нескольких задач от Amazon на примере JavaScript Доброго времени суток. Представляю вашему вниманию перевод статьи «Amazon Coding Interview Questions» автора Trung Anh Dang. В этой статье автор приводит несколько (три, если быть точнее) задач от Amazon (как он утверждает) и свои варианты решений. После ознакомления с ...

Книга «Clojure на производстве» Неделю назад в издательстве "Ридеро" вышла книга "Clojure на производстве". Как ее автор, расскажу о ней подробнее: что внутри и кому она полезна. Общие сведения Это книга о том, как применять Clojure в настоящих условиях: не сортировать списки в олимпиа...

Профессия: тестировщик Тестировщик: Это баг или фича? Разработчик: Пока что это фича. bash.im Инженер по тестированию — моя первая специальность в ИТ-сфере в далёких уже 2010-х, как, пожалуй, и у многих. Это было классическое «войти в айти»: на тот момент имелось только экономическое образование ...

Установка второй оси z без лишних проблем. Или универсальный гайд. Всем доброго времени суток.Руки у меня все не доходили до написания данной статейки, хотя уже давно все работает. Еле отыскал фото.Подопытным у нас будет Tevo tarantula или его новое название Odysseus RS. Про него я писал тут (ч.1) и тут (ч.2).И так как у данного аппарата уж...

Адгезия PLA к столу Обзавелся принтером Anycubic Mega S/ Производитель обещал, что стол технологичный, есть подогрев, адгезия нормальная. Может, оно так и есть, это у меня руки кривые и опыта совсем нет. Печатал в основном PLA, немного PETG. PLA (DEXP) вроде неплохой на мой невзыскательный вкус...

Работаем с Cutter — основы реверса. Решение задач на реверсинг с r0от-мi. Часть 3 В данной статье разберемся с декомпиляцией ELF файлов в Cutter на примере легеньких задач. Прошлые части введения в реверс: Часть 1: C, C++ и DotNet decompile — основы реверса Часть 2: Реверсим MIPS и Golang — основы реверса Организационная информ...

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

Автоматический мерчендайзинг для онлайна или как я изобрел велосипед Работая в онлайн магазине с ассортиментом более 15000 позиций передо мной встала задча — как правильно отсортировать товары чтобы люди быстрее находили то что им нужно. Это был далекий 2015 год. На тот момент уже был опыт работы в e-commerce разных масштабов и стандартные р...

Повторяем когортный анализ, выполненный в Power BI, силами Python Добрый день уважаемые читатели! Поводом для написания данной публикации послужил вебинар, который я посмотрел на Youtube. Он был посвящен когортному анализу продаж. Автор использовал для работы с данными платформу Power BI Desktop. Ссылку на указанное видео приводить не буду...

Раджа Кодури: Intel создаёт огромный кристалл Xe HP — «отец всех чипов» Intel готовит свой дискретный графический ускоритель Xe, и главный архитектор Intel Раджа Кодури (Raja Koduri) поделился некоторыми намёками относительно грядущего флагманского кристалла. Недавно он посетил команду инженеров в индийском Бангалоре и написал об этом короткую п...

Wanhao D9/300 MK2 -- будьте осторожны, подумайте, стоит ли оно того Не имея никакого опыта ранее, загорелся покупкой принтера для некоторых идей, давно не дающих покоя. Начав изучение темы с производителей, был несколько удивлён, насколько большой список (подозреваю большинство лишь моды какой-то определённой конструкции). Выбор пал на Wanha...

[Перевод] Как устроено производство стиков для тестирования на коронавирус Автор агентства Bloomberg побывала на производстве в «очаровательной небольшой компании, которая оказалась в центре глобальной катастрофы в области здравоохранения». Если вы живете в США и проводили домашний ДНК-тест, открывали рот у ЛОРа и говорили «ааа» или измеряли гл...

Все материалы на данном сайте взяты из открытых источников или присланы посетителями сайта и предоставляются исключительно в ознакомительных целях. Права на материалы принадлежат их владельцам. Администрация сайта ответственности за содержание материала не несет. (Правообладателям)