habrahabr
Брелок с LED матрицей 8x8 на CH32V003

Решил наконец погрузиться в электронику как хобби. Изначальной целью была самодельная игровая консоль, но из-за сложностей я начал с более простого проекта — светодиодного брелка на микроконтроллере CH32V003F4P6. Почему именно он? Это дешевая (около 20 рублей за штуку) и доступная микросхема с 20 выводами — достаточно, чтобы управлять матрицей 8x8 без драйверов вроде MAX7219.Возможно одним из первых на эту мысль меня натолкнула статья от Terrabyte про мини-консоль, в которой я узнал, что платы …

  • пятница, 8 августа 2025 г. в 00:00:16
habrahabr
Как выйти из IT?.. и пойти слесарем на завод. Моя попыточка дауншифтинга [4\5]

Итак четвёртая часть мучительной попытки покинуть прохладный офис и перейти в совершенно несвойственную АйТи специалистам профессию. Дауншифтинг на максималках от парня, который любит гонзо-журналистику, анализируя всё на своей шкуре. Сегодня мы завершим профосмотр и, на лакомое, попробуем ознакомиться с трудовым договором ДО его подписания. А также кодексом этики Завода, коллективным трудовым договором и прочими бумагами.Так надо... вольная интерпритация моего текста с помощью ИИКраткое содерж…

  • пятница, 8 августа 2025 г. в 00:00:15
habrahabr
Головоломка на 1000 BTC

Самая жирная биткойн-головоломкаНачалоНачало этой истории напоминает сюжет фантастического детектива.27 декабря 2015 года пользователь Bulista с форума Bitcointalk (тот самый легендарный форум, где общался Сатоши Накамото) написал пост о том, что он создал сканер адресов биткойна.Суть работы сканера заключалась в том, что он перебирал все приватные ключи биткойна, которые по сути представляют из себя числа от 1 до 115792089237316195423570985008687907852837564279074904382605163141518161494336 (э…

  • пятница, 8 августа 2025 г. в 00:00:14
habrahabr
Мы начали в гараже, доросли до завода, продавали в 43 страны мира, а вот что теперь

ДИСКЛЕЙМЕР: Статья написана автором блога на основе интервью с О.Кивокурцевым, сооснователем робототехнической компании.Я всегда любил Терминатора. В детстве мы надевали чёрные очки и с чувством говорили: «Hasta la vista, baby» (с исп. — «До свидания, детка») Но в 2020 году любовь кончилась. Тогда на меня подал в суд Арнольд Шварценеггер. Всё потому, что мы сделали человекоподобного робота с лицом Шварца и повезли его на выставку в Нью-Йорк. Арни увидел, ему не понравилось, и его команда потреб…

  • пятница, 8 августа 2025 г. в 00:00:13
golang
Как я раздул из гофера слона или история распределенного сократителя ссылок

Вполне логично предположить, что сократитель ссылок — довольно простой сервис как с точки зрения пользователя, так и под капотом. Но что, если, взяв за основу такую простую задачу, построить целую распределенную систему?Мой шортенер начинался как простая практика с Go и gRPC после всех ОГЭ :-), где должно было быть 3 простеньких сервиса: inline тг бот, API gateway и ядро. Но с каждым днем идей все больше, энтузиазм растёт, я стал делать упор на высокие нагрузки, и постепенно мини-практика начал…

  • пятница, 8 августа 2025 г. в 00:00:11
golang
Построение REST API на Go с использованием Gorilla Mux и MongoDB

go langВведениеВ данной статье будет рассмотрена практическая интеграция MongoDB с веб-приложением на Go, построенным на базе маршрутизатора Gorilla Mux. Цель — получить минимальный, но функциональный REST API с поддержкой CRUD-операций над сущностью Book, при этом соблюдая лучшие практики структурирования кода.Материал рассчитан на разработчиков, знакомых с Go, HTTP API и основами работы с базами данных.Выбор стекаGo — компилируемый язык с лаконичным синтаксисом, встроенной поддержкой параллел…

  • пятница, 8 августа 2025 г. в 00:00:10
javascript
React Custom Hook: useMediaQuery

В этой серии статей мы отправимся в путешествие по миру пользовательских хуков React, открывая для себя их огромный потенциал для улучшения ваших проектов разработки. Сегодня мы сосредоточимся на хуке «useMediaQuery», одном из многих тщательно разработанных хуков, доступных в коллекции пользовательских хуков React. Github: https://github.com/sergeyleschev/react-custom-hooks import { useState, useEffect } from "react" import useEventListener from "../useEventListener/useEventListen…

  • пятница, 8 августа 2025 г. в 00:00:08
javascript
Dependency Injection в JavaScript: зачем он вам нужен

Вы когда-нибудь оказывались по уши в JavaScript‑приложении, следуя за цепочкой вызовов require() как по хлебным крошкам, чтобы понять, как всё связано? Один модуль импортирует другой, тот тянет глобальную переменную, и вот вы уже гоняетесь за ссылками по всему коду, просто чтобы протестировать один компонент. Это как готовить блюдо, где каждый ингредиент спрятан в отдельном шкафу — вы тратите половину времени на поиски, а не на готовку. Именно эту проблему и решает dependency injection (внедрен…

  • пятница, 8 августа 2025 г. в 00:00:07
javascript
Принцип единой ответственности SOLID в React

Всем привет! Меня зовут Дмитрий, и я руководитель фронтенд-разработки в компании Интелси.Сегодня хочу рассказать о принципе единственной ответственности (Single Responsibility Principle) — первом из пяти принципов SOLID, сформулированных Робертом Мартином в его книге "Agile Software Development: Principles, Patterns, and Practices". Суть этого принципа звучит так: «Класс должен иметь только одну причину для изменения» (A class should have only one reason to change).Если вы скажете, что …

  • пятница, 8 августа 2025 г. в 00:00:06