Pull to refresh

Technotext

Треугольный пиксель: почему никто не собирает мозаики из пирамидок? (а зря)

Level of difficultyEasy
Reading time6 min
Reach and readers8.6K

Видели мозаики из кубиков Рубика? В сети достаточно контента с кубическими картинами, портретами из десятков, сотен, и даже тысяч кубиков. Но никто не собирает мозаики из пирамидок. Пирамидка (она же – пираминкс) – это перестановочный пазл, похожий на кубик Рубика. Ее цветные элементы – те же пиксели, только треугольные, и цветов не шесть, а четыре. Казалось бы, бери и складывай. Однако мозаик из пирамидок я не встречал.

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

Крутим пирамиду…

Вайбкодинг по Chess’ноку. 1. e4

Level of difficultyEasy
Reading time10 min
Reach and readers11K

От вайбкодинга к профессиональной ИИ‑разработке на примере LanChess: 3300 промптов, 832 коммита, 100 тыс. строк кода и путь от POC к продакшен‑сервису.

Поздний вечер, я смотрю в терминал. Celery worker на восьмиядерном сервере перемалывает 67 партий блица на Lichess одного из пользователей. Через минуту этот человек получит персонализированную аналитику и упражнения от сервиса, аналогов которого в России найти пока не удалось. Я же сижу и думаю, стоит ли выводить этот сервис из закрытого режима по инвайтам.

Менее чем за 3 месяца я написал 100 тыс. строк кода и ни одной — своими руками. Мне пришлось стать оператором персональных данных. РКН порекомендовал мне убрать авторизацию от Google. А ВК не давал мне подключить свою авторизацию, пока я не стал самозанятым.

Зато теперь у меня есть свой сервис, на примере которого без всяких NDA я могу открыто рассказывать о том, чем отличается вайбкодинг от профессиональной ИИ‑разработки. Могу смело поделиться статистикой продуктивности. Могу, не таясь, рассказать о сложностях, ошибках и успехах, с которыми сталкиваются инженеры, использующие самые современные инструменты искусственного интеллекта для разработки программного обеспечения. С помощью ИИ я работал над разными проектами за последние годы. Но только о своём я могу рассказать всё.

Читать далее

Работа VS Отношения: почему вы на собеседовании флиртуете, а на свидании — продаете себя

Level of difficultyEasy
Reading time4 min
Reach and readers7K

Когда в последний раз вы ходили на свидание и ловили себя на мысли: «Блин, надо рассказать про мои хорошие качества как будущего(й) мужа/жены»?
Или собирались на встречу с клиентом и ловили себя на другой: «Нужно одеть что-то поярче»?

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

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

Читать далее

Строим VPN, устойчивый к SpyWare

Level of difficultyHard
Reading time7 min
Reach and readers58K

В предыдущей статье мы обсуждали некоторые меры, которые пользователь может предпринять против spyware, детектирующего факт использования VPN и сливающего полученные данные “Большому брату”.

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

Однако если немного подумать, то окажется, что техническое решение всё-таки есть. Да, оно относительно дорогое (минимальные расходы около 1000-1500 рублей в месяц), но оно существует!

Если интересна архитектура VPN-сервиса, устойчивая к наличию spyware на клиенте, то

добро пожаловать под кат

Узнаём какое аниме будет самым рейтинговым еще до выхода

Level of difficultyMedium
Reading time7 min
Reach and readers16K

Когда встал вопрос "о чем писать диплом", я точно знала, что не хочу писать о чем-то скучном или не интересным для меня. Было много идеи (не только про аниме) и даже в сфере аниме - не только про задачу прогнозирования. Когда уже надо было утверждать тему, на одной из лекции как раз рассказывали про задачи классификации и прогнозирования. Я знала, что уже есть вагон и маленькая тележка статей про прогнозирование в области фильмов, но в аниме? Критически мало. И я решила это исправить)

Читать далее

Вайб-кодинг: конструктор для профи или магия для «чайников»? Разбираемся на реальном кейсе

Level of difficultyEasy
Reading time6 min
Reach and readers7.1K

