Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Паттерн Poison Pill в Java

Время на прочтение5 мин
Количество просмотров1K

Сегодня поговорим о паттерне Poison Pill и его реализацию в Java.

Poison Pill, или «ядовитая пилюля», — это шаблон, используемый для мягкой остановки потока или процесса. Суть его заключается в отправке специального, заранее определенного сообщения, которое сигнализирует о необходимости завершения работы. Это сообщение обрабатывается в рамках нормального потока сообщений и позволяет потоку корректно завершить работу, освободить ресурсы и закрыть все активные соединения.

Читать далее
Всего голосов 4: ↑4.5 и ↓-0.5+5
Комментарии5

В Раменках школьники решают глобальные проблемы, пока вы скроллите ленту Хабра

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.9K

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

Известный афоризм гласит: «Большинство людей считает, что они умнее, чем большинство людей».

Так ли это на самом деле?
Всего голосов 13: ↑4 и ↓9-5
Комментарии18

Как мы реализовали кнопку со свайпом на Jetpack Compose

Уровень сложностиСредний
Время на прочтение13 мин
Количество просмотров1.2K

Привет, Хабр! Меня зовут Женя Мельцайкин, я работаю в команде мобильной разработки Контура.

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

В статье расскажу, как мы сделали кнопку по проведению жеста свайпом на Jetpack Compose, чтобы избежать случайной подписи документа.

Читать далее
Всего голосов 13: ↑13.5 и ↓-0.5+14
Комментарии0

Книга рецептов Rust. 2/2

Уровень сложностиСредний
Время на прочтение41 мин
Количество просмотров1.1K



Hello world!


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


Читать дальше →
Всего голосов 9: ↑11 и ↓-2+13
Комментарии0

Истории

Карантин UI-тестов в iOS

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров419

Всем привет! Я Тимур — iOS разработчик в платформенной команде hh.ru. Сегодня я расскажу о нестабильных UI-тестах в iOS, и как мы с ними справляемся.

Мы уделяем массу внимания UI-тестам, ведь именно они обеспечивают качество и стабильность в наших iOS-приложениях. Сейчас у нас включено около 600 UI-тестов: они гоняются утром, вечером и на каждом PR в develop. О том, как мы обеспечиваем качество мобильной разработки есть отдельная статья.

Рано или поздно большое количество UI-тестов скорее всего начнут тормозить разработку, потому что их стабильность зависит от множества факторов: стенды (API), инфраструктура (обновление Xcode, машин, СI), кодовая база. Даже из‑за проблем в самом XCUITest тесты могут начать выдавать аномалии.

Если хотите узнать про наш процесс — смело нажимайте "Читать далее".

Читать далее
Всего голосов 12: ↑13 и ↓-1+14
Комментарии0

Ищем баги в коде браузера при помощи фаззинга

Время на прочтение8 мин
Количество просмотров1.2K

Наш браузер Ladybird неплохо справляется с качественно отформатированным веб-контентом, но я решил, что будет полезно проверить его инструментами для исследования безопасности. Поэтому сегодня мы воспользуемся Domato 🍅 — DOM-фаззером из Google Project Zero, чтобы провести стресс-тест Ladybird и устранить найденные в процессе ошибки.

Работает это следующим образом: Domato генерирует рандомизированные веб-страницы со множеством по большей части валидного, но странного HTML, CSS и JavaScript. Я загружу эти страницы в отладочную сборку Ladybird и посмотрю, что получится.

Читать далее
Всего голосов 14: ↑16 и ↓-2+18
Комментарии1

Дата-майнинг: процесс, типы методики и инструменты

Время на прочтение13 мин
Количество просмотров1K
Дата-майнинг, в основе которого лежат научные и технологические принципы — это стратегический процесс, предназначенный для выявления паттернов, корреляций и трендов, скрывающихся под поверхностью информации.

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

Что такое дата-майнинг?


Дата-майнинг (data mining) — это процесс обработки данных для выявления паттернов, корреляций и аномалий в крупных датасетах. В нём применяются разнообразные методики статистического анализа и машинного обучения для извлечения из данных значимой информации и выводов. Компании могут использовать эти выводы для принятия обоснованных решений, прогнозирования трендов и совершенствования бизнес-стратегий.

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


Визуальное определение дата-майнинга

Этот процесс является неотъемлемой частью преобразования огромных объёмов сырых данных (структурированных, неструктурированных и частично структурированных) в ценные знания, на основании которых можно планировать свои действия.
Читать дальше →
Всего голосов 3: ↑2 и ↓1+1
Комментарии0

«IT-Планета 2024»: задачи второго этапа по PostgreSQL

Время на прочтение32 мин
Количество просмотров728

Вдохновившись прошлогодним опытом, мы продолжили начинание и снова проводим конкурс по SQL на международной олимпиаде «IT-Планета».

Конкурс состоит из трех этапов. Заочный теоретический тест собрал почти 3000 человек, из которых на следующий этап мы отобрали примерно 200. Вопросы для этого этапа были подготовлены моим коллегой, Евгением Давыдовым.

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

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

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

Приступить к делу
Всего голосов 13: ↑15.5 и ↓-2.5+18
Комментарии1

?Kawaii=True. Твиттер-тренд для айтишников

Время на прочтение2 мин
Количество просмотров1K

Рассказываю про самый свежий тренд для айтишников родом из Японии. Мы тоже в нем поучаствовали, ссылка на нашу реализацию в конце статьи!

Читать далее
Всего голосов 10: ↑3 и ↓7-4
Комментарии9

Недельный геймдев: #173 — 12 мая, 2024

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров900

Из новостей: Xbox закрыла четыре студии, Hades II с большим отрывом обошла первую часть по онлайну в Steam, покупателям Ghost of Tsushima оформили принудительный возврат средств в Steam.

