Telegram Web Link
Сегодня я узнал, что :nth-of-type считает элементы не по селектору, а по тегу

То есть если есть такой HTML:

<p>1</p>
<p class="a">2</p>


то селектор
p.a:nth-of-type(1) не сработает, а p.a:nth-of-type(2) выделит параграф 2
хотя должно быть всё наоборот
👍3
This media is not supported in your browser
VIEW IN TELEGRAM
🎨 Кастомные стили для VSCode

Полдня мучений с CSS прошли не зря, и я сделал кастомные стили для VSCode, в которых пофиксил несколько бесячих проблем:
• уменьшил высоту вкладок
• немного уменьшил отступы у вкладок
• сделал так, чтобы ширина вкладок в ряду была равномерной
• сделал так, чтобы в последнем ряду вкладки не растягивались на всю ширину, а прижимались к левому краю
• сделал так, чтобы Editor Toolbar мог быть единственным элементом в строке (раньше слева от него всегда должна была стоять ещё одна вкладка)

Как поставить?
1. скачать расширение Custom CSS
2. создать css-файл где-нибудь (наверное, лучше в какой-нибудь папке с конфигами vscode)
3. в настройках Custom CSS добавить путь к этому файлу

Скачать: тут
5👍2
type PelmenShape = 'halfcircle' | 'circle' | 'square' | 'rectangle' | string
👍3
По стандарту России, Белоруссии, Армении и Киргизии, пельмень должен иметь "форму полукруга, круга, квадрата, прямоугольника или произвольную форму"
🔥1
Купили Xiaomi 12

Папа уже много лет пользовался старым добрым Xiaomi Mi8, но вчера телефон внезапно стал странно себя вести, а потом и вовсе ушел в бутлуп. Сделали Factory Reset через TWRP, но через несколько минут ситуация повторилась. Пришлось искать замену

Заказали на яндекс маркете, обошлось примерно в 45 тысяч рублей + кешбек за версию 8/256

Девайсом особо не пользовался, но в руках подержать успел. Он очень компактный: по ширине один в один как пиксель 5, по высоте — чуть больше. В руке лежит очень удобно

В остальном всё тоже как надо: Snapdragon 8 Gen 1, 120 герц, UFS3.1, неплохая камера, неплохие динамики

В общем, мне кажется, хороший девайс за свои деньги
👎14🔥9👍4
🛠 Если типизация не идет к проекту, проект идет к типизации

Есть довольно старый бот на js, локали у которого лежат в yaml-файлах. Хочется иметь автодополнение ключей локалей при написании кода.

Разумеется, из yaml-файла не так просто вытащить ключи. Решение — кодогенерация .d.ts файлов!

Пишем простенький скрипт, который
- читает yaml-файл и парсит его
- проходится по нему и рекурсивно собирает все возможные ключи
- генерирует валидную декларацию (например, просто подставляет значения в строку 🌚)
- кладет этот файл в специальную папку, заигноренную в гите

Дальше импортируем типы из этого файла обычным способом, патчим тайпинги библиотеки и вуаля! Заодно не забываем настроить file watcher на локали, чтобы подсказки автоматически обновлялись при изменении.
🔥10👍1👎1
🐬 А что это тут у нас? Настоящий Flipper Zero!

Маленький список его возможностей:
• iButton ключи от домофона (чтение и эмуляция)
• Инфракрасный диапазон (правда, пульт от кондиционера эмулировать сложнее чем кажется)
• Sub-GHz радио диапазон (например, 433МГц пульты)
• NFC-теги (чтение и эмуляция, запись пока не готова) (работает даже с тройками и банковскими картами, правда только на чтение информации)
• 125КГц RFID (например, некоторые карточки-пропуски)
• Режим Bad USB (когда он притворяется клавиатурой или другим устройством и может "нажимать на кнопки" на компьютере)

Особенно хорошо сделана софтовая часть. Например, есть приложения для телефонов и компьютеров, с которых можно в один клик обновить прошивку, посмотреть сохраненные сигналы и даже постримить картинку с экрана, при этом удаленно нажимая на кнопки. Сама прошивка тоже юзер-френдли, ей приятно пользоваться. Для многих типов сигналов добавлены отдельные парсеры, чтобы на экране показывалась полезная информация, а не сырые данные.
И не стоит забывать про открытость системы. Кто угодно может модифицировать официальную прошивку или написать своё приложение. Например, сейчас есть несколько активно развивающихся кастомных прошивок с вырезанными ограничениями и дополнительными фишками. Ещё есть awesome-flipperzero — сборник известных проектов.
А скоро обещают выкатить поддержку динамической загрузки программ с SD-карты (сейчас они должны быть вшиты в прошивку). Представьте, насколько круто это будет!