«Вайб‑кодинг». Ещё несколько месяцев назад это словосочетание вызывало улыбку, а сегодня оно собирает тысячи запросов в поисковиках и миллионы просмотров.

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

Читать далее

Как мы овощехранилище автоматизировали, разработали свою SCADA и железо. Часть 1: Вводная

Reading time9 min
Reach and readers16K

В 2022 году к нашей дружной команде (я и Дмитрий @DIIV) обратился знакомый и предложил разработать систему для автоматического управления климатом овощехранилищ. Это был очень сложный период, компании уходили с Российского рынка, начались проблемы с покупкой и обслуживанием иностранных систем.

До этого у нас был опыт разработки подобных систем и устройств, который пришёлся как раз на начало пандемии COVID, что привело к проблемам с покупкой электронных компонентов.

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

Читать далее

WebSocket и SSE просто, для собеседований и не только

Level of difficultyEasy
Reading time4 min
Reach and readers8.3K

WebSocket vs SSE простым языком: двустороннее и однонаправленное соединение, как работает TCP и HTTP upgrade, и какие вопросы по этим темам чаще всего задают на собеседовании.

Читать далее

Бойтесь буквы «M». Самый странный баг в моей жизни

Level of difficultyMedium
Reading time5 min
Reach and readers40K

Вечером в пятницу коллега, назовем его Мститель, спросил, не сталкивался ли я с проблемой, что route возвращает 400... но «если сменить название на сильно другое», то всё ок. Я сперва не обратил внимание на слово «сильно». Может быть, где-то дублируется регистрация этого рута? Или мститель перепутал GET и POST. Или какой-то баг в общем на создание хэндлеров?

Милости просим

Автобусы в Петербурге или GTFS по-русски: успеть за 15 минут

Level of difficultyMedium
Reading time13 min
Reach and readers10K

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

Делаем свой яндекс транспорт?

Скрипты и алиасы для вашего линукса

Level of difficultyMedium
Reading time16 min
Reach and readers17K

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

Простейший алиас в .bashrc или .zshrc кажется небольшим открытием. Первый рабочий скрипт, сохранённый в ~/.local/bin, ощущается как прорыв. Это не просто про лень — это про эффективность, про оптимизацию работы.

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

Читать далее

Революция вырезов

Level of difficultyMedium
Reading time7 min
Reach and readers12K

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

Создание блоков с вырезами всегда было трудоёмким, даже для вырезов простейшей формы. Фронтендеры годами тренировались мысленно рассекать блоки на части: прямоугольничек для контента, прямоугольничек для выреза и ещё парочка рядом с ним. И вдруг парадигма поменялась...

Простые вырезы теперь делаются в десять раз быстрее. Одной строчкой кода. Да, надо менять мышление и забывать про нарезку блоков. И как же это приятно!

В статье мы сверстаем карточку с круглым вырезом двумя способами: традиционно‑дедовским и современным. Затем сравним объём кода, простоту и гибкость получившихся реализаций. И порадуемся, что будущее уже наступило!

Читать далее

Надуманная проблема распределённой инфраструктуры

Level of difficultyMedium
Reading time7 min
Reach and readers8.5K

Жил-был я. И был у этого "я" небольшой пул виртуальных машин. Но пришло время, и появилось осознание, что у моего облачного провайдера (пусть будет С) не все условия мне нравятся. А, вот, у другого провайдера (путь будет провайдер В) условия для некоторых виртуалок повкуснее. И замыслил я неладное. Я решил разнести инфраструктуру между разными провайдерами. Но эту, так называемую, инфру необходимо скоммутировать между собой. Потому что гонять сервисный трафик через интернеты - дурная затея. И родился у меня план. Даже не так ПЛААААН!!! А следом, и эта статья. Предвосхищая вопросы почему не обычный VPN, отвечу: это во-первых, скучно, во-вторых, не подлежит публикации, в-третьих, в последнее время нестабильное ввиду блокировок. Disclaimer! Цель статьи - рассмотреть вариант осуществить связность конкретных элементов инфраструктуры, используя публичные каналы связи. Статья не ставит целью описать способ обхода блокировок и осуждает (хоть и не искренне) подобные статьи.