Из интересностей: трудности перевода Persona 3 Reload, ещё немного про вишлисты, разбор улучшений Unreal Engine 5.4 от Digital Foundry, про path tracing в Alan Wake 2, полезный тред про маркетинг игр в Steam.

Читать далее
Всего голосов 6: ↑6.5 и ↓-0.5+7
Комментарии1

DPI из подручных материалов

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.7K

Всем привет!

Однажды, много лет назад, во времена эпидемии вируса Code Red, я работал сисадмином в одном вузе и невежливо ответил на электронное письмо из какого то-банка с требованием немедленно прекратить атаку на их веб сервер, работающий под управлением Apache, через месяц пришло бумажное письмо от их службы безопасности, и завертелось. Так я познакомился с системой Snort, которая некоторое время защищала Интернет от наших студентов. Со временем, большая часть трафика стала https, и решение потеряло смысл, но, есть места, где он снова превращается в http, например после https прокси. Тут то мы и сможем его “подсмотреть”, выявить атаки и заблокировать злоумышленника!

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии1

Что используют в работе «белые хакеры»: инструменты для кибербезопасности и проведения пентестов

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров3.1K

В арсенале специалистов по информационной безопасности и пентесту есть много инструментов и методов для защиты безопасности информационных систем и сетей. Рассказываем о популярных.

Читать далее
Всего голосов 6: ↑2 и ↓4-2
Комментарии2

PostgreSQL 16. Организация данных. Часть 1

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров3.8K

PostgreSQL очень популярная СУБД.

Её используют во многих проектах, как новички, так и профессионалы. Однако не все понимают, как именно работает данная система и какое у неё внутренне устройство.

Давайте разберемся вместе на основе книги "PostgreSQL 16 изнутри" и официальной документации!

Читать далее
Всего голосов 16: ↑16.5 и ↓-0.5+17
Комментарии0

Ближайшие события

One day offer от ВСК
Дата16 – 17 мая
Время09:00 – 18:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн
Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Создаём плагин авторизации в Joomla 5 по e-mail

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров191

Joomla 5 позволяет пользователям входить в систему только под именем пользователя. Однако многие пользователи для удобства предпочитают входить в систему, используя свой адрес электронной почты. В этом уроке мы рассмотрим, как создать плагин для Joomla 5, при помощи которого пользователи смогут входить в систему, используя адрес электронной почты вместо имени пользователя.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Как стать тестировщиком бесплатно? Программа обучения с нуля

Уровень сложностиПростой
Время на прочтение2 мин
Количество просмотров7.2K

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

Чтобы разбавить обилие платных курсов, мы подготовили для вас программу обучения «Тестировщик с нуля», которая состоит только из бесплатных курсов.

Читать далее
Всего голосов 16: ↑14 и ↓2+12
Комментарии4

Как мы отслеживаем просадки FPS в Альфа-Мобайл?

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров786

Всем привет 👋 я Максим Кузнецов a.k.a. Android-developer из Альфа-Мобайл. В этой статье я хочу поделиться нашим опытом внедрения механизмов мониторинга производительности в продукты компании. Почему это важно? Потому что производительность напрямую влияет на опыт пользователей, рейтинги приложений и конверсии. Мы рассмотрим статистику, проблемы, наш горький опыт и планы на будущее. Давайте начнем! 🚀

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

PHP: 8 уровней логов

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров644

В реальности, скорее всего, вы будете использовать четыре.

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

Большинство фреймворков и пакетов следуют стандарту PSR-3, который описывает, как работает система ведения логов. Это интерфейс, на который вы должны опираться при отправке логов в систему. В PHP чаще всего используют имлементацию Monolog, как очень гибкий и простой в понимании.

Реализация PSR-3 описывает 8 уровней логов. В порядке убывания «строгости»: Emergency, Alert, Critical, Error, Warning, Notice, Info и Debug. Попытка решить, какой из них выбрать, иногда сбивает с толку. Давайте разберём их на условном приложении.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии3

Обзор кредитного протокола Aave V2

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров798

Это статья‑обзор про один из самых популярных кредитных протоколов Aave V2. Разберем, как устроен протокол, как работают ликвидации, начисление процентов и другие фичи.

Перед этой статьей рекомендую прочитать про Compound V2, так как там описана база кредитных протоколов. Местами мы будем сравнивать различия между Aave V2 и Compound V2.

Читать далее
Всего голосов 5: ↑6 и ↓-1+7
Комментарии1

Мобильная разработка за неделю #537 (29 апреля — 12 мая)

Время на прочтение4 мин
Количество просмотров933
Собрали дайджест сразу за две недели — в нем материалы про Composable Architecture и новый компилятор K2, Room для Kotlin Multiplatform и будущее магазинов приложений, самые скачиваемые и зарабатывающие приложения в России в апреле, превращение игрушечного робота-доставщика в ровер и многое другое. Подключайтесь!

Подписывайтесь на наш Telegram-канал Mobile Insights, где еще больше материалов для мобильных разработчиков. А в IT Insights — много об интересном коде и технологиях.

Читать дальше →
Всего голосов 1: ↑1.5 и ↓-0.5+2
Комментарии0

Тестирование алгоритма деления больших чисел на С++ с использованием Python C API

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров2.7K

Ранее был предложен некоторый Алгоритм деления 2W-битовых чисел с использованием операций над W-битовыми числами. Для тестирования использовались целые числа языка С++, что не позволяло проверять, например, 128-битные целые числа. Однако, в язык Python встроена поддержка целых чисел неограниченной ширины (Big Integer), а также имеется API для вызова методов Python из программ на языке С/С++. Это позволяет протестировать разные алгоритмы с числами, в том числе деление, используя в качестве результата строковое представление чисел.

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

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии4