ГИС для Minecraft. Часть 1

Minecraft GIS + Google Sheets — отличный инструмент для обучения детей основам работы с данными!
Создаю свою ГИС для Майнкрафта с интеграцией в экосистему Google

Высокоуровневый язык программирования

Minecraft GIS + Google Sheets — отличный инструмент для обучения детей основам работы с данными!
Создаю свою ГИС для Майнкрафта с интеграцией в экосистему Google

Казалось бы, что может быть проще: даёшь LLM доступ к БД и просишь написать тебе нужный SQL! Но на практике и ИИ, и человек быстро сталкиваются с одинаковыми проблемами – взрывом кардинальности при JOIN’ах, ошибками в гранулярности, сложными подзапросами и отсутствием понятного бизнес-контекста.
Рассказываем, зачем и как мы проектировали семантический слой для детерминированной аналитики и адекватной работы ИИ-агентов с данными.
Музыкальные стриминговые сервисы давно перестали быть просто каталогами треков. Сегодня значительная часть пользовательского опыта формируется рекомендательными системами: персональными подборками, автоматическими плейлистами, «волнами» и похожими механизмами. Пользователь может сам искать музыку, добавлять треки в библиотеку и слушать знакомых артистов, а может переходить по рекомендациям алгоритма. Возникает естественный исследовательский вопрос: рекомендации действительно расширяют музыкальный кругозор или, наоборот, закрепляют уже существующие предпочтения пользователя?

В этой статье разберём архитектуру полноценного фьючерсного сканера для биржи BingX, построенного на Python. Система анализирует десятки и сотни торговых инструментов в реальном времени, фильтрует активы по Open Interest и Funding Rate, рассчитывает технические индикаторы EMA и MACD, а затем формирует торговые сигналы на основе синхронизации нескольких независимых факторов.
Речь пойдёт не о полноценной архитектуре рыночного анализатора, пригодного для дальнейшего масштабирования: подключения Telegram-уведомлений, машинного обучения, кластерного анализа, order flow и полностью автоматической торговли через API.
Все файлы загружены на GITHUB. В статье описываю в основном логическую часть и ньюансы. Так что крайне советую к параллельному изучению самого скрипта и кода.

У меня телевизор, который читает файлы с USB-флешки. Флешка отформатирована в FAT32, а значит — максимум 4 ГБ на файл. Типичный вечер выглядит так:
Linux-приложение для тех, кто смотрит фильмы с USB-флешки. Поиск торрентов по Rutor, NoNaMe-Club и RuTracker, скачивание через libtorrent и автоматическое копирование на флешку с умным разбиением MKV-файлов под FAT32. Один бинарник, PyQt5, open source.

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

Привет, Хабр!
Хотелось бы поделиться с вами моим open-source проектом для поиска директорий, поддоменов, ака crawler. Я не говорю, что он перевернёт мир краулеров или превзойдёт Katana, но, думаю, утилита будет крайне полезна для red team-команды.
https://github.com/a11mut3d/CGE
Проблемы, которые решает CGE
Современное веб-приложение — это не монолит, где всё в одном HTML, а куча микросервисов, API и в целом эндпоинтов. Составить карту всех запросов достаточно сложно, поэтому вы не видите картину целиком.
CGE помогает в этой задаче. Он:
— собирает все поддомены из SSL-сертификата (как в crt.sh); — краулит каждый эндпоинт, парсит HTML, JS, формы, аплоады, файлы; — отслеживает, куда идут запросы в реальном времени через взаимодействие с формами; — строит граф взаимодействия эндпоинта в реальном времени.
Как это выглядит
На данный момент у CGE есть 2 варианта использования: web UI и CLI.
Если про CLI особо и нечего расписывать (он просто выдаёт все найденные эндпоинты в консоль или по желанию сохраняет в файл), то на web UI давайте остановимся подробнее.
Веб-интерфейс я постарался сделать в стиле Obsidian (спойлер: получилось не очень).
— Каждая нода — хост (поддомен). — Ребро между нодами — факт HTTP-обмена информацией. — При клике на ноду мы получаем список всех эндпоинтов (даже тех, которые были замечены в запросах от других хостов). — При клике на ребро мы получаем все реальные запросы между хостами.
Технические детали
Реализовать я решил на Python с использованием BS, requests, DNS. В качестве базы данных я решил использовать Neo4j.

Построил pipeline публикации контента на 8 платформах. Время распространения статьи сократилось с 50 минут до 90 секунд. Рассказываю, почему waterfall обходит parallel, какие API-ловушки встретились, и почему без человека в цикле нельзя.