А ну ка?

EFEKTA Open PM Monitor — Zigbee-датчик воздуха с открытым кодом, OTA и аналоговой душой

Level of difficultyMedium
Reading time9 min
Reach and readers16K

Приветствую всех читателей Habr. Время от времени я выкладываю в открытый доступ некоторые свои проекты по электронике. Сегодня я хочу представить устройство, которое делал с особым удовольствием - EFEKTA Open PM Monitor.

Это Zigbee-датчик мониторинга твердых частиц (PM1.0, PM2.5, PM10). В версии 2.0 в проект добавился сенсор ENS160 для измерения TVOC, eCO2 и AQI, а также небольшой дублирующий OLED-дисплей 128×64.

Но главная его «фишка» - аналоговый стрелочный индикатор.

Читать далее

«Атлас Telegram» — как создавалась интерактивная карта с 500 000 каналами

Level of difficultyMedium
Reading time13 min
Reach and readers18K

Мы привыкли видеть Telegram как список чатов и каналов на своём устройстве. Но это лишь малая часть большой экосистемы, ограниченная подписками каждого пользователя. А как выглядит вся экосистема целиком? Эта статья — о том, как мы провели масштабное исследование контента Telegram и разработали интерактивную карту с 500 000 каналами.

Читать далее

Как я подготовился к первому whiteboard + бонус: интервью с дизайн лидом Т-Банка про найм

Level of difficultyEasy
Reading time10 min
Reach and readers5.4K

Кому будет полезно: дизайнерам, готовящимся к whiteboard, особенно тем, кто сталкивается с этим форматом впервые.

Что внутри: личный опыт прохождения whiteboard в Т-Банке и инсайды от лида, который проводит десятки таких собеседований.

Главный вывод: whiteboard проверяет не решение, а ваше мышление, умение задавать вопросы и работать в диалоге.

Я Андрей - продуктовый дизайнер в Т-Банке, до этого был в Госуслугах.

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

Дальше была стандартная цепочка: скрининг, техсобеседование, портфолио. А потом HR сказал: "Договоримся о дате whiteboard". Для меня это было в новинку.

Конец квартала, праздники, переносы. До запланированной даты оставалось довольно много времени.

Я понял, что просто прийти и как-нибудь решить не получится. Начал читать все подряд: статьи, треды, чужие истории. Сначала в голове была каша — слишком много подходов и советов. Потом постепенно стало понятно, как вообще работает формат. И главное — стало ясно, что одной теории недостаточно. Нужно тренироваться.

Читать далее

3d в MonoGame, python в c# или всё таки KNI в браузере? трёхслойная постирония о том, как я игру делал

Level of difficultyHard
Reading time22 min
Reach and readers8.1K

Всем привет. В ходе этого материала вы узнаете:

1. Как сделать простой рендер на c# в MonoGame

2. Что использовать, чтобы вызвать python из c#

3. Почему пункт 2 - это плохая идея

4. Как MonoGame игру сбилдить в web/html с помощью его форка KNI

Пристёгивайтесь, будет весело!

ПРИСТЕГНУТЬСЯ!

Очередной бенчмарк VictoriaMetrics против Prometheus

Level of difficultyMedium
Reading time6 min
Reach and readers12K

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

Читать далее

Скриншоты не победить, но скрейпинг можно удорожить: 4 слоя защиты изображений на UGC-платформе

Level of difficultyMedium
Reading time15 min
Reach and readers9.7K

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

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

Читать далее

API автотесты на Python с запуском на CI/CD и Allure отчетом

Reading time32 min
Reach and readers25K

В этой статье разберём процесс написания API автотестов на Python, используя современные best practices. Кроме того, мы настроим их запуск в CI/CD с помощью GitHub Actions и сформируем Allure-отчёт с историей запусков. Цель статьи — не только показать, как писать качественные API автотесты, но и научить запускать их в CI/CD, получая удобные отчёты о результатах.

Читать далее