habrahabr
Оживляем раритетное этажное табло от лифта

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

  • среда, 12 февраля 2025 г. в 00:00:16
habrahabr
Математики решили знаменитую «задачу о диване»

В конце декабря 2024 года математики получили ответ на вопрос о том, какой самый большой диван можно пронести вокруг угла. Ответ, который искали 58 лет. Наверняка вы когда-либо пытались пронести громоздкий диван через узкий коридор и в процессе задавались вопросом: «А влезет ли он?». А когда понимали, что не пролезает, весело проводили время, разбирая мебель или круша стены. Математики диван не таскали, но тоже задавали себе такой же вопрос. Ну, почти такой же.Задачу о том, какой самый большой …

  • среда, 12 февраля 2025 г. в 00:00:14
habrahabr
Почему мы перешли на RAID 10

Недавно у нас развалился RAID 5. Один диск на первом году своей жизни умер сам от естественных причин. Такое может быть и в период трёхлетней гарантии — нечасто, но может. Мы вынули его, поставили на его место диск из горячего резерва — и во время ребилда в массиве умер второй диск. Данные умерли вместе с ним. Один из пользователей, чьи данные там были, очень живо интересовался тем, что за конфигурация у нас была. Вплоть до моделей дисков, дат их производства и серийных номеров. Он, вероятн…

  • среда, 12 февраля 2025 г. в 00:00:13
habrahabr
Как пустой S3 бакет может вас обанкротить

Представьте, что вы создали пустую, приватную корзину (их ещё называют «бакетами» — от «bucket») AWS S3 в выбранном вами регионе. Каким будет счёт за услуги AWS на следующее утро?Несколько недель назад я начал работу над прототипом системы индексирования документов для моего клиента. Я создал одну корзину S3 в регионе eu-west-1 и загрузил туда несколько файлов для тестирования. Через два дня я проверил мою страницу выставления счетов AWS, заглянув туда, преимущественно, для того, чтобы проверит…

  • среда, 12 февраля 2025 г. в 00:00:13
golang
Идеи стоящие за дизайном языков программирования

Когда смотришь на дизайн синтаксиса того или иного языка программирования невольно задумываешься, почему сделано так, а не иначе. Тут я обозреваю лишь некоторые идеи стоящие за этим: "программисту нельзя доверять", "язык должен быть удобен для пользователя", "каким качеством должен обладать язык программирования, чтобы заменить другой?".Программисту нельзя доверятьВсе начиналось с С, сего девизом: «Доверяй программисту», на данный момент всем понятно, что это было ошибко…

  • среда, 12 февраля 2025 г. в 00:00:11
golang
Удобная ORM для Go с генерацией миграций и Query Builder’ом: Gormite

GitHubВ процессе разработки на Go нередко встаёт вопрос о создании удобного уровня абстракции для работы с базой данных: хочется иметь и простую генерацию миграций, и гибкий Query Builder. Проект Gormite был создан как раз для решения этих задач. Он предлагает облегчённый подход к ORM, при этом сохраняя гибкость при формировании SQL-запросов.Знакомство с GormiteGormite – это CLI-инструмент, которая не нуждается в прямой интеграции в go.mod. Она читает конфигурацию (mapping) из YAML-файла и по у…

  • среда, 12 февраля 2025 г. в 00:00:10
javascript
Как мы боролись с лишними рендерами в react

Привет, друзья!Давайте представим себе такую задачку. Есть страница, где в ее правой части располагается множество всевозможных виджетов - таблицы, списки, графики и многое многое другое. Все эти компоненты сами по себе довольно сложные и мы не хотим, чтобы происходил их ререндер без особой на то надобности. В левой части страницы располагается своего рода меню - список с названиями каждого виджета и счетчиком около названия. Этот счетчик показывает количество данных того или иного виджета. При…

  • среда, 12 февраля 2025 г. в 00:00:08
javascript
Drizzle ORM — современная типизированная ORM для реляционных БД в JS/TS

Удивился, что про столь популярный продукт не было статьи на Хабре, срочно это исправляю. Drizzle ORM - это #2 самая желаемая ORM по опросам, и она даже вошла в top 50 JavaScript Rising Stars 2024, заняв 27 место.Что это такое?Drizzle - это современная TypeScript/JavaScript ORM, которая работает со всеми основными реляционными БД (PostgreSQL, MySQL, SQLite и др.).Её главные особенности: малый вес (~7.4kb), отсутствие внешних зависимостей и умение работать в различных средах (Node, serverless ср…

  • среда, 12 февраля 2025 г. в 00:00:06
javascript
JavaScript: структуры данных и алгоритмы. Часть 8

Привет, друзья! В этой серии статей мы разбираем структуры данных и алгоритмы, представленные в этом замечательном репозитории. Это восьмая часть серии. Сегодня мы поговорим об алгоритмах сортировки. Код, представленный в этой и других статьях серии, можно найти в этом репозитории. Интересно? Тогда прошу под кат. Первая часть Вторая часть Третья часть Четвертая часть Пятая часть Шестая часть Седьмая часть ❯ Сортировка Как работают сортировки ❯ Сортировка пузырьком Описание Википедия YouT…

  • среда, 12 февраля 2025 г. в 00:00:05