Обновить

Разработка

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

Arduino для агента 007 — Uno Q. Что это, зачем и как работает?

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

Новость о том, что Qualcomm покупает Arduino сначала вызвала чувство тревоги. Примерно такое же, как когда Broadcom купил VMware. С чудесным миром микроконтроллеров я тесно познакомился именно благодаря Arduino. Оригинальная Uno базировалась на ATmega328P и стоила на момент выхода 30 $. Реальная себестоимость, по оценкам коммьюнити, была около 15 $, а все остальное пользователь платил за бренд и открытость дизайна.

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

Совсем недавно публике представили новую плату Arduino Uno Q, которая уже была создана с использованием разработок Qualcomm. Она мгновенно вызвала интерес, благодаря новому видению того, как должна выглядеть современная плата микроконтроллера. Мне уже удалось добраться до серийного образца Uno Q, так что спешу поделиться с вами впечатлениями!

Читать далее

Эпоха цензуры мирового интернета

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

Тревожная тенденция, о которой заговорил даже Дуров. О том, как работает цензура на Западе, В Китае и США, не касаясь России.

Читать далее

AssemblyLoadContext как архитектурный приём

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

Привет, Хабр!

Сегодня рассмотрим, как в .NET можно горячо подгружать, обновлять и выгружать сборки на лету. Речь пойдёт о AssemblyLoadContext, специальном механизме, благодаря которому мы можем создавать плагинные системы, изолировать зависимости и освобождать память, выгружая неиспользуемые сборки.

Осваиваем ALC

Как мы написали свой софт на базе «коробки»: автотранспорт производства

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

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

Копились и другие проблемы.

Например, пользователи стали продвинутыми и жаловались на дружелюбность интерфейса. На самом деле тяжело представить в одном предложении слова «дружелюбность интерфейса» и нашу старую систему заявок на транспорт.

Всё это работало только под IE/Edge, не поддерживало Хромиум, конфликтовало с требованиями ИБ.

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

Мы давно задумывались о рефакторинге или миграции, суть споров сводилась к самопису или «коробке».

Мы всё проанализировали и решили, что надо взять готовую «коробку», которую потом нужно будет допилить процентов этак на 10.

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

Сейчас я расскажу о дьявольском опыте использования чужой «коробочной» версии как фреймворка для своей разработки. Забегая вперёд — второй раз мы в это не полезли бы.

Читать далее

Хватит бороться с ошибками CORS: разберемся, как они работают раз и навсегда

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

Вы когда-нибудь видели в консоли сообщение вроде: «Access to fetch at '…' from origin '…' has been blocked by CORS policy»? Это как в том фильме: «Суслика видишь? — А он есть». CORS не бросается в глаза, пока все работает, но в нужный момент пресекает недопустимые действия. Например, чтение ответа на кросс-запрос без разрешения сервера.

Меня зовут Баир, я разработчик в команде fuse8. В этой статье я отвечу на вопросы о том, зачем была создана CORS политика, как она устроена под капотом, почему простого действия типа «поставить заголовок на бэке» может быть мало, и какие безопасные паттерны стоит выбирать во фронтенде.

Читать далее

View Transitions API

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

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

Читать далее

Долгая дорога к DiT (часть 2)

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

Первая треть пути преодолена и совсем скоро мы создадим генератор картинок на целиком на архитектуре трансформеров. Но перед тем как совершить финальный скачок к Diffusion Transformers (DiT) нам сначала надо научиться работать с готовыми датасетами и освоить генерацию изображений "простым" способом - через MLP-ResNet. Статья является прямым продолжением первой части, так что советую сначала ознакомиться с ней, чтобы понимать откуда всё началось. Будет много про работу с датасетами.

И вообще статья получилась какой-то неприлично большой.

Читать далее

История одного патча II: приключения в FreeBSD

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

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

Читать далее

Парсим Ozon. Собираем информацию о ценах, товарах и отзывах

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

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

В этой статье мы разберём, почему для Ozon нужен браузерный парсинг, как использовать Playwright для успешного парсинга и как обернём решение в Telegram-бота, который по запросу пользователя парсит товары и отправляет CSV-файл.

Читать далее

Глобальный упадок качества ПО: как катастрофа стала нормой

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

Утечка оперативной памяти в Apple Calculator достигает 32 ГБ.

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

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

Мы урегулировали программные катастрофы такой степени, что утечка 32 ГБ в калькуляторе уже не удивляет. И дело не в ИИ. Кризис с качеством ПО начался за несколько лет до появления ChatGPT. ИИ лишь стал дополнительным инструментом в руках некомпетентных людей.

Читать далее

Как конец поддержки Windows 10 стимулировал продажи новых моделей ПК

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

Рынок персональных компьютеров вдруг ожил после нескольких лет затишья. Причина простая — Microsoft официально прекратила поддержку Windows в октябре 2025 года. А ведь эта ОС до сих пор стоит на миллионах машин по всему миру. С

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

