Социальные сети Рунета
Вторник, 23 апреля 2024

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

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

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

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

Принцип SRP на примере Laravel Принцип SRP (Принцип Единой Ответственности) — один из основополагающих принципов написания поддерживаемого кода. В этой статье я покажу как применить данный принцип на примере языка PHP и фреймворка Laravel. Часто, описывая модель разработки MVC (MVP, MVVM или другие M**),...

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

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

Crypt, XOR, взлом нешифрованного ZIP и ГПСЧ. Решение задач с r0от-мi Crypto. Часть 2 В данной статье узнаем про функцию crypt, узнаем как подбирать пароли к ZIP архиву с незашифрованными именами файлов, познакомимся с утилитой xortool, а так же разберемся с генератором псевдослучайных чисел. Предыдущие статьи на эту тему: Часть 1 — Кодировки, шифр сдвига,...

Hack The Box — прохождение Bitlab. Слабая JS обфускация, GIT и реверс Windows приложения Данной статьей я начну публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье разберемся с легенькой JavaScript обфускацией, загрузим бэкдор через репозиторий Git, и отладим...

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

Путь к ООП: Взгляд инженера Дисклеймер Статья не предполагает какой-то принципиально новый взгляд на вещи, кроме как с точки зрения изучения этого материала с «абсолютного нуля». Материал основан на записях примерно 7-летней давности, когда мой путь в изучении ООП без IT-образования только начинался...

LyX: Общие замечания. Часть 1 Скопировано с моего блога в целях создания еще одного русскоязычного источника информации по данной теме. Эта статья является продолжением следующих статей одного цикла: статья 1 статья 2 статья 3 статья 4 статья 5 Фух, даже не знаю, как писать этот пост. Я мог бы начать ...

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

[Из песочницы] Разбор настройки ELK 7.5 для анализа логов Mikrotik Давно была мысль посмотреть, что можно делать с ELK и подручными источниками логов и статистики. На страницах хабра планирую показать практический пример, как с помощью домашнего мини-сервера можно сделать, например, honeypot с системой анализа логов на основе ELK стека. В э...

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

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

Hack The Box — прохождение Smasher2. Flask, WAF и LPE через pwn драйвера Данной статьей я начну публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье мы пореверсим библиотеку для python, обойдем WAF и проэксплуатируем уязвимость mmap. Подключе...

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

Современный стартовый HTML-шаблон Доброго времени суток, друзья! Позвольте представить вам мой новый проект — современный стартовый HTML-шаблон. Данный шаблон является результатом анализа более 100 источников по вопросам, касающимся структуры и содержимого веб-страницы, разделения приложения на компонент...

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

Зоны в Dart: большой брат следит за тобой Привет! Меня зовут Дима, я frontend-разработчик в компании Wrike. Клиентскую часть проекта мы пишем на Dart, однако работать с асинхронными операциями нам приходится не меньше, чем на других технологиях. Зоны — один из удобных инструментов, который Dart для этого предоставля...

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

Hack The Box — прохождение Player. FFmpeg эксплоит, JWT и различные веб перечисления Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье пройдем JWT, выполним такие веб-перечисления, как поиск дирректорий, поддоменов и файлов бэкапа, проэксплуат...

Memory forensics, Rubber Duck и пароли GPO. Решение задач с r0от-мi. Часть 2 Данная статья содержит решений заданий, направленных на криминалистику оперативной памяти, разбора пэйлоада для USB Rubber Duck, а так же расшифрования перехваченных паролей групповой политики Windows. Организационная информацияСпециально для тех, кто хочет узнавать что-то...

Oracle: разница между deterministic и result_cache От переводчика: свой путь на habr я решил начать не с попытки написать какой-то уникальный текст с нуля, а с перевода относительно свежей (от 17.08.2020) статьи классика PL/SQL-разработки Стивена Фойерштайна, в которой он достаточно подробно рассматривает разницу между двумя...

Упрощаем работу с Angular с помощью @taiga-ui/cdk: 5 наших лучших практик CDK — базовый пакет библиотеки компонентов Taiga UI. Он не имеет никакой привязки к визуальной составляющей библиотеки, а скорее служит набором полезных инструментов для упрощения создания Angular-приложений.Среди всех этих инструментов я выделил мою пятерку фаворитов. Я исп...

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

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

[Перевод] Сортировка в Scala — пример на кошках Привет, Хабр! Выношу на ваш суд русскоязычный перевод моей статьи на Medium: Sorting in Scala — a cat shop example. Статья рассчитана на читателей, знающих синтаксис языка Scala и осведомлённых о базовых инструментах стандартной библиотеки. Читать дальше →

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

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

Zabbix. Что делать, если принтер не делится информацией по SNMP? Доброго времени суток! КДПВ Данная статья – небольшой мануал, написанный в несколько художественной форме. В статье много картинок, заботливо упрятаных в спойлеры. Для кого написана эта статья? Для начинающих сисадминов, еще слабо знакомых с UNIX-системами, Zabbix’ом, но ...

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

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

Обзор основных функций Google BigQuery и примеры запросов для маркетинг-анализа Google BigQuery – это быстрое, экономичное и масштабируемое хранилище для работы с Big Data, которое вы можете использовать, если у вас нет возможности или желания содержать собственные серверы. В нем можно писать запросы с помощью SQL-like синтаксиса, стандартных и пользова...

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

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

[Перевод] Принципы для разработки: KISS, DRY, YAGNI, BDUF, SOLID, APO и бритва Оккама Хорошему программисту необходимо уметь совмещать свои навыки со здравым смыслом. Все дело в прагматизме и навыке выбора лучшего решения для вашей проблемы. Когда вы сталкиваетесь с проблемой при разработке ПО, вы можете воспользоваться базовыми принципами, которые помогут ...

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

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

[Перевод] Разбираемся в моделях кода архитектуры x64 «Какой моделью кода мне воспользоваться?» — часто возникающий, но нечасто разбираемый вопрос при написании кода для архитектуры х64. Тем не менее, это довольно интересная проблема, и для понимания генерируемого компиляторами машинного кода х64 полезно иметь представление о м...

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

Книжная полка компьютерного криминалиста: 11 лучших книг по Digital Forensics, Incident Response и Malware Analysis Хотите разобраться в компьютерной или мобильной криминалистике? Научиться реагированию на инциденты? Реверсу вредоносных программ? Проактивному поиску угроз (Threat Hunting)? Киберразведке? Подготовиться к собеседованию? В этой статье Игорь Михайлов, специалист Лаборатории...

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

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

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

Hack The Box. Прохождение Sniper. RFI и вредоносный CHM документ Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье эксплуатируем RFI, обходим блокировку shell meterpreter и создаем вредоносный CHM документ. Подключение к ...

Kubernetes: мониторинг c помощью Prometheus Привет, Хабр! Меня зовут Радик, Head of DevOps of AGIMA! В этой статье я постарался показать, как можно использовать Prometheus в качестве системы мониторинга для микросервисной архитектуры. Подробно рассмотрел архитектуру Prometheus и взаимодействие его компонентов. О...

[Перевод] Разворачиваем модель машинного обучения с Docker – Часть 1 Перевод статьи подготовлен в преддверии старта базового и продвинутого курсов по машинному обучению. Расширяем возможности для наших студентов. Теперь в OTUS есть целых два курса по Machine Learning: базовый и продвинутый. Оба курса стартуют в августе, в связи с чем мы приг...

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

IDA Pro и техники реверс-инжиниринга 0x00 start ; {EN} entry point, do nothing, just run _main {EN} Статья для начинающих “воинов тьмы”, тех, кто хочет погрузиться в темную сторону силы: реверс-инжиниринг. На нашем “операционном столе” будет небольшой кустарный сервер, который работает по протоколу TCP/IP. Для ...

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

Hack The Box — прохождение Postman. Redis и WebMin Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье нам придется проэксплуатировать уязвимости в Redis и WebMin, а также подобрать пароль к зашифрованному ключу...

Hack The Box. Прохождение Registry. Docker, RCE в CMS Bolt и Restic Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье повозимся с docker regisrty, эксплуатируем RCE в CMS Bolt, а повышаем привилегии с помощью программы для рез...

Linux Sandbox Цель данной статьи показать какие проекты существуют на сегодняшний день для автоматического анализа исполняемых файлов для ОС Linux. Предоставленная информация может быть использована для развертывания тестового стенда для анализа вредоносного кода. Тема может быть актуальн...

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

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

Отечественный DSP процессор 1967ВН028 от фирмы Milandr. Небольшой мануал по арифметике на языке assembler В своем первом пробном цикле статей я хочу немного обозреть некоторые особенности упомянутого выше российского DSP процессора. Про этот процессор уже были упоминания и не одно, в том числе и на хабре, например, здесь. По этому не буду разбирать его общий функционал, откуда ...

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

[Перевод] Используем nftables в Red Hat Enterprise Linux 8 Статья подготовлена в преддверии старта курса «Администратор Linux» В Red Hat Enterprise Linux 8 приоритетным низкоуровневым решением является nftables. В этой статье мы поговорим о том, как начать использовать nftables. Наиболее актуальной она будет для системных администр...

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

Hack The Box — прохождение Forest. AS-REP Roasting, атаки DCSync и Pass-The-Hash Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье разберемся с AS-REP Roasting в схеме аутентификации Kerberos, используем BloodHound для разведки в домене, в...

RE: Страх и ненависть в IT Писать ответы на статьи легко и приятно. Не надо часами корпеть над структурой статьи, достаточно следовать чужому плану и лишь внятно изложить мысли на бумаге. Тем не менее, рискну предположить, что критический взгляд «с другой стороны» на проблемы, поднятые в статье "Страх...

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

Ленивая реализация обхода дерева дочерних элементов класса QObject Введение В статье описана ленивая реализация обхода дерева на языке C++ с использованием сопрограмм и диапазонов на примере улучшения интерфейса работы с дочерними элементами класса QObject из фреймворка Qt. Подробно рассмотрено создание пользовательского представления для р...

Hack The Box — прохождение Zetta. FXP, IPv6, rsync, Postgres и SQLi Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье узнаем IPv6 адрес сервера с помощью FXP, поработаем с rsync, а также запишем ssh-ключ используя SQL-инъекцию...

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

Определение объёма кластера Elasticsearch и тестирование производительности в Rally В этой статье мы разберёмся с основными подходами к сайзингу Elasticsearch, покажем сравнения бенчмарков кластера при загрузке логов и метрик. А разница там заметная. Надеемся, вам это поможет с определением объёма кластера Elasticsearch и расшифровкой того самого «it depend...

Автоматическое заполнение файлами документов Word и подписей к ним с помощью Python и библиотеки docx Рассмотрим пример простой программы на Python с помощью библотекы docx для автоматизации рабочего процесса, а именно автоматической вставки файлов (в данном случае изображений) и их подпись в документах Word (docx).Данная статья будет интересна для начинающих изучающих Pytho...

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

[Перевод] Как демо Memories умещается в 256 байт Введение Привет! Меня зовут «HellMood», а эта статья посвящена небольшой программе для MS DOS под названием «Memories». Эта программа имеет размер 256 байт, она выиграла в категории «PC 256 byte» соревнований демосцены «Revision» 2020 года, а также получила приз зрительских...

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

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

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

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

HackTheBox. Прохождение Traverxec. RCE в веб-сервере nostromo, техника GTFOBins Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. В данной статье получим RCE в веб-сервере nostromo, получим оболочку meterpreter из под активной сессии metasploit, покопаемся в конфигах nostromo, побрутим пароль шифрования SSH ключа и...