В общем, супер интересный девайс. Я очень доволен.
18🔥4👎1
Ода RockBox

Прикрепляю ссылочку на видос Mitxela о проекте RockBox — кастомной прошивке для музыкальных плееров, популярной в нулевых-десятых годах и оказавшей на него сильное влияние. И я не могу с ним не согласиться.

Я тоже имел честь пользоваться RockBox'ом с десяток лет назад, причём именно на Sandisk Sansa Clip+ с его шестью кнопками и монохромным экраном. Он и сейчас лежит себе спокойно где-то в ящике, правда не включается.

В то время (да и сейчас) меня завораживал RockBox. Своим обилием кастомных приложений и игр, proof-of-concept программами (бесполезными, но такими интересными), вроде просмотрщика изображений, эмулирующего оттенки серого через ШИМ, да даже настоящим Doom!

И именно такие вайбы я ценю во флиппере.

P.S. К слову, у него ровно такая же схема управления (d-pad, центральная кнопка и одна отдельная) и такое же разрешение экрана (128×64), как у Sansa Clip+
👍31👎1😁1
🥳 grammY 1.10

На днях вышло большое обновление для grammY — современной typescript-библиотеки для создания телеграм-ботов.

Conversations, ctx.has, обновления сессий и клавиатур. Разбираемся, что нового »
🔥4🎉1
🏡 Рубрика «новости умного дома»

Наконец-то перенёс Home Assistant с малинки (Raspberry Pi 3b+) на более мощный домашний сервер. Давно хотел это сделать, но пришлось пойти на решительные меры только когда кончилось место на sd-карточке.

Ранее я уже перенес несколько сервисов с малины: сначала это были InfluxDB и Grafana (для «аналитики»), потом nginx. Теперь же, когда и сам Home Assistant переехал, на малине остались только mosquitto и zigbee2mqtt, которые обеспечивают работу zigbee-устройств (с помощью usb-стика с антенной).

Главная проблема Raspberry Pi — пропускная способность sd-карточки. Хотя я использовал не самую дешевую карточку класса C10 A1, скорость чтения составляла около 13 мегабайт в секунду, а это совсем несерьёзно. IOPS не замерял, но кажется, что там ещё хуже. Когда малинка распаковывает какой-нибудь архив, ужасно тормозит вся система.

Почему Home Assistant перестал влезать на карточку в 32 гигабайта? Всё просто — я настроил историю так, чтобы она хранилась всё время. Sqlite-база с историей выросла до 20 гигабайт. И да, работала она настолько медленно. Построить график температуры в доме за пару дней занимало у неё секунд 30, если не больше.

Первое, что я заметил после переезда — стало быстрее. Сам HA теперь перезагружается секунд за 15 вместо минуты, а графики рисуются заметно шустрее. Вот бы ещё переехать с sqlite на какую-нибудь mariadb, но это уже другая история.

Ещё одна новость — наконец-то починил интеграцию с HomeKit. Теперь смогу, например, включать лампу прямо с Apple Watch (хотя не то чтобы очень хотелось, да и HomeKit для этого необязателен). Интеграция работала какое-то время, но потом я случайно её сломал, когда перенастраивал докер на внутренние сети вместо network_mode host (что я, просто так докер использую что-ли?). Я пытался курить гайды, прокидывать порты и создавать macvlan сети, но всё было безуспешно: девайсы ни в какую не видели Home Assistant хаб. Со временем всё больше сервисов переезжали из докера на малине, и нужда в докеровской сети отпала. И сейчас я просто переключил Home Assistant обратно на network_mode host, и HomeKit сразу заработал!
😻 Неделю назад я пробовал подключить к своему веб-приложению одну библиотеку для сканирования штрих-кодов. Библиотека была написана на C, так что я взял версию, обёрнутую в WASM. Но всё пошло не по плану, и мой проект на nextjs с webpack никак не хотел с ней работать. То странные ошибки "is not defined", то webpack не хотел импортировать wasm-файл. Полдня я боролся с этим, но под конец сдался и создал ишью на гитхабе. Заодно сделал репу с минимальным воспроизведением проблемы.

Как же я был удивлён, когда через три дня автор библиотеки написал огромный комментарий на три страницы с объяснением проблем и способами их решения. И даже сделал PR с фиксами в мой репозиторий!

Респект таким мейнтейнерам.
👍24🔥9😁1
2025/07/14 02:44:43
Back to Top
HTML Embed Code: