habrahabr
Пополнение среди ультрабюджетных девбордов: FPGA — «отладка» за 201 р

Самая дешёвая "оценочная плата" с ПЛИС Xilinx Spartan-6 на AliExpress обойдётся в ровно 3000р.жалкие 9152 логические ячейкиУ неё есть один плюс - все выводы разведены на "гребёнки", имеется единственная кнопка и три светодиода. К сожалению, USB используется только для питания.Благодаря устойчивому развитию технического прогресса очередному колебанию курса BTC на свалку отправились очередные партии Асик-Майнеров, теперь это "Авалоны" 800й серии фирмы Canaan. Платы от них …

  • вторник, 15 апреля 2025 г. в 00:00:13
habrahabr
GRASP: почему настоящая архитектура начинается не с SOLID

Многие инженеры начинают своё архитектурное мышление с SOLID. Затем изучают GoF-паттерны. Но всё равно остаётся ощущение, что чего-то не хватает: распределения ответственности, логики построения модели, связи структуры и поведения. И вот тут GRASP — это как раз то недостающее звено.Хочу начать с личной предыстории.Давным-давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие.Также не обошли меня и класс…

  • вторник, 15 апреля 2025 г. в 00:00:12
habrahabr
Им не место на помойке: как и зачем я даю новую жизнь кнопочным смартфонам на Windows Mobile

Подписчики часто дарят мне интересные гаджеты, чтобы я написал о них интересную статью и снял ролик. У большинства подаренных устройств есть определённые нюансы, и зачастую они требуют ремонта или хотя бы базового обслуживания.Недавно подписчица с «Пикабу», Кристина, подарила мне коробку с телефонами своего отца, которые ему уже давно не нужны. И в этой коробке оказался достаточно редкий в наше время гость: кнопочный смартфон RoverPC M5 с Windows Mobile на борту. У смартфона полностью умер акку…

  • вторник, 15 апреля 2025 г. в 00:00:11
habrahabr
Что я понял за три года работы на чужой стартап — мои 10 выводов

В этой статье поделюсь своим опытом работы в чужом стартапе, где я проработал почти три года главным редактором: какие меня ждали разочарования, какие совершил ошибки и почему надо было уйти из проекта еще до того, как он закроется.Почему я пошел работать в этот стартап за очень маленькие деньги? Мне платили от 30 до 60 тыс руб в мес.Была перспектива релокации на Кипр — это моя цель, к которой я иду уже почти 5 лет.Я должен был получить опцион 2% — при закрытии компании её оценка составляла 5 м…

  • вторник, 15 апреля 2025 г. в 00:00:10
golang
Сервис поиска за три недели: как сделать и не пожалеть через год

Как запустить поисковый сервис, если у тебя всего три недели, а данные нужно агрегировать с десятков источников, каждый из которых работает по своим правилам? Как обойти жёсткие лимиты партнёров, которые ограничивают запросы в 500 RPM и p99 до 5 секунд, когда для быстрой загрузки первых результатов нужно минимум 1000 RPM? Как справиться с геопоиском, когда традиционные решения вроде Elasticsearch не подходят?В 2022 году мы в 2ГИС запустили сервис бронирования Отелло, и перед нами стояла амбицио…

  • вторник, 15 апреля 2025 г. в 00:00:08
golang
Обработка паник в горутинах

Привет, Хабр!Сегодня рассмотрим, как безопасно запускать горутины, перехватывать в них паники, логировать их со стек трейсом и не дать одной багнутой функции завалить весь сервис. Почему recover() не спасёт вас от паники в горутинеКогда ты только знакомишься с panic() и recover(), всё кажется прямолинейным:«Если где‑то в коде случится паника, я могу поставить defer + recover, и всё будет красиво обработано». Но в Go есть одно принципиально важное правило: recover() работает только в пределах то…

  • вторник, 15 апреля 2025 г. в 00:00:08
javascript
Параллельный цикл на worker. Многопоточность JS

Мне очень нравится JavaScript своей легкостью, доступностью и функциональностью. Он перекрывает 90% всех моих потребностей в программировании. Спектр решаемых с помощью него задач огромен, и в том числе, иногда возникают задачи в которых необходимо изменить каждый элемент массива независимо от остальных элементов. Одно из типовых решений этой задачи через цикл или метод map.Пример программы с простым циклом//Функция, изменяющая элемент массива function f(a) { let a0 = 1; for (let i = 0; i &…

  • вторник, 15 апреля 2025 г. в 00:00:06
javascript
Как я oauth proxy навайбокодил

Чем хорош TRMNL -- так это возможностью выводить что-то своё за считанные минуты.С помощью "Private Plugins" можно взять ссылку, что отдаёт JSON (недавно добавили поддержку XML и сырого текста), рисуем простой шаблон на HTML с Liquid, готово! Для пущей динамики возможе неще и javascript, что позволяет выводить графики. Можно опубликовать для других пользователей, можно брать опубликованное другими и либо использовать как есть -- либо подправить под себя. Раздолье!График сахара -- пять м…

  • вторник, 15 апреля 2025 г. в 00:00:05
javascript
Плавность как фича: сравниваем фреймворки по анимации UI на реальных кейсах

UI-анимации — это не только про красоту, но и про восприятие, структуру и даже скорость. В этой статье рассматриваются популярные фреймворки для создания анимаций в интерфейсах: CSS, Framer Motion, GSAP и Motion One. Сравнение проводится на реальных кейсах с кодом, примерами и субъективным мнением, где каждый инструмент показывает свои сильные и слабые стороны. В конце — небольшие выводы и неожиданные результаты. Когда "просто появляется" уже не работаетПару лет назад дизайнер принес м…

  • вторник, 15 апреля 2025 г. в 00:00:03