[Из песочницы] Создаем прогрессивный PWA интернет-магазин на Nuxt.js 2 пошаговое руководство Часть 1 Статья ориентированна на людей, которые уже имеют понимание работы Vue, на котором основан Nuxt, поэтому я буду заострять внимание только на специфических для Nuxt вещах. Но даже если вы не знакомы с ними, то статья даст общее представление как выглядит проект с PWA Nuxt. Вы...

Мониторинг БД Oracle с помощью OEM Привет! Меня зовут Александра, я работаю в команде тестирования производительности. В этой статье расскажу базовые сведения об OEM от Oracle. Статья будет полезна для тех, кто только знакомится с платформой, но и не только для них. Основная цель статьи — помочь провести бы...

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

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

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

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

[Из песочницы] Получение meterpreter сессии внутри NAT сети, с помощью Chrome и Pivot машины Вводная Всем привет, в этой статье я хочу поделиться своим опытом в эксплуатации уязвимости Chrome FileReader UAF, проведении техники pivoting, ну и написать свою первую статью конечно. Так как я являюсь начинающим Pentest инженером, то потратил на освоение и понимание этой...

[Перевод] Рекомендации по REST API — примеры проектирования веб-сервисов на Java и Spring В последней статье этой серии вы познакомитесь с рекомендациями по REST API и с примерами разработки из Java и Spring Web Services. При разработке хорошего REST API важно иметь хорошие микросервисы. Как вы разрабатываете свой REST API? Каковы лучшие практики? Читать дальше...

[Перевод] Дизайн-токены способны на большее: создаем единый источник информации о компонентах UI Термином «дизайн-система» в IT давно никого не удивишь. Компании систематизируют дизайн продуктов, придумывая свои или используя чужие инструменты для управления стилями, паттернами и компонентами.  Badoo не является исключением: с помощью нашей дизайн-системы Cosmos мы подд...

[Из песочницы] Как писать хорошие комментарии к коду: «зачем», а не «как» Привет, Хабр! Представляю вашему вниманию перевод статьи «Writing good comments: the why, not the how» автора Jack Franklin. Комментирование кода в программистской среде нередко считается пустой тратой времени или неким сигналом о том, что код можно и улучшить. Вот цитата...