Читать далее

Почему РЭБ заставляет нервничать пилотов

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

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

Читать далее

Давайте забудем всё про скалярное и векторное. Есть способ гораздо лучше

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

Каждый, кто прошел через курс линейной алгебры или физики в универе, помнит этот странный дуализм. Нас учили, что у векторов есть целых ДВА вида произведения. Первое, скалярное, съедает два вектора и выдает число. Геометрически — это что-то про проекции и углы. Второе, векторное, тоже съедает два вектора и… внезапно выплевывает третий вектор, перпендикулярный первым двум. Причем работает этот фокус только в 3D и 7D.

Всегда казалось, что это какой-то математический «костыль».

Почему так сложно? Почему два разных продукта для разных задач? Почему один зависит от косинуса, а другой от синуса?

Что, если я скажу вам, что это действительно «костыли»? Что существует единое, универсальное и элегантное геометрическое произведение, которое включает в себя оба этих случая (и многое другое), и которое основано на одной-единственной, кристально ясной идее. Идее, которая меняет взгляд на саму суть математики.

Эта статья — приглашение в мир Геометрической Алгебры. Мы собираемся переизобрести умножение.

Читать далее

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

XRAYUI для ASUS: от интерфейса к экосистеме

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

Эта статья - вторая по счету на тему open source модуля для роутеров ASUS на базе прошивки MerlinWRT. Предыдущая версия была написана почти год назад, и с того времени произошло множество изменений в модуле. Я хочу несколько осветить их в новой статье, поскольку модуль обзавелся множеством фич и полезных функций. Для базового понимания, все же стоит ознакомиться с изначальной статьей.

Читать далее

Путь к Computer Vision: Чему меня научил простой NLP-классификатор на 5 МБ

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

Ретроспектива pet-проекта, который стал полигоном для отладки, архитектуры и оптимизации перед более сложными задачами в CV.

Читать далее

Сравнение алгоритмов сортировки на Python с Pygame-визуализацией

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

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

Читать далее

Мой первый AI-агент на базе Neuron — PHP-агентного фреймворка

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

Я PHP-разработчик с многолетним стажем (от слова «много»). Привык, что мой мир — это веб‑приложения, серверный код и бесконечные «фичи» на Laravel или Yii (да... легаси — это мой конёк). В последние пару лет вокруг бушует AI‑бум: всюду слышно про нейронки, LLM, про каких‑то «агентов», которые сами решают задачи. И, признаться, временами у меня появлялась лёгкая тревога. Не отстану ли я от поезда, если не перейду полностью на Python/NodeJS или не выучу новый фреймворк? Ведь почти все примеры ИИ‑интеграций, что я видел, были на Python или JavaScript. PHP в этих разговорах фигурировал редко, если вообще упоминался.

Недавно я наткнулся на упоминание о Neuron — инструменте, который гордо назван «первым enterprise‑ready агентным фреймворком на PHP». Мой скептицизм сразу поднял голову: «Агентный фреймворк? На PHP? Серьёзно?» С другой стороны, это заинтриговало. Если всё правда, то вместо того чтобы судорожно перелистывать учебник по Python, возможно, я смогу внедрять ИИ прямо там, где мне комфортно — в PHP‑стеке. И вот я решил разобраться, что же такое этот Neuron и насколько он реален.

Погрузиться в Neuron

Я купил игровую консоль и написал для неё… BIOS

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

Осторожно: статья написана максимально простым языком. Так что если вы гик, но не умеете программировать — вам всё равно будет интересно!

Недавно я наткнулся на DIY-игровую консоль за 1.500 рублей — Waveshare GamePi13. Когда гаджет приехал ко мне, я запустил примеры игр от производителя... и оторопел от 5 FPS в Pong — это ж как плохо нужно код писать!

Не желая мириться с этим, я открыл схему устройства, даташит на RP2040 и принялся писать свой собственный BIOS. Если вам интересно узнать, как работают DIY-консоли «изнутри», можно ли запускать внешние программы на микроконтроллерах из RAM, как реализованы различные подсистемы BIOS, а в конце даже написать «Змейку» - добро пожаловать под кат!

Читать далее

DNSSEC и DNS: как доменные имена управляют интернетом + настройка BIND на Ubuntu

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

Все мы любим, когда интернет работает (и не виснет 🙂) — сайты открываются, видео грузятся, письма доходят. Но мало кто задумывается, как именно браузер узнаёт, куда вас отправить, когда вы вводите знакомое «habr.com». 

Эта статья для тех, кто хочет понять, как именно устроена и работает система доменных имён, её защита на уровне DNSSEC и почему эта технология важна для безопасности интернета. Если вы техно-гик и не боитесь деталей — добро пожаловать под кат!

Читать далее

Есть динамит, нет шахты

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

Добрый день! Хабарчане.

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

Я всего лишь, решил реализовать свою давнюю мечту...

курлык-курлык