with open() знают все. Но контекстные менеджеры в Python — это не только про файлы. Они помогают безопасно управлять соединениями с БД, транзакциями, async‑ресурсами, временными настройками и cleanup‑логикой без бесконечных try/finally.
В статье разбираем, как работают контекстные менеджеры, как писать свои через contextlib и где они реально упрощают продакшен‑код.

У носимых устройств есть парадокс: браслет измеряет ваши пульс, сон и активность, но готового открытого API для интеграции этих данных в сторонние системы (например, домашний мониторинг или локальную БД) производитель не предоставляет. Официальное приложение Xiaomi Mi Fitness показывает красивые графики, но данные остаются «запертыми» внутри мобильной экосистемы.
Изначальная задача была чисто прикладной: настроить автоматический сбор данных о здоровье в локальную SQLite-базу и выводить отчеты в семейный Telegram-бот. Поскольку браслет синхронизируется с приложением, а то в свою очередь с облаком Xiaomi, данные гарантированно передаются по сети. Нужно было понять, в каком формате они передаются и как их забрать.
Эта статья - технический разбор пути от анализа сетевого трафика и настройки доверия к собственному CA до реверс-инжиниринга RC4-протокола Xiaomi, расшифровки AES/CBC-объектов из хранилища FDS и парсинга проприетарного бинарного формата сна.

Да, я победил спам! Не «в основном», а «полностью и окончательно». Без всяких «почти». По крайней мере, на 99.9% победил. Причем этот 0.1% — не спам, прорвавшийся через фильтры, а false positives, которые не «вытащил» обратно в Inbox.
Программы и методы этой статьи могут быть адаптированны к любому из трех типов почтовых сервисов:

Интернет любит вечные войны: Linux против Windows, Vim против IDE, tabs против spaces. И, конечно, Python против Java. Одни говорят: «Python уже готов для enterprise». Другие считают RPS и стоимость инфраструктуры.
Под катом — история реального выбора для аэропортовой системы AWOS: почему строгая типизация, бинарная переносимость и современный GC перевесили лаконичность — и что стоит попробовать Python-разработчику.

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

Друзья, привет! Возвращаюсь с продолжением.
В первой части мы разобрались, как поднять локальную LLM и пробросить к ней внешний доступ. Но до настоящей интеграции в продукт так и не добрались — модель работает, а что с ней делать дальше, непонятно. Сегодня исправляем это.
Поговорим про графовую инфраструктуру на базе локальных моделей — и не только локальных. Любых, поддерживающих OpenAI-совместимый протокол.
А теперь вопрос: что, если вам достаточно хорошо научиться писать граф — и вокруг него автоматически поднимется REST API, появится интерфейс для тестирования, трейсинг и мониторинг?

У меня на полке стоит NanoPi Fire3 — старинный SBC с Linux на борту. С течением времени он неизбежно обрастает периферией разной степени бесполезности. Среди прочего, конечно же, в нем прописался экранчик LCD2004 (даже два) со светодиодной подсветкой, который освещал ночную квартиру, как прожектор.
С одной стороны — удобно ходить в туалет, не включая свет, с другой — захотелось гламура, как в мобилке, чтобы, чем меньше вокруг света, тем тусклее была бы подсветка. Для этой цели нужно этот свет как‑то измерять, так что ассортимент периферии было решено расширить датчиком освещенности VEML7700. О том, как я приспосабливал его к делу, и пойдет речь далее.

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

Я начал с requests.get() к Hysteria2 API, а через месяц получил рабочий VPN-сервис: FastAPI, React, PostgreSQL, JWT, Docker Compose, несколько VPS-нод, сбор трафика и автодеплой. А ещё выводы о работе с ИИ: где он ускоряет разработку, как улучшить качество кода и почему без собственного понимания проект быстро превращается в месиво.
Во второй части мы рассмотрели аналитическое решение задачи линейной регрессии и наткнулись на ряд неприятностей — сингулярность, плохая обусловленность, вычислительная сложность и т.д.
Логическим продолжением будет изучение (не побоюсь этого слова) сердца машинного обучения: градиентного спуска.

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

⚡ Архитектура монорепозитория для параллельного исполнения торговых стратегий
Статья описывает архитектуру эмулятора биржи. Эмулятор ускоряет время в 6300x раз и запускает такую же торговую стратегию как в prod без изменений. В статье описаны практики структурирования кодовой базы для командной работы
B-Tree O(log n) , memcache lookupO(1), монорепозиторий, SRP, линейное расширение кодовой базы при модернизации