Разработка измерительного прибора ИРИС Приветствую, сообщество Хабра. Недавно наша компания выпустила на рынок контрольно-измерительный прибор ИРИС. Являясь главным программистом этого проекта, хочу рассказать вам про разработку прошивки прибора (По оценке руководителя проекта прошивка составляет не более 30% от...

Развертывание в Docker и Kubernetes образа StatsD+Grafana В начале моего изучения Docker и Kubernetes мне нехватало простого и понятного примера, с которым можно было бы «поиграться», изучая особенности этой среды. Этой статьей хотелось бы закрыть этот пробел. Здесь я расскажу об интеграции .NET Core приложения с Telegraf и Grafana...

[Из песочницы] Чистая архитектура с Typescript: DDD и слоистая архитектура Привет, Хабр! В последнее время уделяю много внимание архитектуре и решил поделиться с сообществом переводом статьи Clean Architecture with Typescript: DDD, Onion автора André Bazaglia. Введение На протяжении более 6 лет моего профессионального опыта, я имел возможность раб...

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

Разработка «простого генератора напряжения» в соответствии с ГОСТ Р МЭК 61508 (IEC 61508) В данной статье будут рассмотрены необходимые шаги для создания устройства, отвечающего общим требованиям функциональной безопасности (ФБ). А также будет предложена архитектура простейшего «безопасного» (safety) генератора напряжения. Так как управляя напряжением, можно уп...

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

Как мы улучшили интерфейс VSO-движка Playrix и приблизили его по удобству к Unity Ранее на Хабре мы уже писали о том, как сделали собственный игровой движок VSO, а сегодня расскажем, как мы улучшали его интерфейс и удобство работы с ним. Статья будет полезна всем, кто только начинает разбираться с UX/UI и хочет узнать, как с помощью базовых прин...

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

Опыт использования MobX в большом приложении Всем привет! Меня зовут Сергей, я работаю в команде разработки приложений контроля качества Tinkoff. Поделюсь опытом нашей команды в использовании библиотеки Mobx и расскажу о деталях работы с ней в связке с React. В этой статье не будет описания базовых концепций. Я расск...

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

Hack The Box. Прохождение RE. Metasploit, нагрузка в офисном документе, Zip Slip атака, немного о PowerSploit и токенах Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox. Надеюсь, что это поможет хоть кому-то развиваться в области ИБ. В данной статье намучаемся с нагрузками metasрloit и msfvenom, сделаем Office документ с нагрукой msvenom, рассмотрим поиск ...

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

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

Пилим веб-опросник как у Meduza: пошаговый гайд для начинающих Меня зовут Егор, я Full-stack разработчик в Leader-ID. В этой статье я хочу поделиться простым рецептом по созданию красивого и удобного веб-опросника наподобие тех, что делает Meduza. Он умеет показывать статистику после ответа на отдельные вопросы, подсчитывать общий балл,...

[Перевод] Использование asyncio для создания асинхронных драйверов устройств на MicroPython v.1.12 Изученая возможности MicroPython для своих целей натолкнулся на одну из реализаций библиотеки asyncio и, после недолгой переписки с Piter Hinch — автором библиотеки, понял, что мне необходимо глубже разобраться с принципами, базовыми понятиями и типичными ошибками использова...

[Перевод] Пишем макет 16-битного ядра на C/C++ В первой и второй статьях я лишь коротко представил процесс написания загрузчика на ассемблере и C. Для меня это было хоть и непросто, но в то же время интересно, так что я остался доволен. Однако создания загрузчика мне показалось мало, и я увлекся идеей его расширения до...

[Из песочницы] Если бы я учил Frontend сегодня. Советы начинающим Мой путь в веб-разработке начался 5 лет назад. За это время я успел испробовать множество технологий, а в последние 3 года развиваюсь в направлении frontend. В этой статье я бы хотел ясно изложить, какие технологии необходимо изучить новичку, а также поделиться методами их ...

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

Yggdrasil Network: Заря бытовых меш-сетей, или Интернет будущего Плавно наступает эпоха меш-сетей. Как минимум, этот термин все чаще и чаще появляется в информационной сфере. Что привлекает внимание сетевиков и почему в заголовке статьи фигурирует понятие «бытовая меш-сеть»? Попробуем разобраться в вопросе, взяв для примера сеть Yggdrasil...

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

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

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

SVM. Объяснение с нуля, имплементация и подробный разбор Привет всем, кто выбрал путь ML-самурая! Введение: В данной статье рассмотрим метод опорных векторов (англ. SVM, Support Vector Machine) для задачи классификации. Будет представлена основная идея алгоритма, вывод настройки его весов и разобрана простая реализация своими рука...

Книга «Грокаем технологию Биткоин» Привет, Хаброжители! Хотите разобраться в технологии Биткоин на глубоком концептуальном уровне? «Грокаем технологию Биткоин» на наглядных схемах и ярких примерах учит мыслить по-новому. Вы узнаете, как на самом деле происходит майнинг, возникают биткоины, как войти в сеть Б...

[Из песочницы] DLL & Python DLL & Python Недавно меня заинтересовала тема использования DLL из Python. Кроме того было интересно разобраться в их структуре, на тот случай, если придется менять исходники библиотек. После изучения различных ресурсов и примеров на эту тему, стало понятно, что примене...

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

[Из песочницы] Простой zero-copy рендеринг аппаратно ускоренного видео в QML Введение Целью данной статьи является продемонстрировать способ как можно подружить сторонние видео буфера и QML. Основная идея — использовать стандартный QML компонент VideoOutput. Он позволяет подсовывать сторонние источники, неплохо документирован и имеет бекэнд поддержив...

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

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

[Перевод] Создание шейдерной анимации в Unity Недавно я работал над анимацией респауна и спецэффектом главного героя моей игры “King, Witch and Dragon”. Для этого спецэффекта мне нужна была пара сотен анимированных крыс. Создание двухсот мешей со скиннингом с анимацией ключевыми кадрами всего для одного спецэффекта — ...

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

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

S7 Group открывает в МФТИ кафедру «Информационные технологии в авиации» Магистерская программа в Физтех-школе прикладной математики и информатики будет готовить специалистов по управлению данными и внедрению высокоэффективных продуктов. S7 Group и Московский физико-технический институт открывают набор студентов на базовую кафедру «Информационны...

[Перевод] 70 вопросов по JavaScript для подготовки к собеседованию Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи Mark A «70 JavaScript Interview Questions». Надеюсь, эта статья будет полезна как начинающим разработчикам, так и бывалым (я хотел сказать, опытным). Первым для изучения, вторым для повторения. Лич...

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

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

SDR трансивер SoftRock Ensemble RXTX Данная статья является продолжением серии публикаций про SDR (Software Defined Radio). В двух предыдущих статьях мы разобрались, как работает схема Tayloe, как с помощью схемы Tayloe осуществить синхронный приём АМ сигналов, и как устроен связной SDR-приёмник. В этой публи...

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

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

Правильное TDD Привет, Хабр! На написание этого поста меня вдохновил другой пост TDD есть опиум для народа, где обсуждаются спорные моменты в подходе TDD и в принципе делается вывод о его несостоятельности (хотя и признается необходимость тестов в любом случае). С автором я был полностью с...

[Из песочницы] Сети для начинающего IT-специалиста. Обязательная база Примерно 80% из нас, кто заканчивает университет с какой-либо IT-специальностью, в итоге не становится программистом. Многие устраиваются в техническую поддержку, системными администраторами, мастерами по наладке компьютерных устройств, консультантами-продавцами цифровой тех...

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

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

[Из песочницы] Базовые команды Linux для тестировщиков и не только Предисловие Всем привет! Меня зовут Саша, и я больше шести лет занимаюсь тестированием бэкенда (сервисы Linux и API). Мысль о статье у меня появилась после очередной просьбы знакомого тестировщика подсказать ему, что можно почитать по командам Linux перед собеседованием. Обы...

[Перевод] 10 принципов масштабируемых фронтенд-проектов С момента своего возникновения веб-приложения прошли долгий путь. Мы знаем, какую важную роль играет в вебе JavaScript и какие безграничные возможности есть у нас при выборе фреймворков и технологий. Каждый фреймворк имеет свои достоинства и недостатки, но почти во всех испо...

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

DevSecOps: как мы внедряли PT Application Inspector в наш продуктовый конвейер Привет! Меня зовут Тимур Гильмуллин, я работаю в отделе технологий и процессов разработки Positive Technologies. Неформально наш отдел называют DevOps-отделом, мы занимаемся автоматизацией различных процессов и помогаем разработчикам и тестировщикам в нашей компании.Я и мой ...

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

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

[Перевод] Преобразуем проект на Python в исполняемый файл .EXE С помощью Auto PY to EXE можно с лёгкостью преобразовывать файлы .py в файлы .exe. Благодаря этому ваш проект на Python будет работать как десктопное приложение и вы сможете запускать приложение на других машинах без необходимости установки Python. В этой статье я расскажу...

Flutter BloC паттерн + Provider + тесты + запоминаем состояние Эта статья выросла из публикации “BLoC паттерн на простом примере” где мы разобрались, что это за паттерн и как его применить в классическом простом примере счетчика. По комментам и для своего лучшего понимания я решил попробовать написать приложение в котором будут получены...

Как сделать базовый тест-класс для Selenium тестов и выполнить инициализацию через JUnit RuleChain Этой статьей мы продолжаем серию публикаций о том, как мы автоматизировали в одном из крупных проектов ЛАНИТ процесс ручного тестирования (далее – автотесты) большой информационной системы (далее – Системы) и что у нас из этого вышло. Как эффективно организовать иерархию кл...

Простой зомби-шутер на Unity Всем привет! Скоро стартуют занятия в первой группе курса «Разработчик игр на Unity». В преддверии начала курса прошел открытый урок по созданию зомби-шутера на Unity. Вебинар провёл Николай Запольнов, Senior Game Developer из Rovio Entertainment Corporation. Он также написа...

createRef, setRef, useRef и зачем нужен current в ref Привет, Хабр!В этой статье попробуем разобрать большинство непонятных базовых принципов при взаимодействии с ref. Например чем детально отличается createRef от useRef, зачем в этих объектах отдельное свойство current и многое другое. Одним слово...

[Перевод] Знакомимся с NestJS Перевод статьи подготовлен в преддверии старта курса «Разработчик Node.js». У современных разработчиков есть много альтернатив, когда речь заходит о создании веб-сервисов и других серверных приложений. Node стал крайне популярным выбором, однако многие программисты предп...

Ищете вакансию тестировщика? Будьте готовы продемонстрировать навыки разработчика И снова здравствуйте. В преддверии старта курса «Java QA Engineer» подготовили небольшой материал, который станет полезен тем, кто только собирается построит карьеру в данном направлении. Тестировщик — кто это? Инженер по контролю качества программного обеспечения (QA) от...

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

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

10 трендов дизайна креативов 2021-2022, которые цепляют сейчас и будут цеплять в ближайший год + много примеров Наш дизайнер уже давно просился написать в наш блог, собирал примеры и отслеживал тренды. И вот сегодня мы рассмотрим 10 (и еще 2 спорных) трендов в дизайне креатива, которые, на наш взгляд, способны повысить CTR объявления, поэтому, вероятно, доживут с нами оставшиеся месяц...

[Перевод] Визуализация работы сервис-воркеров (Service Workers) Доброго времени суток, друзья! Вероятно, многие из вас слышали о таком новшестве в экосистеме JavaScript, как сервис-воркеры, которые являются ключевым элементом современной веб-разработки. Сервис-воркеры становятся все более востребованными, в первую очередь, благодаря п...

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

[Перевод] Руководство по работе с OpenAL на C++. Часть 1: воспроизводим звук Вашей игре нужен звук! Наверно, вы уже использовали OpenGL для рисования на экране. Вы разобрались с его API, и поэтому обратились к OpenAL, потому что название кажется знакомым. Что же, хорошие новости — OpenAL тоже имеет очень знакомый API. Он изначально задумывался для и...

[Перевод] Исчерпывающий путеводитель по тегу iframe Элемент iframe (сокращение от встроенного фрейма), вероятно, является одним из старейших тегов HTML и был представлен ещё в далеком 1997 году в HTML 4.01 Microsoft Internet Explorer. Хотя все современные браузеры поддерживают данный тег, многие разработчики пишут бесконечны...

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

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

[Из песочницы] Расчет временных ограничений для ПЛИС простым языком Здравствуйте. Эта статья написана для самых-самых новичков в мире ПЛИС. В ней я попытаюсь максимально просто и понятно рассказать что такое временны́е ограничения (timing constraints), накладываемые на проекты под ПЛИС. Статья создана на основе собственного опыта попыт...

Трюки для обработки метрик в Kapacitor Скорее всего, сегодня уже ни у кого не возникает вопрос, зачем нужно собирать метрики сервисов. Следующий логичный шаг – настроить алертинг на собираемые метрики, который будет оповещать о любых отклонениях в данных в удобные вам каналы (почту, Slack, Telegram). В сервисе он...

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

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

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

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

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

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

[Перевод] Cylance против Sality Всем привет. В преддверии старта курса «Реверс-инжиниринг 2.0» подготовили еще один интересный перевод. Sality терроризирует пользователей компьютеров с 2003 года, когда персональные цифровые помощники (PDA или КПК) делали заголовки технических изданий, а офисные ПК работа...

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

Почему я ушел с React Native и перешёл во Flutter: Часть 1 Всем привет. Меня зовут Дмитрий Андриянов. Два года писал на React Native, сейчас я разработчик в Surf и уже полтора года пишу на Flutter. Когда я только решил серьёзно взяться за Flutter, я бы очень хотел найти статью от разработчика, который перешёл с React Native на Flutt...

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

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

Создание Discord – бота на .NET Core с деплоем на VPS-сервер Привет, Хабровчане! Сегодня вы ознакомитесь со статьей, в которой будет рассказано, как создать бота, используя C# на .NET Core, и о том, как его завести на удаленном сервере. Статья будет состоять из предыстории, подготовительного этапа, написания логики и переноса бот...

Embox на процессоре Эльбрус. Или никогда не забывайте о том, что получили при разведке Данная статья является логическим завершением серии статьей “восхождение на Эльбрус” об ознакомлении Embox с процессорной архитектурой Эльбрус (E2K) . Почему логическим завершением, потому что в результате удалось через telnet запустить приложение, которое выводит на экран ...

Создание графики для nes/dendy Предыдущие мои статьи рассказывают о том как начать программировать под денди на ассемблере. Мы научились отрисовывать спрайты и background, так же мельком обсудили что такое таблица атрибутов и таблица имен, так же мы разобрались как прочитать контроллер. В тех статьях Я ис...

Разбираем ресурсы Twisted Metal 4 (PSX) в Ghidra. Часть 1 Всем привет, В данной статье я расскажу о реверс-инжиниринге ресурсов игры Twisted Metal 4 для первой Playstation. В качестве основного инструмента я буду использовать Ghidra. Наверняка вы слышали об игровой серии Twisted Metal. А кому-то, наверное, довелось и поиграть (мне...

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

Как собрать ПК с Алиэкспресса На сайте Alimpopo.ru своими открытиями и опытом делятся эксперты в покупках на известной торговой площадке Алиэкспресс. Данный интернет – ресурс вмещает в себя большой объем информации и позволяет всем своим посетителям получить подсказки и грамотные рекомендации относительн...

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

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

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

[Перевод] Vim с поддержкой YAML для Kubernetes Прим. перев.: оригинальную статью написал Josh Rosso — архитектор из VMware, ранее работавший в таких компаниях, как CoreOS и Heptio, а также являющийся соавтором Kubernetes alb-ingress-controller. Автор делится небольшим рецептом, который может оказаться очень полезным для ...

[Из песочницы] Прикручиваем ActiveDirectory авторизацию к Kubernetes c помощью Keycloak Данная статья написана с целью расширить уже существующую, но рассказывает про особенности связки именно с Microsoft ActiveDirectory, а так же дополняет ее. В этой статье я расскажу как установить и настроить: Keycloak — это проект с открытым исходным кодом. Который обес...

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

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

[Перевод] 10 интересных репозиториев на GitHub, полезных любому разработчику Представляем вам перевод статьи Simon Holdorf, опубликованной на сайте medium.com. В ней вы найдете ссылки на полезные репозитории, с помощью которых можно прокачать навык разработки ПО. Фото с ресурса Unsplash. Автор: Vishnu R Nair GitHub — это лучшая платформа для обме...

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

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

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

Инженерный подход к подаркам За окном дождь, на календаре декабрь. Близится пора праздников, а значит и пора подарков. Коллега Павел желает себе новый ноутбук, а подруга Маша хочет домик у моря. И несмотря на достойный оклад профессии “тыжпрограммист”, мы не живём в мире бесконечных возможностей, а зн...

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

Svelte: знакомимся с Действиями Недавно на Хабре появилась статья от @sanReal, где Александр рассказал о том, каким приёмам и каким возможностям Svelte он научился на собственном опыте. Я был немного удивлён не увидев в его списке упоминания одного из самых мощных инструментов фреймворка — Действий. К тому...

[Перевод] 5 вопросов по SQL, которые часто задают дата-сайентистам на собеседованиях Хотя составление SQL-запросов — это не самое интересное в работе дата-сайентистов, хорошее понимание SQL чрезвычайно важно для того, кто хочет преуспеть в любом занятии, связанном с обработкой данных. Дело тут в том, что SQL — это не только SELECT, FROM и WHERE. Чем больше S...

Парсер командной строки на .NET5 Сегодня мы собираемся показать вам, как начать парсинг аргументов командной строки. Кстати, это один пост из серии статей о .NET 5. У нас есть еще много интересного.Приложения командной строки, также известные как консольные приложения, - это программы, созданные для использ...

Нетехническая статья про технические статьи Мне часто говорят – эй, где технические статьи? Чё ты всякую чушь пишешь, про менеджеров, директоров, отношения с персоналом, корпоративные дрязги, ноешь про бессмысленность нашей работы и вообще. Мы хотим технические статьи! Я, если честно, плохо понимаю, что такое «технич...

Прошивка для фотополимерного LCD 3D-принтера своими руками. Часть 2 Продолжение статьи о написании своей прошивки для фотополимерного LCD 3D-принтера. Первая часть лежит тут. В ней было описан первый этап — создание графического пользовательского интерфейса для дисплея с сенсорной панелью. В этой части продолжу описывать этапы своего проек...

oVirt за 2 часа. Часть 4. Базовые операции Сегодня мы рассмотрим ряд базовых операций, которые регулярно потребуется выполнять администратору среды виртуализации. Статья — продолжение серии по oVirt: часть 1, часть 2 и часть 3: Содержание Создание ВМ и шаблона; Миграция ВМ (live migration); Миграция хранилища (stor...

[Перевод] Напишем и поймем Decision Tree на Python с нуля! Часть 3. Библиотека для анализа данных Pandas Привет, Хабр! Представляю вашему вниманию перевод статьи "Pythonで0からディシジョンツリーを作って理解する (3. データ分析ライブラリPandas編)". Это третья статья из серии. Ссылки на предыдущие статьи: первая, вторая В данной статье я объясню, как работать с библиотекой Pandas, чтобы создавать De...

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

Война с тормозами. Оптимизация количества рендеров компонентов в React Native Привет, Хабр! Меня зовут Камо Сперцян, я занимаюсь React Native разработкой в Profi.ru. Если вы решили воспользоваться технологией React Native для быстрой доставки продуктовых фич и сосредоточились на скорости разработки, то, скорее всего, столкнётесь с проблемами производи...

[Из песочницы] Пишем бот для пазл игры на Python Давно хотел попробовать свои силы в компьютерном зрении и вот этот момент настал. Интереснее обучаться на играх, поэтому тренироваться будем на боте. В статье я попытаюсь подробно расписать процесс автоматизации игры при помощи связки Python + OpenCV. Читать дальше →

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

[Из песочницы] Некоторые тонкости injection'а коллекций в Spring'е Всем привет! Меня зовут Владислав Родин. В настоящее время я преподаю на портале OTUS курсы, посвященные архитектуре ПО и архитектуре ПО, подверженного высокой нагрузке. Сейчас в OTUS'е открыт набор на новый поток курса Разработчик на Spring Framework. В преддверии старта к...

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

[Перевод] Что такое Waypoint и какие возможности дает его использование Пару недель назад я посмотрела демонстрацию Waypoint— нового инструмента, который представила 15 октября 2020 года компания Hashicorp. Инструмента, который предназначен для создания легкого, интуитивного и настраиваемого под пользователя рабочего процесса сборки, развертыва...

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

UML для разработчиков Интернет полон статей про UML, вы найдете сотни примеров для каждого вида диаграмм, и без проблем создадите свои, нотация не сложная. Но так ли уж необходимо тратить на это время? Наш богатый опыт говорит «Да». Если у вас в команде более 2 человек и проект от 3 месяцев, то у...

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

Опыт создания продукта в России, или Как создавался “народный” беспроводной пылесос Всем привет! Андрей – предприниматель, CIO, CEO и кайтер. Несколько лет назад я пошел по пути создания и запуска собственного продукта «с нуля» на отечественном рынке (беспроводной пылесос). В этой статье хочу поделиться своим опытом с начинающими и действующими предпринимат...

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

[Перевод] 9 полезных трюков HTML Приветствую, Хабр! Представляю вашему вниманию перевод статьи «9 Extremely Useful HTML Tricks» автора Klaus. У HTML есть много практических секретов, которые могут вам пригодиться. Но я хочу убедиться, что сайт работает в Internet Explorer и других браузерах. Я использую ...

[Перевод] Python: 18 задач на вывод символов по заданному шаблону Подготовка к техническому собеседованию по Python — нелёгкая задача. На таком собеседовании вам, вполне возможно, встретятся задачи на вывод символов по заданным шаблонам. Если вы хотите научиться решать такие задачи — вам может пригодиться подборка способов их решения, прив...

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

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

[Из песочницы] Soft skills для разработчиков: зачем и как развивать? Спрос на IT-специалистов растет с каждым днем, вместе с этим увеличивается конкуренция. Для построения карьеры в хорошей компании уже недостаточно только профессиональный навыков (hard skills). Работодатели стали также обращать внимание и на так называемые “мягкие” навыки — ...

Maltego Часть 4. ВК, Instagram, LinkedIN и другие фантастические твари И снова здравствуйте, дорогие друзья. Мы опять готовимся окунуться в прекрасный мир OSINT. Статьи в нашем цикле прибавляются, поэтому пора уже вводить некое подобие оглавления, ведь дальше их будет только больше. Итак, что мы уже разобрали в Maltego: Часть 1 — Что такое ...

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

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

[Перевод] Как стать DevOps инженером за полгода или даже быстрее. Часть 1. Введение Целевая аудитория Вы разработчик, который хочет повернуть свою карьеру в сторону более совершенной модели DevOps? Вы являетесь классическим Ops-инженером и хотели бы получить представление о том, что означит DevOps? Или же вы не являетесь ни тем, ни другим и, потратив некото...

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

Перевод на английский язык в сфере IT на примере PVS-Studio Наша компания PVS-Studio активно публикует статьи на тему разработки, поиска ошибок в коде, техниках по улучшению его качества. Этот пост отличается по тематике – в этот раз рассмотрим вопрос перевода на английский язык русскоязычного контента на тему разработки. В этой ста...

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

Разработка hexapod с нуля (часть 8) — улучшенная математика передвижения Всем привет! В результате перехода на удаленную работу у меня появилось больше свободного времени на разработку гексапода (+2 часа в день за счет экономии на дороге). Я наконец-то смог сделать универсальный алгоритм для построения траектории движения в реальном времени. Нов...

Все, что вы хотели узнать об LDPC кодах, но стеснялись спросить (наверное) Предисловие С кодами малой плотности проверок на чётность, которые дальше мы будем именовать коротко LDPC (Low-density parity-check codes), мне удалось познакомиться более или менее близко, работая над семестровым научным проектом в ТУ Ильменау (магистерская программа CSP)....

[Из песочницы] Виджеты на Android. Редкая фича, в которой придется разобраться Привет, Хабр! Меня зовут Александр Хакимов, я android-разработчик в компании FINCH. У вас бывало такое, что ваш дизайн был под iOS, а вам приходится адаптировать его под android? Если да, то часто ли ваши дизайнеры используют виджеты? К сожалению, виджет — редкий кейс для ...

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

[Из песочницы] Автономизация Unit-тестов в PHPUnit Всем привет! Меня зовут Антон и сейчас (не так долго, около года) я разрабатываю на PHP в одном большом и старом проекте. Для обеспечения качества проекта мы применяем автотесты на фреймворке PHPUnit. Но, к сожалению, так получилось, что большая часть наших автотестов функц...

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

Вебинар «Как использовать данные на всех уровнях управления компанией» Как использовать данные на всех уровнях управления компанией. Операционный BI и управление по KPI Спикер – Антон Терехов, коммерческий директор группы компаний RU-CENTER, CEO и основатель SHOPOLOG.ru и Phenomen.org, ex. CMO OZON.ru. Более 18 лет занимается электронной ком...

[Перевод] Создаём 2,5D-игру жанра Dungeon Crawling в Unity В этой статье мы расскажем, как можно воссоздать старые игры жанра dungeon crawler в Unity. Eye of the Beholder (1991 год) и SMT If (1994 год) Базовый ассет «карты» для уровня нашего подземелья. Большинство dungeon crawler-ов 90-х, в том числе и наш — это листы спрайт...

MLOps без боли в облаке: как развернуть Kubeflow в продакшен-кластере Kubernetes Новые экспериментальные модели машинного обучения важно быстро разворачивать в продакшене, иначе данные устареют и появятся проблемы воспроизводимости экспериментов. Но не всегда это можно сделать быстро, так как часто процесс передачи модели от Data Scientist к Data Enginee...

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

Путеводитель по Metasploit. Разбираем примеры использования знаменитого фреймворка Для подписчиковMetasploit Framework — самый масштабный и распиаренный из всех фреймворков для эксплуатации и постэксплуатации. Однако вводной статьи по нему в «Хакере» не было, а если и была, то так давно, что не считается. Я расскажу, как именно этот фреймворк использует мо...

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

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

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

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

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

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

Новые архитектуры нейросетей Новые архитектуры нейросетей Предыдущая статья «Нейросети. Куда это все движется» В этой статье кратко рассматриваются некоторые архитектуры нейросетей, в основном по задаче обнаружения объектов, чтобы найти (или хотя бы попытаться найти) будущие направления в этой быстро р...

Как инженеру вырасти в техлида Кто такие тимлид, архитектор или QA и чем они занимаются, в IT представляют себе примерно все. Но с пониманием, кто такой техлид, за что отвечает и как им стать, возникают трудности. Мы провели десятки интервью со специалистами крупных компаний и узнали, что это инженер, кот...

Интеграция проекта VueJS+TS с SonarQube В своей работе мы активно используем платформу SonarQube для поддержания качества кода на высоком уровне. При интеграции одного из проектов, написанном на VueJs+Typescript, возникли проблемы. Поэтому хотел бы рассказать подробней о том, как удалось их решить. В данной стать...

Беспроводной DIY датчик тепрературы и влажности с e-paper дисплеем Всем привет! Сегодня хочу рассказать читателям о своем DIY проекте датчика температуры и влажности с e-ink дисплеем. Это будет некая обзорная статья об этапах создания устройства, будет много картинок. Идея этого проекта родилась около двух лет назад, примерно тогда я увлекс...

Apache Kafka: основы технологии У Kafka есть множество способов применения, и у каждого способа есть свои особенности. В этой статье разберём, чем Kafka отличается от популярных систем обмена сообщениями; рассмотрим, как Kafka хранит данные и обеспечивает гарантию сохранности; поймём, как записываются и ч...

[Перевод] Теория вероятностей для физически точного рендеринга Введение В рендеринге часто используется вычисление многомерных определённых интегралов: например, для определения видимости пространственных источников освещения (area light), светимости, доходящей до области пикселя, светимости, поступающей за период времени и облучения, ...

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

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

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

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

Хороший ли выбор Svelte для реализации виджета? Привет! Меня зовут Дмитрий Усов, я фронтенд-разработчик в Ситимобил. Буквально несколько месяцев назад появилась задача создать виджет для заказа такси через сайт. В этой статье я хотел бы рассказать, почему для этой задачи был выбран Svelte, поделиться своим мнением о его д...

Параметризованное 3D-моделирование подшипникового стакана в nanoCAD Plus 20 Компания MaxSoft категорически приветствует всех читателей! В этой статье речь пойдет о САПР-платформе nanoCAD, а если конкретнее — о её 3D модуле. Так уж сложилось, что из релиза в релиз, все вертикальные решения на базе платформы nanoCAD, ровно как и сама платформа, обяза...

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

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

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

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

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

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

[Из песочницы] Компилятор Befunge на Python В процессе подготовки к курсу «Основы компиляторов» для студентов 4-го курса я изучал различные эзотерические языки программирования. Вот хорошая статья на эту тему. В статье самым интересным мне показался язык Befunge (Крис Пресс, 1993 год), особо отмечу три его особенности...

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

Сценарий идеального технического собеседования Дисклеймер: это сценарий идеального технического собеседования в Delivery Club Tech. Мнение нашей команды может не совпадать с мнением читателей. Привет, Хабр! Меня зовут Василий Козлов, я iOS-техлид в Delivery Club. Я часто и много провожу собеседования. В этой статье я с...

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

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

Языковые модели как двигатель прогресса: необычные применения для GPT-3 В начале лета разработчики из OpenAI представили языковую модель GPT-3, созданную для написания связного текста на основе заданного материала. Её обучали на 570 гигабайтах содержимого веб-страниц, википедии и художественной литературы, что почти в 15 раз превышает объем да...

[Перевод] Прожектор угроз: Файловый вирус Neshta Салют, хабровчане! В преддверии старта курса «Реверс-инжиниринг 2.0» хотим поделиться с вами еще одним интересным переводом. Краткий обзор Neshta — довольно старый файловый вирус, который до сих пор широко распространен. Изначально он был обнаружен в 2003 году и ранее ассо...

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

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

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

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

«Никогда не писали автотесты? Попробуйте Cypress» «Никогда не писали автотесты? Попробуйте Cypress» Автотесты на Cypress Первое впечатление и встречающиеся проблемы Дмитрий Кочергин, Lead Software Developer Luxoft Прежде всего хочу отметить, что я не профессиональный автотестер, а Java-программист. Но однажды поступила за...

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

Spelunky как пример хорошего гейм-дизайна Spelunky 2, к сожалению, так и не вышла в 2019 году, да и дату релиза в 2020 еще не объявили. Если вы не играли в первую часть, предлагаю вам пока ознакомиться с этим примером хорошего гейм-дизайна и разобраться, чем же он хорош. В этой статье: как сделать туториал и при э...

Клиент-серверная архитектура в картинках Знакомая картинка? А вы ведь постоянно сталкиваетесь с этой архитектурой — когда покупаете билет в кино онлайн, бронируете путевку на море или записываетесь ко врачу. На клиент-серверной архитектуре построены все сайты и интернет-сервисы. Также ее используют десктоп-про...

База данных как сервис: когда, зачем и как использовать DBaaS в облаке Database by Julian-Faylona Многие облачные платформы предлагают базы данных как сервис (Database as a Service, DBaaS). Базу можно создать в облаке в несколько кликов, не тратя время на настройку и поддержку. Но не всем приложениям облачные базы данных подходят. Мы расскажем...

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

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

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

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

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

Правильное письмо о вакансии IT-специалисту Сообщение, с которого рекрутер начинает общение с кандидатом, — это точка контакта, формирующая впечатление адресата о компании и предложении. На мой взгляд, составление письма о вакансии — это творческий процесс, позволяющий экспериментировать. Но есть общие закономерности,...

Как вырастить веб-разработчика от стажера до архитектора. Матрица компетенций Вместо эпиграфа Когда в 2004 году я окончил университет, в нашем городе почти не было команд разработчиков. Где работать, у кого набираться практического опыта? Выбор был прост: “админом” или “в Москву”. Или уйти из профессии. Сейчас я преподаю веб-разработку в местных ВУЗ...

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

Знакомство с возможностями Ubiquiti UniFi на примере точки доступа AP AC Pro Наиболее эффективным способом расширения зоны покрытия беспроводной сети с сохранением высокой скорости является использование дополнительных точек доступа. Бренд Ubiquiti UniFi давно известен на этом рынке и предлагает широкий выбор решений и удобные средства управления кру...

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

[Из песочницы] Адекватное MVC для начинающих и не только Небольшое вступление Всем 404! Большинство IOS-разработчиков не понимают как работать с Apple-MVC. Из-за чего появляется необоснованная критика, маленькие проекты стараются писать на архитектурах для этого не предназначенных, ViewController'ы становятся огромными, не читаемы...

Тесты в Python: все основные подходы, плюсы и минусы. Доклад Яндекса Перед вами доклад Марии Зеленовой zelma — разработчика в Едадиле. За час Маша рассказала, в чём состоит тестирование программ, какие тесты бывают, зачем их писать. На простых примерах можно узнать про библиотеки для тестирования Python-кода (unittest, pytest, mock), принципы...

[Перевод] Локализация в ASP.NET Core Razor Pages — Культуры Привет, хабр! Прямо сейчас OTUS открывает набор на новый поток курса "C# ASP.NET Core разработчик". В связи с этим традиционно делимся с вами полезным переводом и приглашаем записаться на день открытых дверей, в рамках которого можно будет подробно узнать о курсе, а также за...

Как стать топовым разработчиком на Android Научиться разрабатывать приложения для Android может каждый Каждый день вы пользуетесь десятками приложений на своем Android. И наверняка вам приходило в голову начать тоже заниматься созданием приложений. На самом деле мобильная разработка — дело довольно сложное, по ...

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

Как мы считаем людей с помощью компьютерного зрения Фото из открытых источников Массовые скопления людей создают проблемы в самых разных областях (ритейл, госслужбы, банки, застройщики). Заказчикам необходимо объединять и мониторить информацию о количестве людей во множестве мест: в офисах обслуживания, административных пом...

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

Запускаем тесты на GitLab Runner с werf — на примере SonarQube Если в качестве инфраструктуры, где разворачивается приложение, выступает Kubernetes, можно сказать, что существует два способа запуска тестов (и других утилит для анализа кода) в CI/CD: непосредственно в кластере K8s — с помощью отдельных Job или Helm hooks; «снаружи»...

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

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

План начинающего тестера: от “Войти в IT” до “Я — Инженер!” Всем привет! Меня зовут Валентин и я работаю инженером по тестированию в компании Exness. Очень часто слышу вопрос о том, насколько сейчас возможно стать тестировщиком программного обеспечения. В этой статье я постараюсь ответить на данный вопрос. Читать дальше →

5 советов для прокачки своих навыков в Angular Этим летом мы с Ромой запустили серию твитов с полезными советами и приемами по Angular. Сообщество тепло встретило эту инициативу, и я решил написать обобщающую статью.Вот мои 5 рекомендаций, которыми хочется поделиться с разработчиками. Эти советы будут подкреплены конкрет...

Коммутатор Eltex MES 23XX. Шаблон базовой конфигурации Добрый день, коллеги! В этой статье я попытался создать шаблон базовой настройки коммутаторов Eltex MES 23XX для использования в корпоративных сетях, имеющих вспомогательные сервисы администрирования и мониторинга. Разумеется, невозможно описать весь функционал коммутатора и...

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

Шесть рецептов для начинающего тимлида: как всё успевать и развивать команду Привет! Меня зовут Дмитрий Ли, я тимлид одной из команд разработки бэкенда в Badoo. Когда я впервые стал тимлидом, я стал активно посещать конференции и читать умные книги об управлении командой. Однако в моей работе после этого менялось немногое. Я читал о том, каким я д...

Функциональное программирование на TypeScript: задачи (tasks) как альтернатива промисам Предыдущие статьи цикла: Полиморфизм родов высших порядков Паттерн «класс типов» Option и Either как замены nullable-типам и исключениям В предыдущей статье мы рассмотрели типы Option и Either, которые предоставляют функциональную замену nullable-типам и выбрасыванию искл...

Пишем тренажер слепой печати на чистом JavaScript. Часть 1 Здравствуйте! В преддверии старта курса «Fullstack разработчик JavaScript» один из наших авторов решил поделиться своим опытом создания тренажера для слепой печати. А мы же, в свою очередь, хотим показать вам данный материал. Всем привет! Сегодня я решил показать, как нап...

7 бесплатных курсов для специалистов по работе с данными (DS и DE) Finale! Именно этим итальянским словом можно назвать эту статью. Ведь она последняя уже во второй серии подборок бесплатных курсов от Microsoft. И сегодня у нас курсы для специалистов по анализу данных и инженеров данных. Присоединяйтесь! Кстати! Все курсы бесплатные (вы ...

Парсинг фотографий с сайта cian.ru с помощью Selenium Здравствуйте дорогие хабровчане, в этом небольшом примере я хочу показать как можно распарсить страницу, данные на которую подгружаются с помощью javascript виджетов. Более того, даже если страницу в этом примере просто сохранить, то всё равно не получится спарсить из неё вс...

Сколько видеопамяти необходимо современным играм - влияние нехватки видеопамяти на производительность на примере Polaris 4Gb vs 8Gb Данная статья затронет такие вопросы: как 3 - 4 гигабайт видеопамяти хватит всем, видео чип просто не "тянет" текстуры, зачем ему много видеопамяти и я компенсирую нехватку видеопамяти оперативной памятью, по существу все что будет затронуто в данной статье применимо и к дру...

PlayStation 5 лучше Xbox Series X, потому что на второй невозможно реализовать все те 12 TFLOPS мощности Разработчики и различные специалисты игровой индустрии продолжают утверждать, что консоль Sony PlayStation 5 будет лучше, чем Xbox Series X, несмотря на меньшую производительность. На сей раз высказаться на эту тему решил инженер рендеринга компании Crytek Али Салехи (...

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

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

[Из песочницы] Разбираемся с управлением памятью в современных языках программирования Привет, Хабр! Представляю вашему вниманию перевод статьи «Demystifying memory management in modern programming languages» за авторством Deepu K Sasidharan. В данной серии статей мне бы хотелось развеять завесу мистики над управлением памятью в программном обеспечении (далее...

[Из песочницы] Установка micropython на ESP8266 и работа с ним под Linux (для начинающих) Привет, Хабр! Это мой первый опыт с микроконтроллерами в целом, и ESP8266 (в виде Nodemcu v2) в частности. Возможно, для кого-то этот опыт окажется полезным. Почему именно micropython? Ответ простой — мой скромный опыт в области программирования ограничен Паскалем в ВУЗе,...

[Перевод] Создание бесшовных карт шума Создать бесшовное изображение в Photoshop легко: обрезать изображение, взять обрезанную правую и нижнюю части, а потом приклеить их слева и сверху при помощи инструмента «Ослабить» (Fade). Но для правильной реализации бесшовных карт шума придётся хорошенько подумать. Если ...

Про перевод «сфер» Про «сферы» Не знаю, как вас, а меня корёжит, когда «в сфере» переводят на английский in the sphere. В этой статье я как раз поговорю об этих всяких сферах и сразу дам спойлер — слова sphere вы нигде в примерах не увидите. Примерно в половине случаев эта фраза вообще не пере...

[Из песочницы] 5 фич JavaScript, без которых я не мог бы писать код (перевод) Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи Kent Dodds «5 JavaScript Features I Couldn't Code Without». Это мой первый перевод, так что буду рад любым замечаниям. 5 фич JavaScript, без которых я не мог бы писать код Прежде чем мы начнем, по...

[Из песочницы] Практичные способы маппинга данных в Kotlin Маппинг данных – один из способов для разделения кода приложения на слои. Маппинг широко используется в Android приложениях. Популярный пример архитектуры мобильного приложения Android-CleanArchitecture использует маппинг как в оригинальной версии (пример маппера из CleanArc...

Профессия: фронтенд-разработчик ххх: на чём пишешь фронтенд? yyy: на костылях и велосипедах ххх: ммм, хороший фреймворк! Bash.im Когда приходит мысль стать программистом, ты вдохновенно открываешь справочник Шилдта по С, заказываешь толстую книгу Страуструпа по С++ и учишься шутить про указатель на указат...

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

ТОР‑5 онлайн-курсов для НКО от Центра РНО Где НКО и социальным предпринимателям найти финансирование, как подсчитать бюджет проекта и оформить заявку на получение средств, какие основные документы должны быть в НКО и как организовать документооборот – ответы на все эти вопросы можно найти на онлайн-курсах. Центр ра...

[Из песочницы] Фундаментальное решение системы линейных уравнений. Взгляд со стороны Добрый день! В данной статье я попробую взглянуть по новому на алгоритм поиска общего решения системы линейных уравнений. Задача, которой мы займемся звучит так. Найти общее решение следующей системы уравнений Такую задачу решают, приведя исходную систему к треугольному...

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

Обзор корпуса NZXT H510 Вот мы и добрались до самой базовой модели H510 в актуальном ассортименте корпусов NZXT. Она имеет много общего с уже рассмотренным ранее H510i Elite, но есть и некоторые конструктивные отличия. В частности, нет...

[Из песочницы] Регистрация и авторизация с помощью Spring Security на примере простого приложения Добрый день! В этой статье будет рассмотрено создание простого веб приложения с использованием Spring Boot и Spring Security. В приложении будет реализована регистрация новых пользователей и авторизация, ограничение доступа к страницам сайта в зависимости от роли пользовате...

[Перевод] Разбираем идеальный кейс фишинга при аренде квартиры Недавно я стал жертвой (к счастью, неудачной) фишинговой атаки. Несколько недель назад я бродил по сайтам Craigslist и Zillow: я хотел арендовать жилье в районе залива Сан-Франциско. Мое внимание привлекли симпатичные фото одного местечка, и мне захотелось связаться с аренд...

Первая печать после сборки Sapphire S от Two Trees Всем привет. Ребята, хочу с вами поделиться с моим опытом использования первого 3D принтера от два дерева Sapphire S сейчас это продолжение Sapphire Pro. В этой статье хочу показать вам, что я распечатал в первую очередь на чём я учился как печатать и к какому выводу пришел ...

Внедрение зависимостей – проще, чем кажется? Привет, Хабр! У нас готовится к выходу второе издание легендарной книги Марка Симана, «Внедрение зависимостей в .NET» Поэтому сегодня мы решили кратко освежить тему внедрения зависимостей для специалистов по .NET и C# и предлагаем перевод статьи Грэма Даунса, где эта пар...

Устройство расширений для браузера Firefox (WebExtensions) Для людей, работа которых связана с использованием сети Интернет, расширения браузера могут быть очень полезными инструментами. С помощью них можно избавить пользователя от повторения одних и тех же действий и лучше организовать рабочий процесс. Можно составить набор инструм...

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

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

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

«Пишите код по-новому (тм)» C# я не люблю, но люблю собирать все паттерны и весь сахар, который они предлагают от версии к версии. Третьего дня посмотрел выступление Билла Вагнера на NDC Conferences, где он показывал, что нужно писать код по-новому (TM). Он показывает много примеров хорошего рефакт...

[Перевод] Тысячи забытых TODO в коде Kubernetes Фото Yancy Min на Unsplash Kubernetes — большой проект. Не только потому, что очень востребован, но и с точки зрения исходного кода. На момент написания этой статьи насчитывалось более 86 000 коммитов, более 2000 участников, более 2000 открытых тикетов, более 1000 открыты...

[Из песочницы] Как я веду Zettelkasten в Notion уже год: стартовый набор и полезные трюки Zettelkasten — крутой метод хранения идей и знаний — сейчас на слуху, дошел и до Хабра. Я веду такой в Notion уже год, потому что Notion лучше всех воплощает три главных принципа Zettelkasten: взаимосвязанность, категоризацию, актуальность. Метод улучшил качество моего обуч...

[Перевод] Создание микросервиса на Quarkus, Kotlin и Gradle Введение В предыдущей статье было приведено краткое описание процесса создания микросервиса на современных JVM фреймворках, а также их сравнение. В этой статье будет более детально рассмотрен недавно вышедший Quarkus на примере создания микросервиса с использованием упомяну...

Создание отказоустойчивой ИТ инфраструктуры. Часть 2. Установка и настройка кластера oVirt 4.3 Эта статья является продолжением предыдущей – «Создание отказоустойчивой ИТ инфраструктуры. Часть 1 — подготовка к развёртыванию кластера oVirt 4.3». В ней будет рассмотрен процесс базовой установки и настройки кластера oVirt 4.3, для хостинга высокодоступных виртуальных маш...

Основы линейной регрессии Здравствуй, Хабр! Цель этой статьи — рассказать о линейной регрессии, а именно собрать и показать формулировки и интерпретации задачи регрессии с точки зрения математического анализа, статистики, линейной алгебры и теории вероятностей. Хотя в учебниках эта тема изложена стр...

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

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

Cassandra. Как не умереть, если знаешь только Oracle Привет, Хабр. Меня зовут Миша Бутримов, я хотел бы хотел немного рассказать про Cassandra. Мой рассказ будет полезен тем, кто никогда не сталкивался с NoSQL-базами, — у нее есть очень много особенностей реализации и подводных камней, про которые нужно знать. И если кроме Or...

[Из песочницы] Как начать писать микросервис на Spring Boot, чтобы потом не болела голова Привет! Меня зовут Женя, я Java-разработчик в Usetech, в последнее время много работаю с микросервисной архитектурой, и в этой статье хотела бы поделиться некоторыми моментами, на которые может быть полезно обратить внимание, когда вы пишете новый микросервис на Spring Boot....

[Перевод] Чистые тесты на PHP и PHPUnit В экосистеме PHP существует много инструментов, обеспечивающих удобное тестирование на PHP. Одним из самых известных является PHPUnit, это почти синоним тестирования на этом языке. Однако о хороших методиках тестирования пишут не так много. Есть много вариантов, для чего и ...

Импорт ЕГРЮЛ ФНС средствами Apache NiFi. Шаг 2 — преобразование XML в JSON В одном из проектов возникла необходимость перевести процессы импорта данных сторонних систем на микросервисную архитектуру. В качестве инструмента выбран Apache NiFi. В качестве первого подопытного выбран импорт ЕГРЮЛ ФНС. В предыдущей статье было описано, как получить файл...

Перфекционизм, отмена: как техническим специалистам писать статьи Цитата анонимного тимлида о том, как он обычно готовит текст: «Написание статьи технические специалисты обычно воспринимают так: автор сформулировал тему, немного подумал, сел и выдал текст сразу на чистовик. Естественно, в реальности все работает по-другому. Из-за этого &...

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

[Перевод] Как в Python реализованы очень длинные числа типа integer? Перевод статьи подготовлен специально для студентов курса «Разработчик Python». Когда вы пишете на низкоуровневом языке, таком как С, вы беспокоитесь о выборе правильного типа данных и спецификаторах для ваших целых чисел, на каждом шаге анализируете достаточно ли будет ис...

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

Halt and Catch Fire — команда, заслужившая экранизацию Приветствую всех Хабрачан и Хабрачанок! Спасибо всем вам за такую поддержку! Мы вместе прошли долгий и интересный путь по вселенным всех ключевых фильмов и сериалов в мире IT. Мы вместе пытались разобраться в сериале «Мистер Робот», вместе обсуждали лучшие комедии о нас с в...

[Из песочницы] Введение в Traefik 2.0 Traefik — это обратный прокси-сервер с открытым исходным кодом, обеспечивающий простую работу с микросервисами и/или просто контейнерами с вашими приложениями. Обратный прокси-сервер (reverse proxy, реверс-прокси) служит для ретрансляции запросов из внешней сети к каким-либо...

Сгореть и вернуться из пепла или люди-фениксы История о том как “сгорают” в распределенных командах. Мы, в ProtocoleOne, пишем разные проекты и почти все они Open Source. И так уж сложилось, что крутые специалисты живут в разных городах и даже странах и не только в столицах. Один из таких проектов — PaySuper. Проект дл...

Управление трафиком в Kubernetes-кластере с Calico Практически каждый инженер, практикующий DevOps, в какой-то момент сталкивается с задачей настройки правил доступа для своих проектов. В данной статье мы рассмотрим примеры настройки сетевых политик Kubernetes-кластера, в котором используется плагин Calico и осветим некотор...

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

Подборка @pythonetc, ноябрь 2019 Новая подборка советов про Python и программирование из моего авторского канала @pythonetc. ← Previous publications PATH — это переменная окружения, в которой хранятся пути, по которым ищутся исполняемые файлы. Когда вы просите оболочку выполнить ls, она сначала ищет ис...

4 способа выбрать (выделить) файлы на Mac (macOS) Большинство — если практически не все — взаимодействия с файлами на Mac происходят в специализированном приложении Finder. Конечно, базовые вещи вроде «выбрать и скопировать / вставить» знает каждый пользователь. Но операционка Apple предлагает и множество других удобных спо...

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

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

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

[Перевод] Как прошел 2019 год в области математики и Computer Science Перевод статьи подготовлен специально для студентов базового и продвинутого курсов «Математика для Data Science». Математики и информатики за прошедший год добились больших успехов в теории чисел, теории графов, машинном обучении и квантовых вычислениях, даже пересмотрел...

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

[Из песочницы] Введение в ASGI: становление асинхронной веб-экосистемы Python Привет, Хабр! Представляю вашему вниманию перевод статьи "Introduction to ASGI: Emergence of an Async Python Web Ecosystem" автора Florimond Manca. "Черепахи рядом с водоемом", Ricard Baraham на unsplash.com Python не замыкается только на Data Science, в...

Выбор хорошего инструмента для хранения тест документации и сравнительный анализ 3 выбранных инструментов Ведение документации для тестирования в Google-доках и Google-таблицах — не лучший способ работы с тестовой документацией. Такой подход имеет свои недостатки. В этой статье я расскажу, как мы перешли от хранения тестовой документации с Google docs к специализированным SaaS-р...

Принцип единственной ответственности: глубокое погружение Про принцип единственной ответственности (The Single Responsibility Principle, SRP) уже было написано множество статей. В большинстве из них даётся лишь поверхностное его описание мало чем отличающееся от информации в википедии. А те немногие статьи что затрагивают ключевые ...

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

Делаем Windows Server безопаснее В этой статье автор хотел бы дать пару хороших советов по администрированию серверов на Windows, которые по какой-то причине не нашел в интернете. Следуя этим принципам вы сильно обезопасите свои серверы под управлением Windows как в локальных средах, так и в публичных. Ч...

Опыт внедрения Service Mesh на Nomad и Consul В этой статье мы расскажем, как развернули Service Mesh, решили часть проблем микросервисной архитектуры и уменьшили нагрузку на разработчиков и инженеров инфраструктуры. Читать дальше →

Аутенти(фи?)кация Некоторые термины, заимствуемые из английского, входят в русский язык с нарушением всех языковых правил. Характерный пример из 90-х — слово флуд, непохожее ни на транскрипцию [flʌd], ни на транслитерацию flood. Более свежий пример — биткоин: окончание -оин характерно для хим...

Все об удаленной работе в Тинькофф банке Удаленная работа – идеальная возможность для заработка прямо у себя дома. Желательно, чтобы занятость соответствовала запросам современного человека: достойная заработная плата, социальный пакет, комфортный график, приятные коллеги и т.д. Давайте разбираться в том, реально л...

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

[Перевод] Реализация SOLID и слоистой архитектуры в Node.js с TypeScript и InversifyJS Привет, Хабр! Предлагаю вашему вниманию перевод статьи Implementing SOLID and the onion architecture in Node.js with TypeScript and InversifyJS автора Remo H. Jansen В этой статье мы рассмотрим архитектуру, известную как слоистая (onion). Слоистая архитектура — подход к пост...

Golang: на что рассчитывать специалисту по Go в море IT-специальностей? В апреле на Хабре публиковалась статья «Зачем вам учить Go», в которой подробно освещались возможности языка и его преимущества.   Ну а сейчас — самое время поговорить о разработчиках Golang, пороге входа в эту отрасль и о том, чего может ожидать Go-разработчик от работода...

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

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

[Перевод] С чего начать изучение Flutter в 2021 году Как и многие мобильные разработчики, мы с нетерпением ждали презентации Flutter и теперь хотим поделиться с читателями Хабра переводом статьи Tadas Petra о том, как можно выстроить свое обучение, если вы хотите познакомиться с Flutter и кроссплатформенными приложениями в 202...

[Перевод] Несколько полезных советов как практиковаться в Python Привет, Хабр! Сегодня я предлагаю Вам перевод статьи Duomly, посвящённой изучению и практике программирования на языке Python. Введение Изучение Python не сильно отличается от изучения других языков программирования. Один путь для становления профессионалом в Python (или в д...

Как мы оркестрируем процессы обработки данных с помощью Apache Airflow Всем привет! Меня зовут Никита Василюк, я инженер по работе с данными в департаменте данных и аналитики компании Lamoda. В нашем департаменте Airflow играет роль оркестратора процессов обработки больших данных, с его помощью мы загружаем в Hadoop данные из внешних систем, об...

[Перевод] Vulkan-tutorial. Урок 1.1 — Вступление В связи с тем, что у меня не так много времени для ресерча каких-то новых штук и написания статей о них, я решил перевести серию уроков по Vulkan. Надеюсь, что мои переводы будут кому-то полезны и не очень плохого качества. Для начала обучения — прошу под кат. Автор ориги...

Будни OEMщика (Часть 2) Для тех, кто не читал первую часть статьи, скажу, что в данной статье под OEMщиком подразумевается специалист, который занимается подготовкой Windows к тиражированию на множество устройств. Из первой части Вы узнали, как быстро создать и развернуть образ системы. Помните, чт...

Как уменьшить размерность метрик в Prometheus, если вы не DevOps Иногда команда разработки сталкивается с задачей, в которой у неё мало экспертного опыта, и через пробы и ошибки она находит неочевидное решение. Так произошло и с нами, когда понадобилось перенести сбор метрик из Infux в Prometheus. Их итоговая размерность оказалась 1,5 мил...

[Из песочницы] 10 признаков того, что хороший программист из вас не получится Привет, Хабр! Представляю вашему вниманию перевод статьи «10 Signs You Will Suck at Programming» автора Jonathan Bluks. Очень часто на Reddit или Quora я вижу вопросы вида «Как понять, смогу ли я стать успешным программистом?» (На самом деле, эта статья является расширенн...

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

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

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

Распределённое хранение данных в IPFS Cluster Дисклеймер: эта статья рассчитана на понимание основных принципов работы InterPlanetary File System. Если вы не знакомы с IPFS, начните с этой статьи или загляните на ipfs.io. Самый известный и труднопреодолимый недостаток IPFS в скорости её работы. Так как все данные раз...

Пентест по-своему. Создаем собственную методику тестирования на примере машин с OSCP и Hack The Box Для подписчиковКаждому начинающему пентестеру или просто энтузиасту от мира ИБ однажды хочется перейти от чтения захватывающих райтапов к практике. Как же лучше это сделать и на что обязательно стоит обратить внимание? В этой статье я расскажу о своем пути и поделюсь некотор...

iPhone 11 впечатлил своей камерой Вчера мы писали о разочаровывающих результатах теста основной камеры смартфона Sony Xperia 5: несмотря на тройную камеру, аппарат выступил в тесте DxOMark на уровне двойной камеры iPhone 8 Plus. А сегодня пример обратный: iPhone 11 со сдвоенной камерой выступил в т...

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

[recovery mode] Установка Windows 98 на современный ПК Решил поделиться своим рецептом, как я установил Windows 98SE на относительно современный ПК. На Интернет форумах много сообщений, что Windows 98SE не устанавливается на современные ПК, не запускается на PCI-e видеокартах и т.п., поэтому статья может быть полезна тем, кто хо...

[Перевод] Ода Excel: 34 года волшебства Примечание: статья была написана в 2019 году, а в этом Microsoft Excel отмечает уже 35-летний юбилей. Чему инструмент, выдержавший проверку временем, может научить нас в эпоху «софта, который пожирает мир»? В статье я хочу показать вам, как фундаментальные принципы, стоящи...

Обзор подкаста «Деньги пришли» План такой: слушаю, что записывает компания, делаю заметки, пишу обзор. Alec Favale, Unsplash.com В конце прошлого года я решил написать о корпоративных подкастах и спросил в Facebook, кто ими занимается. Ответили человек 20, дали примеры программ. По мере их изучения я ...

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

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

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

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

[Из песочницы] Шизофрения: взгляд после Грани безумия В те далекие времена, когда я чувствовал себя получше, я частенько заходил почитать хабр. Теперь почти полная потеря интереса к ИТ — одна из самых незначительных моих проблем. Заранее прошу прощения за исковерканные слова и знаки препинания, тут уже давно во вс...

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

Как я «умный» телевизор Samsung до ума доводил — расширенный отзыв “Каждый человек обязан, по меньшей мере, вернуть миру столько, сколько он из него взял.” — Альберт Эйнштейн В своей первой статье на Хабре мне хотелось бы поделиться с уважаемыми читателями подробной информацией о достоинствах и недостатках, а также личным опытом настройки ...

[инструкция] Создание аккаунта и сайта на платформе Google Site Спасибо пользователю Exosphere за помощь и конструктивную критику Часто возникает необходимость структурировать информацию, создать какой то банк данных, который будет доступен по сети интернет. Однако при этом нет необходимости создавать полноценный сайт или изменять теку...

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

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

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

RealWorld: aiohttp, Tortoise ORM RealWorld: aiohttp, Tortoise ORM На Real World отсутствует пример для aiohttp, и я решил его сделать. Опытным разработчикам, похоже, некогда этим заниматься, а начинающим в aiohttp непонятно как делать правильно. Я начал его делать с помощью Tortoise ORM. Пока начал делать а...

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

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

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

Почему мы выбрали Kotlin одним из целевых языков компании. Часть 2: Kotlin Multiplatform Продолжаем цикл статей о внедрении языка Котлин в наш процесс разработки. Первую часть ищите здесь. В 2017 году увидел свет амбициозный проект от компании Jetbrains, предлагающий новый взгляд на кросс-платформенную разработку. Компиляция кода на kotlin в нативный код различ...

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

[Перевод] Loki — сбор логов, используя подход Prometheus Салют, хабровчане! В преддверии старта нового набора на курс «DevOps практики и инструменты» подготовили для вас перевод интересного материала. Эта статья — краткое введение в Loki. Проект Loki поддерживается Grafana и направлен на централизованный сбор логов (с серверов ил...

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

Security Week 51: уязвимости в iOS и процессорах Intel 10 декабря компания Apple выпустила большой набор патчей для macOS, iOS (включая iPadOS) и watchOS. Пожалуй, наиболее опасным из закрытых багов была уязвимость в FaceTime, затрагивающая все мобильные устройства Apple начиная с iPhone 6s и iPad Air 2. Как и в случае с обнаруж...

Свой стек навигации. Лучше чем у ROS? Это вторая статья команды setUP про наш опыт создания автономных роботов для соревнований Eurobot Open и использования для этого ROS. Первая статья про механику и общую архитектуру роботов. Роботы ездят по ровному полю и большинство препятствий заранее известно, однако, ко...

Адаптивный или отзывчивый? Разбираем структуру React-компонентов В этой статье мы разберёмся, в чем сложность написания адаптивных компонентов, поговорим о code-splitting-е, рассмотрим несколько способов организации структуры кода, оценим их достоинства и недостатки и попытаемся выбрать лучший из них (но это не точно). Читать дальше &ra...

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

Избавляемся от рутины со своим плагином для PhpStorm Привет, Хабр! Я тружусь в команде Антиспама, и, как и у большинства бэкенд-разработчиков Badoo, большая часть времени у меня уходит на работу с PHP-кодом. С этой работой связано много специфических проблем и задач, которые можно решить или упростить. Когда мне надоело вруч...

Принцип подстановки Лисков Всем привет, меня зовут Константин. Я занимаюсь разработкой на Java в Tinkoff.ru и люблю SOLID. В этой статье мы сформулируем принцип подстановки Лисков, покажем его связь с принципом Открытости-Закрытости, узнаем, как правильно формировать иерархию наследования и ответим на...

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

[Перевод] Swift Property Wrappers Если вы использовали SwiftUI, то наверняка обращали внимание на такие ключевые слова, как @ObservedObject, @EnvironmentObject, @FetchRequest и так далее. Property Wrappers (далее «обёртки свойств») — новая возможность языка Swift 5.1. Эта статья поможет вам понять, откуда же...

[recovery mode] Кросскомпиляция выполняемых файлов Rust для Windows из Linux Наверное не будет уж очень удивительным если я тут, на IT площадке Хабра, скажу что я иногда балую себя программированием. Основная OS у меня Linux, но иногда приходится собирать исполняемые файлы и для Windows. И естественно что перегружаться в Windows только для сборки exe...

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

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

'Hello World' вам в облако Мир сходит с ума, заталкивая калькулятор для 2+2 в облака. Чем мы хуже? Давайте Hello World затолкаем в три микросервиса, напишем пару-тройку тестов, обеспечим пользователей документацией, нарисуем красивый пайплайн сборки и обеспечим деплой в условный облачный прод при успе...

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

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

Как изменился английский Илона Маска за 20 лет Илон Маск — одна из самых ярких личностей XXI века. Инженер, предприниматель и миллионер с просто невообразимыми идеями. PayPal, Tesla, SpaceX — это всё его детища, и бизнесмен не собирается останавливаться только на нескольких проектах, которые стали всемирно успешными. О...

Как вести технический блог? Я работаю в коммерческой разработке с 2011 года. С конца 2012 занимаюсь разработкой под iOS. Свою первую техническую статью я написал на Хабре в начале 2017 года про подход к локализации мобильных приложений. Потом выпустил ещё несколько статей по iOS-разработке на Хабре и...

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

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

[Перевод] Анализ скорости распространения COVID-19 и публикация результатов на dstack.ai Предисловие переводчика Всем привет, давно ничего не писал на Хабр, но тут появился повод. Я довольно много лет проработал в области анализа данных и самая важная вещь, которую я понял за это время — в анализе данных очень не хватает инструментов, самых разных инструментов...

Мобильная разработка — это просто и скучно? Доклад Яндекса Существует миф, что создавать приложения для iOS или Android проще, чем быть, скажем, бэкенд-разработчиком. Разумеется, это не так: в работе с любой платформой есть свои сложности, всюду возникают неочевидные проблемы, требующие навыков в предметной области и за её пределам...

Про фразовые глаголы-4 (in/out) Перед этой статьёй рекомендуется прочитать две первые части: 1. habr.com/ru/post/495794 2. habr.com/ru/post/496190 Out соответствует русским приставкам со значениями «наружу» и «до конца, полностью»: «вы-»: hear – «слушать». Hear me out! – Вы-слушай меня! «раз-»/«рас-»: ...

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

Observable сервисы в Angular Всем привет, меня зовут Владимир. Я занимаюсь фронтенд разработкой в Tinkoff.ru. В Ангуляре для передачи данных внутри приложения или для инкапсуляции бизнес-логики мы привыкли использовать сервисы. Для управления асинхронными потоками отлично подходит RxJS. Ангуляр в сочета...

Обзор и опыт эксплуатации ноутбука Asus ZenBook 14 (UM433DA). Лучший в классе? В этой статье я расскажу вам об одном из лучших, на мой взгляд, ноутбуков в […]

[Из песочницы] Пять интересных способов использования Array.reduce() (и один скучный путь) Привет, Хабр! Представляю вашему вниманию перевод статьи "Five Interesting Ways to Use Array.reduce() (And One Boring Way)" автора Chris Ferdinandi. Из всех современных методов работы с массивами самым сложным из всех, что мне пришлось использовать, был Array.reduce(). На пе...

[Из песочницы] Игра с открытым API: Swagger Play В данной статье я хочу рассказать, как использовать Swagger модуль для Play Framework, с примерами из реальной жизни. Я расскажу: Как прикрутить последнюю версию Swagger-Play (модуль Play, позволяющий использовать аннотации swagger-api и генерировать на их основе документ...

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

Сервер Игры на MS Orleans — часть 1: Что такое Акторы Привет Хабр! И так, на четырнадцатый день копья решил я значит начать делать простенький игровой сервер для простой онлайн стрелялки. За одно тему распределенных вычислений затронуть. В этой вводной статье цикла хочу рассказать что такое акторы (в Орлеанс их зернами называ...

[Перевод] Лучшие 10 хитростей и советов по Kubernetes В интернете много справочной литературы, но иногда самыми ценными становятся самые простые советы. Команда Kubernetes aaS от Mail.ru перевела подборку из десяти хитростей и советов, которые автор статьи собрала после года работы с Kubernetes. Советы не отсортированы по важ...

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

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

[Из песочницы] О работе ПК на примере Windows 10 и клавиатуры ч. 1 Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10, ранее я работал над Windows 10x (WCOS), XBox, Windows Phone и Microsoft Edge. Я хочу популярно в образовательных целях рассказать о том как работает компьютер на примере клавиатурного ввода и Window...

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

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

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

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

Что бы я хотел знать когда начинал изучать Django? — очень общий взгляд Здесь на Хабре много различных инструкций по использованию Django. Эти инструкции часто включают много кода и представляют последовательность шагов, которые нужно сделать, чтобы создать проект. Когда я начинал изучать Django и Wagtail по таким инструкциям, меня часто смущал...

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

Как джуниор Python-разработчику стать мидлом за год Привет! Я Рома, менеджер продукта в Яндекс.Практикуме, где развиваю курс «Мидл Python-разработчик». Мы делаем из начинающих разработчиков крепких мидлов с инженерным мышлением. Сегодня хочу поделиться небольшими заметками о том, над чем стоит работать, если вы джуниор, котор...

Cygwin или MinGW? Собираем программы для Windows без Windows Для подписчиковБольшая часть разработчиков свободного софта работает на Linux или Mac, а вот поддержка Windows обычно реализована по остаточному принципу. Заработало — хорошо, не заработало — пускай портирует тот, кому это нужно. В этой статье я покажу, как создавать нативны...

[Из песочницы] 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, узнает...

Референтная модель BIAN. Что нового и полезного для корпоративной архитектуры банка она предлагает? BIAN… как мало в этом звуке для сердца русского… Да, я не случайно перефразировала всем известного классика. В России популярность референтной модели BIAN все еще низкая, особенно в сравнении с моделью Enhanced Telecom Operations Map (eTOM), распространенной в опережающей ...

[Перевод] Что JavaScript-разработчику следует знать о Curl Доброго времени суток, друзья! Представляю Вашему вниманию перевод статьи «What JavaScript Developers Should Know About Curl» автора Valery Karpov. Curl — это популярный инструмент командной строки, часто используемый для отправки HTTP-запросов. Curl поддерживает большое...

[Перевод] Canary Deployment в Kubernetes #1: Gitlab CI Мы будем использовать Gitlab CI и ручной GitOps для внедрения и использования Canary-деплоя в Kubernetes Статьи из этого цикла: (эта статья) Canary Deployment при помощи ArgoCI Canary Deployment при помощи Istio Canary Deployment при помощи Jenkins-X Istio Flagger Выполн...

[Из песочницы] Изучаем VoIP-движок Mediastreamer2. Часть 1 Материал статьи взят с моего дзен-канала. Введение Эта статья является началом серии статей о реалтайм обработке медиаданных с помощью движка Mediastreamer2. В ходе изложения будут задействованы минимальные навыки работы в терминале Linux и программирования на языке Си. Medi...

Улучшаем эффективность системы охлаждения видеокарты Radeon RX560 В данной статье я расскажу вам о том, как можно улучшить эффективность системы охлаждения видеокарты, в качестве примера использована Sapphire RX560 OC.

PHP и регулярные выражения: азы для новичков В преддверии старта нового потока по курсу «Backend-разработчик на PHP», а также смежного с ним курса «Framework Laravel», хотим поделиться статьей, которую подготовил наш внештатный автор. Внимание! данная статья не имеет отношения к программе курса и будет полезна только ...

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

Китайский флагман, вышедший ещё весной, оказался одним из лучших камерофонов на рынке Специалисты DxOMark решили протестировать далеко не новый смартфон Oppo Reno 10x zoom. Аппарат, напомним, представили ещё в апреле. Несмотря на это, он весьма актуален до сих пор именно с точки зрения возможностей камеры, так как это единственный кроме Huawei P30 Pro см...

[Перевод] Элегантное асинхронное программирование с помощью «промисов» Доброго времени суток, друзья! Представляю вашему вниманию перевод статьи «Graceful asynchronous programming with Promises» с MDN. «Обещания» (промисы, promises) — сравнительно новая особенность JavaScript, которая позволяет откладывать выполнение действия до завершения вы...

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

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

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

[Из песочницы] Ephemeral Containers Kubernetes первые шаги Ephemeral Containers Kubernetes интересная затея для дебага проблем в контейнерах которые кроме исполняемого бинаря не содержат в себе ничего. Немного информации есть на сайте Kubernetes и несколько примеров можно найти на просторах. Читать дальше →

Тайны файла подкачки pagefile.sys: полезные артефакты для компьютерного криминалиста В одной крупной финансовой организации произошел неприятный инцидент: злоумышленники проникли в сеть и «пылесосили» всю критически важную информацию — копировали, а затем отправляли данные на свой удаленный ресурс. Криминалистов Group-IB призвали на помощь лишь спустя полг...

[Из песочницы] Императивный подход к реактивным данным на примере Jetbrains KTor и R2DBC Статья об использовании реактивного доступа к базам данных из корутин. Spring все упрощает, но это плохо сказывается на понимании реальных процессов работы приложения. Для демонстрации был выбран фреймворк KTor (просто потому, что мне нравится смотреть на то, что делает JetB...

(S)SDLC, или Как сделать разработку безопаснее. Часть 3 Этой статьей мы завершим небольшой цикл о построении процесса безопасной разработки на основе SAST — статического анализа кода на безопасность. В первой части мы разобрали основные вопросы, возникающие при внедрении SAST в процесс разработки. Во второй части остановились на ...

[Из песочницы] Как организована работа в Amazon Как и во многих других американских компаниях, организация рабочих процессов в Amazon построена на базовых принципах, основная цель которых – помочь сотрудникам принять правильное решение, основываясь на ценностях компании. Мы поговорили с продукт-менеджером в Amazon, которы...

Обнаруженный вредонос маскируется под локальный порт Windows По данным телеметрии ESET, DePriMon действовал с марта 2017 года. В ряде случаев DePriMon распространялся вместе с ПО, принадлежащим группировке киберпреступников Lamberts. Оно также связано с известной утечкой информации из хранилища ЦРУ - Vault 7.Вредонос DePriMon обладает...

Все ли вы знаете о useCallback Привет, Хабр!Начиная с версии ReactJS 16.8 в наш обиход вошли хуки.  Этот функционал вызвал много споров, и на это есть свои причины. В данной статье мы рассмотрим одно из самых популярных заблуждений использования хуков и заодно разберемся стоит ли писать компоненты на...

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

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

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

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

[recovery mode] Базовые возможности LXD — системы контейнеров в Linux LXD — это системный менеджер контейнеров следующего поколения, так гласит источник. Он предлагает пользовательский интерфейс, похожий на виртуальные машины, но использующий вместо этого контейнеры Linux. Ядро LXD — это привилегированный демон (сервис запущенный с правами ro...

[recovery mode] Включаем поддержку NVMe на старых материнках на примере Asus P9X79 WS Привет Хабр! В голову мне закралась мысль, и я ее думаю. И придумал. Все дело в жуткой несправедливости производителя, которому абсолютно ничего не стоило добавить модули в UEFI Bios для поддержки загрузки с NVMe через переходники на материнках без слота m.2 (что, к стати, б...

Navigation bar и анимация перехода Поведение UINavigationBar при переходе по стеку может показаться непредсказуемым и часто забагованным. Но, на самом деле, так и есть! Эта статья призвана освежить знания о принципах работы и показать возможности  кастомизации поведения.Немного общей теорииЕсли вы хорошо...

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

Реверс-инжиниринг протокола ngrok v2 Реверс-инжиниринг протокола Ngrok v2ngrok — это сервис, позволяющий создавать туннели на локальный компьютер пользователя. Иными словами, резервируется публичный адрес, все обращения по которому пробрасываются на локальный порт.К сожалению, с 2016 года поддержка open-s...

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

Основы надежной передачи данных Тем, кто стремится разобраться в сетях и протоколах, посвящается. КраткоВ статье рассматриваются основы надежной передачи данных, реализуются примеры на Go, в том числе UDP и TCP. По мотивам раз, два, три и книги "Компьютерные сети. Нисходящий подход", а то все о...

Ростов-на-Дону: IT-компании, сообщества и мероприятия в 2019 году Привет. Меня зовут Вадим и я занимаюсь развитием IT-тусовок в Ростове. В 2016 году spasibo_kep написал статью "Едем в город южный: как живут разработчики в Ростове-на-Дoну" о Ростовском IT. Пришло время её обновить, тем более, что Ростов в 2019 году стал 4ым в Рос...

Про перевод пары интерес/interest То, что я вляпался в болото, стало понятно часа через 4 после начала раскопок этой пары терминов (и это я еще финансовый смысл не рыл — interest rate) — примеров получилось неожиданно больше, так что извините, будет «много букв». На первый взгляд интерес = interest — полные...

WSL эксперименты. Часть 1 Привет, хабр! В октябре OTUS запускает новый поток курса «Безопасность Linux». В преддверии старта курса делимся с вами статьёй, которую написал один из наших преподавателей — Александр Колесников. В 2016 году компания Microsoft представила IT сообществу новую технологи...

Система под контролем: как автоматизировать интеграционные тесты Привет! Меня зовут Ксения Якиль. Я пишу core-сервисы на C и Go в бэкенд-отделе Badoo и Bumble. Наш бэкенд — это высоконагруженная распределённая система, обслуживающая пользователей по всему миру. Она оперирует большими массивами данных и делает всю ту магию, благодаря котор...

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

[Из песочницы] Сравнение производительности инструментов обхода блокировок\VPN По мере того, как нам все активнее закрывают доступ к различным ресурсам в сети, все актуальнее становится вопрос обхода блокировок, а значит все актуальнее становится вопрос «А как же быстрее обходить блокировки?». Оставим тему эффективности, с точки зрения обхода DPI\вайт...

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

Тесты в iOS: хороший, плохой, … Привет! Меня зовут Андрей Михайлов, я работаю iOS-разработчиком в Циан и отвечаю за внедрение модульного тестирования в процесс разработки. Сегодня я немного расскажу о том, какими свойствами должны обладать хорошие автоматизированные тесты, чем хорошие тесты отличаются от п...

Сбор метрик Spring Boot приложения c помощью Prometheus и Grafana В данной статье рассмотрен пример работы с метриками. В начале, настройка приложения для поставки метрик. Настройка Prometheus для сбора и хранения метрик. Настройка Grafana для отображения собранных метрик. Читать далее

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

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

[Перевод] JavaScript tree shaking, like a pro Это перевод статьи об оптимизации и уменьшении размера бандла приложения. Она хороша тем, что тут описаны best practices, советы, которых стоит придерживаться, чтобы тришейкинг работал и выкидывал неиспользуемый код из сборки. Она будет полезной многим, потому что сейчас все...

Искусственный интеллект, машинное и глубокое обучение — в чём разница Сейчас много пишут и говорят об искусственном интеллекте (ИИ). Наряду с другими связанными понятиями — такими, как машинное обучение (machine learning) и глубокое обучение (deep learning). Многие люди склонны неправильно понимать термины, используемые в контексте...

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

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

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

Обзор 3D принтера QIDI Tech I-Mate S • Новый приятель! Компания QIDI представляет новый расширенный вариант принтера I-Mate - QIDI Tech I-Mate S. На что способен новый 3D приятель и как отличается от своего младшего брата? Расскажем в нашем обзоре!Для читателей портала 3DToday и наших соц. сетей мы проводим акцию на 3D принтеры ...

[Из песочницы] [Перевод] От пиратства к опенсорс: моя история Привет, Хабр! Предлагаю Вашему вниманию перевод статьи "From piracy to open-source: my story" автора Jakob Attkinson. Я рос с компьютером с 6 лет. Хотя я и был рожден в довольно небогатой семье, мой отец осознавал мощный потенциал технологий и хотел быть уверенны...

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

Создание полноценного Viberbot на Django 2 и Viber REST API. Часть первая — Webhook Установка Webhook для работы bot на viber и отправка первого POST запроса к backend мессенджера Опираясь на свой опыт разработки под Viber и множество неоднозначных мнений, публикую цикл статей по созданию и запуску viberbot. Для понимая полной картины в целом, будем работат...

[Перевод] EOF — это не символ Недавно я читал книгу «Компьютерные системы: архитектура и программирование. Взгляд программиста». Там, в главе про систему ввода-вывода Unix, авторы упомянули о том, что в конце файла нет особого символа EOF. Если вы читали о системе ввода-вывода Unix/Linux, или эксперим...

Разбор тестовых заданий на стажировку в UX-редакцию Авито Привет! Я Юля Трусова, старший UX-редактор в Авито. В этом году мы снова набирали стажёров, которые будут писать интерфейсы, лендинги, рассылки и многое другое.В этой статье разберём типичные ошибки, которые кандидаты допускали в тестовом задании, и покажем удачные решения. ...

[Перевод] Определяем подходящий размер для кластера Kafka в Kubernetes Прим. перев.: В этой статье компания Banzai Cloud делится примером использования её специальных утилит для облегчения эксплуатации Kafka в рамках Kubernetes. Приводимые инструкции иллюстрируют, как можно определить оптимальный размер инфраструктуры и настроить саму Kafka для...

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

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

Между домом и офисом. Как правильно организовать работу распределенной команды Хабр, привет! Многие компании сегодня предложили своим сотрудникам работать из дома. Однако возможность трудиться удаленно есть не у всех. Часть специалистов не покидают свои боевые посты в офисных пространствах. Команда Artezio решила разобраться, как можно построить рабо...

Умный аквариум 800литров: Rubetek RE-3310, лампочки Rubetek RL-3103, датчики Rubetek RS-3220... Мы продолжаем серию материалов по реальным примерам развертывания системы умного дома. Ранее опубликованные материалы затрагивали освещение, климат, элементы безопасности, панели управления и интеграцию с голосовым помощником «Алиса». Сегодня хотим поделиться опытом работы э...

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

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

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

[Перевод] SRE: Анализ производительности. Способ настройки с использованием простого вебсервера на Go Анализ производительности и настройка — мощный инструмент проверки соответствия производительности для клиентов. Анализ производительности можно применять для проверки узких мест в программе, применяя научный подход при проверке экспериментов по настройке. Эта статья опреде...

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

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

Безопасность REST API от А до ПИ Введение Умение реализовать грамотное REST API — полезный навык в наше время, т.к. все больше сервисов предоставляют свои возможности с помощью API. Но разработка REST API не ограничивается реализацией HTTP запросов в определенном стиле и формированием ответов в соответстви...

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